形態素解析してみる2

Luceneのライブラリを使って形態素解析してみる。

まずは、Senとかダウンロード。

http://www.mlab.im.dendai.ac.jp/~yamada/ir/MorphologicalAnalyzer/Sen.html
lucene-ja-~と、sen-~をダウンロードする。

Senのdicをビルドする

sen-~/dic 配下に移動してantする。
build が成功すれば、token.senとかmatrix.senとかって数種類ファイルが追加されてるはずです。

※ビルド中にファイルダウンロードが実行されます。
Proxyを使ったネットワーク環境の場合、以下のようにantの引数にproxyのホストとポートを指定して実行して下さい。
ant -Dproxy.host=proxy.hoehoe.jp -Dproxy.port=8080

※windowsでbuildする場合、cygwinをインストールして下さい。
でもって、build.xmlのperl.binを以下のように修正する必要があります。
<property name="perl.bin" value="c:/cygwin/bin/perl.exe"/>
<!--<property name="perl.bin" value="/usr/bin/perl"/>-->

クラスパスに必要なjarを配置
  • commons-logging.jar
  • lucene-1.4.3.jar
  • lucene-ja.jar
  • sen.jar

JapaneseAnalyzerを使ってみる


import java.io.IOException;
import java.io.StringReader;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.ja.JapaneseAnalyzer;

public class SenSample {

static {

// Senのホームディレクトリをシステムプロパティに設定
// ディレクトリパスにスペース、日本語は使用できません!
System.setProperty("sen.home", "C:/hogehoge/sen-1.2.2.1");
}

public void StringTaggerTest(String s) {

try {

StringTagger tagger = StringTagger.getInstance();
net.java.sen.Token[] tokens = tagger.analyze(s);
for (int i = 0; i < tokens.length; i++) {

System.out.println("------------------------");
System.out.println(tokens[i].getBasicString());
System.out.println(tokens[i].getTermInfo());
System.out.println(tokens[i].getAddInfo());
}

} catch (IllegalArgumentException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();
}
}
}

public class Sample {

public static void main(String[] args) {

SenSample senSample = new SenSample();

senSample.StringTaggerTest("形態素解析できるのかテスト中です!");
}
}



Sampleクラスのmainを実行すると…

------------------------
形態素
名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ

------------------------
解析
名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセキ

------------------------
できる
動詞,自立,*,*,一段,基本形,できる,デキル,デキル

------------------------

名詞,非自立,一般,*,*,*,の,ノ,ノ

------------------------

助詞,副助詞/並立助詞/終助詞,*,*,*,*,か,カ,カ

------------------------
テスト
名詞,サ変接続,*,*,*,*,テスト,テスト,テスト

------------------------

名詞,接尾,副詞可能,*,*,*,中,チュウ,チュー

------------------------
です
助動詞,*,*,*,特殊・デス,基本形,です,デス,デス

------------------------
!
null

0 コメント: