Pythonライブラリ「Janome」で形態素解析する方法について入門者向けにまとめました。
## 【はじめに】Janomeとは
「Janome」とは、Python用の形態素解析エンジンです。
MeCabと違って、依存している他のライブラリやソフトウェアがないためpipでインストールするだけで手軽に利用できます。
pip install janome
– | 参考 |
---|---|
導入 | ■【Janome】pipでインストール |
## 【基礎】形態素解析
以下のコードで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入門】サンプル集 |
コメント