LoginSignup
5
3

More than 3 years have passed since last update.

Python + Janomeでマルコフ連鎖人工無脳(1)Janome入門

Last updated at Posted at 2020-09-28

前書き

Pythonでマルコフ連鎖人工無脳を実装しようと思いました。
さて、形態素解析はなにに投げますかなと調べたところ、
Janomeというのが他のライブラリとの依存関係もなく、
pip一発でさくっとインストールできるそうです。ためしちゃお!

環境

Python 3.8.5
Janome 0.4.1

使い方

from janome.tokenizer import Tokenizer

t = Tokenizer()

s = "草わかば色鉛筆の赤き粉の散るがいとしく寝てけずるなり"

for token in t.tokenize(s):
    print(token)

Tokenizerクラスを使います。

t = Tokenizer()

Tokenizerインスタンスを作って、

for token in t.tokenize(s):
    print(token)

解析したい文章をtokenizeメソッドに渡します。
上のように中身を一つ一つ表示させると、こんな感じです。

python analysis.py
草      名詞,一般,*,*,*,*,草,クサ,クサ
わかば  名詞,固有名詞,組織,*,*,*,わかば,ワカバ,ワカバ
色鉛筆  名詞,一般,*,*,*,*,色鉛筆,イロエンピツ,イロエンピツ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
赤き    形容詞,自立,*,*,形容詞・アウオ段,体言接続,赤い,アカキ,アカキ
粉      名詞,一般,*,*,*,*,粉,コナ,コナ
の      助詞,格助詞,一般,*,*,*,の,ノ,ノ
散る    動詞,自立,*,*,五段・ラ行,基本形,散る,チル,チル
が      助詞,接続助詞,*,*,*,*,が,ガ,ガ
いとしく        形容詞,自立,*,*,形容詞・イ段,連用テ接続,いとしい,イトシク,イトシク
寝      動詞,自立,*,*,一段,連用形,寝る,ネ,ネ
て      助詞,接続助詞,*,*,*,*,て,テ,テ
けずる  動詞,自立,*,*,五段・ラ行,基本形,けずる,ケズル,ケズル
なり    助詞,接続助詞,*,*,*,*,なり,ナリ,ナリ

要素を一つ一つ取り出してやることもできます。
ためしに表層形と基本形、品詞を出力してみました。

from janome.tokenizer import Tokenizer

t = Tokenizer()

s = "寝てけずるなり"

for token in t.tokenize(s):
    print("==========")
    print(token.surface + " (表層形)")
    print(token.base_form + " (基本形)")
    print(token.part_of_speech + " (品詞)")

実行結果

python analysis.py
==========
寝 (表層形)
寝る (基本形)
動詞,自立,*,* (品詞)
==========
て (表層形)
て (基本形)
助詞,接続助詞,*,* (品詞)
==========
けずる (表層形)
けずる (基本形)
動詞,自立,*,* (品詞)
==========
なり (表層形)
なり (基本形)
助詞,接続助詞,*,* (品詞)

次章で文章生成を実装していきます。
Python + Janomeでマルコフ連鎖人工無脳(2)マルコフ連鎖入門

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3