gpt4 book ai didi

php - 如何从数据库中获取 "redefine search"或更正 "misspelling"

转载 作者:行者123 更新时间:2023-11-29 05:45:24 25 4
gpt4 key购买 nike

我想在我的网站中添加新的搜索功能。我正在使用 PHP 和 MySQL。MySQL 数据库包含用户将要搜索的项目的表,对于每个项目都有一个“关键字”列,该列是逗号分隔的关键字“EXAMPLE:cat,dog,horse”。用户在我的网站上搜索后,我想得到让我说“85%”与他的搜索关键字相似的词,这是为了重新定义搜索。对于拼写错误,我需要一种服务或提供关键字正确或拼写错误的服务,以便我进行一些更正并检查数据库中是否存在这些更正,然后将这些更正提供给用户以更改他的搜索关键字。

我不是在这里寻求解决方案......但如果你能以一种或另一种方式指导我,那就太好了。

最佳答案

关键在于您对“85% 相似度”的看法。以下是一些想法:

相似词表

您可以定义一个表格,在其中列出关键字的常见拼写错误。然后,您必须增强搜索数据库的方式,以将常见的拼写错误映射到正确的值。

相似词查找

执行搜索时,使用库生成相似词并搜索所有这些词。在发送搜索之前,您可以使用任何类型的拼写库来生成可能的单词匹配项。或者根据 Edit Distance 编写自己的算法。

仅在需要时检查:由于您使用的是 PHP,您可以考虑使用 pspell。您可以先调用 pspell_check 来查看单词是否拼写正确。然后调用 pspell_suggest 获取建议。

See this link for an example.

使用数据库功能

例如,MySQL 有一个 SOUNDS_LIKE 运算符。您可以搜索 WHERE keyword SOUNDS_LIKE 'kat' 并(大概)获取 catMore info is on the documentation page ,它提醒您注意一些限制(例如仅限英语和 UTF-8)。


这听起来像是一个相当普遍的问题,所以也许还有其他更规范的解决方案来解决这个问题。也许有一些特定于您正在使用的语言(或在数据库接口(interface)层中)可以为您抽象它。

前两个应该可以让您满足 85% 相似度的概念。我不知道第三个选项的效果如何,但它“听起来很酷”。

关于php - 如何从数据库中获取 "redefine search"或更正 "misspelling",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2788192/

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