The Little Guy Posted December 14, 2009 Share Posted December 14, 2009 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? Quote Link to comment https://forums.phpfreaks.com/topic/185074-pspell/ Share on other sites More sharing options...
Buddski Posted December 14, 2009 Share Posted December 14, 2009 Perhaps something like this might help you out a little bit.. http://au2.php.net/manual/en/function.levenshtein.php Quote Link to comment https://forums.phpfreaks.com/topic/185074-pspell/#findComment-976926 Share on other sites More sharing options...
rajivgonsalves Posted December 14, 2009 Share Posted December 14, 2009 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 Quote Link to comment https://forums.phpfreaks.com/topic/185074-pspell/#findComment-976930 Share on other sites More sharing options...
The Little Guy Posted December 14, 2009 Author Share Posted December 14, 2009 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 do you have any suggestions for grammar? I wouldn't know where to start... Quote Link to comment https://forums.phpfreaks.com/topic/185074-pspell/#findComment-977202 Share on other sites More sharing options...
The Eagle Posted December 14, 2009 Share Posted December 14, 2009 <?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.) Quote Link to comment https://forums.phpfreaks.com/topic/185074-pspell/#findComment-977210 Share on other sites More sharing options...
Buddski Posted December 14, 2009 Share Posted December 14, 2009 the problem with levenshtein is that you need a list of words to compare the input word with... Quote Link to comment https://forums.phpfreaks.com/topic/185074-pspell/#findComment-977337 Share on other sites More sharing options...
The Little Guy Posted December 14, 2009 Author Share Posted December 14, 2009 I'm fairly sure that levenshtein wont help me in what I am trying to accomplish... I think that I need grammar software to do what I want... Quote Link to comment https://forums.phpfreaks.com/topic/185074-pspell/#findComment-977338 Share on other sites More sharing options...
mikesta707 Posted December 14, 2009 Share Posted December 14, 2009 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 Quote Link to comment https://forums.phpfreaks.com/topic/185074-pspell/#findComment-977352 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.