Interface2017-12号第1章メカニズム実験 対話する人工知能を読む

ステップ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' のレシピで失敗しました 」とでて進まない。 ネットで調べて以下のサイトを参考に解決した

MeCab 用の辞書インストール - 今日もBlueSky

ldconfigを打って共有ライブラリーの依存関係状態を更新させる
ldconfigコマンド自体はこちらを参考

Linuxコマンド集 - 【ldconfig】共有ライブラリの依存関係情報を更新する:ITpro

つづいてsudo make installと打って
最後にmecabを起動

$ mecab
今日も一日ありがとう  <-ユーザが入力する
今日  名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
も 助詞,係助詞,*,*,*,*,も,モ,モ
一 名詞,数,*,*,*,*,一,イチ,イチ
日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ
ありがとう 感動詞,*,*,*,*,*,ありがとう,アリガトウ,アリガトー
EOS

pythonバインディングのインストールをおこなう

MeCab downloads - Google ドライブ

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を使って動作テストを行うが
エラーがでるのでネットを調べる。

qiita.com

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)

ネットでしらべると

blueskydb.blog.jp

$ 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
****************************************************************