![]() |
Hej!
Jag har en svår nöt att knäcka, som mest är i idée stadiet just nu. Jag vill jämföra två stycken textstycken/filer/whatever och komma fram till hur LIKA dom är - i procent! Kort sagt ska det vara ett avancerat spamskydd samt "korskoppling" för att bedömma om nån postat ett ett liknande inlägg med en "hitrate" över 90% tex? Hur skulle man åstakomma detta i PHP? Jag kommer inte ens fram till en teoretisk lösning som kan fungera! Help me out! // Jim |
Normal brukar man använda Vector Space Model (http://en.wikipedia.org/wiki/Vector_space_model) för sådant och jämföra texter genom hur orden ligger i "ordrymden" men det kanske är lite jobbigt om du inte har en persistent service (PHP).
Jag tror det finns PHP-portningar av Lucene (http://lucene.apache.org/java/docs/). Där kan du beräkna det s.k Levenstein-avståndet mellan texter med enkla queries (kallas FuzzyQuery på Lucene-lingo), vilket egentligen säger hur många bokstavssubstitutioner du behöver göra för att förvandla en text till den andra... det är också en ganska vanlig metodik för att bedömma likheten på texter. I andra ord, det är inga snabbhack direkt... |
Jag.. hittade.. snabbhack!
http://us2.php.net/levenshtein http://us2.php.net/similar_text Fyf*n vad jag älskar PHP ibland (: Problem solved, and thanks for your post above! |
Citat:
|
Citat:
Dock ska dom inte användas vid varje sidvisning eller liknande, utan bara batchuppdatera ett sökindex. Citat:
|
Levenshtein fungerar helt enkelt grymt bra..
|
Zend Framework har en klass för Lucene-sökningar/index
|
Alla tider är GMT +2. Klockan är nu 15:14. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson