gpt4 book ai didi

PHP - 如何建议搜索术语, "did you mean...?"

转载 作者:行者123 更新时间:2023-12-02 04:02:22 26 4
gpt4 key购买 nike

当使用未检索到结果的术语搜索数据库时,我想允许“您的意思是......”建议(例如Google)。例如,如果有人寻找“jquyer””,它会输出“你指的是jquery吗?

当然,建议结果必须与数据库内的值相匹配(我使用的是mysql)。

你知道有一个库可以做到这一点吗?我用谷歌搜索过这个,但没有找到任何好的结果。或者也许您知道如何自己构建这个?

最佳答案

快速简单的解决方案包括 SOUNDEX或类似 SOUNDEX 的函数。

简而言之,SOUNDEX 函数最初用于处理常见的拼写错误和姓氏的替代拼写,并且该函数很好地封装了许多常见的拼写错误(在英语中)。由于其重点关注姓氏,原始 soundex 函数可能会受到限制(例如,在第三个或第四个非重复辅音字母之后停止编码),但很容易扩展算法。

此类函数的有趣之处在于,它允许提前计算可以与单词关联的单个值。这与 edit distance 等字符串距离函数不同。 函数(例如 LevenshteinHamming 甚至 Ratcliff/Obershelp)提供相对于 一对字符串

通过预先计算索引字典中所有单词的SOUNDEX值,可以在运行时根据[运行时] 计算用户提供的搜索词的 SOUNDEX 值。此 Soundex 搜索可以系统地完成,作为普通关键字搜索的补充,或者仅在关键字搜索未产生令人满意的记录数量时执行,从而提供用户提供的关键字可能是(是)的提示。 ) 拼写错误。

<小时/>

一种完全不同的方法,仅适用于包含多个单词的用户查询,它基于对字典/数据库运行多个查询,排除一个(或多个)用户提供的关键字。这些替代查询的结果列表提供了不同单词的列表;这个[简化的]单词列表通常足够小,可以应用基于对的距离函数来在列表中选择与据称拼写错误的单词更接近的单词。词频(在结果列表中)可用于限制单词数量(仅评估出现次数超过 x 次的单词的相似度),以及提供权重,以稍微倾斜相似度测量(即偏爱在数据库中“大量”找到的单词,即使它们的相似度测量略少)。

关于PHP - 如何建议搜索术语, "did you mean...?",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1888627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com