Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

対話Bot品質向上プロジェクト(議論部屋) #75

Open
Diaboro87 opened this issue Dec 22, 2017 · 21 comments
Open

対話Bot品質向上プロジェクト(議論部屋) #75

Diaboro87 opened this issue Dec 22, 2017 · 21 comments
Assignees

Comments

@Diaboro87
Copy link
Contributor

Diaboro87 commented Dec 22, 2017

下記issueで対話Botの品質向上を考えております。
#72

ファーストステップとして、私が過去自作したTwitterの解析APIがあるのでこれをベースに使えたらなと考えております。
仕組みとしては

  1. Twitterからツイートを取得する<-python,twitterApi
  2. 形態素解析を行う<-python,mecab
  3. 適切な形でDBに蓄積を行う<-python,postgres
  4. 蓄積したデータを拾い上げて、1文にする。<-python
  5. 作成した文章を140文字以内となるようにつなげて、つぶやきを行う<-python,twitterApi

この、つぶやきとかTwitterの部分がDiscoのBotになるようなイメージです。
後々ですが、この蓄積したデータをそのままDeepLearningさせて、精度を上げていこうと考えています。

  1. Discoからメッセージを取得する<-ruby,DiscoApi
  2. 取得したメッセージを先のAPIに流す<-ruby
  3. 形態素解析を行う<-python,mecab
  4. 適切な形でDBに蓄積を行う<-python,postgres
  5. 蓄積したデータを拾い上げて、1文にする。<-python
  6. 作成した文章を適切な長さに加工して、Botに返す<-python,twitterApi
  7. Botは受け取ったものをチャンネルへ流す<-ruby,DiscoApi

対話Botプロジェクトとして勧めていけたらと思っております。
https://github.com/xpjp/xpfiat-bot/projects/1

@hir0king
Copy link

それに参加させて頂きたいです!!!!!!
CNNでdeeplearning使った画像分類程度しかしたことなく、RNNはほとんど触ったことないですが
そっちも興味があって触りたいと思っていたところなんです(*゚▽゚)ノ
RNNの事勉強しながらになってしまいますが、よろしくお願いします!

@Diaboro87
Copy link
Contributor Author

それは良かった。
お伝えできる範囲はお伝えするので、協力してやっていきましょう。

色々と私も調べながらになると思いますが、頑張って経験値溜めていきましょうw

@hir0king
Copy link

今、ちょっと見てて思ったのですが仕組みのなかの「蓄積したデータを拾い上げて、1文にする」とゆうのが、いまいちわからなかったのですが、次にくる確立が高い単語を選んでいる様な感じですか?
あと深層学習はTensorflowなどのライブラリを使用する予定ですか?
質問ばかりで申し訳ありませんm(_ _)m

@Diaboro87
Copy link
Contributor Author

説明がめんどくさかったので、割愛しましたが、ファーストステップは学習というよりただのマルコフ連鎖使ってやります。リリース速度上げるために。
時間ある時なら説明するので、気になったら調べて見てください。

深層学習では、Pythonのライブラリを使うところまでは想像しています。決まってないのでなんでもいいと言えばいいです。

論文の中ではcaffeが多く使われているようなので、ベースはそのあたりかなと。
テンサーフローでも、チェイナーでもなんでもいいといえばいいです。
モデル考えたり、活性化関数考えたり、そもそも学習させたりしなきゃと機械学習はやること山積みなので、軽量かつ計算速度が出るものを選択したいと思ってます。

@Diaboro87
Copy link
Contributor Author

ps質問はガンガンしてください。
ネット上なので、発言しない人はいないものとみなされます笑

@hir0king
Copy link

マルコフ連鎖勉強しておきます...
開発がpythonなのはとてもよかとです♥
会話を学習させるのはNeural Conversation Modelって学習モデルがいいと雑誌で見たのでそこらへんのモデルが組みやすいものだといいかもしれないですね。

@SohMitian
Copy link

マルコフ連鎖調べましたが、これって台詞データが必要な感じですかね。

@Diaboro87
Copy link
Contributor Author

セリフデータというか、2組とか1組の発言がそのまま使われますね。

@SohMitian
Copy link

あーなるほど、わかってきた。精度はともかく、確かにこれならRNNより遥かに低コストですね。
コアが既にあるので、後はI/O周りだけって感じですか?

@Diaboro87
Copy link
Contributor Author

ザッツライト!そゆことになります。

@hir0king
Copy link

マルコフ連鎖おもしろいですね
これだと学習させるのには心もとないデータ量であっても、
比較的マトモな返しが期待できるって理解でいいですかね。

@hir0king
Copy link

ごめんなさい🙇‍♂️
上でおんなじようなこと答えて頂いてましたね

@Diaboro87
Copy link
Contributor Author

とりあえず、PythonのAPI使えるようにするところまでは、2017/12/24中に終わらせる予定でいます。
よろしくお願いします。

@SohMitian
Copy link

rubyからpython呼び出すやつだとこんな感じでいけそうですかね。

#param = 入力文字
pythonTolk= IO.popen("python tolk.py", "w+")
pythonTolk.puts(param)
str = pythonTolk.gets
event.respond "#{event.user.mention} #{str.chomp}"

@Diaboro87
Copy link
Contributor Author

あ、そういうんでなくて、RESTAPIとして作ろうと思ってました。
そういうこともできたんですね。

とりあえず、形態素解析とDB操作ができるところまではソース更新しました。

@SohMitian
Copy link

素っ頓狂な事をしてしまった。恥ずかしい😳

@Diaboro87
Copy link
Contributor Author

説明が足らず申し訳ない。
bottleってライブラリでAPIとして公開できるようにしたいと思っております。

@Diaboro87
Copy link
Contributor Author

相談なんですが、文章を取得してdbに登録する時に、チャンネル毎に登録するか迷ってます。
どっちがいいですかね?

@hir0king
Copy link

hir0king commented Jan 6, 2018

チャンネル毎にDBを作るってことですか?
っていうより,DBに文章を登録するときにどのチャンネルかの情報も一緒に入れるって感じですかね?

一応チャンネル毎に出てくる文章に特徴がありそうですし,チャンネル毎に登録しておいても良いかなとは思います
違う意味で受け取ってたらごめんなさい

@Diaboro87
Copy link
Contributor Author

チャンネル毎にDBを作るってことですか?
っていうより,DBに文章を登録するときにどのチャンネルかの情報も一緒に入れるって感じですかね?

後者ですね。

1つカラム作って、「id1 あけましておめでとう 1ch」「id2 あけましておめでとうですわよ 2ch」みたいな

やっぱりチャンネルごとがいいですよね。了解です!!

@Diaboro87
Copy link
Contributor Author

https://github.com/xpjp/conversation-bot-backend

バックエンドリポジトリ作りました。
とりあえず(最低限)動くようにはなりました。

chipstar added a commit that referenced this issue Feb 4, 2018
#75 対話機能品質向上(データ収集機能)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants