在将*directory-string*
中的路径更改为包含文本文件的Dropbox时,我一直在尝试实现https://github.com/herdrick/hierarchical-text/blob/master/src/hierarchical-classifier.clj。在REPL中发出编译器异常,org.apache.commons.io.FileUtils/listFiles
给出java.lang.ClassNotFoundException
。
除了我添加的链接中的源代码
(def clustered (cluster *txt-files*))
之后有以下注释: 要查看此树可视化,请确保您具有可视化/目录。将protovis.clj中的 protovis-json-file 更改为visualize / protovis-3.2 / flare.js的完整路径然后:
(def json (.replace (pof->js clustered 3) "/path/to/documents/" ""))
;;I have left the path to documents here for generality, the path is fully specified in my text editor
;;removing the dir path to each file keeps everything much cleaner.
(write-protovis-file json)
*txt-files*
中的clustered
包括
(def *txt-files* (seq (org.apache.commons.io.FileUtils/listFiles (new java.io.File *directory-string*) nil false)))
这是导致编译器异常的部分。
我不确定如何摆脱org.apache的编译器异常...此外,“要查看此树可视化,请确保您具有可视化/目录。更改 protovis-json protovis.clj中的-file 是你的visualize / protovis-3.2 / flare.js的完整的路径“和”删除每个文件的dir路径使得一切都更清洁“不是对我来说很清楚有人可以帮助阐明这个实现中发生了什么吗?
答案 0 :(得分:1)
您需要将apache.commons.io的mvn依赖项添加到project.clj中的:dependencies向量中:
[org.apache.commons/commons-io "1.3.2"]
此外,此代码是概念证明(可以在库中),而不是库,因为它在文件中具有硬编码路径,并且在文件加载时依赖于副作用在那些硬编码值上。