Python

Pythonで日本語を形態素解析する Janome

自然言語処理などで行う形態素解析について、Pythonで実行してみます。

インストール

pip install janome

サンプルコード

形態素解析

from janome.tokenizer import Tokenizer

text = '太郎さんは山田家の長男です。'

t = Tokenizer()

for token in t.tokenize(text):
    print(token)
太郎	名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
さん	名詞,接尾,人名,*,*,*,さん,サン,サン
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
山田	名詞,固有名詞,人名,姓,*,*,山田,ヤマダ,ヤマダ
家	名詞,接尾,一般,*,*,*,家,カ,カ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
長男	名詞,一般,*,*,*,*,長男,チョウナン,チョーナン
です	助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。	記号,句点,*,*,*,*,。,。,。

単語ごとに分割(分かち書き): シンプル

from janome.tokenizer import Tokenizer

text = '太郎さんは山田家の長男です。'

t = Tokenizer()
print(t.tokenize(text, wakati=True))

# ['太郎', 'さん', 'は', '山田', '家', 'の', '長男', 'です', '。']

単語ごとに分割(分かち書き): 分かち書きモード

from janome.tokenizer import Tokenizer

text = '太郎さんは山田家の長男です。'

t = Tokenizer(wakati=True)
print(t.tokenize(text))

単語の出現回数をカウント

from janome.tokenizer import Tokenizer
import collections

text = '太郎さんは山田家の長男です。'

t = Tokenizer(wakati=True)
c = collections.Counter(t.tokenize(text))

print(c)

# Counter({'太郎': 1, 'さん': 1, 'は': 1, '山田': 1, '家': 1, 'の': 1, '長男': 1, 'です': 1, '。': 1})