KNPの固有表現認識モデル学習方法
KNPでも学習データを用意すれば、CaboChaのように固有表現認識モデルを学習させることができる。
学習方法は、ここに書かれている通りだけど、試してみてセグフォに嵌ったのでメモ_φ(・_・
- JUMAN 7.01
- KNP 4.16
学習データの用意(アノテーション)
学習データは、JUMANの出力に対して<NE:タグ名:ポジション名>のように固有表現アノテーションが付与された形式をとる。
タグは、{"ORGANIZATION", "PERSON", "LOCATION", "ARTIFACT", "DATE", "TIME", "MONEY", "PERCENT"} ポジションは、{"B", "I", "E", "S"} を使う。
実際に作業する際は、KNPの解析結果から形態素行を抜き出して、必要に応じて固有表現を修正する。
$ cat train.txt 昨夜、安倍晋三首相は赤崎氏に電話した $ cat train.txt | juman | knp -simple | grep ^[^#*+] > train.jmn $ vim train.jmn 昨夜 さくや 昨夜 名詞 6 時相名詞 10 * 0 * 0 "代表表記:昨夜/さくや カテゴリ:時間" <NE:TIME:S> 、 、 、 特殊 1 読点 2 * 0 * 0 NIL 安倍 あべ 安倍 名詞 6 人名 5 * 0 * 0 "人名:日本:姓:189:0.00134 疑似代表表記 代表表記:安倍/あべ" <NE:PERSON:B> 晋三 すすむさん 晋三 名詞 6 人名 5 * 0 * 0 "人名:日本:名:427:0.00035 疑似代表表記 代表表記:晋三/すすむさん 品詞変更:晋-すすむ-晋-6-5-0-0 品詞変更:晋-すすむ-晋-6-5-0-0" <NE:PERSON:E> 首相 しゅしょう 首相 名詞 6 普通名詞 1 * 0 * 0 "代表表記:首相/しゅしょう 人名末尾 カテゴリ:人 ドメイン:政治" は は は 助詞 9 副助詞 2 * 0 * 0 NIL 赤 あか 赤 名詞 6 普通名詞 1 * 0 * 0 "代表表記:赤/あか 漢字読み:訓 カテゴリ:色" <NE:PERSON:B> 崎 崎 崎 名詞 6 普通名詞 1 * 0 * 0 "疑似代表表記 代表表記:崎/崎 品詞変更:崎-崎-崎-15-1-0-0" <NE:PERSON:E> 氏 し 氏 接尾辞 14 名詞性名詞接尾辞 2 * 0 * 0 "代表表記:氏/し" に に に 助詞 9 格助詞 1 * 0 * 0 NIL 電話 でんわ 電話 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:電話/でんわ 補文ト カテゴリ:人工物-その他 ドメイン:家庭・暮らし" した した する 動詞 2 * 0 サ変動詞 16 タ形 10 "代表表記:する/する 付属動詞候補(基本) 自他動詞:自:成る/なる" EOS
CRF++で学習させる
まず、KNPに固有表現学習オプション(-ne-train)があるので、それを使ってCRF++へ入力する学習データへ変換できる。
$ knp -ne-train < train.jmn 2> train.data $ cat train.data 昨夜 名詞 時相名詞 漢字 L:2 NIL CT:時間 CS:無格 P:電話 S:昨夜 SINGLE C 123 、 特殊 読点 記号 L:1 NIL CT NIL NIL NIL OTHER C 132 安倍 名詞 人名 漢字 L:2 H:人名末尾 CT CS:未格 P:電話 H:首相 BEGIN C 104 晋三 名詞 人名 漢字 L:2 H:人名末尾 CT CS:未格 P:電話 H:首相 INTER C 106 首相 名詞 普通名詞 漢字 L:2 S:人名末尾 CT:人 CS:未格 P:電話 S:首相 END C 132 は 助詞 副助詞 ひらがな L:1 NIL CT NIL NIL NIL OTHER C 132 赤 名詞 普通名詞 漢字 L:1 NIL CT:色 CS:ニ格 P:電話 H:崎 BEGIN C 104 崎 名詞 普通名詞 漢字 L:1 NIL CT CS:ニ格 P:電話 S:崎 END C 106 氏 接尾辞 名詞性名詞接尾辞 漢字 L:1 NIL CT NIL NIL NIL OTHER C 132 に 助詞 格助詞 ひらがな L:1 NIL CT NIL NIL NIL OTHER C 132 電話 名詞 サ変名詞 漢字 L:2 NIL CT:人工物-その他 NIL NIL S:電話 SINGLE C 132 した 動詞 動詞 ひらがな L:2 NIL CT NIL NIL NIL OTHER C 132
学習データが生成されたら、KNPのソースに含まれている素性テンプレート(knp-4.16/crf/template)とCRF++を使って学習させる。
$ crf_learn -f 1 template train.data crf.model CRF++: Yet Another CRF Tool Kit Copyright (C) 2005-2013 Taku Kudo, All rights reserved. reading training data: Done!0.00 s Number of sentences: 1 Number of features: 4128 Number of thread(s): 1 Freq: 1 eta: 0.00010 C: 1.00000 shrinking size: 20 iter=0 terr=0.83333 serr=1.00000 act=4128 obj=16.63553 diff=1.00000 iter=1 terr=0.16667 serr=1.00000 act=4128 obj=4.17870 diff=0.74881 iter=2 terr=0.00000 serr=0.00000 act=4128 obj=1.14238 diff=0.72662 iter=3 terr=0.00000 serr=0.00000 act=4128 obj=1.12581 diff=0.01450 iter=4 terr=0.00000 serr=0.00000 act=4128 obj=1.06598 diff=0.05314 iter=5 terr=0.00000 serr=0.00000 act=4128 obj=1.05841 diff=0.00710 iter=6 terr=0.00000 serr=0.00000 act=4128 obj=1.05495 diff=0.00327 iter=7 terr=0.00000 serr=0.00000 act=4128 obj=1.05394 diff=0.00095 iter=8 terr=0.00000 serr=0.00000 act=4128 obj=1.05353 diff=0.00039 iter=9 terr=0.00000 serr=0.00000 act=4128 obj=1.05341 diff=0.00011 iter=10 terr=0.00000 serr=0.00000 act=4128 obj=1.05331 diff=0.00010 iter=11 terr=0.00000 serr=0.00000 act=4128 obj=1.05331 diff=0.00000 iter=12 terr=0.00000 serr=0.00000 act=4128 obj=1.05330 diff=0.00000 Done!0.00 s
動作確認
生成されたモデルを使うようにknprcを変更する。
$ cp crf.model /usr/local/share/knp/dict/mycrf.model $ vim /usr/local/etc/knprc : (NEモデルファイル ; /usr/local/share/knp/dict/crf.model /usr/local/share/knp/dict/mycrf.model ) :
試しに学習したテキストを解析させてみると Segmentation Fault になってしまう。
$ cat train.txt | juman | knp -simple Segmentation fault (core dumped)
デバッグしてみたところ、全てのラベル候補の周辺確率を取得しようとしているので、一回も学習させていないラベルがあるとエラーになってしまうだけだった。
104(PERSON:B)、106(PERSON:E)、123(TIME:S)、132(OTHER)しか学習してないから。
crf_test -v2 -m crf.model train.data # 0.725886 昨夜 名詞 時相名詞 漢字 L:2 NIL CT:時間 CS:無格 P:電話 S:昨夜 SINGLE C 123 123/0.966497 104/0.009152 106/0.009384 123/0.966497 132/0.014967 、 特殊 読点 記号 L:1 NIL CT NIL NIL NIL OTHER C 132 132/0.976693 104/0.008768 106/0.007523 123/0.007016 132/0.976693 安倍 名詞 人名 漢字 L:2 H:人名末尾 CT CS:未格 P:電話 H:首相 BEGIN C 104 104/0.968226 104/0.968226 106/0.007983 123/0.006219 132/0.017572 晋三 名詞 人名 漢字 L:2 H:人名末尾 CT CS:未格 P:電話 H:首相 INTER C 106 106/0.969562 104/0.009320 106/0.969562 123/0.005628 132/0.015490 首相 名詞 普通名詞 漢字 L:2 S:人名末尾 CT:人 CS:未格 P:電話 S:首相 END C 132 132/0.975734 104/0.007709 106/0.009869 123/0.006688 132/0.975734 は 助詞 副助詞 ひらがな L:1 NIL CT NIL NIL NIL OTHER C 132 132/0.981199 104/0.007942 106/0.006335 123/0.004524 132/0.981199 赤 名詞 普通名詞 漢字 L:1 NIL CT:色 CS:ニ格 P:電話 H:崎 BEGIN C 104 104/0.966110 104/0.966110 106/0.010123 123/0.005958 132/0.017809 崎 名詞 普通名詞 漢字 L:1 NIL CT CS:ニ格 P:電話 S:崎 END C 106 106/0.964598 104/0.007980 106/0.964598 123/0.005982 132/0.021440 氏 接尾辞 名詞性名詞接尾辞 漢字 L:1 NIL CT NIL NIL NIL OTHER C 132 132/0.980925 104/0.006594 106/0.007754 123/0.004727 132/0.980925 に 助詞 格助詞 ひらがな L:1 NIL CT NIL NIL NIL OTHER C 132 132/0.979295 104/0.008626 106/0.007978 123/0.004101 132/0.979295 電話 名詞 サ変名詞 漢字 L:2 NIL CT:人工物-その他 NIL NIL S:電話 SINGLE C 132 132/0.976011 104/0.009213 106/0.008686 123/0.006089 132/0.976011 した 動詞 動詞 ひらがな L:2 NIL CT NIL NIL NIL OTHER C 132 132/0.978093 104/0.006737 106/0.009539 123/0.005631 132/0.978093
学習データの追加
強引にラベルを一通り用意する。
昨夜 さくや 昨夜 名詞 6 時相名詞 10 * 0 * 0 "代表表記:昨夜/さくや カテゴリ:時間" <NE:TIME:S> 、 、 、 特殊 1 読点 2 * 0 * 0 NIL 安倍 あべ 安倍 名詞 6 人名 5 * 0 * 0 "人名:日本:姓:189:0.00134 疑似代表表記 代表表記:安倍/あべ" <NE:PERSON:B> 晋三 すすむさん 晋三 名詞 6 人名 5 * 0 * 0 "人名:日本:名:427:0.00035 疑似代表表記 代表表記:晋三/すすむさん 品詞変更:晋-すすむ-晋-6-5-0-0 品詞変更:晋-すすむ-晋-6-5-0-0" <NE:PERSON:E> 首相 しゅしょう 首相 名詞 6 普通名詞 1 * 0 * 0 "代表表記:首相/しゅしょう 人名末尾 カテゴリ:人 ドメイン:政治" は は は 助詞 9 副助詞 2 * 0 * 0 NIL 赤 あか 赤 名詞 6 普通名詞 1 * 0 * 0 "代表表記:赤/あか 漢字読み:訓 カテゴリ:色" <NE:PERSON:B> 崎 崎 崎 名詞 6 普通名詞 1 * 0 * 0 "疑似代表表記 代表表記:崎/崎 品詞変更:崎-崎-崎-15-1-0-0" <NE:PERSON:E> 氏 し 氏 接尾辞 14 名詞性名詞接尾辞 2 * 0 * 0 "代表表記:氏/し" に に に 助詞 9 格助詞 1 * 0 * 0 NIL 電話 でんわ 電話 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:電話/でんわ 補文ト カテゴリ:人工物-その他 ドメイン:家庭・暮らし" した した する 動詞 2 * 0 サ変動詞 16 タ形 10 "代表表記:する/する 付属動詞候補(基本) 自他動詞:自:成る/なる" EOS 太郎 たろう 太郎 名詞 6 人名 5 * 0 * 0 "人名:日本:名:45:0.00106 疑似代表表記 代表表記:太郎/たろう" <NE:PERSON:S> は は は 助詞 9 副助詞 2 * 0 * 0 NIL 朝 あさ 朝 名詞 6 時相名詞 10 * 0 * 0 "代表表記:朝/あさ 漢字読み:訓 カテゴリ:時間" <NE:TIME:B> 9 きゅう 9 名詞 6 数詞 7 * 0 * 0 "カテゴリ:数量 疑似代表表記 代表表記:9/きゅう" <NE:TIME:I> 時 じ 時 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0 "代表表記:時/じ 準内容語 カテゴリ:時間" <NE:TIME:E> に に に 助詞 9 格助詞 1 * 0 * 0 NIL 花子 はなこ 花子 名詞 6 人名 5 * 0 * 0 "人名:日本:名:912:0.00019 疑似代表表記 代表表記:花子/はなこ" <NE:LOCATION:S> に に に 助詞 9 格助詞 1 * 0 * 0 NIL 会い あい 会う 動詞 2 * 0 子音動詞ワ行 12 基本連用形 8 "代表表記:会う/あう 反義:動詞:分かれる/わかれる;動詞:別れる/わかれる" に に に 助詞 9 格助詞 1 * 0 * 0 NIL 行った いった 行く 動詞 2 * 0 子音動詞カ行促音便形 3 タ形 10 "代表表記:行く/いく 付属動詞候補(タ系) ドメイン:交通 反義:動詞:帰る/かえる" EOS 藤本 ふじもと 藤本 名詞 6 人名 5 * 0 * 0 "人名:日本:姓:167:0.00147 疑似代表表記 代表表記:藤本/ふじもと" <NE:PERSON:B> 太郎 たろう 太郎 名詞 6 人名 5 * 0 * 0 "人名:日本:名:45:0.00106 疑似代表表記 代表表記:太郎/たろう" <NE:PERSON:I> 喜 喜 喜 名詞 6 普通名詞 1 * 0 * 0 "疑似代表表記 代表表記:喜/喜 品詞変更:喜-喜-喜-15-1-0-0" <NE:PERSON:I> 左 ひだり 左 名詞 6 普通名詞 1 * 0 * 0 "代表表記:左/ひだり 漢字読み:訓 カテゴリ:場所-機能" <NE:PERSON:I> 衛 まもる 衛 名詞 6 人名 5 * 0 * 0 "人名:日本:名:628:0.00025 疑似代表表記 代表表記:衛/まもる" <NE:PERSON:I> 門 もん 門 名詞 6 普通名詞 1 * 0 * 0 "代表表記:門/もん 漢字読み:音 カテゴリ:場所-施設" <NE:PERSON:I> 将 すすむ 将 名詞 6 人名 5 * 0 * 0 "人名:日本:名:1439:0.00012 疑似代表表記 代表表記:将/すすむ" <NE:PERSON:I> 時 じ 時 名詞 6 時相名詞 10 * 0 * 0 "代表表記:時/じ 漢字読み:音 弱時相名詞 カテゴリ:時間" <NE:PERSON:I> 能 のう 能 名詞 6 普通名詞 1 * 0 * 0 "代表表記:能/のう 漢字読み:音 カテゴリ:抽象物" <NE:PERSON:E> と と と 助詞 9 格助詞 1 * 0 * 0 NIL いう いう いう 動詞 2 * 0 子音動詞ワ行 12 基本形 2 "代表表記:言う/いう 補文ト" 名前 なまえ 名前 名詞 6 普通名詞 1 * 0 * 0 "代表表記:名前/なまえ カテゴリ:抽象物" の の の 助詞 9 接続助詞 3 * 0 * 0 NIL 人 じん 人 名詞 6 普通名詞 1 * 0 * 0 "代表表記:人/じん 漢字読み:音 カテゴリ:人" が が が 助詞 9 格助詞 1 * 0 * 0 NIL いる いる いる 動詞 2 * 0 子音動詞ラ行 10 基本形 2 "代表表記:煎る/いる ドメイン:料理・食事" らしい らしい らしい 助動詞 5 * 0 イ形容詞イ段 19 基本形 2 NIL EOS 今年 ことし 今年 名詞 6 時相名詞 10 * 0 * 0 "代表表記:今年/ことし カテゴリ:時間" <NE:DATE:S> の の の 助詞 9 接続助詞 3 * 0 * 0 NIL 人工 じんこう 人工 名詞 6 普通名詞 1 * 0 * 0 "代表表記:人工/じんこう カテゴリ:抽象物" <NE:ORGANIZATION:B> 知能 ちのう 知能 名詞 6 普通名詞 1 * 0 * 0 "代表表記:知能/ちのう カテゴリ:抽象物" <NE:ORGANIZATION:I> 学会 がっかい 学会 名詞 6 普通名詞 1 * 0 * 0 "代表表記:学会/がっかい 組織名末尾 カテゴリ:組織・団体;抽象物 ドメイン:科学・技術" <Wikipedia上位語:学会/がっかい:2-4><Wikipediaエ>ントリ:人工知能学会:2-4> <NE:ORGANIZATION:E> 全国 ぜんこく 全国 名詞 6 普通名詞 1 * 0 * 0 "代表表記:全国/ぜんこく カテゴリ:場所-その他" 大会 たいかい 大会 名詞 6 普通名詞 1 * 0 * 0 "代表表記:大会/たいかい カテゴリ:抽象物" <Wikipediaエントリ:全国大会:5-6> は は は 助詞 9 副助詞 2 * 0 * 0 NIL 2016 にぜろいちろく 2016 名詞 6 数詞 7 * 0 * 0 "カテゴリ:数量 疑似代表表記 代表表記:2016/にぜろいちろく" <NE:DATE:B> 年 ねん 年 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0 "代表表記:年/ねん 準内容語 カテゴリ:時間" <NE:DATE:I> 6 ろく 6 名詞 6 数詞 7 * 0 * 0 "カテゴリ:数量 疑似代表表記 代表表記:6/ろく" <NE:DATE:I> 月 がつ 月 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0 "代表表記:月/がつ 準内容語 カテゴリ:時間" <NE:DATE:I> 6 ろく 6 名詞 6 数詞 7 * 0 * 0 "カテゴリ:数量 疑似代表表記 代表表記:6/ろく" <NE:DATE:I> 日 にち 日 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0 "代表表記:日/にち 準内容語 カテゴリ:時間" <NE:DATE:E> 〜 〜 〜 特殊 1 記号 5 * 0 * 0 NIL 9 きゅう 9 名詞 6 数詞 7 * 0 * 0 "カテゴリ:数量 疑似代表表記 代表表記:9/きゅう" <NE:DATE:B> 日 にち 日 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0 "代表表記:日/にち 準内容語 カテゴリ:時間" <NE:DATE:E> まで まで まで 助詞 9 格助詞 1 * 0 * 0 NIL 北九州 きたきゅう 北九州 名詞 6 地名 4 * 0 * 0 "代表表記:北九州/きたきゅう 地名:日本:福岡県:市" <NE:LOCATION:B> 国際 こくさい 国際 名詞 6 普通名詞 1 * 0 * 0 "代表表記:国際/こくさい カテゴリ:抽象物" <NE:LOCATION:I> 会議 かいぎ 会議 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:会議/かいぎ 組織名末尾 カテゴリ:抽象物" <NE:LOCATION:I> 場 ば 場 名詞 6 普通名詞 1 * 0 * 0 "代表表記:場/ば 漢字読み:訓 カテゴリ:場所-その他;抽象物" <Wikipedia上位語:コンベンションセンター:18-21><Wikipediaエントリ:北九州国際会議場:18-21> <NE:LOCATION:E> で で で 助詞 9 格助詞 1 * 0 * 0 NIL 開催 かいさい 開催 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:開催/かいさい カテゴリ:抽象物" さ さ する 動詞 2 * 0 サ変動詞 16 未然形 3 "代表表記:する/する 付属動詞候補(基本) 自他動詞:自:成る/なる" れ れ れる 接尾辞 14 動詞性接尾辞 7 母音動詞 1 基本連用形 8 "代表表記:れる/れる" ます ます ます 接尾辞 14 動詞性接尾辞 7 動詞性接尾辞ます型 31 基本形 2 "代表表記:ます/ます" EOS この前 このまえ この前 名詞 6 時相名詞 10 * 0 * 0 "代表表記:此前/このまえ カテゴリ:時間" の の の 助詞 9 接続助詞 3 * 0 * 0 NIL 祝日 しゅくじつ 祝日 名詞 6 普通名詞 1 * 0 * 0 "代表表記:祝日/しゅくじつ カテゴリ:時間" <NE:DATE:S> に に に 助詞 9 格助詞 1 * 0 * 0 NIL 原野 げんや 原野 名詞 6 普通名詞 1 * 0 * 0 "代表表記:原野/げんや カテゴリ:場所-自然" <NE:LOCATION:B> 谷川 たにがわ 谷川 名詞 6 普通名詞 1 * 0 * 0 "代表表記:谷川/たにがわ カテゴリ:場所-自然" <Wikipedia上位語:河川/かせん:4-5><Wikipediaエントリ:原野谷川:4-5><NE:LOCATION:I> 親水 親水 親水 名詞 6 普通名詞 1 * 0 * 0 "自動獲得:テキスト 疑似代表表記 代表表記:親水/親水" <NE:LOCATION:I> 公園 こうえん 公園 名詞 6 普通名詞 1 * 0 * 0 "代表表記:公園/こうえん カテゴリ:場所-施設 ドメイン:レクリエーション" <Wikipediaエントリ:親水公園:6-7><NE:LOCATION:E> で で で 助詞 9 格助詞 1 * 0 * 0 NIL バーベキュー ばーべきゅー バーベキュー 名詞 6 普通名詞 1 * 0 * 0 "代表表記:バーベキュー/ばーべきゅー カテゴリ:人工物-食べ物 ドメイン:料理・食事" を を を 助詞 9 格助詞 1 * 0 * 0 NIL した した する 動詞 2 * 0 サ変動詞 16 タ形 10 "代表表記:する/する 付属動詞候補(基本) 自他動詞:自:成る/なる" EOS この前 このまえ この前 名詞 6 時相名詞 10 * 0 * 0 "代表表記:此前/このまえ カテゴリ:時間" の の の 助詞 9 接続助詞 3 * 0 * 0 NIL 祝日 しゅくじつ 祝日 名詞 6 普通名詞 1 * 0 * 0 "代表表記:祝日/しゅくじつ カテゴリ:時間" <NE:DATE:S> に に に 助詞 9 格助詞 1 * 0 * 0 NIL 原野 げんや 原野 名詞 6 普通名詞 1 * 0 * 0 "代表表記:原野/げんや カテゴリ:場所-自然" <NE:LOCATION:B> 谷川 たにがわ 谷川 名詞 6 普通名詞 1 * 0 * 0 "代表表記:谷川/たにがわ カテゴリ:場所-自然" <Wikipedia上位語:河川/かせん:4-5><Wikipediaエントリ:原野谷川:4-5><NE:LOCATION:I> 親水 親水 親水 名詞 6 普通名詞 1 * 0 * 0 "自動獲得:テキスト 疑似代表表記 代表表記:親水/親水" <NE:LOCATION:I> 公園 こうえん 公園 名詞 6 普通名詞 1 * 0 * 0 "代表表記:公園/こうえん カテゴリ:場所-施設 ドメイン:レクリエーション" <Wikipediaエントリ:親水公園:6-7><NE:LOCATION:E> で で で 助詞 9 格助詞 1 * 0 * 0 NIL バーベキュー ばーべきゅー バーベキュー 名詞 6 普通名詞 1 * 0 * 0 "代表表記:バーベキュー/ばーべきゅー カテゴリ:人工物-食べ物 ドメイン:料理・食事" を を を 助詞 9 格助詞 1 * 0 * 0 NIL した した する 動詞 2 * 0 サ変動詞 16 タ形 10 "代表表記:する/する 付属動詞候補(基本) 自他動詞:自:成る/なる" EOS 掛川 かけがわ 掛川 名詞 6 地名 4 * 0 * 0 "代表表記:掛川/かけがわ 地名:日本:静岡県:市" <NE:LOCATION:S> は は は 助詞 9 副助詞 2 * 0 * 0 NIL こだま こだま こだま 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:木霊/こだま カテゴリ:抽象物" <NE:ARTIFACT:S> しか しか しか 助詞 9 副助詞 2 * 0 * 0 NIL 止まら とまら 止まる 動詞 2 * 0 子音動詞ラ行 10 未然形 3 "代表表記:止まる/とまる 自他動詞:他:止める/とめる 反義:動詞:動く/うごく" ない ない ない 接尾辞 14 形容詞性述語接尾辞 5 イ形容詞アウオ段 18 基本形 2 "代表表記:ない/ない" EOS 天竜 てんりゅう 天竜 名詞 6 地名 4 * 0 * 0 "代表表記:天竜/てんりゅう 地名:日本:静岡県:区" <NE:ARTIFACT:B> 浜名湖 浜名湖 浜名湖 名詞 6 普通名詞 1 * 0 * 0 "自動獲得:テキスト 疑似代表表記 代表表記:浜名湖/浜名湖" <NE:ARTIFACT:I> 線 せん 線 名詞 6 普通名詞 1 * 0 * 0 "代表表記:線/せん 漢字読み:音 カテゴリ:形・模様" <Wikipediaエントリ:天竜浜名湖線:0-2><NE:ARTIFACT:E> が が が 助詞 9 格助詞 1 * 0 * 0 NIL なくなる なくなる なくなる 動詞 2 * 0 子音動詞ラ行 10 基本形 2 "代表表記:無くなる/なくなる 自他動詞:他:無くす/なくす" と と と 助詞 9 格助詞 1 * 0 * 0 NIL 意外に いがいに 意外だ 形容詞 3 * 0 ナノ形容詞 22 ダ列基本連用形 8 "代表表記:意外だ/いがいだ" 困る こまる 困る 動詞 2 * 0 子音動詞ラ行 10 基本形 2 "代表表記:困る/こまる" EOS 今 こん 今 接頭辞 13 名詞接頭辞 1 * 0 * 0 "代表表記:今/こん 内容語" シーズン しーずん シーズン 名詞 6 時相名詞 10 * 0 * 0 "代表表記:シーズン/しーずん 弱時相名詞 カテゴリ:時間" の の の 助詞 9 接続助詞 3 * 0 * 0 NIL 打率 だりつ 打率 名詞 6 普通名詞 1 * 0 * 0 "代表表記:打率/だりつ カテゴリ:数量 ドメイン:スポーツ" は は は 助詞 9 副助詞 2 * 0 * 0 NIL 3 さん 3 名詞 6 数詞 7 * 0 * 0 "カテゴリ:数量 疑似代表表記 代表表記:3/さん" <NE:PERCENT:B> 割 わり 割 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0 "代表表記:割/わり 準内容語" <NE:PERCENT:I> 5 ご 5 名詞 6 数詞 7 * 0 * 0 "カテゴリ:数量 疑似代表表記 代表表記:5/ご" <NE:PERCENT:I> 分 ふん 分 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0 "代表表記:分/ふん 準内容語 カテゴリ:時間" <NE:PERCENT:I> 5 ご 5 名詞 6 数詞 7 * 0 * 0 "カテゴリ:数量 疑似代表表記 代表表記:5/ご" <NE:PERCENT:I> 厘 りん 厘 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0 "代表表記:厘/りん 準内容語" <NE:PERCENT:E> と と と 助詞 9 格助詞 1 * 0 * 0 NIL まあまあ まあまあ まあまあだ 形容詞 3 * 0 ナノ形容詞 22 語幹 1 "代表表記:まあまあ/まあまあa 代表表記変更:まあまあだ/まあまあだ" 調子 ちょうし 調子 名詞 6 普通名詞 1 * 0 * 0 "代表表記:調子/ちょうし カテゴリ:抽象物" が が が 助詞 9 格助詞 1 * 0 * 0 NIL いい いい いい 形容詞 3 * 0 イ形容詞イ段 19 基本形 2 "代表表記:良い/よい 反義:形容詞:悪い/わるい" EOS バナナ ばなな バナナ 名詞 6 普通名詞 1 * 0 * 0 "代表表記:バナナ/ばなな カテゴリ:植物;人工物-食べ物 ドメイン:料理・食事" 半分 はんぶん 半分 名詞 6 普通名詞 1 * 0 * 0 "代表表記:半分/はんぶん カテゴリ:数量" <NE:PERCENT:S> ちょうだいな ちょうだいな ちょうだいだ 形容詞 3 * 0 ナ形容詞 21 ダ列基本連体形 3 "代表表記:長大だ/ちょうだいだ" EOS 参加 さんか 参加 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:参加/さんか カテゴリ:抽象物" 費 ひ 費 接尾辞 14 名詞性名詞接尾辞 2 * 0 * 0 "代表表記:費/ひ 内容語 カテゴリ:人工物-金銭 同義:名詞:費用/ひよう" と と と 助詞 9 格助詞 1 * 0 * 0 NIL して して する 動詞 2 * 0 サ変動詞 16 タ系連用テ形 14 "代表表記:する/する 付属動詞候補(基本) 自他動詞:自:成る/なる" 1万 いちまん 1万 名詞 6 数詞 7 * 0 * 0 "カテゴリ:数量 疑似代表表記 代表表記:1万/いちまん" <NE:MONEY:S> いただき いただき いただく 動詞 2 * 0 子音動詞カ行 2 基本連用形 8 "代表表記:頂く/いただく 付属動詞候補(タ系) 謙譲動詞:貰う/もらう;食べる/たべる;飲む/のむ" ます ます ます 接尾辞 14 動詞性接尾辞 7 動詞性接尾辞ます型 31 基本形 2 "代表表記:ます/ます" EOS 明日 あす 明日 名詞 6 時相名詞 10 * 0 * 0 "代表表記:明日/あす カテゴリ:時間" まで まで まで 助詞 9 格助詞 1 * 0 * 0 NIL に に に 助詞 9 格助詞 1 * 0 * 0 NIL 100万 いちぜろぜろまん 100万 名詞 6 数詞 7 * 0 * 0 "カテゴリ:数量 疑似代表表記 代表表記:100万/いちぜろぜろまん" <NE:MONEY:B> 香港 ほんこん 香港 名詞 6 地名 4 * 0 * 0 "代表表記:香港/ほんこん 地名:国:中国:特別行政区" <NE:MONEY:I> ドル どる ドル 名詞 6 普通名詞 1 * 0 * 0 "代表表記:ドル/どる カテゴリ:数量 ドメイン:ビジネス" <Wikipedia上位語:通貨/つうか:4-5><Wikipediaエントリ:香港ドル:4-5> <NE:MONEY:E> 用意 ようい 用意 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:用意/ようい カテゴリ:抽象物" しろ しろ する 動詞 2 * 0 サ変動詞 16 命令形 6 "代表表記:する/する 付属動詞候補(基本) 自他動詞:自:成る/なる" EOS Google Google Google 名詞 6 普通名詞 1 * 0 * 0 "自動獲得:Wikipedia Wikipedia上位語:検索エンジン 読み不明 疑似代表表記 代表表記:Google/Google" <Wikipedia上位語:検索エンジン> <NE:ORGANIZATION:S> が が が 助詞 9 格助詞 1 * 0 * 0 NIL 、 、 、 特殊 1 読点 2 * 0 * 0 NIL 「 「 「 特殊 1 括弧始 3 * 0 * 0 NIL SyntaxNet SyntaxNet SyntaxNet 名詞 6 組織名 6 * 0 * 0 "疑似代表表記 代表表記:SyntaxNet/SyntaxNet 品詞変更:SyntaxNet-Syn taxNet-SyntaxNet-15-3-0-0" <NE:ARTIFACT:S> 」 」 」 特殊 1 括弧終 4 * 0 * 0 NIL を を を 助詞 9 格助詞 1 * 0 * 0 NIL オープンソース オープンソース オープンソース 名詞 6 普通名詞 1 * 0 * 0 "自動獲得:Wikipedia 疑似代表表記 代表表記:オープンソース/オープンソース" で で で 助詞 9 格助詞 1 * 0 * 0 NIL 公開 こうかい 公開 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:公開/こうかい カテゴリ:抽象物" した した する 動詞 2 * 0 サ変動詞 16 タ形 10 "代表表記:する/する 付属動詞候補(基本) 自他動詞:自:成る/なる" EOS
再度モデルを作り直してテスト。
$ knp -ne-train < train.jmn 2> train.data $ crf_learn -f 1 template train.data crf.model CRF++: Yet Another CRF Tool Kit Copyright (C) 2005-2013 Taku Kudo, All rights reserved. reading training data: Done!0.01 s Number of sentences: 12 Number of features: 213708 Number of thread(s): 1 Freq: 1 eta: 0.00010 C: 1.00000 shrinking size: 20 iter=0 terr=0.99275 serr=1.00000 act=213708 obj=482.51804 diff=1.00000 iter=1 terr=0.42029 serr=1.00000 act=213708 obj=257.48250 diff=0.46638 iter=2 terr=0.42029 serr=1.00000 act=213708 obj=221.64201 diff=0.13920 iter=3 terr=0.23913 serr=1.00000 act=213708 obj=149.06598 diff=0.32745 iter=4 terr=0.07246 serr=0.66667 act=213708 obj=83.50011 diff=0.43984 iter=5 terr=0.00000 serr=0.00000 act=213708 obj=28.64027 diff=0.65700 iter=6 terr=0.00000 serr=0.00000 act=213708 obj=24.48020 diff=0.14525 iter=7 terr=0.00000 serr=0.00000 act=213708 obj=22.59193 diff=0.07713 iter=8 terr=0.00000 serr=0.00000 act=213708 obj=21.50966 diff=0.04791 iter=9 terr=0.00000 serr=0.00000 act=213708 obj=20.50080 diff=0.04690 iter=10 terr=0.00000 serr=0.00000 act=213708 obj=19.63163 diff=0.04240 iter=11 terr=0.00000 serr=0.00000 act=213708 obj=18.92093 diff=0.03620 iter=12 terr=0.00000 serr=0.00000 act=213708 obj=18.43905 diff=0.02547 iter=13 terr=0.00000 serr=0.00000 act=213708 obj=18.27158 diff=0.00908 iter=14 terr=0.00000 serr=0.00000 act=213708 obj=18.21956 diff=0.00285 iter=15 terr=0.00000 serr=0.00000 act=213708 obj=18.16238 diff=0.00314 iter=16 terr=0.00000 serr=0.00000 act=213708 obj=18.13418 diff=0.00155 iter=17 terr=0.00000 serr=0.00000 act=213708 obj=18.11071 diff=0.00129 iter=18 terr=0.00000 serr=0.00000 act=213708 obj=18.09165 diff=0.00105 iter=19 terr=0.00000 serr=0.00000 act=213708 obj=18.08471 diff=0.00038 iter=20 terr=0.00000 serr=0.00000 act=213708 obj=18.08399 diff=0.00004 iter=21 terr=0.00000 serr=0.00000 act=213708 obj=18.08047 diff=0.00019 iter=22 terr=0.00000 serr=0.00000 act=213708 obj=18.07992 diff=0.00003 iter=23 terr=0.00000 serr=0.00000 act=213708 obj=18.07892 diff=0.00006 iter=24 terr=0.00000 serr=0.00000 act=213708 obj=18.07867 diff=0.00001 Done!1.56 s $ vim test.txt 大谷選手の今シーズンの打率は3割4分8厘と調子がいい $ cat test.txt | juman | knp -simple # S-ID:1 KNP:4.16-CF1.1 DATE:2016/05/22 SCORE:-30.36771 * 2D <体言><係:ノ格> + 1D <係:文節内><体言> 大谷 おおたに 大谷 名詞 6 人名 5 * 0 * 0 "人名:日本:姓:199:0.00129 疑似代表表記 代表表記:大谷/おおたに" + 4D <体言><係:ノ格> 選手 せんしゅ 選手 名詞 6 普通名詞 1 * 0 * 0 "代表表記:選手/せんしゅ 人名末尾 カテゴリ:人 ドメイン:スポーツ" の の の 助詞 9 接続助詞 3 * 0 * 0 NIL * 2D <体言><係:ノ格> + 3D <係:文節内> 今 こん 今 接頭辞 13 名詞接頭辞 1 * 0 * 0 "代表表記:今/こん 内容語" + 4D <体言><係:ノ格> シーズン しーずん シーズン 名詞 6 時相名詞 10 * 0 * 0 "代表表記:シーズン/しーずん 弱時相名詞 カテゴリ:時間" の の の 助詞 9 接続助詞 3 * 0 * 0 NIL * 7D <体言><係:未格> + 9D <体言><係:未格> 打率 だりつ 打率 名詞 6 普通名詞 1 * 0 * 0 "代表表記:打率/だりつ カテゴリ:数量 ドメイン:スポーツ" は は は 助詞 9 副助詞 2 * 0 * 0 NIL * 4D <体言><係:隣> + 6D <体言><係:隣><NE内:PERCENT> 3 さん 3 名詞 6 数詞 7 * 0 * 0 "カテゴリ:数量 疑似代表表記 代表表記:3/さん" <NE:PERCENT:B> 割 わり 割 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0 "代表表記:割/わり 準内容語" <NE:PERCENT:I> * 6D <体言><係:隣> + 8D <体言><係:隣><NE内:PERCENT> 4 よん 4 名詞 6 数詞 7 * 0 * 0 "カテゴリ:数量 疑似代表表記 代表表記:4/よん" <NE:PERCENT:I> 分 ふん 分 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0 "代表表記:分/ふん 準内容語 カテゴリ:時間" <NE:PERCENT:I> * 6P <体言><係:ト格> + 8P <体言><係:ト格><NE:PERCENT:3割4分8厘> 8 はち 8 名詞 6 数詞 7 * 0 * 0 "カテゴリ:数量 疑似代表表記 代表表記:8/はち" <NE:PERCENT:I> 厘 りん 厘 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0 "代表表記:厘/りん 準内容語" <NE:PERCENT:E> と と と 助詞 9 格助詞 1 * 0 * 0 NIL * 7D <体言><係:ガ格> + 9D <体言><係:ガ格> 調子 ちょうし 調子 名詞 6 普通名詞 1 * 0 * 0 "代表表記:調子/ちょうし カテゴリ:抽象物" が が が 助詞 9 格助詞 1 * 0 * 0 NIL * -1D <用言:形><レベル:C><ID:(文末)> + -1D <用言:形><レベル:C><ID:(文末)><格解析結果:良い/よい:形4:ガ/C/厘/7/0/1;ガ/C/調子/8/0/1;ニ/U/-/-/-/-;ト/U/-/-/-/-;デ/U/-/-/-/-;カラ/U/-/-/-/-;ヨリ/U/-/-/-/-;マデ/U/-/-/-/-;時間/U/-/-/-/-;外の関係/U/-/-/-/-;修飾/U/-/-/-/-;ノ/U/-/-/-/-;ガ2/N/打率/4/0/1;トスル/U/-/-/-/-;ニカギル/U/-/-/-/-;ニクラベル/U/-/-/-/-;ニツヅク/U/-/-/-/-;ヲツウジル/U/-/-/-/-;ニオク/U/-/-/-/-> いい いい いい 形容詞 3 * 0 イ形容詞イ段 19 基本形 2 "代表表記:良い/よい 反義:形容詞:悪い/わるい" EOS
動くようになった。