自然言語処理などで行う形態素解析について、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})