detection of similarity between documents

Post on 18-Jan-2016

51 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Detection of similarity between documents. Axel Bengtsson axel.bengtsson@gmail.com Ola Olsson ola@matematik.nu. Mål. Målet med projektet var att hitta dokument som är mycket lika varandra rent syntaktiskt Användningsområden - PowerPoint PPT Presentation

TRANSCRIPT

Detection of similarity between documents

Axel Bengtsson axel.bengtsson@gmail.com

Ola Olsson ola@matematik.nu

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

top related