Python
Linux
RaspberryPi

形態素解析とマルコフ連鎖で文章を自動生成してみた

概要

オフラインでも動作する、会話システムを作りたくて、ググった結果です。
ほぼコピペでできちゃったので、ただの備忘録です。

前提条件

  • Raspberry Pi 2 Model B
$ uname -a
Linux raspberrypi 4.14.32-v7+ #1106 SMP Wed Apr 4 18:19:23 BST 2018 armv7l GNU/Linux

参考サイト

形態素解析(MeCab)

形態素解析については、ウィキペディア参照。
MeCabは 京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態素解析エンジンです。
以下、MeCabのインストール。

$ sudo apt-get update
$ sudo apt-get upgrade

$ sudo apt-get install libmecab-dev
$ sudo apt-get install mecab
$ sudo apt-get install mecab-ipadic-utf8

$ pip install mecab-python3

動作確認はmecabコマンド実行後、適当な文章を入力します。
CTRL+Cで終了です。

$ mecab
こんにちは。今日はいい天気ですね。
こんにちは      感動詞,*,*,*,*,*,こんにちは,コンニチハ,コンニチワ
。      記号,句点,*,*,*,*,。,。,。
今日    名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
いい    形容詞,自立,*,*,形容詞・イイ,基本形,いい,イイ,イイ
天気    名詞,一般,*,*,*,*,天気,テンキ,テンキ
です    助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
ね      助詞,終助詞,*,*,*,*,ね,ネ,ネ
。      記号,句点,*,*,*,*,。,。,。
EOS

マルコフ連鎖

マルコフ連鎖については、ウィキペディア参照。
マルコフ連鎖を使った文章自動生成プログラムの手順そのまま実行します(なのでここでは流れだけ)。

$ git clone https://github.com/karaage0703/TextGenerator.git
$ cd TextGenerator
$ python PrepareChain.py sample.txt #事前準備
$ python GenerateText.py 10 # 文章の生成

文章が生成されれば成功です。
こんなに簡単にこんなにすごいことができるなんて感動です。

応用

チャットの会話履歴とかをsample.txtに書き込んでいけば賢くなるかな?