1

私はMahoutを使用し、次のようにluceneインデクサーを使用してテキストからベクターを作成しようとしています:https ://cwiki.apache.org/confluence/display/MAHOUT/Creating+Vectors+from+Text

しかし、cygwinのMAHOUT_HOMEディレクトリからコマンド./bin/mahoutを実行すると、次のエラーが発生します。

java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
        at org.apache.mahout.driver.MahoutDriver.<clinit>(MahoutDriver.java:89)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        ... 1 more
Exception in thread "main"

これがslf4jの依存関係の問題であることは知っていますが、どのように解決すればよいかわかりません。

「mvninstall」を使用してmahoutを正常にビルドし、すべてのテストがエラーなしで正常に機能します。また、プロジェクトにEclipse Indigo(Maven組み込み機能)を使用しています(luceneインデクサーを作成します)。

何か案は?

4

3 に答える 3

2

あなたの問題を正しく理解していない場合は、お詫び申し上げます。

MAHOUT を使用しようとしているプロジェクトの pom.xml に次の依存関係を追加することで、この問題を解決できる可能性があります。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.6.6</version>
</dependency>

必要な sl4j の特定のバージョンがある場合は、この検索で​​ Maven 中央リポジトリを確認してください。

于 2012-08-01T19:08:28.450 に答える
2

Mahout がクラスパスに依存するサードパーティ クラスを使用せずに、いくつかの Mahout クラスを実行しています。これが slf4j ロギング ファサードです。このプロジェクトの JAR をクラスパスに追加できます。または、実行するスクリプトがそれを設定していることを確認できます。または、すべての依存関係がパッケージ化された JAR ファイルを作成する Maven を使用して Mahout によってビルドされた「.job」ファイルを使用することもできます。

于 2012-08-01T19:12:37.763 に答える
0

私の問題は mahout 0.4 で jdk 7 を使用していたことが判明しました。私はそれをjdk 6に変更し、その後すべてが完全に機能しました。

于 2012-08-10T00:48:34.030 に答える