KyTeaのモデル

KyTeaに戻る

このページでKyTeaと一緒に使うためのモデルがダウンロードできます。 モデルの全種類において、4通りのモデルはあります。

kyteaの実行時に-modelで指定するか、環境変数KYTEA_MODELを設定することで利用できます。

日本語用モデル

以下のモデルは日本語の解析に用いることができます。 現代日本語均衡コーパスUniDicなどの言語資源を用いて構築されています。 研究及び商用利用は許可されていますが、事前に許可を得ない限り再配布は禁じられています。

すべてのモデルには単語分割・読み推定・品詞推定の機能があります。 モデルの単語分割基準では、基本単位は形態素となっており、活用語尾は語幹と別の単語となっています。

モデル名高性能SVM圧縮SVM圧縮LR
サイズ 31M 11M 12M
分割・品詞・読み精度 97.66% 97.75% 97.54%
ダウンロード UTF8 UTF8 UTF8

これらのモデルはver. 0.4.0以降のKyTeaで利用できるものです。古いバージョンのKyTeaで利用可能なモデルはここからダウンロードできます。

中国語用モデル

単語分割・読み推定

以下のモデルはLancaster Corpus of Mandarin ChineseCC-CEDICT辞書を用いて構築しています。 UTF-8形式・簡字体を利用しており、単語分割と読み推定の機能がついています。 ただし、読み推定の機能は主に各語の最も頻度の高い読みを付与するものだけであり、「了」など読みが曖昧な語に正しく対応できていません。 参考程度で利用いただければ幸いです。 研究または商用利用は許可されています。

 高性能SVM圧縮SVM圧縮ロジスティック回帰
LCMCモデル(簡字体)
単語F値
Download (13M)
96.9%
Download (5M)
97.0%
Download (4M)
96.2%

また、このモデルの構築に利用したCEDICT辞書サブワード辞書を提供しています。 これらはCreative Commons Attribution-Share Alike 3.0 Licenseに基づいて配布しています。

単語分割のみ

下記のモデルはPenn Chinese Treebankで推定されたモデルで、Treebankのアノテーション基準にしたがって分割します。

 高性能SVM圧縮SVM圧縮ロジスティック回帰
CTBモデル (簡体字)
単語F値
Download (25M)
95.7%
Download (5.8M)
95.2%
Download (5.0M)
95.0%

これらのモデルはSecond International Chinese Word Segmentation Bakeoffで利用されたMSRとASコーパスを利用しています。 単語分割精度やBakeoffにおける順位を参考のために載せています。 営利を目的としない利用は許可されています。

 高性能SVM圧縮SVM圧縮ロジスティック回帰
MSRモデル(簡体字)
単語F値、MSRタスクの順位
Download (28M)
96.5%, 1/30
Download (8M)
96.5%, 1/30
Download (4M)
95.9%, 5/30
ASモデル(繁体字)
単語F値、ASタスクの順位
Download (42M)
95.0%, 2/11
Download (14M)
94.6%, 4/11
Download (6M)
94.4%, 5/11

人名・地名モデル

解析結果

モデルを使って固有表現っぽいものを抽出してみました:結果 (3月16日 09:30)

  1. 安否ツイートデータをダウンロード
  2. ファイルを解凍し、1〜2列目を消す。
  3. 以上ののモデルv. 1.2で解析する。
    # kytea -model kytea-names-1.2.mod < tweets.1645c.txt > tweets.1645c.wordpart
  4. 固有表現らしいものを抽出
    # combinetweets.pl tweets.1645c.tsv tweets.1645c.wordpart > tweets.1645c.kyextract.tsv

ツイート分類

ツイートを公式ページに載っている分類基準に従って自動分類するスクリプトを作りました。 単純に素性を決めて、分類器にかけるだけです。 分類器の素性はbag-of-文字-ngramsと各固有表現タグが何回文に現れただけです。(3月16日 18:30)

学習

以下の手順で学習できます。

  1. 入力として、アノテーターが作っているTSVファイルを利用します(input.tsv
  2. スクリプトを利用し、素性を作成:
    # tweetfeatures.pl featurenames.txt < input.tsv > trainingdata.txt
    それぞれのファイルについて、featurenames.txtは素性の名前とIDの関係を格納し、trainingdata.txtは訓練事例のファイルです。
  3. 分類器を学習します。素性はLIBSVM形式なので、LIBSVM、LIBLINEAR、Classiasなどの分類器を利用できます。僕はLIBLINEARの「train」を利用しました。
    # train trainingdata.txt model.txt

モデルの性能を計るために、LIBLINEARの-v 10オプションを付けて10-fold cross-validationを行うことができます。その結果、現時点であるデータを全て利用すれば、モデルの性能は各n-gram長で以下のとおりです(スクリプトのデフォルトは3-gramです):

解析

ラベルなしのデータを解析するために以下の処理を行います:

  1. 入力として、タグなしのTSVファイルを利用します(test.tsv
  2. スクリプトを利用し、素性を作成:
    # tweetfeatures.pl featurenames.txt < test.tsv > testdata.txt
    ここでは、featurenames.txtはモデル学習時と同じファイルです。
  3. LIBLINEARのpredictを利用し、ラベルを作成します。
    # predict testdata.txt model.txt testlabels.txt
  4. 最後に、推定結果を利用してtest.tsvにラベルを付ける。
    # replacelabels.pl testlabels.txt test.tsv > test-out.tsv

KyTeaに戻る
Last Modified: 2012-01-27 by neubig