需要 python3+ tensorflow-1.0
由于tensorflow升级 本教程只适合tesorflow-1.0版本
谷歌最近开源了一个seq2seq项目 google seq2seq
这个项目加入了beam search,但是非官方的项目,并且该项目是直接从文件里面读数据,所以需要修改代码。
tensorflow推出了dynamic_rnn替代了原来的bucket,本项目就是基于dynamic_rnn的seq2seq模型。
这里我构建了一些对话预料,中文语料本身就比较稀缺,理论上来说语料越多模型的效果越好,但会遇到很多新的问题,这里就不多作说明。
我在模型中加入了Action,可以实现简单的功能,算是Demo吧。
对话语料分别在根目录下 question.txt answer.txt中,可以替换成你自己的对话语料。
然后使用preprocessing.py自动化预处理。
# 预处理
python3 preprocessing.py
# 训练
python3 seq2seq.py train
# 重新训练
python3 seq2seq.py retrain
# 预测
python3 seq2seq.py infer
me > 你的名字
RR > 我叫RR
me > 你
RR > 我是RR呀,请问有什么可以帮您吗?
me > 天气
RR > 地点: 重庆
气温: 27
注意: 各项气象条件适宜,无明显降温过程,发生感冒机率较低。
me > 北京的天气
RR > 地点: 北京
气温: 26
注意: 各项气象条件适宜,无明显降温过程,发生感冒机率较低。
me > 我是谁
RR > 您是yw
me > 修改我的名字
ai > 您需要我叫您什么?
me > 程序猿
RR > 好的以后就叫您程序猿了
me > 我的名字
RR > 您是程序猿