我一直在尝试实现https://github.com/herdrick/hierarchical-text/blob/master/src/hierarchical-classifier.clj,同时将*directory-string*
中的路径更改为包含文本文件的保管箱。在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的编译器异常。另外,“为了可视化这棵树,请确保您具有visualize /目录。在protovis.clj中更改protovis-json-file成为您的visualize / protovis-3.2 / flare.js的完整路径”和“删除每个文件的dir路径可以使所有内容更加清晰”对我来说还不清楚。有人可以帮助阐明此实现中发生了什么吗?
最佳答案
您需要将apache.commons.io的mvn依赖项添加到project.clj中的:dependencies矢量中:[org.apache.commons/commons-io "1.3.2"]
而且,此代码是概念证明(可以制成一个库),而不是一个库,因为它在文件中具有硬编码的路径,并且文件加载时的副作用取决于这些事实,这表明了这一点。编码值。