Maven 构建机器学习 - 我如何让它工作?

Maven build for machine learning - how do I get it working?

我正在尝试编译和 运行 一些基本的 Java 代码在此存储库中: https://github.com/jasebell/mlbookexamples

例如,在 Java 文件夹中,chapter2.BritneyDilemma。

我正在尝试用 Maven 来做这件事(因为有一个 pom.xml),但我觉得有一些事情阻碍了我。我对 Maven 了解不多;我的背景是 C 和 cmake。乍一看,我明白人们为什么讨厌 Maven。该项目的 pom.xml 似乎没有完全配置/看起来很不标准:

我尝试过各种方法,例如:

这里是库存构建尝试,没有 modifications/taking pom.xml 原样:

~/projects/mlbookexamples/java (master) $ mvn install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building mlbook
[INFO]    task-segment: [install]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/alex/projects/mlbookexamples/java/src/main/resources
Downloading: http://repo.springsource.org/libs-milestone//javax/batch/javax.batch-api/1.0/javax.batch-api-1.0.jar
34K downloaded  (javax.batch-api-1.0.jar)
[INFO] [compiler:compile {execution: default-compile}]
[INFO] No sources to compile
[INFO] [resources:testResources {execution: default-testResources}]
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/alex/projects/mlbookexamples/java/src/test/resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] No sources to compile
[INFO] [surefire:test {execution: default-test}]
[INFO] No tests to run.
[INFO] Surefire report directory: /home/alex/projects/mlbookexamples/java/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] [jar:jar {execution: default-jar}]
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] Building jar: /home/alex/projects/mlbookexamples/java/target/mlbookexamples-1.0-SNAPSHOT.jar
[INFO] [install:install {execution: default-install}]
[INFO] Installing /home/alex/projects/mlbookexamples/java/target/mlbookexamples-1.0-SNAPSHOT.jar to /home/alex/.m2/repository/com/datasentiment/mlbook/mlbookexamples/1.0-SNAPSHOT/mlbookexamples-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6 seconds
[INFO] Finished at: Wed Mar 04 08:38:56 NZDT 2015
[INFO] Final Memory: 33M/249M
[INFO] ------------------------------------------------------------------------
~/projects/mlbookexamples/java/target (master) $ java -jar mlbookexamples-1.0-SNAPSHOT.jar 
no main manifest attribute, in mlbookexamples-1.0-SNAPSHOT.jar

我是运行宁拱linux.

要编译第 2 章,似乎不需要获取 pom.xml 中列出的依赖项。

您可以简单地从 chapter2 文件夹编译 BritneyDilemma(记得包括从下载的 Classifier4J 依赖项 http://sourceforge.net/projects/classifier4j/files/ ,这个可以放在chapter2文件夹里)。

~/projects/mlbookexamples/java/src/chapter2 (master) $ javac -cp Classifier4J-0.6.jar BritneyDilemma.java 

然后您可以转到 src 文件夹和 运行 class,再次引用 chapter2 文件夹中的 classifier4j jar。

~/projects/mlbookexamples/java/src (master) $ java -classpath .:chapter2/Classifier4J-0.6.jar chapter2.BritneyDilemma 
brittany spears = 0.7071067811865475
brittney spears = 0.7071067811865475
britany spears = 0.7071067811865475
britny spears = 0.7071067811865475
briteny spears = 0.7071067811865475
britteny spears = 0.7071067811865475
briney spears = 0.7071067811865475
brittny spears = 0.7071067811865475
brintey spears = 0.7071067811865475
britanny spears = 0.7071067811865475
britiny spears = 0.7071067811865475
britnet spears = 0.7071067811865475
britiney spears = 0.7071067811865475
christina aguilera = 0.0
britney spears = 0.9999999999999998

您可能已经拥有所需的日志记录库,但可以通过包管理器将其获取为 libcommons-logging-java。

或者,通常使用 eclipse 更容易。只需创建一个新的 Java 项目,但将工作目录从默认目录更改为存储库中的 java 目录。在这里新建文件夹'lib',放入classifier4j jar。在 Eclipse 中,右键单击 classifier4j 和 'add to build path'。您现在只需单击 BritneyDilemma 或任何其他源(将依赖项添加到 lib 并在必要时添加到构建路径),然后根据需要 运行。

祝机器学习愉快。