2010年01月06日
mecabのinstall memo
久しぶりにmecabのインストールをしたので、そのメモ( this entry involves python binding installation )
happy:-)
Happy coding and happy new year:-D
人気ブログランキングへlibiconv
$ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz $ ./configure $ make $ sudo make install
/etc/ld.so.conf
$ sudo vi /etc/ld.so.conf + /usr/local/lib $ sudo ldconfig
install g++
$ sudo apt-get install g++
mecabのインストール
$ tar xvzf mecab-0.98.tar.gz $ cd mecab-0.98/ $ ./configure --enable-utf8-only $ make $ sudo make install
ipadicのインストール
$ tar xvzf mecab-ipadic-2.7.0-20070801.tar.gz $ cd mecab-ipadic-2.7.0-20070801/ $ ./configure --with-charset=utf8 $ make $ sudo make install
test
$ mecab もももすももももものうち もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS
test(分かち書き)
$ mecab -O wakatiもももすももももものうち もも も すもも も もも の うち
python bindingのインストール
$ tar xvzf mecab-python-0.98.tar.gz $ cd mecab-python-0.98/ $ python setup.py build $ sudo python setup.py install
test(python binding)
$ chmod +x test.py $ vi test.py 1a2 > # -*- coding: utf-8 -*- $ ./test.py 8$ ./test.py 0.98 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー は 助詞,係助詞,*,*,*,*,は,ハ,ワ この 連体詞,*,*,*,*,*,この,コノ,コノ 本 名詞,一般,*,*,*,*,本,ホン,ホン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 二 名詞,数,*,*,*,*,二,ニ,ニ 郎 名詞,一般,*,*,*,*,郎,ロウ,ロー を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。 EOS ... filename: /usr/local/lib/mecab/dic/ipadic/sys.dic charset: utf8 size: 392126 type: 0 lsize: 1316 rsize: 1316 version: 102
名詞だけ抽出してわかち書きするコードを作ってみるなう
#!/usr/bin/python
# -*- coding: utf-8 -*-
import MeCab
import sys
import string
class WakachiNoun():
def __init__(self):
self.t = MeCab.Tagger ("")
def run(self, sentence):
ret = ''
try:
m = self.t.parseToNode (sentence)
m = m.next
while m:
h = m.feature.split(",")[0]
if (h == '名詞'):
if (ret != ''):
ret += ' '
ret += m.surface
m = m.next
except RuntimeError, e:
ret = ''
return ret
w = WakachiNoun()
print w.run('もももすももももものうち')
print w.run('昨日、神田でラーメンを食べた')
test
$ ./wakachiNoun.py もも すもも もも うち 昨日 神田 ラーメン