2016年2月18日木曜日

中国語をpythonで形態素解析(PyNLPIR)する

このエントリーをはてなブックマークに追加
春節の折、去年あたりから中国から観光客の方が来られてるので、ここで中国語の形態素解析をしてみたいと思った。
中国語の形態素解析器はNLPIR / ICTCLASにあったのでこれを用いてみることにする。


できればこの辺の解析はpythonで実行したいのでPyNLPIRをpipでインストールする。
# pip install pynlpir
Collecting pynlpir
  Downloading PyNLPIR-0.4.2.tar.gz (13.1MB)
    100% |████████████████████████████████| 13.1MB 3.1kB/s
Installing collected packages: pynlpir
  Running setup.py install for pynlpir
Successfully installed pynlpir-0.4.2
インストールされて動くか試してみる。PyNLPIRのページを参考にした。

まずはpythonのデフォルトエンコーディングをUTF8にしておく。/usr/lib/python2.7/site-packages/sitecustomize.pyを作成する。
import sys
sys.setdefaultencoding('utf-8')
インタラクティブモードでpythonを起動しpynlpirを試す。文章はweiboから適当に引っ張ってきた。
>>> import pynlpir
>>> pynlpir.open()
>>> s = '大阪最后一夜 关西机场附近最高建筑俯瞰大阪湾'
>>> pynlpir.segment(s)
[(u'\u5927\u962a', u'noun'), (u'\u6700\u540e', u'noun of locality'), (u'\u4e00', u'numeral'), (u'\u591c', u'classifier'), (u' ', None), (u'\u5173\u897f', u'noun'), (u'\u673a\u573a', u'noun'), (u'\u9644\u8fd1', u'noun of locality'), (u'\u6700\u9ad8', u'adjective'), (u'\u5efa\u7b51', u'noun'), (u'\u4fef\u77b0', u'verb'), (u'\u5927\u962a', u'noun'), (u'\u6e7e', u'noun')]
漢字が読めない。。。リストをタプルに分解してencodeして表示させる。
>>> words = pynlpir.segment(s)
>>> for w in words:
...     if w[0] != ' ':
...             print '単語:' + w[0].encode('utf-8') + ', 品詞:' + w[1].encode('utf-8')
...
表示結果はこんな感じ。
単語:大阪, 品詞:noun
単語:最后, 品詞:noun of locality
単語:一, 品詞:numeral
単語:夜, 品詞:classifier
単語:关西, 品詞:noun
単語:机场, 品詞:noun
単語:附近, 品詞:noun of locality
単語:最高, 品詞:adjective
単語:建筑, 品詞:noun
単語:俯瞰, 品詞:verb
単語:大阪, 品詞:noun
単語:湾, 品詞:noun
noun:名詞
noun of locality:方位詞
classifier:分類辞
numeral:数詞
adjective:形容詞
verb:動詞

あってるんかなぁ。。。中国語全然分からんけど。。。まぁ、とっかかりにはなるかなと。

0 件のコメント:

コメントを投稿