Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

形態素解析ライブラリ「lucene-gosen」の使い方

形態素解析をやってみたいと思い、以下のページで解説されているlucene-gosenライブラリを使おうとしてみましたがうまくいきませんでした。
http://www.mwsoft.jp/programming/munou/lucene_gosen.html
私はJavaには疎いので、出来るだけ多く情報を以下に提示しておきます。
OSはWindows 7 64bit、IDEはEclipse Marsです。
また、次に何をしてみたかを書いておきます。
まず、上記ページの「ダウンロード」というところに書いてあるURLからlucene-gosen-4.6.0-ipadic.jarというファイルをダウンロードし、クラスパス(workspace\AI1\bin)に入れました。
次にEclipseでAI1というプロジェクトを作り、その中のsrc/default packageの下にKeitaiso.javaというファイルを作り、以下のソースを書きました。
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import net.java.sen.SenFactory;
import net.java.sen.StringTagger;
import net.java.sen.dictionary.Token;

public class Keitaiso {

    public static void main(String[] args) throws IOException {

        // この3行で解析できる
        StringTagger tagger = SenFactory.getStringTagger(null);
        List<Token> tokens = new ArrayList<Token>();
        tagger.analyze("もう眠い", tokens);

        // 解析結果の中身をいろいろ出力してみる
        for (Token token : tokens) {
            System.out.println("==============================");
            System.out.println("surface : " + token.getSurface());
            System.out.println("cost : " + token.getCost());
            System.out.println("length : " + token.getLength());
            System.out.println("start : " + token.getStart());
            System.out.println("additionalInformation : " + token.getMorpheme().getAdditionalInformation());
            System.out.println("basicForm : " + token.getMorpheme().getBasicForm());
            System.out.println("conjugationalForm : " + token.getMorpheme().getConjugationalForm());
            System.out.println("conjugationalType : " + token.getMorpheme().getConjugationalType());
            System.out.println("partOfSpeech : " + token.getMorpheme().getPartOfSpeech());
            System.out.println("pronunciations : " + token.getMorpheme().getPronunciations());
            System.out.println("readings : " + token.getMorpheme().getReadings());
        }

    }
}
しかし、実行しようとしたところ、コンパイルエラーが起きて、以下のようなエラーが表示されました。
Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    StringTagger cannot be resolved to a type
    SenFactory cannot be resolved
    Token cannot be resolved to a type
    Token cannot be resolved to a type
    Token cannot be resolved to a type

    at Keitaiso.main(Keitaiso.java:14)
どうやらStringTagger やSenFactory がどこにあるかわからないというエラーのようなのですが、Javaには疎いので解決方法がよくわかりません。
情報不足ですみませんが、なにとぞご教授お願いします。

3

回答

7403

閲覧

3件の回答

評価

0

クラスパスに追加できていないからです。
eclipseでクラスパスを追加する方法を調べてください。

評価

0

>クラスパス(workspace\AI1\bin)に入れました。
そこは基本的(デフォルト)には、Eclipseがコンパイルしたファイルを吐き出すところだ。
Eclipseはbinの下をソースと同期しようとするから、そこに入れておくとそのうち消されてしまう。
消されない場所を「自分で作って」、そこをクラスパスに追加しないといけない。

そして、作成時のクラスパスと実行時のクラスパスについても、勉強が必要だろうな。

評価

0

質問者です。
皆さん回答ありがとうございました。
うまくできました。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。