読者です 読者をやめる 読者になる 読者になる

テキストの文章の並びを品詞で表示する。

自然言語処理

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は文の最初と最後を示しているらしいです。

さて、問題は文章を品詞で表示できるようにして、どうやって覚えさせてよく使われるテンプレートを見つけるかなんですが、あんまり思いつかない…。機械学習とかいうのを使うのかな?