O Google recentemente abriu o código-fonte de um projeto seq2seq google seq2seq
tensorflow lançou dynamic_rnn para substituir o bucket original. Este projeto é baseado no modelo seq2seq de dynamic_rnn.
Aqui construí algumas previsões de conversação. O corpus chinês é relativamente escasso. Teoricamente, quanto mais corpus, melhor será o modelo. No entanto, muitos novos problemas serão encontrados, por isso não os explicarei aqui.
Os materiais de diálogo estão em Q.txt A.txt no diretório de dados e podem ser substituídos por seus próprios materiais de diálogo.
# 新增小黄鸡语料
# 添加
python prepare_dialog.py 5000
seq = Seq2seq()
# 训练
seq.train()
# 预测
seq.predict("天气")
# 重新训练
seq.retrain()
me > 天气
AI > 地点: 重庆
气温: 7
注意: 天气较凉,较易发生感冒,请适当增加衣服。体质较弱的朋友尤其应该注意防护。
Este projeto adicionou suporte para ação e você pode personalizar suas próprias funções. O suporte para várias rodadas de sessões será adicionado posteriormente!
No arquivo action.py, registre sua própria tag de ação e interface correspondente, como:
# 注意:参数为固定参数
def act_weather(model, output_str, raw_input):
#TODO: Get weather by api
page = requests.get("http://wthrcdn.etouch.cn/weather_mini?city=重庆")
data = page.json()
temperature = data['data']['wendu']
notice = data['data']['ganmao']
outstrs = "地点: %sn气温: %sn注意: %s" % ("重庆", temperature.encode("utf-8"), notice.encode("utf-8"))
return outstrs
actions = {
"__Weather__":act_weather
}
Dicas: Os parâmetros da interface estão temporariamente fixos e serão atualizados posteriormente.
Ao mesmo tempo, o corpus de treinamento é desenhado da seguinte forma:
# Q.txt
天气
# A.txt
__Weather__