dynamic seq2seq
1.0.0
Google은 최근 seq2seq 프로젝트를 오픈소스화했습니다. google seq2seq
텐서플로우는 원래 버킷을 대체하기 위해 Dynamic_rnn을 출시했습니다. 이 프로젝트는 Dynamic_rnn의 seq2seq 모델을 기반으로 합니다.
여기서는 몇 가지 대화 예측을 구축했는데, 이론적으로 말뭉치가 많을수록 모델이 더 좋아지기 때문에 여기서는 설명하지 않겠습니다.
대화 자료는 데이터 디렉토리의 Q.txt A.txt에 있으며 자신의 대화 자료로 대체할 수 있습니다.
# 新增小黄鸡语料
# 添加
python prepare_dialog.py 5000
seq = Seq2seq()
# 训练
seq.train()
# 预测
seq.predict("天气")
# 重新训练
seq.retrain()
me > 天气
AI > 地点: 重庆
气温: 7
注意: 天气较凉,较易发生感冒,请适当增加衣服。体质较弱的朋友尤其应该注意防护。
이 프로젝트에는 액션 지원이 추가되었으며, 여러 세션에 대한 지원이 나중에 추가될 예정입니다.
action.py 파일에서 다음과 같은 고유한 작업 태그와 해당 인터페이스를 등록합니다.
# 注意:参数为固定参数
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
}
팁: 인터페이스의 매개변수는 일시적으로 수정되었으며 나중에 업데이트됩니다.
동시에 훈련 코퍼스는 다음과 같이 설계되었습니다.
# Q.txt
天气
# A.txt
__Weather__