アットウィキロゴ

MeCab on Ubuntu (python)

DL, install

tar zxvf mecab-0.98.tar.gz
cd mecab-0.98
./configure --with-charset=utf8
make
make install
  • 辞書
tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz 
cd mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf8
make
make install

  • 動作確認
    • ctrl+cで終了
$ mecab
庭には二羽ニワトリがいる
庭	名詞,一般,*,*,*,*,,ニワ,ニワ
に	助詞,格助詞,一般,*,*,*,,,ニ
は	助詞,係助詞,*,*,*,*,,,ワ
二	名詞,,*,*,*,*,,,ニ
羽	名詞,接尾,助数詞,*,*,*,,,ワ
ニワトリ	名詞,一般,*,*,*,*,ニワトリ,ニワトリ,ニワトリ
が	助詞,格助詞,一般,*,*,*,,,ガ
いる	動詞,自立,*,*,一段,基本形,いる,イル,イル
EOS


tar zxvf mecab-python-0.97.tar.gz
cd mecab-python-0.97.tar.gz
apt-get install python-dev #導入済みの場合は不要
python setup.py build
python setup.py install

>>> import MeCab
>>> mecab = MeCab.Tagger('Ochasen')
>>> sent = u"庭には二羽ニワトリがいる".encode('utf-8')
>>> print mecab.parse(sent)
庭	名詞,一般,*,*,*,*,,ニワ,ニワ
に	助詞,格助詞,一般,*,*,*,,,ニ
は	助詞,係助詞,*,*,*,*,,,ワ
二	名詞,,*,*,*,*,,,ニ
羽	名詞,接尾,助数詞,*,*,*,,,ワ
ニワトリ	名詞,一般,*,*,*,*,ニワトリ,ニワトリ,ニワトリ
が	助詞,格助詞,一般,*,*,*,,,ガ
いる	動詞,自立,*,*,一段,基本形,いる,イル,イル
EOS

とりあえずの導入はこれで完了。

ファイルの入出力

mecab smpl.txt -O wakati -o res_smpl.txt
cat res_smpl.txt 
庭 に は 二 羽 ニワトリ が いる 。 

unigramを配列へ抽出

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import random
  4. import MeCab
  5.  
  6. mecab = MeCab.Tagger('-Owakati')
  7.  
  8. sent = u"庭には二羽ニワトリがいる。裏庭には二羽ニワトリがいた。".encode('utf-8')
  9. values = mecab.parse(sent)
  10. gram = values.rstrip().split(' ')
  11.  
  12. for value in gram:
  13. print value
  14.  
実行結果
python smpl2.py 
庭
に
は
二
羽
ニワトリ
が
いる
。
裏庭
に
は
二
羽
ニワトリ
が
い
た
。

単語unigramを配列へ抽出(引数にテキストファイルを指定)

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import sys
  4. import random
  5. import MeCab
  6. mecab = MeCab.Tagger('-Owakati')
  7.  
  8. f = open(sys.argv[1])
  9. sent = f.read()
  10. values = mecab.parse(sent)
  11. gram = values.rstrip().split(' ')
  12.  
  13. for value in gram:
  14. print value
  15.  

任意のテキストファイルから単語bigramを抽出して結果をファイルに出力する。(引数にテキストファイルを指定)

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import sys
  4. import random
  5. import MeCab
  6.  
  7. mecab = MeCab.Tagger('-Owakati')
  8.  
  9. f = open(sys.argv[1])
  10. resf = 'res_'+ sys.argv[1]
  11. r = open(resf, "w")
  12.  
  13. sent = f.read()
  14. values = mecab.parse(sent)
  15. gram = values.rstrip().split(' ')
  16.  
  17. bgram = []
  18.  
  19. for i in range(len(gram)):
  20. if i > 0:
  21. r.write(gram[i-1])
  22. r.write(gram[i])
  23. r.write('\n')
  24. print gram[i-1],
  25. print gram[i]
  26. r.close
  27.  
最終更新:2011年06月27日 17:14