我一直在尝试实现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"]

而且,此代码是概念证明(可以制成一个库),而不是一个库,因为它在文件中具有硬编码的路径,并且文件加载时的副作用取决于这些事实,这表明了这一点。编码值。

10-04 10:02