2010年01月06日

mecabのinstall memo

久しぶりにmecabのインストールをしたので、そのメモ( this entry involves python binding installation )

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もももすももももものうち
もも も すもも も もも の うち 
happy:-)

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 
もも すもも もも うち
昨日 神田 ラーメン
Happy coding and happy new year:-D

人気ブログランキングへ
kotesaki at 23:35│Comments(0)TrackBack(0)clip!

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔