JanomeはPythonで書かれた形態素解析のライブラリです。
インストールが簡単で、Mecabをインストールできない環境でも使用できる点が魅力です。
Janomeのインストール
次のコマンドでインストールできます。
pip install janome
Janomeの使い方
Tokenizerをインポートします。
>>> from janome.tokenizer import Tokenizer
Tokenizerオブジェクトを作ります。
>>> tokenizer = Tokenizer()
Tokenizerオブジェクトのtokenize()メソッドに解析する文字列を渡します。
返り値はTokenオブジェクトのlistです。
>>> for token in tokenizer.tokenize("すもももももももものうち"):
... print(token)
...
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
tokenize()メソッドの引数streamにTrueを指定すると、返り値がgeneratorになります。
tokenize()メソッドの引数wakatiにTrueを指定すると、返り値が表層形(surface)のみになります。
>>> for token in tokenizer.tokenize("すもももももももものうち", wakati=True):
... print(token)
...
すもも
も
もも
も
もも
の
うち
Tokenオブジェクトは、次のインスタンス変数を持ちます。
surface (表層形)
part_of_speech (品詞)
infl_type (活用型)
infl_form (活用形)
base_form (基本形)
reading (読み)
phonetic (発音)
node_type
実行例
>>> tokens = tokenizer.tokenize("吾輩は猫である")
>>> print(tokens[0])
吾輩 名詞,代名詞,一般,*,*,*,吾輩,ワガハイ,ワガハイ
>>> tokens[0].surface
'吾輩'
>>> tokens[0].part_of_speech
'名詞,代名詞,一般,*'
>>> tokens[0].infl_type
'*'
>>> tokens[0].infl_form
'*'
>>> tokens[0].base_form
'吾輩'
>>> tokens[0].reading
'ワガハイ'
>>> tokens[0].phonetic
'ワガハイ'
part_of_speechはカンマ区切りなので、次のようにして値を取得できます。
>>> tokens[0].part_of_speech.split(',')[0]
'名詞'
>>> tokens[0].part_of_speech.split(',')[1]
'代名詞'
>>> tokens[0].part_of_speech.split(',')[2]
'一般'
>>> tokens[0].part_of_speech.split(',')[3]
'*'
最後に
実行環境
- Linux Mint
- Python バージョン3.5.2
- Janome バージョン0.3.5
形態素解析の結果をtxtファイルに書き込んで、保存したい場合はどうすればよいですか?教えていただけませんか?
こちらに書きました。
https://www.gesource.jp/weblog/?p=8066