Jump to content

Recommended Posts

using pspell, is it possible to get words that would be best in the current phrase?

 

For example take this phrase: who is the fastest pwrson in the world?

 

The word person was misspelled as the person typed a "w" by accident and didn't notice.

 

pspell returns the word "prison" as the best result. When typed into Google, Google new that you meant the word "person", so how do you get pspell to be more accurate according to words around the misspelled word?

Link to comment
https://forums.phpfreaks.com/topic/185074-pspell/
Share on other sites

Perhaps something like this might help you out a little bit..

 

http://au2.php.net/manual/en/function.levenshtein.php

I am not sure how that would help, could you explain?

 

this is actually grammer you can check the full statement, like in the example who and prison won't go together it will be which is the fastest prison however this is difficult to do you have alot to do :P

do you have any suggestions for grammar? I wouldn't know where to start...

Link to comment
https://forums.phpfreaks.com/topic/185074-pspell/#findComment-977202
Share on other sites

<?php
// input misspelled word
$input = 'carrrot';

// array of words to check against
$words  = array('apple','pineapple','banana','orange',
                'radish','carrot','pea','bean','potato');

// no shortest distance found, yet
$shortest = -1;

// loop through words to find the closest
foreach ($words as $word) {

    // calculate the distance between the input word,
    // and the current word
    $lev = levenshtein($input, $word);

    // check for an exact match
    if ($lev == 0) {

        // closest word is this one (exact match)
        $closest = $word;
        $shortest = 0;

        // break out of the loop; we've found an exact match
        break;
    }

    // if this distance is less than the next found shortest
    // distance, OR if a next shortest word has not yet been found
    if ($lev <= $shortest || $shortest < 0) {
        // set the closest match, and shortest distance
        $closest  = $word;
        $shortest = $lev;
    }
}

echo "Input word: $input\n";
if ($shortest == 0) {
    echo "Exact match found: $closest\n";
} else {
    echo "Did you mean: $closest?\n";
}

?> 

 

This is what you need to start with, using levenshtein will help you do what you want to do.

 

Example:

 

Users inputs: bathrom

Output: No exact matches found.

Did you mean: $closest (in this case would be bathroom.)

Link to comment
https://forums.phpfreaks.com/topic/185074-pspell/#findComment-977210
Share on other sites

Yeah, what you are talking about is finding the best word when compared to the context its in. I don't believe pspell takes the context into account. Similarly Levenshtein only considers the one word you have, and not what the context is. Besides, all Levenshtein would do is give you the difference between one word and another, and has no bearing on definition or whatever

Link to comment
https://forums.phpfreaks.com/topic/185074-pspell/#findComment-977352
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.