Yahoo言語解析ツールWrapper Beta版

jarファイル ダウンロード

http://stiq.info/files/txqz-nlp-modules-1.0.jar

これはなに?:

youzakaさんが作ったYahoo形態素解析エンジンのJava用Wrapperを
さらに扱いやすくしたのと、キーフレーズ検索に対応出来るようにしたもの

基本設計

TaggerFactory.getTagger(ほにゃらら);
の1文で、形態素解析の種類の指定を行って、
形態素解析を行い、y!から取ってきたデータを扱いやすくするようになっている。
*1

Tagger tagger = TaggerFactory.getTagger(arg1, arg2);
形態素解析の種類を指定して、Taggerインスタンス化する。
String arg1は、形態素解析の種類

  • "yahoo"で、形態素解析
  • "yahoo_kp" または、"yahoo_KeyPrase"で、キーフレーズ検索*2

String arg2は、自分のyahooのappIdを入れる。
arg2は、省略出来るけど、俺のappIdが消費されるので、必ず自分のアカウントでやってください><

tagger.setString(line);
lineに解析したい文章を入れる。

あとは、サンプルを見て、分からないところがあれば聞いてください。

Yahoo!形態素解析

サンプル
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import net.txqz.morpheme.Tagger;
import net.txqz.morpheme.TaggerFactory;
import net.txqz.morpheme.Token;

public class NLPTest {
	public static void main(String[] args) {

		Tagger tagger = TaggerFactory.getTagger("yahoo_kp", "******"); //******のところに、自分のyahooのIDを入力
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("Please input Japanese text.");
		String line;

		try {
			while((line = in.readLine()) != null) {
				System.out.println(line);
				tagger.setString(line);
				for(Token t : tagger.getTokenList()) {
					System.out.println(t);
					//Taggerの各要素、surface -> 単語そのまま、base -> 基本形に直す、
					//reading -> 読み方(漢字をひらがなに)、pos -> 品詞情報
					System.out.println(t.getSurface() + t.getBase() + t.getReading() + t.getPos());
				}
			}
		} catch(IOException ioe) {
			ioe.printStackTrace();
		}
	}
}
実行結果


Yahoo!キーフレーズ検索

サンプル
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import net.txqz.morpheme.Tagger;
import net.txqz.morpheme.TaggerFactory;
import net.txqz.morpheme.Token;

public class NLPTest {
	public static void main(String[] args) {

		Tagger tagger = TaggerFactory.getTagger("yahoo_kp", "*******"); //*******のところに、自分のYahooのIDを入力
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("Please input Japanese text.");
		String line;

		try {
			while((line = in.readLine()) != null) {
				System.out.println(line);
				tagger.setString(line);
				for(Token t : tagger.getTokenList()) {
					System.out.println(t.getKeyPhrase() + " : " + t.getScore());
				}
			}
		} catch(IOException ioe) {
			ioe.printStackTrace();
		}
	}
}
実行結果

*1:この辺の設計は、全てyouzakaさんの設計です。あたまが良すぎる。

*2:裏オプションで、gosenを指定出来るけど、設定がめんどくさいので、また後で