yaml文件:
- - 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)
答案 0 :(得分:0)
问题是Chatterbot将非结构化和未经训练的数据存储到SQLite DB中。如果输入反向字符串,但响应未存储在YAML文件中,它将无法理解,因此将获取一些随机响应。您需要训练此类数据(增加频率)。而且据我了解,在这种情况下,Jaccard相似性也无济于事。
如果仅插入密码,而YAML中没有存储其他密码字词,那么我认为它将给出正确的答复。 Chatterbot本身是使用NLP创建的,但是您需要根据需要更改Logic适配器的代码。