如何处理聊天机器人问题中的缩写?



我有一个场景,用户可以以不同的方式向聊天机器人提出相同的问题。例如,问题可以是"什么是结核病?",也可以是"什么是过渡福利?"。两个问题的答案相同,但提问的方式不同。我在我的代码中使用levenshtein_distance进行语句比较,但在这种情况下不起作用,因为它逐个字母地匹配修正。在这种情况下,我该如何比较我的陈述?我应该为我的编辑数据提供这两个问题,还是有其他聪明的方法可以做到这一点。请指教。

我得到了一个解决方案。我们可以编写自己的预处理函数并在聊天机器人实例中调用它。

bot = ChatBot("Norman",
read_only=True,
preprocessors=[
'chatterbot.preprocessors.TB_Correction'
])

在 Preprocessors.py 中(存在于 C:\Users\User_Name\AppData\Local\Continuum\Anaconda3\Lib\site-packages\chatterbot 下(,我们可以为其添加一个函数,如下所示:

def TB_Correction(chatbot,statement):
'''
Replacing TB with Transition Benefits
'''
import re
if 'TB' in statement.text:
statement.text = re.sub(r'[T][B]','Transition Benefits',statement.text)
return statement

最新更新