Download - Detection of similarity between documents
![Page 1: Detection of similarity between documents](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814d6d550346895dbabe25/html5/thumbnails/1.jpg)
Detection of similarity between documents
Axel Bengtsson [email protected]
Ola Olsson [email protected]
![Page 2: Detection of similarity between documents](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814d6d550346895dbabe25/html5/thumbnails/2.jpg)
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.
![Page 3: Detection of similarity between documents](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814d6d550346895dbabe25/html5/thumbnails/3.jpg)
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
![Page 4: Detection of similarity between documents](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814d6d550346895dbabe25/html5/thumbnails/4.jpg)
Klassdiagram
![Page 5: Detection of similarity between documents](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814d6d550346895dbabe25/html5/thumbnails/5.jpg)
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
![Page 6: Detection of similarity between documents](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814d6d550346895dbabe25/html5/thumbnails/6.jpg)
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
![Page 7: Detection of similarity between documents](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814d6d550346895dbabe25/html5/thumbnails/7.jpg)
LCS – Longest Common Subsequence
![Page 8: Detection of similarity between documents](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814d6d550346895dbabe25/html5/thumbnails/8.jpg)
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]); }}
![Page 9: Detection of similarity between documents](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814d6d550346895dbabe25/html5/thumbnails/9.jpg)
LCS – Longest Common Subsequence
![Page 10: Detection of similarity between documents](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814d6d550346895dbabe25/html5/thumbnails/10.jpg)
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.
![Page 11: Detection of similarity between documents](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814d6d550346895dbabe25/html5/thumbnails/11.jpg)
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.
![Page 12: Detection of similarity between documents](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814d6d550346895dbabe25/html5/thumbnails/12.jpg)
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
![Page 13: Detection of similarity between documents](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814d6d550346895dbabe25/html5/thumbnails/13.jpg)
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