PHP: Jämföra två textstycken och bedömma likheten?|Programmering / Grafisk formgivning|Forum|Nordichardware

Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
The forums are currently locked and only available for read only access
sp_Feed sp_TopicIcon
PHP: Jämföra två textstycken och bedömma likheten?
Avatar
Jine
Siktar mot toppen
Medlem
Forum Posts: 87
Member Since:
July 9, 2004
sp_UserOfflineSmall Offline
1
May 11, 2009 - 9:58 am
sp_Permalink sp_Print

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!
Jag arbetar själv som utvecklare med PHP som primärinriktning, men jag klarar inte teorin för denna uppgift.
Kanske nån här på forumet som har mer kunskap eller kan visa mig i rätt riktning?

Help me out!

// Jim

Avatar
Snorch
Member
Medlem
Forum Posts: 8881
Member Since:
March 14, 2001
sp_UserOfflineSmall Offline
1225848
May 11, 2009 - 10:14 am
sp_Permalink sp_Print

Bör vara rätt lätt med similar_text funktionen:

http://us2.php.net/similar_text

jonte_power
Member
Medlem
Forum Posts: 2674
Member Since:
December 24, 2002
sp_UserOfflineSmall Offline
1225872
May 11, 2009 - 4:51 pm
sp_Permalink sp_Print

Asså,

Det lär kräva en del CPU, minne och tid.
Speciellt om du har mycket trafik.

Det du kan göra är helt enkelt att sätta in alla ord i inlägget i en array och sedan loopa igenom databasen och leta var dessa ord förekommer.

I princip en omöjlig uppgift att göra i realtid.

Google har något liknande med sina duplicate content filter.
Dock görs detta ej i realtid och sajterna delas säkerligen in i kategorier för att inte hela databasen ska behöva sökas igenom.

Skulle istället jobba mot en lista med blacklistade keywords.
T ex viagra, sex, poker osv, skriver du ned nåt av dessa ord får du bekräfta med en capacha. Träffar du flera ord blir det IP-block + bann.

Samma användare får max posta 1 ggr / 30 sek samt max 20 ggr / h.

Skrivs en URL in måste detta bekräftas mot en capacha.

Aldrig validera formulär med javascript.

Sätta vissa IP serier i hårdare kontroll (t ex ryska och asiatiska).

Alla användares 10 första inlägg måste valideras mot en capacha.

Avatar
Crida498
Mina inlägg skrivs i binär kod
Medlem
Forum Posts: 157
Member Since:
July 29, 2005
sp_UserOfflineSmall Offline
1225879
May 11, 2009 - 5:38 pm
sp_Permalink sp_Print

Uppgiften i sig är enkel, det svåra är att säga "vad gör två texter lika".

Du kan t.ex. jämföra tecken för tecken och få en "likhets-nivå" du kan jämföra ord för ord, räkna ord osv; den stora frågan är hur du vill att den ska jämföra. Man kan även ta synonymer i hänsyn i en jämförelse; eller räkna stavelser för att jämföra melodin i olika meningar.
Man skulle även kunna jämföra varje rad för sig; där likhet antas finnas så länge två rader är identiska.
Eller vad sägs om att helt enkelt räkna antalet bokstäver? Varje språk har sin speciella profil, vilket gör att varje text; om materialet är tillräckligt stort, skulle antagligen vara unikt, och felstavelser och liknande skulle inte få så stor påverkan på det hela.

Fundera på hur lika följande texter är:
Lisa är arg på Erik
Erik är arg på Lisa

Erik på Lisa är arg
Erik är arg på lisa

Lisa är förbannad på Erik
Lisa är arg på Erik

Lisaa är arg
Lisa är arg

Abcdefg
Gfedcba

==============

Så, vad är likhet?

Forum Timezone: Europe/Stockholm
Most Users Ever Online: 1030
Currently Online:
Guest(s) 640
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Andreas Galistel: 16287
Jonas Klar: 15897
ilg@dd: 10810
Nyhet: 10607
Mind: 10550
Ctrl: 10355
Gueno: 9881
Guest: 9344
Snorch: 8881
Callister: 8468
Newest Members:
PetrbonFU PetrbonFU
Karine Bembry
Dolores Mcdaniels
Anibal McLeish
Francisca Alt
Alfie Everhart
Lester Huitt
Orlando Jorgensen
Mikki Lundgren
Dakota Kozlowski
Forum Stats:
Groups: 11
Forums: 59
Topics: 146630
Posts: 1300967

 

Member Stats:
Guest Posters: 2
Members: 79425
Moderators: 0
Admins: 11
Administrators: nordicadmin, Henrik Berntsson, Anton Karmehed, Carl Holmberg, Joel Oscarsson, Mikael Linnér, Mikael Schwartz, Andreas Paulsson, Nickebjrk, Mattias Pettersson, EmxL