形態素解析システム Sen の使用
前回のJames話の続きなのですが、最終的に作りたいアプリケーションは
・携帯からメールを送信
・サーバ側でメールの内容を解析
・応答を返信
ということをやりたいわけで。
Webアプリで作ればよいのでしょうが、私は6年前に購入した携帯電話を
いまだに愛用しており、携帯でWebを見たことないんですよね・・・
本文に記載されている内容を解析するのはどうしたもんかね。と
悩んでいると「Sen」を使えばよいのでは?という回答にいたりました。
http://www.mlab.im.dendai.ac.jp/~yamada/ir/MorphologicalAnalyzer/Sen.html
※インストールはURLの手順どおりに行ってみました。
さて、Senのインストールは完了したのですが、実行時
-Dsen.home
オプションを指定して、Senのインストールフォルダを指定しなくてはなりません。
でも、James-mailetで処理を行いたいのでどうしたものかと悩んだ結果、
こんなコードで逃げることができました。
import net.java.sen.StringTagger;
import net.java.sen.Token;
public class Test {
static{
System.setProperty("sen.home", "[Senのインストールフォルダ]");
}
public static void main(String[] args) {
String input = "すもももももももものうち";
try {
StringTagger tagger = StringTagger.getInstance();
Token[] token = tagger.analyze(input);
if (token != null) {
for (int i = 0; i < token.length; i++) {
//対象文字列
System.out.println(token[i].toString());
//基本形
System.out.println(token[i].getBasicString());
//品詞情報
System.out.println(token[i].getPos());
//読み方
System.out.println(token[i].getReading());
System.out.println(token[i].getPronunciation());
}
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("Error1");
}
}
}
staticで設定してしまうところがミソかも。
このやり方でmailetに仕込んでも動作してくれました。
もどる