我想创建一个简单的搜索引擎,在用户输入中查找关键字。我知道我可以使用 strpos 来检查字符串中是否存在单词。但是,我希望用户能够拼写错误的单词。例如,
$userInput = "What year did George Washingtin become president?";
$key_word = "Washington";
someFuntion($userInput, $key_word, $percent);
if($percent > .95){
$user_searched_washington = True;
}
是否有任何 php 函数可以执行此操作,或者您对如何创建执行此操作的函数有建议吗?
您可以尝试利用编辑 https://en.wikipedia.org/wiki/Levenshtein_distancePHP 标准库中的功能。请参阅此处查看文档中的一些示例:http://php.net/manual/en/function.levenshtein.php http://php.net/manual/en/function.levenshtein.php
然而,当您可能的关键字列表增长时,这可能会变得非常昂贵的计算。
编辑:一个最小可行的例子:
<?php
$myInput = 'persident';
$possibleKeywords = ['tyrant', 'president', 'king', 'royal'];
$scores = [];
foreach ($possibleKeywords as $keyword) {
$scores[] = levenshtein($myInput, $keyword);
}
echo $possibleKeywords[array_search(min($scores), $scores)];
// prints: "president"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)