KyTea

English

京都テキスト解析ツールキット(KyTea、「キューティー」)は、日本語など、単語(または形態素)分割を必要とする言語のための一般的なテキスト解析器です。

特徴

KyTeaには以下の機能が揃っています:

KyWsとKyPeは線形SVMやロジスティック回帰などを用いてそれぞれの分割点や発音を個別に推定するため、部分的にアノテーションされたデータを利用してモデルを学習することも可能です。 分類器の学習にはLIBLINEARを使用しています。 学習法の詳しい説明についてはこちらをご覧ください。

また、詳しくは以下の論文をご参照ください:

ダウンロード・インストール

ダウンロード

最新のバージョン: KyTea 0.1.2

KyTeaのバージョン0.1.0以降にはソースコードと現代日本語書き言葉均衡コーパス(BCCWJ)やUniDicを学習データとするモデルが含まれています。

過去のバージョン: KyTea 0.1.1 KyTea 0.1.0 KyTea 0.0.3 KyTea 0.0.2 KyTea 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で「-nope」を指定します):

コーパス/こーぱす の/の 例文/れいぶん で/で す/す 。/。
これ/これ で/で KyTea/きゅーてぃー を/を 学習/がくしゅう し/し ま/ま す/す 。/。

このコーパスはtrain.fullという名前で、test.rawという分かち書きされていないテストデータのファイルがある場合、このようにモデルを学習してテストデータの単語分割・読み推定ができます。

train-kytea -full train.wp -model model.dat
kytea -model model.dat < test.raw > test.full

出力のtest.fullは単語分割され、各単語に読みがついています。

各プログラムの使い方

kytea

kyteaはモデルを用いて単語分割と読み推定を行います。

オプション:
  -model   使用するモデルファイル
  -in      入力の形式 (raw/full/part/conf、デフォルト:raw)
  -out     出力の形式 (full/part/conf、デフォルト:full)
  -nows    単語分割を行わない (raw入力では不可)
  -nope    読み推定を行わない (full入力では不可)
  -nounk   未知語の読み推定を行わない
  -unkcount 未知語の発音の最大出力数 (デフォルト:5、0の場合は全て出力)
  -unktag  未知語に付与されるタグ (デフォルト:なし)
  -unkbeam 未知語探索のビーム幅 (デフォルト:50, 0の場合は全探索)

train-kytea

train-kyteaはKyTeaモデルを学習するためのプログラムです。

入力・出力オプション:
  -encode  入出力の文字コード (utf8/euc/sjis、デフォルト:utf8)
  -full    フルアノテーションされた学習データのファイル名 (複数可)
  -part    部分的にアノテーションされた学習データのファイル名 (複数可)
  -conf    信頼度付き学習データのファイル名 (複数可)
  -dict    辞書ファイル (複数可)
  -subword サブワード単位の辞書。追加することで未知語の読み推定が有効になる
  -model   モデルファイルの出力先
  -modtext テキスト形式のモデル出力 (デフォルトはバイナリ形式)
モデル学習オプション:
  -nows    単語分割のモデルを学習しない
  -nope    読み推定のモデルを学習しない
モデル学習オプション(上級編):
  -charw   文字素性の窓幅 (デフォルト:3)
  -charn   文字素性のn-gram長 (デフォルト:3)
  -typew   文字タイプ素性の窓幅 (デフォルト:3)
  -typen   文字タイプ素性のn-gram長 (デフォルト:3)
  -dictn   辞書素性の単語帳上限 (デフォルト:4)
  -unkn    未知語モデルのn-gram長 (デフォルト:3)
  -eps     分類器の学習で用いるε
  -bias    分類器の学習でバイアスを用いる (デフォルト:true)
  -solver  分類器の種類 (0=ロジスティック回帰、1=SVM、デフォルト:1)

プログラム詳細

以下のリンクはKyTeaの詳細な解説です:

開発チーム

KyTeaプロジェクトに参加されたい方はkytea@までご連絡ください。

バージョン歴

改良予定

Version 0.1.2 (Upcoming)

Version 0.1.1 (2010年5月11日)

Version 0.1.0 (2010年3月5日)

Version 0.0.3 (2009年11月30日)

Version 0.0.2 (2009年11月16日)

Version 0.0.1 (2009年11月05日)

Last Modified: 2010-8-18 by neubig