ステップ1会話データ・セット構築
Jupyter notebookで構築していく
フォルダ構造
.
├── data
│ ├── conversation_data.txt
│ └── urllist.txt
└── 対話する人工知能.ipynb
urllist.txt
http://www.aozora.gr.jp/cards/000148/files/773_14560.html
http://www.aozora.gr.jp/cards/000148/files/789_14547.html
get_data.pyはgithub.comに行ってもらってくる。dataフォルダの構造が
違うので若干手直しする。
get_data.pyで会話部分を抽出してファイルに書き出したのが
conversation_data.txt
文書の一部
これから折々お宅へ伺っても宜ござんすか ええいらっしゃい
誰の墓へ参りに行ったか、妻がその人の名をいいましたか いいえ、そんな事は何もおっしゃいません
これは何と読むんでしょう アンドレとでも読ませるつもりでしょうね
すぐお宅へお帰りですか ええ別に寄る所もありませんから
....
わからんですか、困りますな。寒月君は出てくれるでしょうね。今までの関係もあるから きっと出る事にします、僕の作った曲を楽隊
が奏するのを、きき落すのは残念ですからね
そうですとも。君はどうです東風君 そうですね。出て御両人の前で新体詩を朗読したいです
大分遅くなった。もう帰ろうか 僕も帰る
ステップ2日本語解析
まずはMecabをinstallする
MeCab: Yet Another Part-of-Speech and Morphological Analyzer
このページのダウンロード UNIX:ソースmecab-0.996.tar.gzをダウンロード
$ tar zxfv mecab-0.996.tar.gz
$ cd mecab-0.996
$ ./configure
$ make
$ make check
$ sudo make install
次に辞書(推奨)IPA 辞書をダウンロード
$ tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure
$ make
$ sudo make install
makeのところで「 libmecab.so.2: cannot open shared object file: No such file or directory Makefile:253: ターゲット 'matrix.bin' のレシピで失敗しました 」とでて進まない。 ネットで調べて以下のサイトを参考に解決した
ldconfigを打って共有ライブラリーの依存関係状態を更新させる
ldconfigコマンド自体はこちらを参考
Linuxコマンド集 - 【ldconfig】共有ライブラリの依存関係情報を更新する:ITpro
つづいてsudo make installと打って
最後にmecabを起動
$ mecab
今日も一日ありがとう <-ユーザが入力する
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
も 助詞,係助詞,*,*,*,*,も,モ,モ
一 名詞,数,*,*,*,*,一,イチ,イチ
日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ
ありがとう 感動詞,*,*,*,*,*,ありがとう,アリガトウ,アリガトー
EOS
mecab-python-0.996.tar.gzをダウンロードする(mecabのバージョンと合うものを選んだ)
$ tar xzf mecab-python-0.996.tar.gz
$ cd mecab-python-0.996
READMEにinstall方法が書いてあったので
python setup.py buildと打つ
string関係のエラーがでる。ver2.*とver3.*の違いに起因するものと思われる。
修正が終わって
$ sudo python setup.py installと打って
付属していたsampleスクリプト test.pyを使って動作テストを行うが
エラーがでるのでネットを調べる。
pip install mecab-python3と打って
>>>import sys
>>>import MeCab
でインポートエラーがでる
ImportError: /home/beetle/anaconda3/lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found
(required by /usr/local/lib/libmecab.so.2)
ネットでしらべると
$ conda install libgcc
Fetching package metadata ...
........
Solving package specifications:
.
Package plan for installation in environment /home/beetle/anaconda3:
The following NEW packages will be INSTALLED:
libgcc-ng: 7.2.0-h7cc24e2_2
libstdcxx-ng: 7.2.0-h7a57d05_2
The following packages will be UPDATED:
libgcc: 4.8.5-2 --> 7.2.0-h69d50b8_2
Proceed ([y]/n)?
libgcc-ng-7.2. 100% |################################| Time: 0:00:01 4.75 MB/s
libstdcxx-ng-7 100% |################################| Time: 0:00:00 4.69 MB/s
libgcc-7.2.0-h 100% |################################| Time: 0:00:00 4.13 MB/s
$python
>>>import sys
>>>import MeCab
>>>>>> m = MeCab.Tagger ("-Ochasen")
>>> print(m.parse("今日も一日ありがとう"))
今日 キョウ 今日 名詞-副詞可能
も モ も 助詞-係助詞
一 イチ 一 名詞-数
日 ニチ 日 名詞-接尾-助数詞
ありがとう アリガトウ ありがとう 感動詞
EOS
***************************************************************
直接MeCabに聞いたときの返答、Pythonから帰ってくるアンサーとは若干違いがあるようです
今日も一日ありがとう <-ユーザが入力する
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
も 助詞,係助詞,*,*,*,*,も,モ,モ
一 名詞,数,*,*,*,*,一,イチ,イチ
日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ
ありがとう 感動詞,*,*,*,*,*,ありがとう,アリガトウ,アリガトー
EOS
****************************************************************