zake7749/Chatbot

对话

Closed this issue · 2 comments

请问题主大大,我通过word2vec训练的模型添加进工程文件当中,能够运行成功,每输入一句话都可以得到一句回复,但是有个问题,所有的回复都局限于几句话:“你好”,“我不太明白你的意思”,“原来如此”,“是吗”等等,反反复复,没有针对性回答,这个问题该如何改进呢?我现在把问答界面赋于如下:
你好,我是 MianBot
你好
Handler of '問候' have not implemented
你好
很高兴认识你
我不太明白你的意思
你现在哪
是嗎?
今天的天气怎么样
是嗎?
明天去哪玩
我不太明白你的意思
早上好
是嗎?

因為您在另一個 issue 提出的問題跟這邊一樣,我一併在這裡回答。

首先,這個專案是基於匹配而不是生成,
對於一個用戶的輸入 Q,這個專案所做的是從語料庫中找到一個和 Q 最相似的 Q',
再將 Q' 的答案 A 回覆給使用者。

而在進行相似度比對時,若 Q' 與 Q 的相似度小於某個閥值 (qa_threshold)
則視為 Q 與語料庫中低相關,採用預設的安全性回覆,即「是嗎?」等您所得到的結果。

要解決這個問題,您可以選擇擴充問答語料,或採用更低的 QA 閥值,但請注意,這可能使機器人言不及義,我建議您在自己的應用中評估適合的閥值。此外,一如我在上個 issue 中提到的,我強烈建議將輸入轉成繁體中文,或者選擇將語料轉為簡體中文。對於檢索系統來說,「氣」與「气」是零相關的兩個字。

最後,我注意到您在試圖重現 Demo 中的一些案例。這個系統的問答模組可以分成兩個類型,一是功能性,透過樣板設計對應功能。二是 Chit-chat,採用我上文中提到的檢索機制找到對應答案。在上個 issue 中,您已經將功能性模組關閉了,所以詢問天氣應當是不會有正經的答案,而是一些搞笑性回覆。

@zake7749 谢谢您的回答!