日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

我用 tensorflow 实现的“一个神经聊天模型”:一个基于深度学习的聊天机器人

發布時間:2025/3/21 pytorch 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我用 tensorflow 实现的“一个神经聊天模型”:一个基于深度学习的聊天机器人 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我用 tensorflow 實現的“一個神經聊天模型”:一個基于深度學習的聊天機器人

個工作嘗試重現這個論文的結果?A Neural Conversational Model?(aka the Google chatbot).

它使用了循環神經網絡(seq2seq 模型)來進行句子預測。它是用 python 和 TensorFlow 開發。

程序的加載主體部分是參考 Torch的?neuralconvo?from?macournoyer.

現在, DeepQA 支持一下對話語料:

  • Cornell Movie Dialogs?corpus (default). Already included when cloning the repository.
  • OpenSubtitles?(thanks to?Eschnou). Much bigger corpus (but also noisier). To use it, follow?those instructions?and use the flag?--corpus opensubs.
  • Supreme Court Conversation Data (thanks to?julien-c). Available using?--corpus scotus. See the?instructions?for installation.
  • Ubuntu Dialogue Corpus?(thanks to?julien-c). Available using?--corpus ubuntu. See the?instructions?for installation.
  • Your own data (thanks to?julien-c) by using a simple custom conversation format (See?here?for more info).

To speedup the training, it's also possible to use pre-trained word embeddings (thanks to?Eschnou). More info?here.

安裝

這個程序需要一下依賴(easy to install using pip:?pip3 install -r requirements.txt):

  • python 3.5
  • tensorflow (tested with v1.0)
  • numpy
  • CUDA (for using GPU)
  • nltk (natural language toolkit for tokenized the sentences)
  • tqdm (for the nice progression bars)

你可能需要下載附帶的數據讓 nltk 正常工作。

python3 -m nltk.downloader punkt

Cornell 數據集已經包括了。其他的數據集查看 readme 文件到他們所在的文件夾。 (在data/).

網站接口需要一些附加的包:

  • django (tested with 1.10)
  • channels
  • Redis (see?here)
  • asgi_redis (at least 1.0)

Docker 安裝也是支持的,更多詳細的教程參考?here.

運行

聊天機器人

訓練這個模型,直接運行?main.py?。一旦訓練完成,你可以測試結果用?main.py --test
(結果生成在 'save/model/samples_predictions.txt') 或者用?main.py --test interactive?(更有趣).

Here are some flags which could be useful. For more help and options, use?python main.py -h:

  • --modelTag <name>: allow to give a name to the current model to differentiate between them when testing/training.
  • --keepAll: use this flag when training if when testing, you want to see the predictions at different steps (it can be interesting to see the program changes its name and age as the training progress). Warning: It can quickly take a lot of storage space if you don't increase the?--saveEvery?option.
  • --filterVocab 20?or?--vocabularySize 30000: Limit the vocabulary size to and optimize the performances and memory usage. Replace the words used less than 20 times by the?<unknown>?token and set a maximum vocabulary size.
  • --verbose: when testing, will print the sentences as they are computed.
  • --playDataset: show some dialogue samples from the dataset (can be use conjointly with?--createDataset?if this is the only action you want to perform).

To visualize the computational graph and the cost with?TensorBoard, just run?tensorboard --logdir save/.

默認的這個網絡架構是一個標準的 encoder/decoder 有兩個 LSTM layers (隱藏層大小 256) ,然后 vocabulary 的 embedding size 是 32.這個網絡用 ADAM 訓練。最大的句子長度設置為 10個單詞,但是可以增加。

結果

當然,這個網絡并不會很擅長聊天:

Q: Hi A: Hi.Q: What is your name ? A: Laura.Q: What does that mean ? A: I dunno.Q: How old are you ? A: thirty-five.Q: Will Google hire me ? A: No.Q: Tell me the alphabet A: Fuck you.Q: That's not nice A: Yeah.

這里有一些情況它并不能正確回答:

Q: Who is Laura ? A: My brother.Q: Say 'goodbye' A: Alright.Q: What is cooking ? A: A channel.Q: Can you say no ? A: No.Q: Two plus two A: Manny...

預訓練模型

項目截圖:


chatbot_miniature.png

實測截圖:


Screenshot from 2017-09-05 14-47-52.png

一步一步教程:

1.下載這個項目:
https://github.com/Conchylicultor/DeepQA
2.下載訓練好的模型:
https://drive.google.com/file/d/0Bw-phsNSkq23OXRFTkNqN0JGUU0/view
(如果網址不能打開的話,今晚我會上傳到百度網盤,分享到:http://www.tensorflownews.com/)
3.解壓之后放在 項目 save 目錄下
如圖所示


Screenshot from 2017-09-05 14-52-13.png

4.復制 save/model-pretrainedv2/dataset-cornell-old-lenght10-filter0-vocabSize0.pkl 這個文件到 data/samples/

如圖所示:


Screenshot from 2017-09-05 14-55-00.png

5.在項目目錄執行一下命令:

python3 main.py --modelTag pretrainedv2 --test interactive

程序讀取了預訓練的模型之后,如圖:


Screenshot from 2017-09-05 14-57-14.png

聊天機器人資源合集

項目,語聊,論文,教程
https://github.com/fendouai/Awesome-Chatbot

更多教程:

http://www.tensorflownews.com/

DeepQA

https://github.com/Conchylicultor/DeepQA

備注:為了更加容易了解這個項目,說明部分翻譯了項目的部分 readme ,主要是介紹使用預處理數據來運行這個項目。

總結

以上是生活随笔為你收集整理的我用 tensorflow 实现的“一个神经聊天模型”:一个基于深度学习的聊天机器人的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。