mai_Nのプログラミング勉強メモ

Python or R × マーケティング

Janomeを使った形態素解析①

■基本の使い方:

  1. Tokenizerをインポート
  2. Tokenizerオブジェクトのインスタンスを生成
  3. 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(発音)
タベロ