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 ブログ