yasuokaの日記: 現代・古典日本語の形態素解析・係り受け解析のためのunidic2ud
私(安岡孝一)の8月21日の日記で公開したudkanbunを改造して、UniDicのMeCab辞書と、UDPipeのjapanese-gsdモデルが読めるようにした。これをさらに「Chamame2UD.py」と機能統合して、手元に辞書がある場合はローカルで高速に、ない場合はWeb APIを叩くことで低速に、動作するよう書き直してみた。unidic2udというpython3モジュールとして、PyPIからリリースしたので、ぜひ使ってみてほしい。インストールは、とりあえずは
% pip3 install unidic2ud
一発でいけるはずである。使い方も簡単で、たとえば「笑顔で彼は座った」という文を、現代書き言葉UniDicで解析するなら
% python3
>>> import unidic2ud
>>> ja=unidic2ud.load("gendai")
>>> s=ja("笑顔で彼は座った")
>>> print(s)
# text = 笑顔で彼は座った
1 笑顔 笑顔 NOUN 名詞-普通名詞-一般 _ 5 obl _ SpaceAfter=No|Translit=エガオ
2 で で ADP 助詞-格助詞 _ 1 case _ SpaceAfter=No|Translit=デ
3 彼 彼 PRON 代名詞 _ 5 nsubj _ SpaceAfter=No|Translit=カレ
4 は は ADP 助詞-係助詞 _ 3 case _ SpaceAfter=No|Translit=ハ
5 座っ 座る VERB 動詞-一般 _ 0 root _ SpaceAfter=No|Translit=スワッ
6 た た AUX 助動詞 _ 5 aux _ SpaceAfter=No|Translit=タ
で、OKである。使えるUniDicに関しては、オプション一覧を見てほしい。また、UniDicやUDPipeモデルのダウンロードに関しては
% python3 -m unidic2ud download.unidic gendai
% python3 -m unidic2ud download.udpipe japanese-gsd
というインターフェースを準備しておいたので、各辞書ごとに簡単にダウンロードできるはずだが、かなり時間がかかるのが難点だ。ちなみに、必要なUniDicを手元にダウンロードしておいた場合は、MeCabインターフェースもダイレクトに使えるよう実装したので、たとえば
% python3
>>> import unidic2ud
>>> ja=unidic2ud.load("gendai")
>>> m=ja.mecab("笑顔で彼は座った")
>>> print(m)
笑顔 名詞,普通名詞,一般,,,,エガオ,笑顔,笑顔,エガオ,笑顔,エガオ,和,,,,,,,体,エガオ,エガオ,エガオ,エガオ,1,C1,,1028326907060736,3741
で 助詞,格助詞,,,,,デ,で,で,デ,で,デ,和,,,,,,,格助,デ,デ,デ,デ,,動詞%F2@0,名詞%F1,,7014343053025792,25518
彼 代名詞,,,,,,カレ,彼,彼,カレ,彼,カレ,和,,,,,,,体,カレ,カレ,カレ,カレ,1,,,2014863681528320,7330
は 助詞,係助詞,,,,,ハ,は,は,ワ,は,ワ,和,,,,,,,係助,ハ,ハ,ハ,ハ,,動詞%F2@0,名詞%F1,形容詞%F2@-1,,8059703733133824,29321
座っ 動詞,一般,,,五段-ラ行,連用形-促音便,スワル,座る,座っ,スワッ,座る,スワル,和,,,,,,,用,スワッ,スワル,スワッ,スワル,0,C2,,5377170306376324,19562
た 助動詞,,,,助動詞-タ,終止形-一般,タ,た,た,タ,た,タ,和,,,,,,,助動,タ,タ,タ,タ,,動詞%F2@1,形容詞%F4@-2,,5948916285711019,21642
EOS
も可能になる。MeCabインターフェースでは、入力文から改行コードが剝ぎ取られる癖があるが、ぜひ試してみてほしい。
現代・古典日本語の形態素解析・係り受け解析のためのunidic2ud More ログイン