Mac Neural Conversational Model 自动聊天机器人实验


Paper1:https://arxiv.org/pdf/1409.3215v3.pdf
Paper2:https://arxiv.org/pdf/1506.05869v3.pdf
先让我们看看大概的效果

1.png


0.torch环境
读者自备torch环境
还需要nn、rnn、async三个包
sudo ~/torch/install/bin/luarocks install nn
sudo ~/torch/install/bin/luarocks install rnn
sudo ~/torch/install/bin/luarocks install async

1.下载代码与语料
git clone --recursive https://github.com/rustcbf/chatbot-zh-torch7 #代码
git clone --recursive https://github.com/rustcbf/dgk_lost_conv #语料
git clone --recursive https://github.com/chenb67/neuralconvo #以上两个在此源码进行改进,可作为参考

2.语料选择
语料除了上述提供的语料,可自行生成自己的语料
cd dgk_lost_conv #参考cvgen.py
如需查看语料内容
python toraw.py a.cov b.txt
cd chatbot-zh-torch7
笔者原先直接使用xiaohuangji50w_fenciA.conv(估计是小黄鸡聊天机器人语料,50w条数据),后来训练时间觉得太长,换了作者提供的小样本。
更改样本的修改cornell_movie_dialogs.lua 第18行代码,建议先不修改,因为笔者在作者提供的小样本下效果不是很好,数据应该没有经过处理。

3.训练
th train.lua #可加参数--cuda、--opencl、--hiddenSize等等
在 data 文件夹生成有examples.t7,model.t7、vocab.t7

4.开始聊天
修改eval.lua
在源码后边添加
print("\nType a sentence and hit enter to submit.")
print("CTRL+C then enter to quit.\n")
while true do
  io.write("you> ")
  io.flush()
  io.write(say(io.read()))
end


th eval.lua #直接命令行

2.png


th eval—server.lua

3.png
已邀请:

赞同来自: Cyril


你好,请问我训练到这里报错了是为什么呀?
Loading vocabulary from data/vocab.t7 ...   

Dataset stats:  
  Vocabulary size: 822  
         Examples: 545  
dgk ending  

-- Epoch 1 / 30 
    
/home/zhang/torch/install/bin/luajit: ./seq2seq.lua:50: attempt to call field 'recursiveCopy' (a nil value)
stack traceback:
    ./seq2seq.lua:50: in function 'forwardConnect'
    ./seq2seq.lua:67: in function 'train'
    /home/zhang/mytest3/train.lua:90: in main chunk
    [C]: in function 'dofile'
    ...hang/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
    [C]: at 0x00405d50
Program completed in 0.91 seconds (pid: 7180).

要回复问题请先登录注册

返回顶部