janoemの使い方について
インストール
$ python3 -m pip install janome
基本的な使い方
適当な文を形態素解析する例
from janome.tokenizer import Tokenizer
tokenizer = Tokenizer()
text = "私は昨日、図書館で本を借りました"
tokens = tokenizer.tokenize(text)
for token in tokens:
surface = token.surface
part_of_speech = token.part_of_speech
print(surface, part_of_speech)
"""
私 名詞,代名詞,一般,*
は 助詞,係助詞,*,*
昨日 名詞,副詞可能,*,*
、 記号,読点,*,*
図書館 名詞,一般,*,*
で 助詞,格助詞,一般,*
本 名詞,一般,*,*
を 助詞,格助詞,一般,*
借り 動詞,自立,*,*
まし 助動詞,*,*,*
た 助動詞,*,*,*
"""
分かち書き
from janome.tokenizer import Tokenizer
tokenizer = Tokenizer()
text = "私は昨日、図書館で本を借りました"
terms = list(tokenizer.tokenize(text, wakati=True))
print(terms)
"""
['私', 'は', '昨日', '、', '図書館', 'で', '本', 'を', '借り', 'まし', 'た']
"""
基本形(原型)の取得
from janome.tokenizer import Tokenizer
tokenizer = Tokenizer()
text = "私は昨日、図書館で本を借りました"
terms = [token.base_form for token in tokenizer.tokenize(text)]
print(terms)
"""
['私', 'は', '昨日', '、', '図書館', 'で', '本', 'を', '借りる', 'ます', 'た']
"""
特定の品詞のみ取得
from janome.tokenizer import Tokenizer
tokenizer = Tokenizer()
text = "昨日の青い空は美しかったです。私は図書館で新しい本を借りました。"
# 形容詞と名詞を抽出
terms = [token.surface for token in tokenizer.tokenize(text)
if token.part_of_speech.startswith(('名詞', '形容詞'))]
print(terms)
"""
['昨日', '青い', '空', '美しかっ', '私', '図書館', '新しい', '本']
"""
neologdのインストール(実用上、適さない)
辞書ファイルの作成
bash -c "git clone https://github.com/neologd/mecab-ipadic-neologd.git; xz -dkv mecab-ipadic-neologd/seed/*.csv.xz; cat mecab-ipadic-neologd/seed/*.csv > neologd.csv"
辞書を登録
python3 -c "from janome.dic import UserDictionary; from janome import sysdic; user_dict = UserDictionary('neologd.csv', 'utf8', 'ipadic', sysdic.connections); user_dict.save('neologd')"
- すごい時間がかかる
- 64GBメモリでも失敗することがあるのであまり現実的ではない