Pythonで日本語の分かち書き

自然言語処理




Pythonで日本語の分かち書き

Pythonを使って、日本語の分かち書きを処理していく。

使うツールは、MeCab

日本語の分かち書きとは

日本語の分かち書きとは、文を語に分解して、それぞれをスペースによって区切る書き方である。
例えば、

“これはペンです。”

これを分かち書きすると

“これ は ペン です 。”

のようになる

日本語の文章は、語が英語のように分かれていない。

this is a pen.

英語の場合、語が、[‘this’, ‘is’, ‘a’, ‘pen’]のようにスペースで区切られている。
一方で、日本語は、

これはペンです。

上のように、スペースなどの区切りがないため、語の判別が困難である。

MeCab+Pythonで、分かち書き

import MeCab
text = "私の名前は、βshortです。ブログを書いています。"
tagger = MeCab.Tagger("-Owakati")
text = tagger.parse (text)
print(text)
#=====出力=======
#私 の 名前 は 、 β short です 。 ブログ を 書い て い ます 。

特定の品詞だけを抽出する

import MeCab
def wakati(text):
    tagger = MeCab.Tagger('')
    tagger.parse('') 
    node = tagger.parseToNode(text)
    word_list = []
    
    while node:
        pos = node.feature.split(",")[0]
        #品詞を選択
        if pos in ["名詞"]: 
            word = node.surface
            word_list.append(word)
        node = node.next
        
    return " ".join(word_list)
text = "私の名前は、βshortです。ブログを書いています。"
print(wakati(text))
#=====出力======
#私 名前 short ブログ

参考

タイトルとURLをコピーしました