U.P.B. Sesiunea cercurilor științifice studențesti 2019 [630823]

U.P.B. Sesiunea cercurilor științifice studențesti 2019
DETECTAREA PLAGIATUL UI PENTRU TEXTE ÎN L IMBA
ROMÂNĂ
Studen t: Sorin Andrei VEGHIU1
Conducător științific: Prof.Dr.Ing. Florin RĂDULESCU2

1. Introducere
Plagiatul reprezintă însușirea limbajului, metodelor, ideilor sau expresiilor
unui alt autor din diverse lucrări literare, artistice sau științifice și prezentarea
acestora drept creație personală și originală, indiferent de calea prin care acestea
au fost dobândite.

Pentru realizarea testelor din cadrul acestui proiect au fost utiliz ate, în
contextu l unei arhitecturi Model – View – Controller (MVC), următoarele
tehnologii:

a) C#
b) HTML5
c) Entity Framework, împreună cu Microsoft SQL Server
d) StemmersNet API, utilizând Snowball Stemmer pen tru limba română
e) Chart.MVC , pentru afișarea graficelor procentelor de plagiat
f) iTextSharp API
g) Microsoft Visual Studio 2015

2. Prezentarea componentelor proiectului de testare
Pentru crearea proiectul ui am utilizat un șablon standard din Microsoft
Visual Studio pentru o aplicație Web ASP.NET MVC. În cadrul proiect ului au
fost realizate , pe rând , următoarele:

1 Anul 2 Master , grupa ABD2 , Facultatea de Automatică și Calculatoare, email:
sorin_andrei.veghiu @stud.acs.upb .ro
2 Departamentul Calculatoare, Facultatea de Automatică și Calculatoare , e-mail:
florin.radulescu @cs.pub.ro

Sorin Andrei VEGHIU

– Tabelele bazei de date, prin intermediul Microsoft SQL Server
– Modelele aferente generate de către E ntity Fr amework din baza de date
– Acțiunile gestionate de către Controller (C#)
– View -ul pentru afișarea interfeței grafice (HTML5)

2.1 Despre baza de date

Tabelele bazei de date , după cum urmează, sunt :

Fig. 1 Diagrama bazei de date

a) Document  reprezintă t abela în care se stochează numele și fișierele în binar
ale documentelor ce au fost încărcate în aplicație

b) PreprocessedText  reprezintă tabela în care este stocată variant preprocesată
a textului fiecarui document

c) TFIDF Score  reprezintă tabela în care se stochează scorurile TF -IDF pentru
fiecare dintre cuvintele ce au fost calculate prin comparația a două documente

DETECTAREA PLAGIATUL UI PENTRU TEXTE ÎN L IMBA ROMÂNĂ

d) SimilarityScore  reprezintă tabela ce conține scorurile de similaritate TFIDF
și de text obținute din comparația a două documente. Scorul de similaritate prin
text se referă doar la utilizarea numărului de apariții al fiecărui cuvânt, spre
deosebire de cel TF -IDF unde se utilizează scorurile obținute prin acestă tehnică.

Pentru conexiunea aplicației , prin pachetul Entity Framework , la baza de
date din Microsoft SQL Server au fost realizați următorii pași:
1. S-a adaugat în cadrul proiectului un fișier de tip ADO.NET Entity Data
Model
2. S-a selectat tipul de model CFD X (Code First Database)
3. S-a realizat autenti ficarea prin contul windows la SQL Server
4. S-a selectat schema Master_ABD și tabelele precizate anterior

2.2. Preprocesarea textelor

Primii pași de preprocesare a textelor presupun eliminarea următoarelor
elemente:

1. Diacr icticelor

Ex. „depășesc gran ițele ficțiunii ”  „depasesc grani tele fic tiunii

2. Semnelor de punctuație

Ex. „timp, loc și acțiune. ”  „timp loc si actiune”

3. Caracterelor speciale, cifrelor și ecuațiilor

Ex.

4. Cuvintelor comune din limba română (din eng. “stop -words”)

Ex. „modalitatea prin care o problemă formulată este pusă în relație cu
soluțiile sale ”  „ modalitatea problem a formulat a pusa relatie solu tiile”

Sorin Andrei VEGHIU

Apoi, pentru o filtrare mai amănunțită a textului fiecărui document s -au utilizat
următoarele tehnici de prepr ocesare de Natural Language Processing (NLP):

1. Tokenization

Text: "Un exemplu pentru tokenization ar fi acesta. ”
Tokenization : ['un', 'exemplu', 'pentru', 'tokenization', 'ar', 'fi', 'acesta']

2. Stemming

Text: "Exemplul acesta reflectă rezultatul procedeului de stemming."
Tokenization : ['exemplul', 'reflectă', 'rezultatul', 'procedeului', 'stemming']
Stemming : ['exempl', 'reflect', 'rezult', 'proced', 'stemming']

2.3. Despre API -uri

În domeniul informaticii, un API (Application Programming Int erface)
reprezintă o listă de metode utilizate pentru comunicarea între diverse componente
software . Totodată, un API poate fi utilizat în cadrul realizării unei aplicații
software prin furnizarea unor elemente reutilizabile ce pot fi gestionate de către u n
programator.

Pachetele API iTextShar p și StemmerNet au fost atașate în cadrul
proiectului prin intermediul NuGet, unealta .NET de gestionare a pachetelor .

API-ul iTextSharp a fost utilizat în acest proiect pentru extragerea textelor
din documentele PD F încărcate .

Prin API -ul StemmersNet s -a aplicat algoritmul de stemming denumit
Snowball, pentru limba română, astfel încât să se poată reduce cuvintele din
documentele date la o formă de bază, o rădăcină a cuvântului.

2.4. Filtrarea documentelor

Pentr u filtrarea eficientă a documentelor se vor efectua următoarele:
– Identificarea importanței cuvintelor din fiecare document prin calculul
scorului acestora ( TF-IDF)
– Compararea scorurilor între cuvintele din documentul sursă și cele din
documentul ce se dore ște a fi testat

DETECTAREA PLAGIATUL UI PENTRU TEXTE ÎN L IMBA ROMÂNĂ

– Calculul scorului de similaritate între acele două documente ( Cosine
Similarity )

Term Frequency

Inverse Document Frequency

TF-IDF (D1, D) = TF(c, D1) * IDF(c, D)

, unde
c = cuvânt
NrA(c) = nr. de apariții ale unui cuvânt
NrA ( c
D1)
= nr. de apariții ale cuvântului în documentele D
Nr(D) = nr. de documente comparate
D1 – Documentul 1, D2 – Documentul 2
D = [D1, D2]

Deoarece se vor compara cate două documente pe rând:
– Pentru IDF se utilizează constanta 1 în locul nr. total de documente și se
elimină logaritmul
– Se repetă calculul pentru TF-IDF (D2, D)
– Se aplică Cosine Similarity (TF -IDF(D1, D), TF -IDF(D2, D) )

Formula Inverse Document Frequency simplificată

Sorin Andrei VEGHIU

2.5. Scoruri de similaritate

Cu ajutorul scorurilor de similaritate putem filtra documentele ce conțin
cele mai relevante cuvinte, similare cuvintelor regăsite în celelalte documente

Formula pentru similaritatea cosinusului TF-IDF

Un alt sco r de similaritate asemănător cu cea a scorului prezentat anterior,
este următoarea:

Formula pentru similaritatea cosinusului textului

Această formulă este diferită de cea anterioară doar prin faptul că în locul
vectorilor TF -IDF calculați anteri or, în acest caz s -a utilizat doar numărul de
apariții ale fiecărui cuvânt din ambele texte.

Totodată, trebuie aplicat un prag limită ( „threshold” ) pentru o acuratețe
mai mare a acestor scoruri de similaritate.

3. Teste pentru detectarea fragmentelor pla giate

Pentru desfășurarea testelor s -a realizat o interfața grafică pentru
încărcarea documentelor PDF, stocarea acestora și stocare rezultatelor obținute în
baza de date, precum și afișarea rezultatelor pentru fiecare document stocat
(Fig. 3).

DETECTAREA PLAGIATUL UI PENTRU TEXTE ÎN L IMBA ROMÂNĂ

Fig. 2 Interfata grafica utilizată pentru testare

Pentru primul test s -a utilizat comentariul numărul 3 despre opera literară
“O scrisoare pierdută” de I.L. Caragiale.

Acest document a fost comparat cu toate celelalte docu mente ale bazei de
date, unul câte unul. Primele trei rezultate obținute în urma acestor comparații
sunt următoarele:

Text Sim TF-IDF Sim
Comentariul 1
„O scrisoare pierduta” 73,64% 56,63%
Comentariul 2
„O scrisoare pierduta” 62,67% 38,68%
Comentar iul 2
„Luceafărul” 12,94% 4,21%

Sorin Andrei VEGHIU

După câte se poate observa din primele procente rezultate în urma acestui
test, atât în tabelul anterior, cât și în Fig. 4 , scorurile de similaritate TF -IDF sunt
mult mai precise și es timează procentul real.

Primele două documente cu cele mai mari scoruri sunt variante
asemănătoare ale documentului initial în cadrul cărora frazele au fost copiate și
reformulate în proporție de 60%.

Fig. 3 Rezultatele obținute în urma primului test

În cadrul celui de -al doile a test a fost utilizată opera bine cunoscută
“Luceafărul” a lui Mihai Eminescu.

Asemănător cu testul anterior, acest document a fost comparat cu toate
celelalte documente ale bazei de date, unul câte unul. Primele trei rezultate
obținute în urma acestor comparații sunt următoarele:

Text Sim TF-IDF Sim
Comentariul 2
„Luceafărul” 83,83% 68,04%

DETECTAREA PLAGIATUL UI PENTRU TEXTE ÎN L IMBA ROMÂNĂ

Poezia Luceafărul 32,10% 14,51%
Comentariul 2
„O Scrisoare Pierdută” 14,59% 4,21%

În urma acestui test se poate observa faptul ca doar primul rezultat r eflectă
un document plagiat în proporție destul de mare, iar cel de -al doilea document
reprezintă în sine poezia “Luceafărul”, ceea ce înseamnă că citatele din acest
comentariu conțin în ju r de 14 -32% fragmente din operă .

Fig. 4 Rezultatele obținute în urma celui de -al doilea test

Sorin Andrei VEGHIU

4. Concluzii

Pentru a r ealiza o scurtă recapitulare a etapelor prezentate în acest raport
de cercetare și pentru a descrie următorii pașii ce pot fi efectuați pentru realizarea
unei variante îmbunătățite de detecție a p lagiatului se pot urmări punctele atașate
piramidei din Fig. 5 pornind de la bază spre vârf.

Fig. 5 Pașii efectuați împreună cu pașii de îmbunătățire a detecției plagiatului Scorurile de similaritate
Identificarea TF -IDF Similarity si Text
Similarity și setarea unui „threshold” pentru
filtrarea acestora.
3 Web Search
Utilizarea top 10 cuvinte relevante pentru
căutări web prin Google Custom Search,
stocarea și filtrarea textelor rezultate. 2.1
Preprocesarea textului
Eliminarea diacriticelor, semnelor de
punctuație , stop -words și utilizarea
tehnicilor NLP menționate Tokenization
și Stemming. 1

DETECTAREA PLAGIATUL UI PENTRU TEXTE ÎN L IMBA ROMÂNĂ

BIBLIOGRAFIE

[1]. Conceptul de plagiat , https://www.researchg ate.net/post/What_is_the_concept_of_plagiarism
[2]. Snowball Romanian Stemmer , https://snowballstem.org/algorithms/romanian/stemmer.html
[3]. iTextSharp , PDF Library, https://www.nug et.org/packages/itextsharp/
[4]. StemmersNet , PDF Library, https://www.nuget.org/packages/ StemmersNet /
[5]. Entity Framework , Entity Framework Documentation, https://docs.microsoft.com/en -us/ef/

Similar Posts