テキストの文章の並びを品詞で表示する。
PythonでMeCabを使う - 元南国大学生がご当地プログラマを目指す日記から少し時間が経ちましたが、MeCabを使って、ある文章の並びを品詞で表示するスクリプトです。
と言っても、参考になるサイトの中身をちょこっと変更しただけなのですが…
参考サイト
WindowsでMeCab Pythonを使う - 人工知能に関する断創録
注意すべきというか、僕の環境では、
if node.feature.split(",")[0] == u"名詞":
だと動かなかったんですが、
if node.feature.split(",")[0] == r"名詞":
だと機能しました。(どこかにこれを紹介してくれたサイトがあったんですが忘れてしまった…)
書いたスクリプト
#!/usr/bin/env python # coding: utf-8 import MeCab def extractKeyword(text): tagger = MeCab.Tagger('-Ochasen') node = tagger.parseToNode(text) keywords = [] while node: keywords.append(node.feature.split(",")[0]) node = node.next return keywords if __name__ == "__main__": filename = 'Your Text File' src = open(filename,'r').read().split("\n") for tmp in src: keywords = extractKeyword(tmp) for w in keywords: print w
結果はこういう表示になります
BOS/EOS
名詞
名詞
名詞
名詞
名詞
名詞
名詞
名詞
名詞
名詞
BOS/EOS
BOS/EOSは文の最初と最後を示しているらしいです。
さて、問題は文章を品詞で表示できるようにして、どうやって覚えさせてよく使われるテンプレートを見つけるかなんですが、あんまり思いつかない…。機械学習とかいうのを使うのかな?