简体   繁体   中英

PHP Spell Check and Suggestions Similar to Google's “Did you mean: ”

I am trying to apply a spell check to users' queries using a similar system to Google's "Did you mean: " using PHP.

Google查询不正确 更正了Google查询

Is there a way to do this with a plugin or API? If not, what are your suggestions?

Possible Simplified Code?

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);
    }
?>

Plugin

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

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

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

NOTE: Pspell is not an option because I have PHP 5.XX and am unable to install it on the server.

NOTE: PHP Spell Check does not have the disired interface.

Using Levenshtein Distance would be the first solution that come to mind and I would expect a hybrid approach of auto-complete, a common misspelling keyword set and then Levenshtein and/or SOUNDEX would get you in the usability ballpark that you're looking for. And yeah, it's a bit of a project.

Another piece of advice that comes to mind with things like this is to ask yourself. "What is it that I'm really trying to do?"

Often times a fullblown Google grade solution may be like sandblasting a soup cracker because your use case isn't theirs. If the goal is getting Visitor A to Information B in a nice easy way, they're are a number of ways to accomplish that that may be simpler and/or better for you instead of trying to reverse engineer something verbatim.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM