Janomeを使った形態素解析①
■基本の使い方:
- Tokenizerをインポート
- Tokenizerオブジェクトのインスタンスを生成
- tokenize()メソッドに対象の文字列を渡す
→tokenize()メソッドはTokenオブジェクトのジェネレータを返す
from janome.tokenizer import Tokenizer t = Tokenizer() token_list = t.tokenize("今日はいい天気ですね。") for n in token_list: print(n)
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
いい 形容詞,自立,*,*,形容詞・イイ,基本形,いい,イイ,イイ
天気 名詞,一般,*,*,*,*,天気,テンキ,テンキ
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
ね 助詞,終助詞,*,*,*,*,ね,ネ,ネ
。 記号,句点,*,*,*,*,。,。,
■分かち書きの方法
tokenize()メソッドに対象の文字列を渡すときに引数wakatiをTrueにする
(デフォルトはwakati=False。この場合はTokenオブジェクトを返す)
t = Tokenizer() print(list(t.tokenize("まさに昭和の表現ですね。", wakati=True)))
['まさに', '昭和', 'の', '表現', 'です', 'ね', '。']
※別解※
Tokenizerオブジェクトのインスタンスを生成するときに引数wakatiをTrueにしてもよい
t = Tokenizer(wakati=True) print(list(t.tokenize("まさに昭和の表現ですね。")))
['まさに', '昭和', 'の', '表現', 'です', 'ね', '。']
■Tokenオブジェクトが持っている属性:
※「.__next__()」でジェネレータから要素を取り出せる
t = Tokenizer() token = t.tokenize("食べろ").__next__() print(token)
食べろ 動詞, 自立, *, *, 一段, 命令ro, 食べる, タベロ, タベロ
①surface(表層形)…文字列内と同じかたち。
※「.__next__()」で要素を取り出した変数から「.属性」で呼び出せる。
print(token.surface)
食べろ
②part_of_speech(品詞)…「品詞, 品詞細分類1, 品詞細分類2, 品詞細分類3」の順番。
定義されていない場合は「*」になる。
動詞, 自立, *, *
③infl_type(活用型)...「五段・ラ行(ex. 走る))」「一段」など。
一段
④infl_form(活用形)…「未然形」「連用形」「終止形」「連体形」「仮定形」「命令形」など。
命令ro
⑤base_form(基本形)…単語の原形。辞書の見出し語。
食べる
⑥reading(読み)
タベロ
⑦phonetic(発音)
タベロ