【Python/Janome】形態素解析入門(日本語の分割)

Pythonライブラリ「Janome」で形態素解析する方法について入門者向けにまとめました。

【はじめに】Janomeとは

「Janome」とは、Python用の形態素解析エンジンです。
MeCabと違って、依存している他のライブラリやソフトウェアがないためpipでインストールするだけで手軽に利用できます。

pip install janome
参考
導入 【Janome】pipでインストール(Windows編)

【基礎】形態素解析

以下のコードでtextに格納した文章を形態素解析します。

# -*- coding:utf-8 -*-
from janome.tokenizer import Tokenizer

t = Tokenizer()

text = '問おう、貴方が私のマスターか'

for token in t.tokenize(text):
    print(token)

"""
問お    動詞,自立,*,*,五段・ワ行促音便,未然ウ接続,問う,トオ,トオ
う      助動詞,*,*,*,不変化型,基本形,う,ウ,ウ
、      記号,読点,*,*,*,*,、,、,、
貴方    名詞,代名詞,一般,*,*,*,貴方,アナタ,アナタ
が      助詞,格助詞,一般,*,*,*,が,ガ,ガ
私      名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
マスター        名詞,一般,*,*,*,*,マスター,マスター,マスター
か      助詞,副助詞/並立助詞/終助詞,*,*,*,*,か,カ,カ
"""

【情報抽出】単語毎の表層形、品詞、活用形などを抽出

単語毎に表層形、品詞、活用形などの情報を取得します。

# -*- coding:utf-8 -*-
from janome.tokenizer import Tokenizer

t = Tokenizer()

text = '問おう'

for token in t.tokenize(text):
    print('-----------------')
    print('表層形:', token.surface) 
    print('品詞:', token.part_of_speech.split(',')[0])
    print('品詞細分類1:', token.part_of_speech.split(',')[1])
    print('品詞細分類2:', token.part_of_speech.split(',')[2])
    print('品詞細分類3:', token.part_of_speech.split(',')[3])
    print('活用型:', token.infl_type)
    print('活用形:', token.infl_form)
    print('読み:', token.base_form)
    print('読み:', token.reading)
    print('発音:', token.phonetic) 
    print('-----------------')
    
"""
-----------------
表層形: 問お
品詞: 動詞
品詞細分類1: 自立
品詞細分類2: *
品詞細分類3: *
活用型: 五段・ワ行促音便
活用形: 未然ウ接続
読み: 問う
読み: トオ
発音: トオ
-----------------
-----------------
表層形: う
品詞: 助動詞
品詞細分類1: *
品詞細分類2: *
品詞細分類3: *
活用型: 不変化型
活用形: 基本形
読み: う
読み: ウ
発音: ウ
-----------------
"""

【情報抽出】特定の品詞のみを取り出す

特定の品詞を抽出したい場合、token.part_of_speech.splitメソッドを利用します。
例えば、名詞を取り出したい場合のコードは次のとおりです。

# -*- coding:utf-8 -*-
from janome.tokenizer import Tokenizer

t = Tokenizer()

text = '問おう、貴方が私のマスターか'

for token in t.tokenize(text):
    if token.part_of_speech.split(',')[0] == '名詞':
        print('名詞:', token.surface)
    
"""
名詞: 貴方
名詞: 私
名詞: マスター
"""
参考文献・関連記事
参考 Python, Janomeで日本語の形態素解析、分かち書き(単語分割)python で形態素解析。Janome が簡単。pip 一発でインストール
関連 【Python入門】サンプル集
関連記事