京都テキスト解析ツールキット(KyTea、「キューティー」)は、日本語など、単語(または形態素)分割を必要とする言語のための一般的なテキスト解析器です。
KyTeaには以下の機能が揃っています:
線形SVMやロジスティック回帰などを用いてそれぞれの分割点や読みを個別に推定するため、部分的にアノテーションされたデータを利用してモデルを学習することも可能です。 分類器の学習にはLIBLINEARを使用しています。 学習法の詳しい説明についてはこちらをご覧ください。
また、詳しくは以下の論文をご参照ください。品詞推定に関する話題であればACLの論文、読み推定に関する話題であればLRECの論文を引用していただければ幸いです。
最新のバージョン: KyTea 0.4.7 (コード) KyTea 0.4.2 (Windows版)
KyTeaのバージョン0.1.0以降にはソースコードと現代日本語書き言葉均衡コーパス(BCCWJ)やUniDicなどのデータで学習されたモデルが含まれています。
最新コード(未リリース): @github
過去のバージョン:
0.4.6 (コード)
0.4.5 (コード)
0.4.4 (コード)
0.4.3 (コード)
0.4.2 (コード Win)
0.4.1 (コード Win)
0.4.0
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.3
0.1.2
0.1.1
0.1.0
0.0.3
0.0.2
0.0.1
KyTeaのソースコードはApache License Version 2の条件に基づいて頒布されています。 KyTeaと同梱されているモデル、またはKyTeaモデルのページでダウンロード可能なモデルの研究及び商用利用は許可されているものの、事前に許可を得ない限り再配布は禁じられています。
KyTeaはLinux・Mac OSX・CygWinで動作確認をしています。 インストールをするために、最新版をダウンロードしてから、ファイルを解凍してmakeをします。
tar -xzf kytea-X.X.X.tar.gz cd kytea-X.X.X ./configure make make install kytea --help
これでヘルプが表示されればプログラムは正しく動作しています。 プログラムの効率やインストール場所を指定するオプションはコンパイル時に指定できます。
KyTeaをインストールしてから、プログラムを実行することで分かち書きされていないテキストを分割し、読みを付与することができます(モデルの文字コードはUTF-8なので、UTF-8以外の文字コードのテキストであれば新たにモデルを学習する必要があります)。 test.rawにベタ書きのテキストがあり、以下のようなコマンドを実行すれば、test.fullに解析結果が出力されます。
kytea < test.raw > test.full
単語分割・読み推定のモデルを構築することはそれほど難しくありません(学習の詳細はこちら)。 まず、以下の形式のコーパスを用意します(単語分割のみを必要とする場合、タグは不要です。また、train-kyteaで「-notag」を指定することもできます):
コーパス/名詞/こーぱす の/助詞/の 文/名詞/ぶん で/助動詞/で す/語尾/す 。/補助記号/。 もう/副詞/もう ひと/名詞/ひと つ/接尾辞/つ の/助詞/の 文/名詞/ぶん で/補助記号/で す/語尾/す 。/補助記号/。
このコーパスはtrain.fullという名前で、test.rawという分かち書きされていないテストデータのファイルがある場合、このようにモデルを学習してテストデータの単語分割・読み推定ができます。
train-kytea -full train.wp -model model.dat kytea -model model.dat < test.raw > test.full
出力のtest.fullは単語分割され、各単語にタグが付きます。
kyteaはモデルを用いて単語分割と読み推定を行います。
解析オプション: -model 使用するモデルファイル -nows 単語分割を行わない(-in rawと併用不可) -notags タグ推定を行わない(-in fullと併用不可) -notag n個目のタグを推定しない(-notag 1 なら1個目のタグを推定しない) -nounk 未知語の読み推定を行わない -wsconst 分割したくない文字種の指定 (例えば-wsconst Dで数字を分割しない) -unkbeam 未知語の読み推定で利用するビーム幅(デフォルト:50、0は全探索) 入出力オプション: -in 入力の形式(raw/full/part/conf/tok、デフォルトraw) -out 出力の形式(full/part/conf/tok/eda/tags、デフォルトfull) -tagmax 出力するタグ候補の最大限(デフォルト3、0で全てを出力) -deftag サブワード辞書に存在しない未知語など、タグを与えられない単語のため のタグ -unktag 辞書に存在しない単語に付与されるタグ 入出力オプション(上級編): -wordbound フルアノテーションの単語境界を表す文字 (" ") -tagbound フル・部分的アノテーションのタグ境界を表す文字 ("/") -elembound フル・部分的アノテーションの候補境界を表す文字 ("&") -unkbound 部分的アノテーションで「未付与タグ」を表す文字 (" ") -skipbound 部分的アノテーションで「付与見送りタグ」を表す文字 ("?") -nobound 部分的アノテーションで「単語境界なし」を表す文字 ("-") -hasbound 部分的アノテーションで「単語境界あり」を表す文字 ("|")
train-kyteaはKyTeaモデルを学習するためのプログラムです。
入力・出力オプション: -encode 入出力の文字コード (utf8/euc/sjis、デフォルト:utf8) -full フルアノテーションの学習データ(複数可) -tok 単語分割のみの学習データ(複数可) -part 部分的にアノテーションの学習データ(複数可) -conf 信頼度付きの学習データ(複数可) -feat -featoutで生成された素性ファイル -dict 辞書ファイル (複数可) -subword サブワード単位の辞書。追加することで未知語の読み推定が有効になる -model モデルファイルの出力先 -modtext テキスト形式のモデル出力 (デフォルトはバイナリ形式) -featout 生成する素性ファイル モデル学習オプション: -nows 単語分割のモデルを学習しない -notags タグ付与モデルを学習しない -global n個目のタグを全体モデルで学習する(品詞推定等に利用) -debug デバッグ情報のレベル(0=なし、1=通常、2=詳細) モデル学習オプション(上級編): -charw 文字素性の窓幅 (デフォルト:3) -charn 文字素性のn-gram長 (デフォルト:3) -typew 文字タイプ素性の窓幅 (デフォルト:3) -typen 文字タイプ素性のn-gram長 (デフォルト:3) -dictn 辞書素性の単語帳上限 (デフォルト:4) -unkn 未知語モデルのn-gram長 (デフォルト:3) -eps 分類器学習の停止条件を調整するε -cost 分類器学習のコストハイパーパラメータ -bias 分類器の学習でバイアスを用いる (デフォルト:true) -solver 分類器の種類 (1=SVM、7=ロジスティック回帰など。デフォルト:1)
KyTeaプロジェクトに参加されたい方はkytea@までご連絡ください。
古いバージョンの情報はバージョン歴ページへ。
Last Modified: 2012-01-27 by neubig