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

動くようになった。

おしまい

付属のモデルよりドメイン特化してでも精度改善したい場合は、KNPの解析結果を修正する以外に、これとかネタに使えばいいのかな?