ボンジニアの備忘録

凡人エンジニア、通称ボンジニアによる備忘録です。勉強した内容を書いていきます。ジャンル問わずです!間違っていたら指摘をお願いします!

pythonで形態素解析をやってみた

すぐに解析ができるMeCabJanomeについてメモです。

【環境】
python3.5.1
Janome 0.2.8
mecab-python3 0.7

Janomeの場合



まずはJanomeのインストールから始めます。
$ pip install janome

次にpythonでソースを書きます。

from janome.tokenizer import Tokenizer

t = Tokenizer()
text = "pythonで形態素解析をやってみた"
tokens = t.tokenize(text)
res = ""
for token in tokens:
    print(token)

【出力結果】
python 名詞,一般,*,*,*,*,*,*,*
で 助詞,格助詞,一般,*,*,*,で,デ,デ
形態素 名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ
解析 名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
やっ 動詞,自立,*,*,五段・ラ行,連用タ接続,やる,ヤッ,ヤッ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
み 動詞,非自立,*,*,一段,連用形,みる,ミ,ミ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ

token.surfaceとすると分けられた文字だけ取得できます。

MeCabの場合

まずはMeCabのインストールから始めます。
$ pip install mecab-python3

import MeCab

text="pythonで形態素解析をやってみた"
mt = MeCab.Tagger("-Ochasen")
mt.parse('')
node = mt.parseToNode(text)
while node:
    print (node.surface, node.feature)
    node = node.next

【出力結果】
BOS/EOS,*,*,*,*,*,*,*,*
python 名詞,一般,*,*,*,*,*
で 助詞,格助詞,一般,*,*,*,で,デ,デ
形態素 名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ
解析 名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
やっ 動詞,自立,*,*,五段・ラ行,連用タ接続,やる,ヤッ,ヤッ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
み 動詞,非自立,*,*,一段,連用形,みる,ミ,ミ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
BOS/EOS,*,*,*,*,*,*,*,*



思いの外簡単に形態素解析できますね!これをBotの開発とかに組み込むと楽しいかも!!
最終的には自分で形態素解析アルゴリズムを組んでやってみたいですね!!