【问题标题】:How to add spelling suggestions to PHP/SQL search script如何向 PHP/SQL 搜索脚本添加拼写建议
【发布时间】:2010-01-16 01:09:47
【问题描述】:

使用 php/sql 在我的网站上创建搜索功能,非常简单 - 只需使用 LIKE 子句对数据库执行 SELECT ALL 查询并在页面上回显结果。我的问题是,如果用户输入错误的搜索查询,我该如何添加拼写建议。除非搜索词与数据库内容完全匹配,否则 Mysql 不会返回任何内容,例如“Dofs”不会返回“Dogs”。那么如何添加拼写建议呢?

谢谢。

【问题讨论】:

    标签: php mysql search


    【解决方案1】:

    您会在下面找到一篇由 Peter Norvig 撰写的关于如何编写拼写检查器的优秀文章:

    http://www.norvig.com/spell-correct.html

    以下两个链接是文章中代码的PHP实现:

    http://www.phpclasses.org/browse/package/4859.html http://soundofemotion.com/spellcorrect.txt

    希望这会有所帮助。

    【讨论】:

    • 我是该课程的作者,我很高兴知道它对你们有用!它确实工作得很好,对于小字符串来说它非常好,并且不需要您安装任何外部依赖项或本机库,但是如果您需要处理大字符串,它可能会变得很慢。所以在这些情况下,我建议使用 aspell 之类的东西。
    【解决方案2】:

    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 库。

    【讨论】:

    • 注:根据上述链接的评论,pspell 在 5.3+ 中不再支持
    【解决方案3】:

    您需要检查以下内容:

    http://phpir.com/spelling-correction

    基本上你需要一本字典和 levenstien 函数。

    【讨论】:

      【解决方案4】:

      除了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

      【讨论】:

      • Google 链接现已失效
      【解决方案5】:

      2020年3月来这里,那么https://tigitz.github.io/php-spellchecker/值得一看。

      来自文档:

      PHP-Spellchecker 是 PHP 的拼写检查抽象库。通过为许多不同的拼写检查器提供统一的界面,您可以在不进行大量重写的情况下更换拼写检查器。

      使用 PHP-Spellchecker 可以消除供应商锁定、减少技术债务并提高代码的可测试性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-14
        • 1970-01-01
        • 2010-12-04
        • 2015-06-04
        • 1970-01-01
        • 1970-01-01
        • 2012-06-09
        相关资源
        最近更新 更多