Detectarea plagiatului pentru texte în limba română [630821]

UNIVERSITATEA POLITEHNICA BUCUREȘTI
FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
DEPARTAMENTUL CALCULATOARE

PROIECT DE DIZERTA ȚIE

Detectarea plagiatului pentru texte în limba română

Coordonator științific:
Prof. Dr. Ing. Florin Rădul escu

Absolvent: [anonimizat] 2019

Cuprins

1. Introdu cere ………………………….. ………………………….. ………………………….. ………………………….. ………………… 3
2. Metodologii de detectare a plagiatului ………………………….. ………………………….. ………………………….. ……….. 2
3. Prelucrarea limbajului natural (Natural Language Processing) ………………………….. ………………………….. …… 4
3.1. Descriere generală ………………………….. ………………………….. ………………………….. ………………………….. .. 4
3.2. Tehnici de preprocesare ………………………….. ………………………….. ………………………….. …………………….. 5
3.2.1. Tokenization ………………………….. ………………………….. ………………………….. ………………………….. …. 5
3.2.2. Normalizarea cuvintelor ………………………….. ………………………….. ………………………….. ……………… 6
3.2.3. Cuvinte comune ………………………….. ………………………….. ………………………….. ………………………… 8
3.2.4. Lemmatization și Stemming ………………………….. ………………………….. ………………………….. ………… 8
3.2.5. Algoritmul Snowball pentru stemming ………………………….. ………………………….. ……………………… 9
3.2.6. Alte operații de preprocesare ………………………….. ………………………….. ………………………….. ……… 11
4. Filtrarea documentelor ………………………….. ………………………….. ………………………….. ………………………….. . 12
4.1. Frecvența termenilor – Frecven ța inversă a documentelor ………………………….. ………………………….. … 12
4.2. Scoruri de similaritate ………………………….. ………………………….. ………………………….. ……………………… 13
5. Studiul tehnologiilor existente ………………………….. ………………………….. ………………………….. ………………… 14
5.1. Pachetul CopyLeaks ………………………….. ………………………….. ………………………….. ……………………….. 14
5.1.1. Teste pentru detectarea fragmentelor plagiate ………………………….. ………………………….. …………… 14
5.1.2. Concluzii ………………………….. ………………………….. ………………………….. ………………………….. ……. 18
5.2. Gestionarea detectării textelor plagiate prin căutări online ………………………….. ………………………….. … 18
5.2.1. Descriere, utilizare și configurare Google Custom Search ………………………….. ………………………. 19
5.2.2. Descriere și utlizare Html Agility Pack ………………………….. ………………………….. ……………………. 21
5.2.3. Prelucra rea textelor ………………………….. ………………………….. ………………………….. ………………….. 21
5.2.4. Testele efectuate și rezultatele obținute ………………………….. ………………………….. ……………………. 23
5.2.5 . Concluzii ………………………….. ………………………….. ………………………….. ………………………….. ……. 24
5.3. Detectarea plagiatului prin text mining ………………………….. ………………………….. ………………………….. . 25
6. Concluzii ………………………….. ………………………….. ………………………….. ………………………….. …………………. 25

1. Introducere

Acestă temă de dizertație își propune abordarea conceptului de plagiat prin identificarea și
analizarea diverselor secvențe de text redactate în limba română , ce pot con ține fragmente
considerate drept subiectul muncii altor autori , nemenționați în secțiune a surselor bibliografice .

De-a lungul timpului, conceptul de plagiat s -a răspândit din ce în ce mai mult în domeniul
educational, pornind încă din școlile primare, până la licee sau universități de renume. De asemenea ,
prin accesul foarte facil la informa ție prin intermediul online și prin serviciile ce oferă realizare a
completă ale proiectelor de diploma din diverse domenii , cazurile de plagiat cresc semnificativ cu
fiecare nouă generație .

Deși sensul de bază al acestui concept este asociat cu însușirea lucrărilor altor autori drept
creație proprie, există diverse alte interpretări precum “ nedreptate academică”, “trișat” sau
“copiat” , ceea ce reprezintă schimbarea sensului dintr -un text utilizând un alt text.

După cum este menționat și in articolul *1+ plagiatul în sensul de “furt de proprietate
intelectuală” a existat încă din momentul în care oamenii au început să creeze opere de artă și să
realizeze activități de cercetare.

Conceptul de plagiat, derivat din cuvântul latin “plagium”, ceea ce înseamnă “ furt”,
reprezint ă utilizarea limbajului , 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 [2].

În ziua de astăzi, conceptul de plagiat constituie un subiect important regăsit în limbajul
diverselor instituții educaționale din lumea întreagă. Plagiatul în cadrul un iversităților este des
întâlnit în contextul în care student ul își prezintă anumite teme sau proiecte ca fiind realizate pe cont
propriu , deși conțin nenumărate fragmente de text s au cod sursă plagiate, din rezultatul muncii unui
alt autor, mai mult sau mai puțin cunoscute de către respectiva instituție educațională .

Plagiat ul din cadru l instituțiilor educaționale superioare este centrat , în general, asupra
plagiatul ui sub formă de text și pe identificarea modului prin care acest concept a fost întâmpinat,
fie prin copierea conștientă, fie prin neatenția studentului în citarea surselor sau a modului similar
de exprimare cu cel al altor autori.

Instituțiile educaționale sunt, de obicei , responsabile pentru informarea și îndrumarea
studenților spre evitarea unor astfel de situații , și prezentarea unor exemple concrete despre cum ar
trebui să fie redactată o lucrare considerată drept originală.

Pentru orice student este important să își poată expune propriile idei , studii și păreri în
lucrările sale universitare, însă acest aspect nu presupune neapărat realizarea unei lucrări pur

VEGHIU SORIN ANDREI
2
original e bazate pe concepte no i, ce nu au mai fost abordate până în prezent, ci realizarea unei
lucrări pe cont propriu, analizarea studiilor efectuate de către alți autori , alegerea unei abordări prin
care să se testeze anumite teorii sau subiecte referitoare la domeniul studiat și detalierea propriilor
concluzii în urma cercetărilor efectuate .

Printre cele mai întâlnite modalități de plagiere regăsim următoarele:

1. Parafrazarea – copierea de fragmente din lucrările altor autori și înlocuirea sau
inversarea anumi tor cuvinte sau utilizarea structurii studiului acelor autori, fără citarea
corespunzătoare a surselor . De asemenea, o alternativă pentru evitarea parafrazării
poate fi realizarea unui rezumat al fragmentelor autorului și citarea lucrării în
bibliografie.
2. “Copy -Paste” – copierea de fragmente din diverse pagini web , fără ca acestea sa fie
menționate corespunzător în lucrarea aferentă
3. Verbatim – utilizarea de citate fără menționarea precisă a surselor
4. Auto -plagiere – reutilizarea parțială sau completă a unei lucrări ce a fost deja publicată
de către același autor
5. Înțelegere între colegi (din eng. “c ollusion ”) – reprezintă acordul de bună voie al unui
student autor pentru ca un alt student să își poată însuși lucrările autorului inițial ca fiind
creațiile sale [3]

2. Metodologii de detectare a plagiatului

De-a lungul timpului au existat diverse metodologii de detectare a plagiatului, câteva dintre
cele mai comune metodologii vor fi descrise în continuarea acestui capitol [4].

1) Metodologii bazate pe șiruri de caractere

Această metodă analizează potrivi rea dintre anumite șiruri de caractere cu alte șiruri de
caractere extrase din anumite documente , ce pot eventual stocate într -o bază de date.
Presupunând ca utilizăm două documente pentru a efectua o testar e cu aceste metode , se
vor putea identific a similaritat ățile dintre documente doar în cazurile în care șirurile de caractere din
primul document se potrivesc exact cu cele din cel de -al doilea document sau în cazurile în care
există o potrivire aproximativ ă între cele două documente.
În cele mai multe dintre cazurile de potrivire aproximativă , în procesul de detectarea al
plagiatului bazat pe șiruri de caractere, se utilizează modele de tip n -gram pentru cuvinte . Modelele
de tip n -gram pentru cuvinte presu pun secvențe de n cuvinte dintr -un document ce pot fi utili zate
pentru potrivirea cu alte n sevențe de cuvinte din alte documente.

2) Metodologii bazate pe modele de tip vector

Detectarea plagiatului pentru texte în limba română
3
Modelele de vectori (din eng. “vector space model ”) sunt concentrate în mod special pe
filtrarea documente lor relevante prin vectori de elementele, extrase din textele documentelor, în
locul comparării șirurilor de caractere, precum metoda anterioară.
Totodată, acești vectori de elemente pot fi utilizați în continuare prin interm ediul diverselor
formule pentru calculul similarităților între vectori, precum similariteatea cosinusului, Jaccard,
Euclidiană, Manhattan, etc. [4]
Similaritatea cosinusului este una dintre cele mai cunoscute modalități de detectare a
similarităților într e modelele de tip vector și a fost utilizată și testată , de asemenea, în această
lucrare .

3) Metodologii bazate pe semantica frazelor

Această metodă pornește de la idea cum că o frază poate fi redactată la fel în diferite
moduri, însă ordinea cuvintel or sale poate fi diferită .
Pentru documentele redactate în limba engleză există alternative utilizării WordNet , o bază
de date relativ mare ce conține legături lexicale și semantice între cuvintele din limba engleză.
Însă, există diverse pachete ce reprod uc utilitatea WordNet în varianta li mbii române
precum RoWordNet .

4) Metodologii bazate pe sintaxa frazelor

Aceste tipuri de metodologii presupun utilizarea unor tehnici pentru detectarea rolului
cuvintelor în fraze, precum etichetarea cuvintelor prin t ehnica părților de vorbire (din eng. “part of
speech” – POS) .
Câteva exemple de etichete pentru metodologiile bazate pe sintaxă sunt substantivele,
adjectivele, verbele, adverbele, prepozițiile, conjuncțiile și interjecțiile.
Prin aceste metode se poate stabil ii, de asemenea, structura frazelor prin ordinea părți lor de
vorbire.

5) Metodologii bazate pe stilul autorului

După câte se poate observa din denumire, aceste metodologii pun accentul pe stilul de
redactare al autorului și sunt bazate pe diverse s tatis tici pentru stabilirea similaritățiilor între
documente .

6) Metodologii bazate pe detectarea plagiatului în diverse limbi străine

Aceste metodologii implică mai multe ramuri pentru detectarea plagiatului de acest tip,
precum utilizarea următoare lor meto de pentru:
a) identificarea sintaxei textului în diverse limbi străine
b) detectarea și analizarea semanticii textului în diverse limbi străine
c) determinarea structurii textului din mai multe limbi străine

Acestea sunt printre cele mai complexe tipuri de metodologii pentru detectarea plagiatului
deoare ce necesită o cunoștințe profunde asupra caracteristicilor diverselor limbi străine ce se doresc
a fi utilizate.
De asemenea, această lucrare încearcă abordarea anumitor metodologii similare pentru
detectarea plagiatului pentru texte în limba română.

VEGHIU SORIN ANDREI
4

3. Prelucrarea limbajului natural (Natural Language Processing)
3.1. Descriere generală

Prelucrarea limbajului natural (din eng. Natural Language Processing) reprezintă modalitățile
prin care un utilizator poate comunica cu o aplicație sau sistem intelligent utilizând limbajul natural,
precum comunicarea scrisă sau verbală a limbii române.

De asemenea, prelucrarea limbajului natural (NLP) constituie o fundație solidă pentru
reducerea complexită ții modul ui în care oamenii vor putea comunica cu sistemele computaționale
inteligente în viitor.

În ziua de astăzi foarte multe documente și fragmente de text din diverse articole sunt
disponibile gratis online . Însă , chiar dacă abundența surselor de in formație nu mai reprezintă o
problemă, lipsa aplicațiilor ș i a uneltelor necesare pentru procesarea și interpreta rea informa țiilor
constituie un aspect important asupra e voluției tehnologice.

Sistemele software de procesare naturală a limbajului se axea ză, în principiu, pe studierea,
înțelegerea și utilizarea limbajului prin care ființele umane comunică, luând în considerare și
existența mulțimii numer oase ale diverselor tipuri de limbi străine .

Tehnicile de procesare naturală a limbajului sunt în gene ral utilizate pentru detectarea
plagiatului, deoarece acestea pot servi la identificarea precisă și calitativă a rezultatelor, prin căutări
în diverse documente, chiar dacă textul documentului prezintă o formă diferită și reformulată
comparativ cu textul o riginal.

Efectuarea preprocesării asupra textului documentelor reprezintă un pas important în cadrul
prelucrării limbajului natural , deoarece cuvintele și frazele din textele aferente constituie o cantitate
de date în etapa sa brută, neprelucrată, din ca re trebuie extrase cele mai importante și calitative
informații , ce vor fi ulterior procesate, etichetate și analizate pentru obținerea unor rezultate .

Detectarea plagiatului pentru texte în limba română
5
3.2. Tehnici de preprocesare
3.2.1. Tokenization

Acest concept numit tokenization , în cadrul unui doc ument text, presupune modalitatea de
împărțire a textului în mai multe elemente (din eng. token) și, de asemenea, eliminarea semnelor de
punctuație și transformarea literelor mari în litere mici pentru uniformizare [5].

Un exemplu care să reflecte acest concept, este după cum urmează:

Text introdus : "Un exemplu pentru tokenization ar fi acesta. ”
Cuvinte /Tokens : [ 'un', 'exemplu', 'pentru', 'tokenization', 'ar', 'fi', 'acesta' ]

În general, aceste elemente, poart ă și denumirea de cuvinte. Un astfel de element
reprezintă reprezintă un șir de caractere consecutive extrase din textul unui document, ce va fi
utilizat ca și variabilă în contextu l procesării respectivului text.

Un tip, în contextul unei liste de cuvinte (din eng. “token type”) reprezint ă clasificarea
tuturor cuvintelor ce conțin aceeași secvență de șiruri de caractere [5].

Un termen reprezintă un cuvânt, destul de relevan t, cu excepția cuvintelor comune (din eng.
“stop words”), asupra căruia au fost , în funcție de caz , efectuate diferi te operații pentru obținerea
forme i sale generalizate [5].

Un exemplu ce reflectă diferențele dintre cele trei concepte menționate anterior este
următorul:

Text introdus : "Textul acesta este diferit comparativ cu textul precedent. ”
Cuvinte/Tokens : [ ’textul’, ’acesta’ , ’este’, ’diferit’, ’ comparativ ’, ’cu’ , ’textul’, ’precedent’ +
Tipuri de cuvinte: [ ’textul’, ’acesta’, ’este’, ’diferit’, ’comparativ’, ’cu’, ’precedent’ +
Termeni: [ ’textul’, ’diferit’, ’comparativ’, ’ precedent’ +

După cum se poat e observa din acest exemplu, după procesarea textului obținem 8 cuvinte,
7 tipuri de cuvinte și 4 termeni. Astfel, se pot identifica diferențele, precum faptul că tipurile de
cuvinte exclud acele cuvinte duplicate, iar termeni exclud cuvintele comune din limba română.

De asemenea, există și anumite cazuri specifice, în care cuvintele rezultate în urma împărțirii
prin tokenization sunt d ependente de limba în care a fost redactat textul. Spre exe mplu, în limba
română putem întâlni în diferite documente cuvântul „într -o” ca fiind redactat sub diferite forme ,
mai puțin corecte gramatical, precum „întro”, „intr -o”, „intro” . În acest caz, va trebui să alegem o
formă genera lizată, care va reprezenta acest cuvânt în oricare dintre formele întâlnite în exemplul
anterior. Dacă vom elimina diacriticele și cratima vom ajunge la forma genera lizată „intro” care
poate fi utiliz ată ca și referință pentru genera lizarea oricăreia dintre celelalte forme ale cuvântului
inițial .

Utilizarea aceluiași pachet de reguli de gene ralizare , pentru cazurile specifice de limbaj,
odată cu tokenization determină o importanță destul de mare, deoarece utilizarea în paralel ale unor

VEGHIU SORIN ANDREI
6
pachete de reguli similare poate duce la inconsistența datelor și duplicarea cuvintelor ce reprezintă
aceeia și termeni.

Un alt caz ce trebuie tratat pentru această tehnică, este reprezentat de separarea cuvintelor
în funcție de spațiile dintre acestea, după eliminarea semnelor de punctuație din text. Un exemplu îl
reprezintă numele proprii, precum „Radu Popesc u”, „Stefan Ionescu” vor fi tratate ca și cuvinte
individuale. Alte cazuri similare sunt reprezentate de alte denumiri extrase dintr -un anumit context
ce au o însemnătate diferită atunci când sunt separate, precum „Universitatea Politehnică București”
sau diverse prescurtări „U.P.B” , „F.M.I ”. Din exemplele anterioare putem observa c uvântul
„universitatea” sau „universitate” , care în sine poate fi indentificat în nenumărate referințe despre
anumite universități și nu prezin tă un termen suficient de relevant în anumite contexte .

Cuvinte compuse din limba română pot forma un alt caz ce trebuie tratat în contextul acestei
tehnici, deoarece putem avea într -un document cuvinte precum „ bună voință”, „electromagnetic”,
etc care pot fi întâlnite și sub forma separa tă a cuvintelor precum „bună”, „voință”, „electric”,
„magnetic” la care pot fi generalizate încă din momentul identificării.

3.2.2. Normalizarea cuvintelor

După ce am separat textele documentelor în elemente, precum în secțiunea 3.1.1 , trebuie
să trată m și cazurile în care termenii selectați nu sunt suficient de uniformizați , deoarece mai mulți
termeni pot reprezenta același element , chiar dacă au fost redactați prin forme diferit e.

Acest proces de normalizare a cuvintelor, ce au fost selectate după efectuarea tokenization –
ului, reprezintă transformarea uniformă a tuturor cuvintelor astfel încât să putem identifica anumite
cuvinte sub aceeași formă, indiferent de document sau de formele sale derivate [5].

Un prim pas în decursul normalizării cuvint elor este de a realiza “clasificări echivalente” [5]
între derivatele cuvintelor, având o formă generală ca și reper pentru normalizarea celorlalte
cuvinte . Un exemplu pentru a ilustra acest pas este cazul în care avem următoarele cuvinte “dupa –
amiaza”, “după -amiază”, “dupaamiaza” sau “dupăamiază” , extrase dintr -un text, atunci forma
normalizată ar fi “dupaamiaza” , deoarece această formă este cel mai ușor de identificat într -o listă
de cuvinte.

Aceste reguli pentru clasificări echivalente sunt, de obic ei, orientate spre eliminarea de
diacritice sau caractere pentru ca normalizarea să se efectueze instant odată cu parcurgerea fiecărui
cuvânt dintr -un document . Dacă s-ar opta pentru o varia ntă de normalizare prin adăugărea
caractere lor și diacritice lor, acest lucru ar însemna o parcurgere în plus pentru identificarea tuturor
diferențel or dintre derivatele cuvintelor .

O altă abordare pentru normaliza rea cuvin telor o reprezintă determinarea sinonimelor
acestora pentru eliminarea din text a anumitor cuvinte ce pot avea aceeași însemnătate semantică ,
indiferent de context. Cuvintele “carte” și “act” sunt sinonime cu sensul general al cuvântului
“document”, ce poate fi utilizat în diferite contexte pentru uniformizarea listei de cuvinte ce a fost
extrase.

Detectarea plagiatului pentru texte în limba română
7
Însă, abordarea menționată anterior, pentru normalizarea cuvintelor prin identificarea
sinonimelor, presupune un efort sporit din punct de vedere al stocării și al procesării sinonimelor
dintr -un document dat. Spre deosebire de această abordare, prima varian tă d e normalizare prin
clasificari echivalente este destul de eficientă, deoarece există o singură parcurgere asupra tuturor
cuvintelor, iar procesarea lor se face în timpul parcurgerii fiecărui element.

Un alt exemplu de clasificare echivalentă îl repre zintă simpla eliminare a semnelor
ortografice din anumite cuvinte, precum abrevierile “U.E.” (“Uniunea Europeană”) și “U.P.B. ”
(“Universitatea Politehnică București” ) vor deveni “UE” și “NATO” , fără să existe posibilitatea
existenței unor cuvinte cu care p ot fi substituite, indiferent de context. Însă, în cazul unor acronime
preluate din alte limbi străine, precum “B.A.R.” ( “Base Address Register ”) sau “E.U.” (“European
Union ”) vor putea fi substituite cu cuvintele “bar” și “eu” din limba română, ceea ce ar putea
reprezenta o er oare în procesul de normalizare .

Printr -o simplă căutare al acronimului “B.A.R.” pe motorul de căutare Google , se poate
observa faptul că acest acronim este procesat fără semnele ortografice, având pe prima pagină doar
rezultate refe ritoare la localuri , restaurant e și unitatea de măsură numită bar.

După cum am menționat și în secțiunea 3.1.1 despre eventuala eliminare a diacriticelor din
forma cuvinte lor, acestea reprezentând un alt pas din cadrul normalizării.

În cele mai multe dintre cazuri, în special atunci când documentele sunt redactate electronic,
oamenii pot omite diacriticele. De asemenea, există și posibilitatea utilizării diacriticelor într-un
fragment, iar din cauza lipsei de timp sau a altor motive, acestea pot fi om ise în alte fragmente
pentru cuvinte similar e. În aceste cazuri, soluția ideală este eliminarea tuturor diacriticelor în scopul
normalizării.

Un alt pas pentru normalizarea cuvintelor este reprezentat de cazul în care mai multe
cuvinte sunt redactate fie doar cu majuscule, fie doar cu litere mici sau fie ambele forme sunt
regăsite în același document . Deși , cuvintele precum “Cafea”, ”cafea”, “cercetarea”, “Cercetarea”
pot fi normalizate la forma ce conține doar litere mici , există și cazul în care un term en, relativ
comun, scris cu litere mari să fie utilizat pentru denumirea unei companii sau a unui produs , precum
cuvântul “Arctic ”, ce poate face re ferire asupra sensului propriu al u nui produs electrocasni c sau,
scris cu litere mici (“arctic”) , asupra sensului comun referitor la regiunea Polului Nord .

Totodată, numele proprii sau denumirile unor produse ce nu au alt sinonim în limba română
pot fi cu ușurință identificate, chiar și scrise cu litere mici, precum “Eminescu” , “Hagi” sau “Dacia” .

În cadrul acestui pas de normalizare în care unele cuvinte pot fi scrise fie cu litere mar i, fie cu
litere mici, se utilizează, în cazul anumitor limbi străine (ex. engleza ), conceptul de “truecasing” [5],
din domeniul prelucrării limbajului natural , care reprezintă cazul în care există cuvinte compuse
dintr -o combinație de litere mici și litere mari, precum cuvântul englezesc “McCartney”. Însă, acest
concept nu este aplicabil pentru niciuna dintre limbile latine, incluzând limba română.

Așadar, regulile de normal izare ale cuvintelor sunt în mare parte specific în funcție de limbaj.
Pentru o soluție generală de normalizare trebuie efectuat înainte de tokenization un pas pentru
identificarea limbajului, iar apoi aplicarea regulilor necesare pentru limbajul în care a fost redactat
documentul.

VEGHIU SORIN ANDREI
8
3.2.3. Cuvinte comune

Acest concept de cuvinte comune (din eng. „stop -words”) reprezintă cele mai comune
cuvinte dintr -o limbă, în cazul nostru limba română, ce nu au o însemnătate deosebită în contextul
detectării plagiatului sau al similarităților dintre documente.

Modul prin care sunt identificate aceste cuvinte comune este prin filtrarea din documente a
cuvintelor, luând în considerare doar cele mai frecvente dintre toate cuvinte, ce pot fi determinate
printr -un prag limi tă, însă acestea pot fi și stocate manual, bazându -ne pe semantica lor vizibilă, într –
o bază de date.

Eliminarea acestor cuvinte comune ajută la reducerea numărului de elemente ce vor fi
stocate și comparate împreună cu alte elemente pentru determinarea similarităților dintre
documente.

Spre exemplu motoarele de căutare moderne, elimină cuvintele comune pentru a economisi
spațiul bazei de date și pentru a spori viteza de căutare.

3.2.4. Lemmatization și S temming

Unele cuvinte pot avea, din punct de vedere grammatical, diverse forme derivate, precum
“face”, “făcea”, “făcuse”, etc. Aceste forme aparțin unor liste de cuvinte derivate, ce reprezintă
același cuvânt de bază.

În cazuri le cele mai frecvente, un cuvânt derivat, dacă va fi utilizat pentru căutări în cadrul
unui document, nu va returna niciun rezultat, chiar dacă forma sa de bază sau alte forme derivate
sunt prezente în textul respectiv.

Scopul essential al acestor tehnici, steeming și lemmatization , este de aduce un cuvânt la
forma sa de bază, ce poate fi observat în exemplul următor:

“citesc”, “citești”, “ citește ”  “a citi”
“obiectul”, “obiect”, “obiectele”  “obiect”

Un alt exemplu asupra căruia s -au aplicat aceste tehnici , având ca data de intrare o
propoziție, este următorul:

“Citesc diverse informații despre stem ming și lemmatization. ”
 “a citi diver se informa ț despre stemming și lemmatization ”

Tehnica numită stemming reprezintă un process prin care sufixele, prefixele și, în unele
cazuri, o parte din ultimele litere sunt elimi nate din componența cuvintelor , pentru generalizarea
formei acestora [5].

Detectarea plagiatului pentru texte în limba română
9
Tehnica numită lemmatization reprezintă modalitatea formală de generalizare a cuvintelor
prin utilizarea sensului de bază din dictionar al cuvintelor [5].

Pentru a ilustra diferen ța esențială dintre cele două tehnici, putem lua ca și exemplu
cuvântul “unește” care, în urma utilizării tehnicii de stemming se va returna forma “uneșt” , iar prin
utilizarea tehnicii lemmatization se va returna forma “uni” (de la verbul “a uni”).

O alt ă diferență între cele două tehnici este aceea referitoare la tipurile cuvintele asupra
cărora pot fi aplicate aceste tehnici. În cazul tehnicii stemming , aceasta poate fi aplicată doar asupra
cuvintelor ce pot conține afixe sau pot avea forme derivate, în timp ce tehnica lemmatization poate
fi aplicată asupra cuvintelor ce conțin o formă de bază în dictionar (din eng. “lemma”) [5].

Unul dintre cei mai cunoscuți algoritmi pentru aplicarea tehnicii de stemming îl reprezintă
algoritmul lui Porter [5]. Aces t algori tm este alcătuit din 5 etape de transformari ale cuvintelor.
Fiecare etapă conține diverse reguli de selecție.

În prima etapă a acestui algoritm se utilizează următoarele reguli pentru eliminarea
sufixelor :

“sses”  “ss” ; “ss”  “ss” ; “ies”  “i” ; “s”  “”
Exemple de transformări ale cuvintelor , utilizând regulile de mai sus :

“obse ss”  “obss ” ; “ceremonies”  “ceremoni” ; “books”  “book”

Celelalte etape utilizează ca și punct de reper dimensiunea cuvântului pentru a ver ifica
numărul de silabe astfel încât sa se poată determina dacă asupra acelui cuvânt se mai pot aplica alte
reguli pentru eliminarea sufixelor.

Însă, pentru limba română tehnica de stemming poate fi aplicată cu ajutorul unui “Snowball
Stemmer ”. Snowball reprezintă un limbaj de programare utilizat pentru procesarea șiruri lor de
caractere, conceput în mod special pentru realizarea unor algoritmi de stemming pentru multe alte
limbi străine, nu doar limba engleză .

3.2.5. Algoritmul Snowball pentru stemming

Compilatorul limbajului poate transforma codul Snowball în codul altui limbaj de
programare, având următoarele limbaje disponibile : C, C#, Java, GO, JavaScript, Python, Rust și
Object Pascal.

Precum și algoritmul Porter menționat anterior, Snowball și algoritmii de stemming au fost
realizați de același autor Dr. Martin P orter, împreună cu mulți alți autori ce au contribuit la realizarea
sau perfecționarea algoritmilor pentru limbi străine [6].

Algoritmii de stemming pentru limba română au fost re dactați în două variante în decursul
anului 2006. Primul algoritm a fost redactat de către Erwin Glockner, Doina Gliga și Marina
Stegarescu din Heidelberg , Germania, iar cel de -al doilea algoritm a fost redactat de către Irina
Tirdea din București , România [6].

VEGHIU SORIN ANDREI
10

După primele experimente cu cei doi algoritmi de stemming pentru limba română s -a luat
decizia de a se redacta o altă variantă pentru algoritmul final, însă lista de bază a sufixelor verbelor și
separarea acestora în două grupuri cu diferite crite rii de eliminare au fost preluate din algoritmul
Irinei Tirdea.

După cum este relatat și pe website -ul oficial Snowball, majoritatea algoritmilor de
stemming utilizează cel puțin una dintre definițiile regiunilor R1 și R2.

R1 reprezintă regiunea, din c adrul unui cuvânt, ce se af lă după prima non -vocală urma tă de
o vocală sau reprezintă regiune a goală de la sfârșitul cuvântului , dacă nu există nicio non -vocală .

O non -vocală este diferită în funcție de regulile fiecărei limbi , spre exemplu pentru limba
italiană litera “i” între două alte vocale nu este considerată vocală . Pentru a păstra unicitatea limbii ,
vocalele sunt menționate la începutul fiecărui algoritm .

R2 reprezintă regiunea, din cadrul unui cuvânt, ce se află după prima non -vocală urmată de
o vocală din R1 sau regiunea goală de la sfârșitul cuvântului, dacă nu există nicio non -vocală.

Pentru limba română, putem ilustra aceste regiuni prin exemplul următor:

absolvire  a b s o l v I r e

Litera “v” reprezintă prima non -vocală urmată de o vocală, iar r egiunea R1 este “ire”. În
cazul regiunii R2, prima non -vocală din R1 este litera “r”, iar regiunea R2 ar fi reprezentată doar de
vocala “e” .

În cadrul algoritmului de stemming Snowball pentru limba română sunt incluse toate
vocalele, inclu ând cele cu diacritice: “a”, “ă”, “â”, “e”, “i”, “î”, “o”, “u”.

Pentru faza initială a algoritmului [6], literele “i” și “u” aflate între alte vocale vor fi
transformate în majuscule, pentru a fi tratate ca și consoane , iar formele de plural ale cuvintel or vor
fi eliminate . Se va că ută cel mai lung suf ix, iar dacă acesta se află în regiunea R1 , se vor aplica
următoarele modificări asupra cuvintelor:

a) Sufixele “ul” și “ului” vor fi șterse
b) Sufixul “aua” va fi transformat în “a”
c) Sufixele “ea”, “e le”, “elor” se vor transforma în “e”
d) Sufixele “ii”, “iua”, “iei”, “iile”, “iilor”, “ilor” se vor transforma în “ i”
e) Dacă sufixul “ile”, nu este succesorul construcției “ab”, se va transforma în “i”
f) Sufixul “atei” va deveni “at”
g) Sufixele “ați e”, “ația” vor deveni “ați”

Pasul 2 al algoritmului [6], presupune substituirea sufixelor combinate după anumite reguli .
Similar cu pasul anterior, se caut ă cel mai lung sufix din R1, iar apoi vor fi efectuate următoarele
înlocuiri:

a) “abilitate ”, “abilitati ”, “abilităi ”, “abilități ”  “abil”

Detectarea plagiatului pentru texte în limba română
11
b) “ilitate”  “ibil”
c) “ivitate”, “ivitați”, “ivităi”, “ivități”  “iv”
d) “icitate ”, “icitati ”, “icităi ”, “icități ”, “icator ”, “icatori ”, “iciv”, “iciva ”, “icive ”, “icivi”, “icivă ”,
“ical”, “icala ”, “icale ”, “icali”, “icală ”  “ic”
e) “ ativ”, “ativa ”, “ative ”, “ativi ”, “ativă ”, “ațiune ”, “atoare ”, “ator”, “atori ”, “ătoare ”,
“ător ”, “ători ”  “at”
f) “itiv”, “itiva ”, “itive ”, “itivi”, “itivă ”, “ițiune ”, “itoare ”, “itor”, “itori”  “it”

Totodată, pasul num ărul 2 se va repeta până când niciuna dintre substituțiile menționate
anterior nu mai pot fi efectuate.

Pasul 3 al algoritmului Snowball [6], presupune eliminarea sufixelor comune . Spre deosebire
de pașii anteriori, în această etapă se caută cel mai lung sufix din R2, iar apoi se vor efectua
următoarele modificări:

a) Sufixele următoare vor fi șterse: ”at", "ata", "ată", "ati", "ate", "ut", "uta", "ută", "uti",
"ute", "it", "ita", "ită", "iti", "ite", "ic", "ica", "ice", "ici", "ică", "abil", "abila", " abile", "abili", "abilă",
"ibil", "ibila", "ibile", "ibili", "ibilă", "oasa", "oasă", "oase", "os", "osi", "oși", "ant", "anta", "ante",
"anti", "antă", "ator", "atori", "itate", "itati", "ităi", "ități", "iv", "iva", "ive", "ivi", "ivă ”
b) Sufixele “iu ne”, “iuni” vor fi șterse dacă sunt succesori ai literei “t” sau “ț”
c) Sufixele “ism” , “isme”, “ist”, “ista”, “iste”, “isti”, “istă”, “iști” vor fi substituite de “ist”

Pasul numărul 4 este optional [6], deoarece acesta este aplicat doar în cazul în ca re niciun
sufix nu a fost eliminat în pașii anteriori. Această etapă presupune eliminarea sufixelor unei categorii
speciale, și anume, a verbelor după cum urmează:

a) Sufixele următoare vor fi eliminate : “are", "ere", "ire", "âre", "ind", "ând", "indu", "ându",
"eze", "ească", "ez", "ezi", "ează", "esc", "ești", "ește", "ăsc", "ăști", "ăște", "am", "ai", "au", "eam",
"eai", "ea", "eați", "eau", "iam", "iai", "ia", "iați", "iau", "ui", "ași", "arăm", "arăți", "ară", "uși",
"urăm", "urăți", "ură", "iși", "i răm", "irăți", "iră", "âi", "âși", "ârăm", "ârăți", "âră", "asem", "aseși",
"ase", "aserăm", "aserăți", "aseră", "isem", "iseși", "ise", "iserăm", "iserăți", "iseră", "âsem", "âseși",
"âse", "âserăm", "âserăți", "âseră", "usem", "useși", "use", "userăm", " userăți", "useră ”

b) Sufixele “ăm", "ați", "em", "eți", "im", "iți", "âm", "âți", "seși", "serăm", "serăți",
"seră", "sei", "se", "sesem", "seseși", "sese", "seserăm", "seserăți", "seseră ” vor fi eliminate
doar în cazul în care acestea sunt precedate de litera “u” sau de o consoană

Ultimul pas presupune eliminarea ultimei vocale de la sfârșitul cuvintelor și transformarea
majusculelor “I” și “U” în literele mici.

3.2.6. Alte operații de preprocesare

Printre cele mai comune operații de preprocesare se pot întâlni diverse modalități de
prelucrare a textului documentelor precum:

VEGHIU SORIN ANDREI
12
a) Extragerea textelor din documente prin codificarea UTF-8, pentru preluarea cuvintelor în
întregime , împreună cu diacritice , deoarece altfel acele diacriti ce pot fi înlocuit e automat în
simboluri , în funcție de modul de extragere
b) Eliminarea semnelor de punctuație, menționată anterior
c) Transformarea tuturor literelor mari în litere mici, pentru evitarea întâmpinării de
duplicate ale cuvintelor
d) Eliminarea caracterelo r speciale, precum diacriticele, caractere le procesate dintr -o pagi nă
HTML (ex. “&nbsp ”, “\r\n”, etc )

4. Filtrarea documentelor
4.1. Frecvența termenilor – Frecvența inversă a documentelor

Conceptul denumit frecvența termenilor și frecvența inversă a documentelor, notat pe scurt
TF-IDF, reprezintă un etalon pentru cât de frecvent și cât de important poate să fie un anumit
termen (secțiunea 3.2.1 .) dintr-o mulțime de documente [7].

Această tehnică este des întâlnită și utilizată în domenii precum text mi ning, prelucrarea
limbajului natural sau identificarea informațiilor (din eng. “information retrieval”).

În domeniul prelucrării limbajului natural, termenii întâlniți într -o listă de documente sunt
reprezen tați de către cuvinte sau fraze . Numărul de apa riții al acestor termeni poate fi varia t de la un
document la altul , în funcție de dimensiunea și numărul de pagini al e fiecărui document .

Într-o propoziție precum: “ Unele cuvinte pot fi mai frecvente decât alte cuvinte. ” putem
identifica cu ochiul libe r cât de des apar anumiți termeni și care sunt cuvintele cele mai puțin
importante.

Însă, datorită progresului tehnologic și a dorinței de automatizare activități lor mai puțin
importante , precum identificare a frecvenței și importanței termenilor, putem i nstrui un calculator,
cu ajutorul anumitor reguli și formule, să poată identifica automat importanța termenilor din diverse
documente.

Pornind de la ipoteza anterioară , potrivit căreia putem instrui un calcu lator să identifice
importanța termenilor din di verse texte , putem remarca faptul că un calculator nu poate percepe
frecvența unui cuvânt printr -o singură parcurgere a unui șir de caractere, adică a textului unui
document [7]. Însă, un calculator poate înțelege, potrivit construcției sale, mult mai ușor o m ulțime
de numere sau cifre . Datorită acestui fapt tehnica TF -IDF ajută la transformarea textului, după
efectuarea pașilor de preprocesare, într-o mulțime de perechi de tipul , cuvânt, frecvență – .

Prin transformarea textului documentelor într -o mulțime de perechi, precum cele
menționate anterior, le putem utiliza pentru diverse acțiuni de procesare a textului, precum

Detectarea plagiatului pentru texte în limba română
13
identificarea celor mai importante documente, clasificarea documentelor pe categorii, filtrarea celor
mai relevante documente care sunt simil are cu alte documente, etc.

Acest concept este utilizat chiar și atunci când efectuăm o căutare pe motorul de căutare
Google. În cadrul Google, documentele sunt reprezentate de către paginile web, iar textul ce
urmează a fi utilizat pentru căutarea docume ntelor se numește interogare (din eng. “search query”).
Atunci când se efectuează o căutare prin motorul de căutare Google printr -o interogare, acesta va
determina importanța inter ogării pentru toate documentele existente prin stabilirea unui scor în
funcț ie de impo rtanța fiecărui termen al inter ogării, iar apoi afișează primele K cele mai importante
documente [7].

Deși, algoritmii și procesarea căutărilor efectuate pe fundal de către serviciile motorului de
căutare Google sunt destul de avansați și optimizați , utilizează în structura sa de bază tehnica TF -IDF.
4.1.1. Frecvența termenilor

Frecvența termenilor (TF), presupune procentul referitor la cât de des poate să apară un
termen într-un document .

Spre exemplu, dacă întâlnim foarte des cuvântul “expresie ” în diverse art icole sau
documente științifice și identificăm numărul de apariții din fiecare document , vom remarca faptul ca
inevitabil dimensiunea documentului joacă un rol important în cadrul determinării frecvenței unui
cuvânt.

Putem să presupunem că avem două documente ce conț in cuvântul menționat anterior ,
unde primul docu ment conține în total 300 de cuvinte, cel de -al doile a document conține 1200
cuvinte , iar aparițiile cuvântului sun t de 20 ori în ambele documente. Însă, indiferent dacă numărul
de apariții est e egal în cele două documente , frecventă cuvântului va fi diferită, raportat la numărul
total de cuvinte din fiecare docume nt [7].

Formula pentru fre cvența termenilor este următoarea:

, unde c = cuvânt (termen)
NrA(c ∈ D1) = numărul de apariții ale unu i termen “c” din documentul D1

4.1.2. Frecvența inversă a documentelor

4.2. Scoruri de similaritate

VEGHIU SORIN ANDREI
14

5. Studiul tehnologiilor exis tente
5.1. Pachetul CopyLeaks

CopyLeaks reprezintă o platformă cloud pentru căutarea și detectarea fragmentelor de text
plagiat online, ce poate fi utilizată prin înregistrarea unui nou cont și adăugarea unei subscripții
lunare, după expirarea perioadei d e probă.

Algoritmul CopyLeaks gestionează căutările textelor printr -un software cloud similar cu
modalitatea de gestionare a căutărilor de către algoritmii motoarelor de căutare moderne. Astfel,
CopyLeaks navighează prin miliarde de pagini web și baze de date disponibile online pentru a
identifica fragmentele de text comune cu textul ce se dorește a fi testat.

5.1.1. Teste pentru detectarea fragmentelor plagiate

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

Fig. 1 Interfata grafica utilizată pentru testare

Pentru primul test, a fost încărcat un fișier PDF cu diacritice, care conține poezia Luceafărul
de Mihai Eminescu.

Testul din Fig. 4 cuprinde 65 de rezultate și adrese URL, ce conțin între 2 -93% procente de
text plagiat, respectiv între 26 -869 de cuvinte copiate.

Detectarea plagiatului pentru texte în limba română
15
După verificarea adreselor URL a primelor trei rezultate se poate observa faptul că acestea
conțin textul integral, însă nu toate cuvintele din text conțin diacritice.

Așadar, pachetul CopyLeaks realizează căutările doar pe baza textului trim is pentru testare
și nu interpretează textul, atunci când este cazul, în ambele forme cu și fără diacritice.

Precizez faptul că adresele pentru rapoartele de comparație listate nu pot fi accesate de
către un cont ce nu are atașată o subscripție lunară.

Fig. 2 Fragment din rezultatele obținute (Test 1) – CopyLeaks API

Pent ru cel de -al doilea test (Fig. 3 ), a fost încărcat un fișier PDF similar cu cel anterior, însă
acesta conține doar anumite versuri din poezia Luceafărul, reordonate și fără diacritic e.

VEGHIU SORIN ANDREI
16

Fig. 3 Rezultatele obținute (Test 2) – CopyLeaks API

După cum se poate observa, în urma acestui test s -au obținut 7 rezultate și adrese URL, ce
conțin între 5 -15% procente de text plagiat și între 8 -21 de cuvinte copiate. După verificarea tutur or
adreselor am constatat faptul că acestea conțin doar secvențe din textul testat, fără ca pachetul
CopyLeaks să analizeze sensul lor contextual sau să detecteze anumite sinonime.

Pentru cel de -al treilea test (Fig. 6), au fost alese texte despre Albe rt Einstein, în limba
engleză și anumite texte traduse în limba română cu diacritice, din diverse locații.

Testul din Fig. 6 cuprinde 39 de rezultate, cu procente între 3 -59% de text plagiat, respectiv
32-550 de cuvinte copiate.

În urma acestui test, s e poate observa faptul că fiecare secvență de text a fost identificată
corect în funcție de limba în care a fost redactată fiecare, însă nu au fost identificate secvențele
traduse în limba română ca fiind din textul original din limba engleză.

Detectarea plagiatului pentru texte în limba română
17

Fig. 4 Fragment din rezultatele obținute (Test 3) – CopyLeaks API

CopyLeaks oferă suport pentru diverse modalități de detectare a textelor plagiatate, însă
majoritatea dintre acestea sunt valabile pentru limba engleză, precum:

– Fragmente identice provenite din sur se diferite
– Fragmente parțial asemănătoare, ce conțin câteva cuvinte mo dificate (Fig. 5 )

Fig. 5 Comparație între fragmente parțial asemanătoare

– Fragmente de text ce au fost înșirate într -o ordine diferită, cu sau fără fragmente
originale adăugate prin tre acestea
– Fragmente ce conțin cuvinte cu sinonime

VEGHIU SORIN ANDREI
18

Fig. 6 Comparație între fragmente ce conțin sinonime

5.1.2. Concluzii

Timpul de așteptare pentru primirea rezultatelor în urma utilizării CopyLeaks API depinde
de dimensiunea textului. Însă unul, din tre avantajele CopyLeaks reprezintă faptul că procesarea se
realizează într -un timp relativ scurt, luând în considerare parcurgerea unui volum mare de pagini
web și de date.

Spre exemplu, pentru un fișier ce conține în total 872 de cuvinte, căutarea simil itudinilor
online durează între 50 de secunde și 1 minut.
Dintre modalitățile de detectare ale textelor plagiate, enumerate în capitolul anterior, doar
fragmentele identice provenite din diferite surse pot fi identificate în textele din limba română cu
ajutorul CopyLeaks API.

Totodată, un dezavantaj îl reprezintă și faptul că textele din limba română ce conțin
diacritice nu sunt analizate și pentru cazul în care se identifică un text similar fără diacritice.

5.2. Gestionarea detectării textelor plagiate prin căutări online

Pentru gestionarea detectării textelor plagiate prin intermediul căutărilor online au fost
îndepliniți următorii pași:

1. Stocarea de fișiere text într -o bază de date Microsoft SQL Server
2. Realizarea de căutăr i web prin fragmente de text dintr -un fișier selectat, prin intermediul Google
Custom Search API
3. Stocarea link -urilor URL identificate din rezultatele Google Search API
4. Descărcarea fișierelor HTML cu ajutorul pachetului HtmlAgilityPack API și prelucrarea textului din
acestea cu ajutorul clasei C# Regex pentru expresii regulate

Detectarea plagiatului pentru texte în limba română
19
5. Eliminarea cuvintelor de tip cuvinte comune (din eng. “stop words” ) din limba română din fișierul
text încărcat și din fișierul HTML prelucrat
6. Selectarea cuvintelo r unice din fișierul ce a fost ales pentru analizarea textului
7. Compararea cuvintelor unice din text cu fișierul HTML prelucrat printr -o expresie regulată
8. Identificarea și stocarea procentajului de cuvinte unice comune identificate pentru fiecare link
URL

5.2.1. Descriere, utilizare și configurare Google Custom Search

Fig. 7 Pagina cu informații referitoare la utilizarea Google Search API

Custom Search, realizat de compania Google, oferă posibilitatea dezvoltatorilor de aplicații
să își creeze propriul motor de căutare pentru propriul blog sau diverse website -uri.

Totodată, acest motor de căutare poate fi configurat pentru a putea realiza căutări nu doar
pentru pagini web, ci și pentru imagini sau poze.
Custom Search co nține următoarele caracteristici:

– poate crea motoare de căutare personalizate ce pot realiza căutări pentru o selecție de
pagini sau website -uri
– permite realizarea de căutări prin intermediul fișierelor de tip imagini
– permite personalizarea modului în car e sunt redate rezultatele căutărilor, precum și modul
în care sunt redate secvențele autocompletate
– permite utilizarea de date structurate pentru personalizea rezultatelor căutărilor de pe
website -ul ce utilizează motorul respectiv de căutare
– poate fi asoc iat cu un cont Google AdSense pentru obținerea unui profit atunci când
utilizatorii apasă pe reclamele motorului personalizat de căutare

API-ul (Application Programming Interface) Google Custom Search este utilizat pentru preluarea
și afișarea rezultatelo r unei căutări web pe motorul de căutare personalizat.

Pentru configurarea Google Custom Search API au fost necesari următorii pași:

VEGHIU SORIN ANDREI
20
1. Crearea unui Custom Search Engine (motorul de căutare personalizat ce va fi utilizat în cadrul
API-ului) prin accesarea we bsite -ului https://cse.google.com/cse/all
2. Generarea unei chei de API
3. Instalarea Google Custom Search API în cadrul aplicației de testare
4. Declararea cheilor ce vor fi utilizate pentru autentificarea în cadrul API-ului

Fig. 8 Declarearea cheilor pentru Custom Search API
5. Inițializarea API -ului în codul C#:
CustomsearchService customSearchService =
new CustomsearchService (new BaseClientService .Initializer {ApiKey = googleCutomSearchApiKey });

Service -ul Custo mSearch este inițializat cu ajutorul cheii de API.

6. Preluarea și trimiterea textului ce se dorește a fi căutat prin intermediul Google Custom Search
API
API-ul este utilizat în varianta gratis, pentru realizarea testelor, iar din această cauză există
anumi te limitari precum 100 de căutări maxime zilnice sau faptul că textul căutărilor nu poate depăși
aproximativ 50 -60 de caractere.

Din acest motiv, în cadrul testelor au fost utilizate frazele de început ale fiecăror pagini
preluate din documentele încărca te în cadrul aplicației. Aceste fraze fiind separate prin intermediul
semnului de punctuație “.”.

Fig. 9 Preluarea și execuția căutărilor web prin Custom Search API

Detectarea plagiatului pentru texte în limba română
21

Totodată, fiecare dintre căutările effectuate returnează, de obicei, până la maxim 10
rezultate ce conțin diverse proprietăți precum adresele URL ale paginilor web, titlul reprezentativ
pentru paginile web identificate, tipul MIME ( Multipurpose Internet Mail Extensions), tag -uri sau
chiar detalii referitoare la imaginile rezultate pentru căut area respectivă.

Cheia CX generată odată cu crearea Custom Search Engine va fi utilizată pentru configurarea
cererilor ce vor efectua căutările în contextul motorului de căutare personalizat.
După ce aceste adrese URL au fost identificate cu succes, vor f i adăugate în baza de date
odată cu id -ul aferent documentului utilizat pentru efectuarea căutărilor respective.

5.2.2. Descriere și utlizare Html Agility Pack

Html Agility Pack reprezintă un pachet C# utilizat pentru parsarea fișierelor HTML, citirea ș i
scrierea în cadrul elementelor unui DOM ( Document Object Model) HTML.

Totodată, pachetul Html Agility Pack utilizează conceptul de web scraping. Acest concept
presupune extragerea de date din cadrul unui website și este utilizat în diverse limbaje de
programare, precum C#.

Acest pachet a fost utilizat pentru descărcarea fișierelor HTML, preluarea elementelor
paginilor web, identificate anterior cu ajutorul Google Custom Search API, precum și preluarea
textului din elementele de tip paragraph într -un și r de caractere.

Fig. 10 Descărcarea unui fișier HTML și preluarea e lementelor text de tip paragraf
5.2.3. Prelucrarea textelor

După cum a fost menționat în subcapitolele anterioare, pentru preluarea textelor au fost
utilizate pachet ele Google Custom Search API, Html Agility Pack, precum și preluarea textelor din
fișiere PDF cu ajutorul pachetului iTextSharp.

Pentru îndeplinirea sarcinii de prelucrare a textelor au fost realizați următorii pași:

VEGHIU SORIN ANDREI
22
1. Filtrarea textelor, precum utilizarea clasei C# pentru expresii regulate denumită Regex pentru
eliminarea caracterelor speciale din textul rezultat din pars area fișierelor HTML precum
expresia: “*^a -zA-Z+”, ceea ce presupune doar păstrarea literelor din text, excluzând astfel
caracterele spe ciale și cifrele

2. Ambele texte au fost preluate prin codificarea UTF -8 pentru preluarea diacriticelor, iar apoi
acestea au fost eliminate din textul documentului selectat și din textul HTML prelucrat .
Eliminarea diacriticelor a fost realizată prin transpun erea textului într -o formă canonică (forma
D), mai exact literele fără diacritice sunt separate de semnele diacritice într -o listă de caractere, iar
apoi selectarea acelor caractere ce sunt simple litere, după cum se poate observa în figura (Fig. 7)
următo are:

Fig. 11 Funcția pentru eliminarea diacriticelor
3. Preluarea listei de cuvinte de tip stop words dintr -un fișier JSON (sursa:
https://github.com/st opwords -iso/stopwords -ro/blob/master/stopwords -ro.json ) prin utilizarea
pachetului Newtonsoft.JSON pentru parsarea fișierului.

După ce a fost preluată această listă, sunt selectate toate cuvintele din textul selectat în
cadrul aplicației și sunt eliminat e cuvintele care se regăsesc în listă.

4. Utilizarea unei expresii regulate cu ajutorul clasei Regex pentru a identifica toate cuvintele unice
comune din textul selectat care se regăsesc în textul HTML prelucrat .

Fig. 12 Identificarea cuvintelor unice comune și calculul procentajului de plagiere dintre texte

Detectarea plagiatului pentru texte în limba română
23
5. Calculul procentajului de plagiere dintre textul selectat și textul paginilor HTML prelucrate prin
intermediul următoarei formule:

Procentaj =

6. Salvarea procentajelor în baza de date

5.2.4. Testele efectuate și rezultatele obținute

Pentru teste am utilizat două fișiere ce cuprind texte despre viața și ocupația domnitorului
Alexandru Ioan Cuza, dar și despre viața și activitatea fizicianului Albert Einstein.

Primul fișier cu informații adunate de pe diverse pagini web cu detalii referitoare la domnia
și istoria lui Alexandru Ioan Cuza, cuprinde următoarele rezultate:

Fig. 13 Primul test – Fișierul cu informații despre Al. I. Cuza

Aceste rezultate sunt relativ a propiate de procentul așteptat, deoarece textul din fișier
conține aproximativ 10 -12% procent de text plagiat adunat din mai multe surse, iar totalul acestor
procentaje este de aproximativ 8,33%.

Pentru cel de -al doilea test, au fost utilizate diverse dat e despre istoria și activitatea lui
Albert Einstein, după cum urmează:

VEGHIU SORIN ANDREI
24

Fig. 1 4 Cel de -al doilea test – Fișierul cu informații despre Albert Einstein

Prin acest test a fost obținut un procentaj mai mare și mai multe adrese URL rezultate,
deoarece se cvențele de text plagiate au fost împărțite pe mai multe pagini pentru a putea realiza
căutări cât mai diversificate prin Google Custom Search API.

5.2.5. Concluzii

Tehnologiile utilizate și testele obținute pentru acest raport de cercetare s -au dovedit a fi
destul de eficiente pentru realizarea detecției plagiatului pentru textele din limba română, deși
aceste performanțe pot fi depășite pe viitor cu ajutorul altor metodologii de eficientizare ale
procesului.

Google Custom Search API a realizat întocma i scopul propus, și anume, identificarea
primelor pagini web ce conțin cele mai multe dintre fragmente din textele încărcate în aplicația web.

Totodată, limbajul C# s -a dovedit a avea o performanță foarte bună pentru filtrarea,
împărțirea și comparațiile dintre șirurile de caractere formate din textele propuse spre testare.

Preluarea și procesarea paginilor HTML prin intermediul pachetului Html Agility Pack a reușit
să obțină rezultatele în timp util pentru un număr de până la maxim 5 adrese URL diferite, însă
pentru un număr crescut de adrese URL performanța nu a fost satisfăcătoare, luând de asemenea în
considerare și faptul că paginile web pot avea diferite dimensiuni ce pot încetini procesul.

Pentru o performanță îmbunătățită și pentru o predictibilit ate mult mai sporită adresele URL
și paginile web pot fi preluate asincron prin intermediul unui web crawler ce va putea popula baza
de date cu informații reutilizabile pentru căutări viitoare.

Detectarea plagiatului pentru texte în limba română
25
De asemenea, procesarea textelor va mai necesita îmbunătățir i prin adăugarea de noi
expresii regulate ce vor putea clarifica mult mai bine textul, eliminând diverse cifre și caractere
speciale ce se pot regăsi în componența anumitor cuvinte și nu au fost eliminate inițial.

5.3. Detectarea plagiatului prin text mining

6. Conclu zii

VEGHIU SORIN ANDREI
26

B I B L I O G R A F I E
[1] Hermann Maurer, Frank Kappe și Bilal Zaka , Plagiarism – A Survey , Journal of Universal Computer Science,
vol. 12, no. 8 (2006)
[2] Dicționarul Explicativ al limbii române Online, https://dexonline.ro/definitie/plagiat
[3] Oxford University – Plagiarism , https://www.ox.ac.uk/students/academic/gui dance/skills/plagiarism?wssl=1
[4]Hussain A. Chowdhury și Dhruba K . Bhattacharyya , Plagiarism : Taxonomy, T ools and Detection Techniques ,
Dept. of CSE, Tezpur University
[5] Christopher D. Manning Prabhakar Raghavan Hinrich Schütze , An Introduction to Info rmation Retrieval,
Cambridge University Press, England 2009
[6] Erwin Glockner, Doina Gliga, Marina Stegarescu și Irina Tirdea , Snowball Romanian Stemming Algorithm,
https://snowba llstem.org/algorithms/romanian/stemmer.html
[7] William Scott – Towards Datascience, TF-IDF from scratch in Python on real world dataset,
https://towa rdsdatascience.com/tf -idf-for-document -ranking -from -scratch -in-python -on-real-world –
dataset -796d339a4089
[8]
[9]
[10]

Similar Posts