Python 当问题字符串反转时,Chatter bot返回错误响应
yaml文件:Python 当问题字符串反转时,Chatter bot返回错误响应,python,chatterbot,Python,Chatterbot,yaml文件: - - Invalid Password - contact xyz@gmail.com 我正在使用python Chatterbot库,如果我询问无效密码,它将返回响应联系人xyz@gmail.com,但如果我询问密码无效,它会给出我在创建聊天机器人实例时设置的默认响应 bot = ChatBot( 'Norman', storage_adapter='chatterbot.storage.SQLStorageAdapter', input_ada
- - Invalid Password
- contact xyz@gmail.com
我正在使用python Chatterbot库,如果我询问无效密码,它将返回响应联系人xyz@gmail.com,但如果我询问密码无效,它会给出我在创建聊天机器人实例时设置的默认响应
bot = ChatBot(
'Norman',
storage_adapter='chatterbot.storage.SQLStorageAdapter',
input_adapter='chatterbot.input.TerminalAdapter',
output_adapter='chatterbot.output.TerminalAdapter',
logic_adapters=[
{
'import_path': 'my_logic_adapter.MyLogicAdapter',
"statement_comparison_function": "chatterbot.comparisons.JaccardSimilarity",
"response_selection_method": "chatterbot.response_selection.get_random_response",
'threshold': 0.65,
'default_response': 'I am sorry, but I do not understand.'
}
],
filters=["chatterbot.filters.RepetitiveResponseFilter"],
preprocessors=[
'chatterbot.preprocessors.clean_whitespace',
'chatterbot.preprocessors.unescape_html',
'chatterbot.preprocessors.convert_to_ascii'
],
database='./database.sqlite3',
trainer='chatterbot.trainers.ListTrainer'
)
bot.set_trainer(ListTrainer)
问题是Chatterbot将非结构化和未经训练的数据存储到SQLite数据库中。如果您输入一个反向字符串,并且响应没有存储在YAML文件中,它将无法理解,因此它将获取一些随机响应。您需要训练此类数据(增加频率)。根据我的理解,Jaccard相似性在这种情况下也没有帮助
如果您只插入密码,没有其他密码字存储在YAML,那么我认为它会给出正确的答复。Chatterbot本身是用NLP创建的,但是您需要根据需要更改逻辑适配器的代码。问题是Chatterbot将非结构化和未经训练的数据存储到SQLite DB中。如果您输入一个反向字符串,并且响应没有存储在YAML文件中,它将无法理解,因此它将获取一些随机响应。您需要训练此类数据(增加频率)。根据我的理解,Jaccard相似性在这种情况下也没有帮助
如果您只插入密码,没有其他密码字存储在YAML,那么我认为它会给出正确的答复。Chatterbot本身是用NLP创建的,但您需要根据需要更改逻辑适配器的代码。我已将阈值设置为字符串匹配的65%,在反向字符串情况下,它是100%匹配,为什么我需要用反向问题训练bot?那么使用NLP的意义是什么呢?为什么JaccardSimilarity没有帮助?通过字符串匹配计算的比率不是0.65,根据我的程序是0.50。虽然阈值设置过高是您无法获得准确结果的主要原因,但我已将阈值设置为字符串匹配的65%,在反向字符串情况下,它是100%匹配,为什么我需要使用反向问题训练机器人?那么使用NLP的意义是什么呢?为什么JaccardSimilarity没有帮助?通过字符串匹配计算的比率不是0.65,根据我的程序是0.50。虽然阈值设置过高是无法获得准确结果的主要原因