個人的神殿

プログラミング

言語処理100本ノック 第5章 CaboChaを使うための環境構築

pythonでCaboChaを使うための、最初の環境構築で滅茶苦茶つまづいたが、おおむね以下の3つのサイトにお世話になった。
qiita.com
hytmachineworks.hatenablog.com
qiita.com

CaboChaや係り受け解析についての詳しい説明はこちらを見ると良い。
qiita.com

まずは試しに基本的なことをやってみる。

import CaboCha
c = CaboCha.Parser()
sentence = "太郎はこの本を次郎を見た女性に渡した。"

tree = c.parse(sentence)

print(tree.toString(CaboCha.FORMAT_TREE))
  太郎は-----------D
      この-D       |
        本を---D   |
        次郎を-D   |
            見た-D |
            女性に-D
            渡した。

表示の仕方をいろいろと変えることができる。

print(tree.toString(CaboCha.FORMAT_LATTICE))
* 0 6D 0/1 -2.457381
太郎    名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
* 1 2D 0/0 1.532201
この    連体詞,*,*,*,*,*,この,コノ,コノ
* 2 4D 0/1 0.091699
本      名詞,一般,*,*,*,*,本,ホン,ホン
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
* 3 4D 1/2 2.132370
次      名詞,一般,*,*,*,*,次,ツギ,ツギ
郎      名詞,一般,*,*,*,*,郎,ロウ,ロー
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
* 4 5D 0/1 1.416783
見      動詞,自立,*,*,一段,連用形,見る,ミ,ミ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
* 5 6D 0/1 -2.457381
女性    名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ
に      助詞,格助詞,一般,*,*,*,に,ニ,ニ
* 6 -1D 0/1 0.000000
渡し    動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。      記号,句点,*,*,*,*,。,。,。
EOS
print(tree.toString(CaboCha.FORMAT_XML))
<sentence>
 <chunk id="0" link="6" rel="D" score="-2.457381" head="0" func="1">
  <tok id="0" feature="名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー">太郎</tok>
  <tok id="1" feature="助詞,係助詞,*,*,*,*,は,ハ,ワ">は</tok>
 </chunk>
 <chunk id="1" link="2" rel="D" score="1.532201" head="2" func="2">
  <tok id="2" feature="連体詞,*,*,*,*,*,この,コノ,コノ">この</tok>
 </chunk>
 <chunk id="2" link="4" rel="D" score="0.091699" head="3" func="4">
  <tok id="3" feature="名詞,一般,*,*,*,*,本,ホン,ホン">本</tok>
  <tok id="4" feature="助詞,格助詞,一般,*,*,*,を,ヲ,ヲ">を</tok>
 </chunk>
 <chunk id="3" link="4" rel="D" score="2.132370" head="6" func="7">
  <tok id="5" feature="名詞,一般,*,*,*,*,次,ツギ,ツギ">次</tok>
  <tok id="6" feature="名詞,一般,*,*,*,*,郎,ロウ,ロー">郎</tok>
  <tok id="7" feature="助詞,格助詞,一般,*,*,*,を,ヲ,ヲ">を</tok>
 </chunk>
 <chunk id="4" link="5" rel="D" score="1.416783" head="8" func="9">
  <tok id="8" feature="動詞,自立,*,*,一段,連用形,見る,ミ,ミ">見</tok>
  <tok id="9" feature="助動詞,*,*,*,特殊・タ,基本形,た,タ,タ">た</tok>
 </chunk>
 <chunk id="5" link="6" rel="D" score="-2.457381" head="10" func="11">
  <tok id="10" feature="名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ">女性</tok>
  <tok id="11" feature="助詞,格助詞,一般,*,*,*,に,ニ,ニ">に</tok>
 </chunk>
 <chunk id="6" link="-1" rel="D" score="0.000000" head="12" func="13">
  <tok id="12" feature="動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ">渡し</tok>
  <tok id="13" feature="助動詞,*,*,*,特殊・タ,基本形,た,タ,タ">た</tok>
  <tok id="14" feature="記号,句点,*,*,*,*,。,。,。">。</tok>
 </chunk>
</sentence>
print(tree.toString(CaboCha.FORMAT_CONLL))
1       太郎    太郎    名詞    名詞-固有名詞-人名-名   feature=名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー|begin_chunk=1|head=1        2       _       _       _
2       は      は      助詞    助詞-係助詞     feature=助詞,係助詞,*,*,*,*,は,ハ,ワ|func=1     13        D       _       _
3       この    この    連体詞  連体詞  feature=連体詞,*,*,*,*,*,この,コノ,コノ|begin_chunk=1|head=1|func=1       4       D       _       _
4       本      本      名詞    名詞-一般       feature=名詞,一般,*,*,*,*,本,ホン,ホン|begin_chunk=1|head=1       5       _       _       _
5       を      を      助詞    助詞-格助詞-一般        feature=助詞,格助詞,一般,*,*,*,を,ヲ,ヲ|func=1    9       D       _       _
6       次      次      名詞    名詞-一般       feature=名詞,一般,*,*,*,*,次,ツギ,ツギ|begin_chunk=1      7       _       _       _
7       郎      郎      名詞    名詞-一般       feature=名詞,一般,*,*,*,*,郎,ロウ,ロー|head=1   8        _       _       _
8       を      を      助詞    助詞-格助詞-一般        feature=助詞,格助詞,一般,*,*,*,を,ヲ,ヲ|func=1    9       D       _       _
9       見      見る    動詞    動詞-自立       feature=動詞,自立,*,*,一段,連用形,見る,ミ,ミ|begin_chunk=1|head=1 10      _       _       _
10      た      た      助動詞  助動詞  feature=助動詞,*,*,*,特殊・タ,基本形,た,タ,タ|func=1    11        D       _       _
11      女性    女性    名詞    名詞-一般       feature=名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ|begin_chunk=1|head=1     12      _       _       _
12      に      に      助詞    助詞-格助詞-一般        feature=助詞,格助詞,一般,*,*,*,に,ニ,ニ|func=1    13      D       _       _
13      渡し    渡す    動詞    動詞-自立       feature=動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ|begin_chunk=1|head=1  14      _       _       _
14      た      た      助動詞  助動詞  feature=助動詞,*,*,*,特殊・タ,基本形,た,タ,タ|func=1    15        _       _       _
15      。      。      記号    記号-句点       feature=記号,句点,*,*,*,*,。,。,。      0       _        _       _

何だか長くなりそうなので問題は次の記事で解くことにしよう。