detection of similarity between documents
DESCRIPTION
Detection of similarity between documents. Axel Bengtsson [email protected] Ola Olsson [email protected]. Mål. Målet med projektet var att hitta dokument som är mycket lika varandra rent syntaktiskt Användningsområden - PowerPoint PPT PresentationTRANSCRIPT
Detection of similarity between documents
Axel Bengtsson [email protected]
Ola Olsson [email protected]
Mål
• Målet med projektet var att hitta dokument som är mycket lika varandra rent syntaktiskt
• Användningsområden– Man kan låta vår applikation köras nyhetsartiklar,
böcker, etc för att visa likheter.– Känna igen uppsats-fusk, fusk på skrivningar– Lätt att hitta skillnader mellan avtal, revisioner på
dokument.
Algoritmer
• Vårt program baseras på två algoritmer som snarare kompletterar varandra än baserar sig på varandras in- och utdata.
• TDT (TF-IDF & Cosine similarity rate)– Ordfrekvens– Antalet dokument orden befinner sig
• LCS– kontexten
Klassdiagram
Viktberäkning (TF-IDF)
• Den här modulen innehåller algoritmen som ger två dokument en vikt som är beroende på hur lika de är (vikten är givetvis symmetrisk).
• Modulen består av:– TF-IDF och Cosine
similarity rating– TF-IDF – Term Frequence
Inverted Document Frequence
Cosine similarity rating
• Som indata tar den här funktionen två dokument och som utdata ges ett poäng (deras likhetspoäng).
• 0 om de olika• 1 om de lika
LCS – Longest Common Subsequence
LCS – Longest Common Subsequence
Iterativ lösningfor(int x=i;x>=0;++x){ for(int y=j;y>0;++y) { if (X[x]==0 || Y[y]==0) ResultMatrix[x][y]=""; if (X[x]==Y[y]) ResultMatrix[x][y] = ResultMatrix[x+1][y+1] + X[x]; else ResultMatrix[x][y] = max(ResultMatrix[x][y+1],
ResultMatrix[x+1][y]); }}
LCS – Longest Common Subsequence
GUI
• GUI:t används för att välja filer som indata och sedan visa grafiskt vår LCS algoritm. LCS för dokumenten visas i röd text i båda dokumenten.
• GUI:t visar två dokument åt gången, alla 2-par av dokument kan väljas med upp och ner knappar.
• Som standard visas LCS:en på det paret som har högst cosine similarity rate.
DemonstrationFil1
Hello everybody. this is a test Ola and Axel.Fil2
Hello anyone. What may be the deal.Fil3
Hello anybody. Great program Ola and Axel.4 observationer som borde stämma när vi kör filerna som indata till vårt program
1. Ordet “Hello” ska få 0 i vikt då log21= 0.2. File1 and File3 är det paret som borde få högst cosine similarity rate då de delar orden ”Ola and Axel”.3. Fil1 till Fil2 och Fil2 till Fil3 borde vara värda 0 då de inte har något gemensamt ord överhuvudtaget.4. LCS mellan File1 och File3 borde bli “Hello
Ola and Axel” då de inte har något annat gemensamt.
Om vi kör ett annat test där vi vill köra med en text där ord förekommer endast en gångThis is a test.
Mot baklänges.test a is This
Det som kommer att rödmarkeras kan vara vad som helst beronde på hur max-funktionen för strängarna är implementerad, men vi måste förstå att det endast kommer att markeras ett enda ord.
Utvärdering
• Två personer oberoende av varandra rangordnade liknande artiklar från tidningar
• Programmet körs och rankar samma tidnings artiklar
• Programmet rankade 80% rätt
• Problemet var vid stor skillnad på mängden text
Slutsats
• Resultatet är bra, TDT och LCS kompletterar varandra på ett bra sätt och det verkar vara eniga.
• Problem med att delmängder får ett lågt TDT värde
• Halebops avtal
• Tdt revisioner