所以,假设我有一个简单的句子数组。根据用户输入搜索它并返回最接近的匹配项的最佳方法是什么?
Levenshtein 功能似乎很有希望,但我不认为我想使用它们。用户输入可能很简单highest mountain
,在这种情况下,我想在数组中搜索具有highest mountain
. 如果该确切的短语不存在,那么我想搜索具有highest
ANDmountain
但不是背靠背的句子,依此类推。Levenshtein 函数在每个字符的基础上工作,但我真正需要的是每个单词的基础。
当然,在某种程度上,Levenshtein 函数可能仍然有用,因为我还想考虑句子包含短语highest mountains
(注意 S)或类似内容的可能性。
你有什么建议?是否有任何已经存在的 PHP 系统可以做到这一点?单独的 Levenshtein 函数会是一个适当的解决方案吗?是否有我不知道的基于单词的 Levenshtein 函数?
谢谢!
编辑- 我已经考虑了 MySQL 全文搜索,并且还考虑了将 A) 输入和 B) 每个句子分成单独的单词数组的可能性,然后使用 Levenshtein 函数来解释单词的变化。(颜色,颜色,颜色等)但是,我担心这种方法虽然可能很聪明,但在计算上可能会很繁重。