Google hat kürzlich ein seq2seq-Projekt als Open Source bereitgestellt: Google seq2seq
tensorflow hat „dynamic_rnn“ gestartet, um den ursprünglichen Bucket zu ersetzen. Dieses Projekt basiert auf dem seq2seq-Modell von „dynamic_rnn“.
Hier habe ich einige Konversationsvorhersagen erstellt. Theoretisch gilt: Je mehr Korpus, desto besser wird das Modell sein, daher werde ich sie hier nicht erklären.
Die Dialogmaterialien liegen in Q.txt A.txt im Datenverzeichnis und können durch eigene Dialogmaterialien ersetzt werden.
# 新增小黄鸡语料
# 添加
python prepare_dialog.py 5000
seq = Seq2seq()
# 训练
seq.train()
# 预测
seq.predict("天气")
# 重新训练
seq.retrain()
me > 天气
AI > 地点: 重庆
气温: 7
注意: 天气较凉,较易发生感冒,请适当增加衣服。体质较弱的朋友尤其应该注意防护。
Dieses Projekt verfügt über eine Aktionsunterstützung, und Sie können Ihre eigenen Funktionen anpassen. Die Unterstützung für mehrere Sitzungsrunden wird später hinzugefügt!
Registrieren Sie in der Datei action.py Ihr eigenes Aktions-Tag und die entsprechende Schnittstelle, wie zum Beispiel:
# 注意:参数为固定参数
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
}
Tipps: Die Parameter der Schnittstelle sind vorübergehend festgelegt und werden später aktualisiert.
Dabei ist der Ausbildungskorpus wie folgt aufgebaut:
# Q.txt
天气
# A.txt
__Weather__