类 BestMatch(LogicAdapter) 中的错误
作者: petasis创建于 2019年8月13日更新于 2025年10月25日
标签possible bug
我无法理解为什么最佳匹配适配器的工作方式是这样的: 1) 它使用"大词组"搜索来匹配数据库中的条目与输入语句。 2) 然后它使用莱文斯坦距离来找到与输入语句最接近的匹配。 到目前为止,一切都很好,我们从数据库中获得了一个有信心的结果。 如果在数据库中找不到任何结果,我们就获得了输入语句。 然后: 3) 为最佳匹配搜索响应。 使用字段"search_in_response_to"。 但为什么? 我们从数据库中获得了一个有信心的精确"文本"。 回到大词组中,会丢弃莱文斯坦距离所做的所有工作,并重新收集莱文斯坦距离过滤的所有内容! 结果是,您得到的答案与问题无关,尤其是对于短问题。 4) 然后,将输入语句作为替代方案进行搜索。 目前,这将永远不会执行。 我建议在尝试执行步骤 3 和 4 之前,只对"in_response_to"进行精确搜索。 并将"process"方法分解为子方法,以便更容易进行子类化 :-)
内容来源: gunthercox/ChatterBot