ページ

2017年9月9日土曜日

Python3からJUMANを使う@CentOS7


JUMANは、京都大学黒橋・河原研究室で開発されている日本語の形態素解析システムです。これを入れると、日本語の形態素解析ができます。(雑な説明でごめんなさい)
今回のざっくりとした環境は下記のとおりです。CentOS7は最小インストールした直後の状態を想定しています。
  • JUMAN 7.01
  • Python 3.4
  • CentOS 7.3

準備

コンパイルしてインストールしますので、gccを入れておいてください。
yum install bzip2 gcc
yum install epel-release
yum install python34 python34-devel python34-pip

JUMANのインストール

ダウンロードしてコンパイルしてインストールするだけです。あまり迷うところもないような気がします。
mkdir download
mkdir src cd download/ wget 'http://nlp.ist.i.kyoto-u.ac.jp/DLcounter/lime.cgi?down=http://nlp.ist.i.kyoto-u.ac.jp/nl-resource/juman/juman-7.01.tar.bz2&name=juman-7.01.tar.bz2' -O juman-7.01.tar.bz2 cd ~/src tar xvf ../download/juman-7.01.tar.bz2 cd juman-7.01/ ./configure make make install
実行すると下記のような出力を得ることができます。
echo "これは、テストです。" | juman
これ これ これ 指示詞 7 名詞形態指示詞 1 * 0 * 0 NIL
は は は 助詞 9 副助詞 2 * 0 * 0 NIL
、 、 、 特殊 1 読点 2 * 0 * 0 NIL
テスト てすと テスト 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:テスト/てすと カテゴリ:抽象物 ドメイン:教育・学習"
です です だ 判定詞 4 * 0 判定詞 25 デス列基本形 27 NIL
。 。 。 特殊 1 句点 1 * 0 * 0 NIL
EOS

Pythonバインディングのインストール

あとは、Pythonから呼び出せるようにWrapperをインストールするだけです。PyKNPというPythonバインディングをインストールすることになりますが、pipでは入りませんので、京都大学からダウンロードして、インストールします。また、Pythonのsixというライブラリも必要になりますので、あらかじめインストールしておきます。(sixはPython2とPython3の互換ライブラリです)
pip3 install six
cd ~/download/
wget 'http://nlp.ist.i.kyoto-u.ac.jp/DLcounter/lime.cgi?down=http://lotus.kuee.kyoto-u.ac.jp/nl-resource/pyknp/pyknp-0.3.tar.gz&name=pyknp-0.3.tar.gz' -O pyknp-0.3.tar.gz
cd ~/src/
tar xzvf ../download/pyknp-0.3.tar.gz
cd pyknp-0.3/
python3 setup.py install
テストプログラムを作ります。
ファイル: test.py
from pyknp import Juman

j = Juman()
r = j.analysis('これは、テストです。')
for m in r.mrph_list():
    print (m.midasi, m.yomi, m.genkei, m.hinsi, m.bunrui, m.katuyou1, m.katuyou2, m.imis, m.repname)
無事動作することが確認できました。
python3 test.py 
これ これ これ 指示詞 名詞形態指示詞 * * NIL
は は は 助詞 副助詞 * * NIL
、 、 、 特殊 読点 * * NIL
テスト てすと テスト 名詞 サ変名詞 * * 代表表記:テスト/てすと カテゴリ:抽象物 ドメイン:教育・学習 テスト/てすと
です です だ 判定詞 * 判定詞 デス列基本形 NIL
。 。 。 特殊 句点 * * NIL
JUMANは、Wikipediaから辞書を持ってきているようですので、MeCabと違って辞書などを登録しなくとも新しめの単語を認識することができます。
echo "クラウド"|juman

クラウド クラウド クラウド 名詞 6 普通名詞 1 * 0 * 0 "自動獲得:Wikipedia Wikipedia多義"
EOS

0 件のコメント:

コメントを投稿