【发布时间】:2010-01-16 01:09:47
【问题描述】:
使用 php/sql 在我的网站上创建搜索功能,非常简单 - 只需使用 LIKE 子句对数据库执行 SELECT ALL 查询并在页面上回显结果。我的问题是,如果用户输入错误的搜索查询,我该如何添加拼写建议。除非搜索词与数据库内容完全匹配,否则 Mysql 不会返回任何内容,例如“Dofs”不会返回“Dogs”。那么如何添加拼写建议呢?
谢谢。
【问题讨论】:
使用 php/sql 在我的网站上创建搜索功能,非常简单 - 只需使用 LIKE 子句对数据库执行 SELECT ALL 查询并在页面上回显结果。我的问题是,如果用户输入错误的搜索查询,我该如何添加拼写建议。除非搜索词与数据库内容完全匹配,否则 Mysql 不会返回任何内容,例如“Dofs”不会返回“Dogs”。那么如何添加拼写建议呢?
谢谢。
【问题讨论】:
您会在下面找到一篇由 Peter Norvig 撰写的关于如何编写拼写检查器的优秀文章:
http://www.norvig.com/spell-correct.html
以下两个链接是文章中代码的PHP实现:
http://www.phpclasses.org/browse/package/4859.html http://soundofemotion.com/spellcorrect.txt
希望这会有所帮助。
【讨论】:
PHP 的pspell 扩展怎么样?
<?php
$pspell_link = pspell_new("en");
if (!pspell_check($pspell_link, "dofs")) {
$suggestions = pspell_suggest($pspell_link, "dofs");
foreach ($suggestions as $suggestion) {
echo "Possible spelling: $suggestion<br />";
}
}
?>
此 PHP 扩展要求您安装 aspell 库。
【讨论】:
【讨论】:
除了Joe's excellent solution,您还可以拨打soap电话以提供替代拼写(基于搜索引擎的语言语料库)
雅虎拼写建议: http://developer.yahoo.com/search/web/V1/spellingSuggestion.html
Google 拼写请求: http://code.google.com/apis/soapsearch/reference.html#1_3
【讨论】:
2020年3月来这里,那么https://tigitz.github.io/php-spellchecker/值得一看。
来自文档:
PHP-Spellchecker 是 PHP 的拼写检查抽象库。通过为许多不同的拼写检查器提供统一的界面,您可以在不进行大量重写的情况下更换拼写检查器。
使用 PHP-Spellchecker 可以消除供应商锁定、减少技术债务并提高代码的可测试性。
【讨论】: