Kom ihåg mig?
Home Menu

Menu


PHP: Jämföra två textstycken och bedömma likheten?

Ämnesverktyg Visningsalternativ
Oläst 2009-05-11, 11:49 #1
Jines avatar
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Feb 2005
Inlägg: 1 032
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
Jines avatar
 
Reg.datum: Feb 2005
Inlägg: 1 032
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
Jine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-11, 12:14 #2
Perben Perben är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2009
Inlägg: 393
Perben Perben är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2009
Inlägg: 393
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...
Perben är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-11, 12:17 #3
Jines avatar
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Feb 2005
Inlägg: 1 032
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
Jines avatar
 
Reg.datum: Feb 2005
Inlägg: 1 032
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!
Jine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-11, 13:28 #4
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Originally posted by Jine@May 11 2009, 12:17
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
Förmodar att dessa är ganska resurskrävande om man har större trafikmängder?
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-11, 13:32 #5
Jines avatar
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Feb 2005
Inlägg: 1 032
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
Jines avatar
 
Reg.datum: Feb 2005
Inlägg: 1 032
Citat:
Ursprungligen postat av tartareandesire
Citat:
Ursprungligen postat av Jine
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

Förmodar att dessa är ganska resurskrävande om man har större trafikmängder?
Det tror jag nog säkert att dom är.
Dock ska dom inte användas vid varje sidvisning eller liknande, utan bara batchuppdatera ett sökindex.

Citat:
20000 chars+ took 3-5 secs to process, anything else (10000 and below) took a fraction of a second.
Fortunately for me, there was only a handful of instances with >20000 chars which I couldn't get a comparison % for.
Jine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-11, 14:46 #6
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Levenshtein fungerar helt enkelt grymt bra..
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-11, 15:11 #7
taz76 taz76 är inte uppkopplad
Flitig postare
 
Reg.datum: Jan 2008
Inlägg: 388
taz76 taz76 är inte uppkopplad
Flitig postare
 
Reg.datum: Jan 2008
Inlägg: 388
Zend Framework har en klass för Lucene-sökningar/index
taz76 är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 09:06.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017