【问题标题】:PHP Spell Check and Suggestions Similar to Google's "Did you mean: "PHP 拼写检查和建议类似于 Google 的“您的意思是:”
【发布时间】:2016-05-06 15:51:21
【问题描述】:

我正在尝试使用类似于 Google 的“您的意思是:”的系统使用 PHP 对用户查询应用拼写检查。

有没有办法通过插件或 API 做到这一点?如果没有,您有什么建议?

可能的简化代码?

API

<?php
    function checkSpelling($query) {
        //Boolean where false value means a word is spelt wrong in string
        return file_get_contents("http://foo.com/?q=$query");
    }

    function getSuggestions($query) {
        //data with suggestions for word
        return file_get_contents("http://foo.com/?q=$query");
    }

    if (!checkSpelling(foo)) {
        echo getSuggestions(foo);
    }
?>

插件

<?php
    require("plugin.php");

    //plugin functions similar to the functions above are defined already

    if (!checkSpelling(foo)) {
        echo getSuggestions(foo);
    }
?>

注意:Pspell 不是一个选项,因为我有 PHP 5.X.X 并且无法在服务器上安装它。

注意:PHP Spell Check 没有 disired 接口。

【问题讨论】:

  • 这是一个非常好的问题,但我认为这个数据/API 不会是免费的,因为数据挖掘这些信息需要大量时间 + 使用最快的算法来提取它。即使您收集了数据,也很难像 Google 的响应一样快速(甚至缓存)。

标签: php google-search spell-checking


【解决方案1】:

使用 Levenshtein Distance 将是我想到的第一个解决方案,我希望使用自动完成的混合方法,一个常见的拼写错误关键字集,然后 Levenshtein 和/或 SOUNDEX 会让您进入您的可用性范围寻找。是的,这是一个项目。

想到这样的事情的另一条建议是问问自己。 “我真正想做的是什么?”

通常,成熟的 Google 级解决方案可能就像对汤饼干进行喷砂处理,因为您的用例不是他们的。如果目标是以一种非常简单的方式将访问者 A 带到信息 B,那么它们有多种方法可以实现这一目标,这对您来说可能更简单和/或更好,而不是尝试逐字进行逆向工程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-18
    • 2014-12-01
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    相关资源
    最近更新 更多