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

A A A

Please consider registering
Guest

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?
This topic is locked
Avatar
Jine
Siktar mot toppen
Medlem
Forum Posts: 87
Member Since:
juli 9, 2004
sp_UserOfflineSmall Offline
1
maj 11, 2009 - 9:58 f m
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
Medlem
Medlem
Forum Posts: 8881
Member Since:
mars 14, 2001
sp_UserOfflineSmall Offline
1225848
maj 11, 2009 - 10:14 f m
sp_Permalink sp_Print

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

http://us2.php.net/similar_text

jonte_power
Medlem
Medlem
Forum Posts: 2674
Member Since:
december 24, 2002
sp_UserOfflineSmall Offline
1225872
maj 11, 2009 - 4:51 e m
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:
juli 29, 2005
sp_UserOfflineSmall Offline
1225879
maj 11, 2009 - 5:38 e m
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?

This topic is locked
Forum Timezone: Europe/Stockholm

Most Users Ever Online: 694

Currently Online:
191 Guest(s)

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:

BoxerKix BoxerKix

dtaleteuxh dtaleteuxh

MiltonMouttEV MiltonMouttEV

travCoundUE travCoundUE

TakumiwipHQ TakumiwipHQ

Doctorhoda Doctorhoda

CDailyseartAD CDailyseartAD

SteveWicZL SteveWicZL

ctaletpllk ctaletpllk

StevenPriskBW StevenPriskBW

Forum Stats:

Groups: 11

Forums: 59

Topics: 146630

Posts: 1300967

 

Member Stats:

Guest Posters: 2

Members: 78407

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