如何在PHP中找到拼写错误的单词的类似单词?

2022-08-31 00:20:40

我将解释我的问题:

我有一个名为 的数据库表。它有两列:和 。countryIDname

当我想搜索,但拼错了单词:(而不是),我不会从DB得到任何结果。'paris''pares''e''i'

我希望系统建议类似的单词,这些单词可以帮助搜索。

因此,我正在寻找帮助编写脚本,该脚本可以从DB中提出建议,其中包含类似的单词,例如:paris,paredes,...等。


答案 1

在PHP中,你应该使用元音,它比soundex更准确。

但是您的问题是从数据库中获取数据。你没有提到DB。在MySQL中,您可以使用SOUNDEX函数。您只需要更改查询中的 where 子句

...where city = '$input_city'

... where soundex(city) = soundex('$input_city')

或者更好的是,您可以使用SOUND LIKE运算符作为

... where city sounds like '$input_city'

答案 2

soundex 将返回表示其声音的单词的数字代码。听起来相似的单词将具有相同的 soundex 代码。您可以有一个表格,其中包含单词及其 soundex 代码,您可以使用这些代码来查找发音相似的单词。然后,您可以使用它们的列文辛距离对它们进行排序。

如果您正在寻找更简单的东西,并且您只想处理数据库查询中的拼写错误,则可以执行

select * from country where city SOUNDS LIKE 'Paris'而不是select * from country where city='Paris'


推荐