Sunteți pe pagina 1din 42

UNIVERSITATEA BABE-BOLYAI CLUJ-NAPOCA

FACULTATEA DE MATEMATIC I INFORMATIC


SPECIALIZAREA INFORMATIC ROMN

LUCRARE DE LICEN
Serviciu web pentru identificarea lucrrilor
plagiate

Conductor tiinific:
Lect. Dr. Radu DRAGO
Absolvent:
Bianca Teodora PETRE

2013

Cuprins
1.

2.

3.

4.

5.

Capitolul 1 Introducere..............................................................................................3
1.1.

Obiective...............................................................................................................4

1.2.

Contribuii originale..............................................................................................4

1.3.

Structura lucrrii....................................................................................................5

Capitolul II Metode de identificare a similaritilor ntre documente.......................6


2.1.

Analiza similitudinii..............................................................................................6

2.2.

Compararea documentelor la nivel de propoziie.................................................8

2.3.

Compararea documentelor folosind factori de corelaie.......................................9

2.4.

Clasificare i amprentare.....................................................................................11

2.4.1.

Clasificar....................................................................................................11

2.4.2.

Amprentare..................................................................................................13

Capitolul III Tehnologii Web....................................................................................16


3.1.

PHP, Apache i MySQL......................................................................................16

3.2.

HTML, CSS i jQuery.........................................................................................18

3.3.

Drupal..................................................................................................................20

3.3.1.

Noiuni de baz............................................................................................21

3.3.2.

Teme Drupal.................................................................................................23

Capitolul IV Aplicaie de detectare a plagiatului.....................................................25


4.1.

Preprocesarea documentelor...............................................................................26

4.2.

Compararea documentelor..................................................................................27

4.3.

Funcionaliti ale aplicaiei................................................................................30

4.4.

Analiza rezultatelor.............................................................................................36

Capitolul V Concluzii..............................................................................................38
5.1.

6.

Activiti propuse................................................................................................39

Bibliografie.................................................................................................................40

1. Capitolul 1 Introducere

A plagia nseamn a folosi sau a copia parial ideile altcuiva fr a cita autorul original,
sau conform [6], a lua, a fura ideile, expresiile, inveniile cuiva i a le prezenta drept crea ii
proprii; a publica pe numele su fragmente din lucrarea altuia; a comite un furt literar.
Termenul plagiere i are originea n cuvntul latin plagium, care n secolul I
nsemna rpirea unui sclav sau a unui copil, iar plagiatorul (plagiarius) nsemna jefuitor,
rpitor sau om care ajuta infractorii s se ascund. n anul 1601, termenul plagiere a fost
introdus n limba englez de dramaturgul Ben Jonson, pentru a descrie furtul literar. [10]
ntr-adevr, cuvntul plagiere este sinonim cu furtul, dar aciunea de a plagia este mai
grav ntruct persoana care plagiaz fur ceva unic: ideile, creativitatea i personalitatea
autorului ceea ce l reprezint de fapt.
n ziua de azi, plagiatul este destul de comun printre studeni, profesori i cercettori i
devine o problem din ce n ce mai serioas. Un factor care contribuie la aceast situa ie este
accesul foarte uor la Internet, adic la numeroase publicaii online pe care studenii le gsesc i
le copiaz sau le modific cu uurin. Internetul cuprinde cel mai mare numr de articole i
informaii publice online, iar o mare parte din aceast informaie este publicat n mai mult de o
singur locaie. O cutare pe Internet a unui subiect returneaz rezultate aproape identice n zeci
de locaii diferite.
n urma studiilor s-a descoperit c plagiatul n universiti a crescut semnificativ n ultima
jumtate de secol, ceea ce a afectat calitatea educaiei primite de studeni. Cadrele universitare
tiu c pentru a avea cunotine bogate n orice domeniu, studenii au nevoie de informa ia
furnizat de paginile web, ns acetia sunt tentai s utilizeze informa iile gsite pentru a
practica plagiatul. Informaiile trebuie utilizate n mod legal i moral, adic o persoan trebuie
s tie cum s foloseasc informaia: cum s o gseasc, cum s o structureze, s o evalueze i s
o modeleze din propriul punct de vedere. Acest lucru constituie o competen pe care orice
student absolvent ar trebui s o aib, ns din cauza faptului c nu exist sisteme de detectare a

plagiatului n fiecare universitate, cei mai muli studeni prefer s copieze dect s scrie lucrri
originale.
Detectarea plagiatului poate ajuta cadrele universitare s mbunteasc calitatea
educaiei studenilor. De aceea, acest subiect a fost dezbtut n ultimii ani att n universit i, ct
i n cercurile politice. Au fost dezvoltate numeroase aplicaii comerciale de detectare a
plagiatului, care utilizeaz diferite metode. Majoritatea aplicaiilor sunt capabile s identifice
fraze plagiate n care s-a modificat ordinea cuvintelor, s-au nlocuit cuvintele cu sinonimele lor,
propoziii scurte legate ntr-o fraz sau fraze mprite n propoziii scurte etc.

1.1.

Obiective

Obiectivele generale ale lucrrii de fa sunt:


-

definirea plagiatului i descrierea tehnicilor de plagiere


prezentarea diverselor metode de identificare a similaritilor dintre texte
dezvoltarea unei aplicaii care compar documente i identific care dintre acestea sunt

plagiate
prezentarea tehnologiilor utilizate pentru realizarea aplicaiei.
Scopul principal este de a readuce tehnicile de nvare pe care Internetul le-a schimbat

prin furnizarea attor resurse uor de gsit i de copiat. Pentru a realiza scopul propus, am
dezvoltat o aplicaie web de detectare a plagiatului, care, printr-o interfa user-friendly, le
permite studenilor s se nregistreze i s i depun lucrrile atribuite, iar cadrelor didactice s
identifice, pentru fiecare lucrare n parte, secvenele suspecte i documentele surs din care
acestea provin.

1.2.

Contribuii originale

n general, un student care plagiaz lucrri existente pentru a realizeaza un eseu, copiaz
poriuni mari de text pe care le modific (uneori) prin reordonarea sau tergerea unor cuvinte, ca
s par originale. Ulterior, studentul adaug paragrafe originale pentru a finaliza tema atribuit.
Metoda propus n aceast lucrare, numit SimilarDocumentsDetection (SimDD), a fost creat cu
scopul de a identifica astfel de documente.
Ideea de baz a metodei SimDD este c un paragraf poate fi considerat plagiat dac mai
mult de 3 dintre termenii din acesta au fost gsii la distan e relativ apropiate n documentul
original. SimDD verific dac un document suspect DP este plagiat comparnd cuvintele cheie
4

din acesta cu toate cuvintele cheie din celelalte documente din baza de date i astfel identific (i)
propoziiile copiate, (ii) propoziiile care au fost create prin unirea sau desprirea unor propoziii
din documentul original i (iii) propoziiile n care cuvintele au fost amestecate.

1.3.

Structura lucrrii

n continuare, lucrarea este structurat pe 3 capitole, dup cum urmeaz.


n Capitolul 2 Metode de identificare a similaritilor ntre documente sunt
evaluate mai multe tehnici de detectare a plagiatului dezvoltate pn n prezent din diverse
lucrri. Metodele prezentate sunt diferite din multe puncte de vedere, prezentnd abordri
originale pentru fiecare aspect ce trebuie studiat n procesul de detectare a plagiatului: stocarea
documentelor ntr-o baz de date, preprocesarea documentelor n vederea comparrii rapide a
textelor, vizualizarea rezultatelor etc.
Capitolul 3 Tehnologii Web prezint tehnologiile utilizate pentru dezvoltarea softului. Pentru a crea o aplicaie web, este nevoie de tehnologii pentru stocarea informa iilor, pentru
partea de logic a aplicaiei, care ofer dinamism paginilor web i pentru partea de prezentare,
adic tot ce ine de interfa.
n Capitolul 4 Aplicaie de detectare a plagiatului este detaliat metoda propus i
sunt prezentate deciziile care au fost luate pentru implementarea algoritmului de comparare a
textelor. De asemenea, capitolul prezint funcionalitile aplicaiei de detectare a plagiatului i o
analiz a rezultatelor obinute.
Ultimul capitol Concluzii cuprinde concluziile generale ale studiului realizat i
activitile propuse pentru mbuntirea aplicaiei.

2. Capitolul II Metode de identificare a similaritilor


ntre documente

n aceast seciune sunt evaluate mai multe metode de detectare a plagiatului dezvoltate
pn acum, sunt prezentate avantaje i dezavantaje ale acestora precum i tehnici ale plagiatului
care sunt sau nu identificate.
Deoarece un document plagiat nu este (neaprat) identic cu documentul original, folosind
tehnici convenionale de cutare, documentele plagiate se confund cu cele care sunt pur i
simplu pe aceeai tem.
De aceea s-au dezvoltat numeroase tehnici de detectare a plagiatului, fiecare avnd o
abordare diferit: calcularea gradului de similitudine ntre documente la nivel de propozi ie,
paragraf sau iruri de n caractere lund n considerare cuvintele comune, detectarea
documentelor plagiate pe baza amprentelor digitale ale acestora, identificarea cuvintelor
nlocuite cu sinonimele lor etc.
Metodele prezentate determin propoziii plagiate prin parafrazare, desprire, lipire i
reodonare, dar i propoziii direct copiate.

2.1.

Analiza similitudinii

n [19] Shanmugasundaram Hariharan propune o metod de identificare a plagiatului prin


analiza similitudinii dintre documente, folosind metrici precum cosinus, Dice, Jaccard, Hellinger
sau Harmonic.
Pentru a studia rata de plagiere din universitatea lor, autorii acestui proiect au atribuit
studenilor mprii pe grupe articole de realizat ntr-o sptmn, fiecare grup avnd subiect
diferit.
Primul pas al metodei propuse este preprocesarea documentelor, care const n eliminarea
cuvintelor de legtur, a caracterelor speciale ( . ! ? ( ) , ; etc) i a sufixelor. Eliminarea
sufixelor este o operaie care trebuie aplicat pentru a obine originea comun a cuvintelor din
6

aceeai familie lexical. n compararea textelor, acest pas ajut foarte mult pentru a putea
considera cuvintele cu sens i form comun ca fiind identice. Acest proces este util deoarece
compar termenii eficient i identific propoziii care sunt similare n forma lor original.
n urma preprocesrii documentelor, sunt obinute 2 liste de cuvinte, crora li se aplic
metrici precum cosinus, Dice, Jaccard, Hellinger sau Harmonic, iar n urma evalurii rezultatelor
s-a dovedit c formula cosinusului este cea mai relevant:
k

Cosine(ti, tj) = t ih t jh /
h=1

h=1

h =1

t2ih t 2jh

unde vectorul ti corespunde termenilor din primul document, iar tj celor din documentul cu care
este comparat.
De obicei termenilor li se atribuie valori date de numrul de apariii n cadrul
documentului sau de diverse metode de ponderare, de exemplu tf-idf.
TF-IDF (Term Frequency - Inverse Document Frequency) este o metod care atribuie o
pondere (greutate) fiecrui cuvnt dintr-un document inclus ntr-o colecie, pondere ce reflect
importana termenului n colecia respectiv. Valoarea TF-IDF crete proporional cu numrul de
apariii ale cuvntului n document, dar este compensat de frecvena cuvntului n colecia de
documente. [4]
Fiecrui termen dintr-un text i se atribuie o greutate care depinde de numrul de apari ii
ale acestuia n document. Cea mai simpl abordare este considerarea greutii egal chiar cu
numrul de apariii ale termenului t n documentul d. Acest sistem de ponderare se numete Term
Frequency i se noteaz tft,d, cu indicii care denot termenul (t) i respectiv documentul (d).
Avnd n vedere c ntr-o colecie de documente cu subiect comun, unii termeni nu mai
sunt att de importani deoarece apar prea des ca s fie relevani, aceast metod utilizeaz
frecvena n documente (document frequency). Aceasta este notat cu dft i egal cu numrul de
documente din colecie care conin termenul t.
Idf (Inverse Document Frequency) se calculeaz astfel:
N
idft = log df t

unde N este numrul de documente din colecia dat. Aadar, idf este o msur care decide dac
un termen este frecvent sau nu ntr-o colecie, valoarea rezultat fiind mare dac termenul este
comun, i mic altfel.
n final, termenii au valoarea:
tf-idft,d = tft,d idft
Rezultatele acestui studiu au dovedit c 70% din studeni au plagiat, cei cu aceea i tem
avnd lucrri aproape identice.

2.2.

Compararea documentelor la nivel de propoziie

n [5] se prezint un algoritm de comparare a documentelor la nivel de propozi ie. Autorii


au considerat c propoziiile sunt componenetele din care un limbaj natural este compus, la fel ca
instruciunile ntr-un limbaj de programare, i c paragrafele fiind prea lungi, similitudinea dintre
ele ar fi mult mai mare dect ntre propoziii. [5]
Aceast metod presupune 4 pai. Primul pas este preprocesarea documentelor - citirea
documentelor i parsarea acestora n obiecte de tip Document care conin o list de obiecte de tip
Propoziie, care la rndul lor conin o list de cuvinte obinute dup eliminarea cuvintelor prea
comune, a cuvintelor de legtur i a celor care se repet.
Exemplu:
Propoziia 1: Maria a avut grip.
Propoziia 2: n timp ce Ionel era sntos, Maria a avut grip.
Dup procesare:
Propoziia 1: {maria, avut, grip}
Propoziia 2: {timp, ionel, era, sntos, maria, avut, grip}.

Al doilea pas este compararea documentelor. Fiecare document este mprit n propoziii
i este calculat o valoare care reprezint gradul de similitudine ntre 2 propoziii. Aceast
valoare este calculat n funcie de numrul de cuvinte comune i lungimile propozi iilor. n
exemplul de mai sus, cele 2 propoziii au 3 cuvinte n comun, ceea ce nseamn 100% din
propoziia 1 i 43% din propoziia 2. Valoarea similitudinii reprezint media aritmetic dintre
cele dou procentaje, adic 71,5%. Apoi se stabilete o valoare limit (Similarity Threshold), iar
8

dac valoarea calculat ntre 2 propoziii este mai mare sau egal cu aceast constant, legtura
dintre propoziii este salvat.
La sfritul procesului, rezultatul este salvat ntr-o structur de date care conine toate
legturile dintre proproziiile din textul suspect i propozi iile din documentele cu care este
comparat, care depesc valoarea limit stabilit. O legtur este de forma (P plagiat , Poriginal,
valoare_similitudine(Pplagiat, Poriginal)), unde,
-

Pplagiat este o propoziie din documentul suspect (dp) care a fost considerat

plagiat,
Poriginal este o propoziie dintr-unul dintre documente din colecie n care au fost

gsite similariti cu documentul dp,


valoare_similitudine(Pplagiat, Poriginal) este valoarea asociat celor 2 propoziii
explicat mai sus.

S-a considerat c multe dintre similaritile dintre 2 documente cu acelai titlu sunt
cauzate de folosirea acelorai surse, care, n majoritatea cazurilor au fost citate corect. De aceea,
la pasul 3, rezultatele sunt filtrate astfel nct propoziiile care au referin comun s fie
eliminate.
La final, fiecrui document i se atribuie o valoare, calculat n funcie de asemnrile
dintre acesta i cel mai similar document dintr-o anumit categorie (clasificate pe teme).

2.3.

Compararea documentelor folosind factori de corelaie

O alt metod de identificare a plagiatului este prezentat n [13] i const att n


detectarea adugrii, tergerii i nlocuirii cuvintelor cu sinonimele lor ct i n identificarea
frazelor care au fost unite sau mprite n mai multe propoziii.
Metoda propus compar documentele tot la nivel de propoziie, ns determin gradul de
similitudine dintre 2 documente utiliznd factori de corelaie ntre cuvinte (word-correlation
factors) definii n [15]. Factorul de corelaie a 2 cuvinte reprezint o valoare care determin dac
cele 2 cuvinte sunt asemntoare sau identice din punct de vedere semantic.
Asemnator

metodei

anterioare,

procesul

ncepe

prin

eliminarea

cuvintelor

nesemnificative din document i aducerea cuvintelor derivate la forma de baz. Mai mult,
aceasta metod elimin propoziiile scurte, ca urmare a probabilitii ridicate ca doi autori total
diferii s creeze fraze scurte asemnatoare. De exemplu Acest lucru nu este adevrat. sau

Acesta este un exemplu.. Cu ct propoziiile sunt mai lungi, cu att probabilitatea e mai mic
s semene ntre ele.
Crearea unei propoziii plagiate pornind de la o propoziie de baz prin reordonarea
cuvintelor este o metod des ntlnit. Avnd n vedere acest lucru, n metoda descris n [13] nu
se ia in considerare ordinea termenilor n propoziii, ci doar adugarea, nlocuirea i tergerea
cuvintelor.
Factorii de corelaie utilizai n metoda propus au fost calculai utiliznd 880,000 de
documente de pe Wikipedia pe baza frecvenei lor de apariie mpreun i a distan ei relative n
documente [13]. Astfel, similitudinea dintre 2 propoziii este media aritmetic a factorilor de
corelaie dintre cuvintele dintr-o propoziie de baz S i cele dintr-o propozi ie P din documentul
de analizat.
Algoritmul prezentat este capabil s identifice propoziii dintr-un document (plagiat) DP
care au fost create unind sau desprind propoziii dintr-un document surs D S. O propoziie P
este "inclus" ntr-o propoziie iniial S dac majoritatea cuvintelor din P sunt (semantic), la fel
ca i (unele dintre) cuvintele din S. Astfel, se stabilete o valoare limit, iar dac media
artimetic calculat pentru a identifica similitudinea ntre cele 2 propoziii dep e te pragul
stabilit, atunci ea este considerat inclus. Aceeai strategie este aplicat pentru a identifica
propoziiile unite.
Dup ce se determin gradul de similitudine dintre oricare 2 propoziii din D P i DS, se
alege pentru fiecare P din DP cea mai asemntoare propoziie din DS (SenSim(Pi, DS)), n ideea
c o propoziie poate fi gsit n mai multe locuri ntr-un document. Avnd aceste valori, se
calculeaz procentajul de plagiere media artimetic a valorilor SenSim.
Pentru a clasifica un document DP ca fiind variant plagiat a unui alt document D S, s-a
stabilit o valoare limit (Lim), astfel nct dac procentajul de plagiere dintre cele 2 documente
depete Lim, atunci acesta este considerat plagiat.
Testele au fost fcute pe 2 seturi de documente diferite, iar acurate ea a fost de 100%,
respectiv 96.2%, algoritmul clasificnd greit 3,8% articole dintr-unul dintre seturi, ns niciun
document original nu a fost clasificat greit. [13]

10

2.4.

Clasificare i amprentare

n [20] sunt evaluate 2 metode des ntlnite pentru identificarea documentelor care au
aceeai surs, denumite coderivate: amprentarea digital (fingerprinting) conceput n special
pentru determinarea coderivatelor i clasificarea (ranking) tehnic dezvoltat pentru
identificarea unor resurse pornind de la o interograre dat. De asemenea sunt prezentate variante
ale acestor metode pentru identificarea celei mai bune dintre ele i o extindere a clasificrii
dezvoltat de autori.
Cele 2 metode sunt foarte diferite, ns au elemente n comun, cum ar fi preprocesarea
documentelor nainte de indexare. Acest proces const n eliminarea cuvintelor de legtur i a
sufixelor avantajul fiind reducerea timpului de procesare a documentului de verificat, fr nicio
degradare a calitii rezultatelor returnate. [20]

1.1.1. Clasificarea
Clasificarea [20] este utilizat pentru identificarea celor mai bune potriviri dintr-o baz de
date pornind de la o interogare i este utilizat pe scar larg n motoarele de cutare de pe
Internet. Aceast metod const n 2 pai:
(i)
(ii)

colecia de documente este indexat;


o interogare este dat, pentru gsirea rezultatelor care o conin ntr-o baz de date;
Indexarea [21] este un proces care ajut la organizarea cantitilor mari de informa ii,

astfel nct interogrile s fie rezolvate eficient, iar prile relevante de text s fie extrase rapid. O
colecie de documente stocat (sau nu) ntr-o baz de date se presupune c este un set de
documente separate, fiecare fiind caracterizat de un set de termeni (cuvinte) i astfel, cu ajutorul
indecilor se pot identifica rapid documentele care conin anumite combinaii de termeni sau care
pur i simplu sunt considerate a fi relevante pentru setul de termeni dat.
Interogrile sunt utilizate pentru calcularea gradului de similitudine (folosind o func ie
special numit msurarea similitudinii [20]) pentru fiecare document dintr-o colecie.
Rezultatele sunt returnate n ordine descresctoare, cel cu gradul cel mai nalt fiind cel mai
asemntor i suspect de plagiere.
Exist mai multe funcii care msoar similitudinea, printre care produsul intern una
din cele mai simple i practice msurtori [20] i produsul intern normalizat.

11

Fiind date: o interogare q (fiecare termen din interogare este notat cu t) i un document d
n care este efectuat cutarea, produsul intern este produsul a dou componente: frecvena i
greutatea termenilor care se gsesc att n interogare ct i n document.
Frecvena unui termen este o valoare raportat la importana termenului n documentul
curent de verificat i este 1 + lnfd,t , unde fd,t este numrul de apariii ale termenului t n
documentul d, iar greutatea unui termen reprezint importana unui termen n toat colecia de
documente. Cea din urm are valoarea ln(1+N/ft), N este numrul de documente din colecie, iar
ft este numrul de documente care l conin pe t.
Produsul intern se calculeaz astfel:
N
( 1+ln f d , t ) ln (1+ f )

t q d

i returneaz valori mari n cazul documentelor n care termenii din interogare apar de multe ori.
Aadar documentele mari tind s fie n top lucru nu neaprat relevant. Avantajul principal este
timpul de execuie.
Pentru rezolvarea problemei documentelor lungi, autorii au propus o metod care
normalizeaz produsul intern mprind rezultatul cu rdcina ptrat a lui fd (numrul de termeni
din documentul d).
1
N
( 1+ ln f d , t ) ln ( 1+ )
ft
f d t qd
Pornind de la aceste msurtori, [20] prezint o metod care, spre deosebire de formulele
de mai sus, a fost dezvoltat pentru compararea de documente ntregi, nu pentru gsirea unor
documente plecnd de la o interogare. Ideea de baz a metodei este c 2 documente sunt similare
dac conin un numr similar de apariii ale cuvintelor. [20]
Astfel, diferena dintre frecvena unui termen n documentul-interogare (q) i frecvena
aceluiai termen n documentul cu care se verific, notat cu | fq,t - fd,t|, trebuie s fie mic. De
asemenea lungimile documentelor, fq i fd, trebuie s fie apropiate.
Similitudinea dintre documente este calculat astfel:

12

1

1+ ln ( 1+|f qf d|) t q d
N
ft

N
ft
1+|f q , tf d ,t|

este o valoare care reflect frecvena unui termen n cadrul coleciei de documente,

unde N este numrul total de documente din colecie, iar

ft

este numrul de documente care l

conin pe t.
Normalizarea acestui produs intern se realizeaz mprind rezultatul cu logaritmul
diferenei dintre lungimile documentelor. Este necesar acest proces, deoarece dac se compar un
document de dimensiune mic cu unul de dimensiune foarte mare, este posibil ca termenii din
primul document s fie gsii foarte des n cel de-al doilea datorit lungimii acestuia. De
asemenea, s-a preferat utilizarea logaritmului din diferen n locul diferenei simple deoarece
valoarea diferenei tinde s influeneze prea mult rezultatul valorii finale [20]. De exemplu,
pentru documentele de lungime aproximativ egal (1000 i respectiv 1005 cuvinte), prin
normalizarea folosind diferena, valoarea similitudinii este mprit la 6, dar documentele difer
doar 0.5%.

1.1.2. Amprentare
Aceast metod este utilizat pentru compararea documentelor coderivate, adic a celor
care provin din aceeai surs. Amprentarea presupune atribuirea unei valori (a unei descrieri)
fiecrui document dintr-o colecie aceast valoare reprezentnd coninutul documentului
respectiv, iar comparnd aceste valori se poate determina gradul de similitudine dintre
documente.
Amprenta unui document este o colecie de numere ntregi numite puncte caracteristice.
De obicei, o amprent este generat selectnd subiruri dintr-un document asupra crora se aplic
o formul matematic [20]. Aceasta este asemntoare unei funcii de hashing i produce un
punct caracteristic. Aadar, cnd un document este verificat de plagiere, i se genereaz amprenta
digital i n funcie de numrul de puncte caracteristice pe care le are n comun cu documentul
cu care este verificat, se stabilete gradul de similitudine dintre cele 2 documente.
13

Procesul const n 4 sarcini:


i.

gsirea unei funcii care s transforme subiruri n puncte caracteristice;


Pentru rezultate bune, funcia trebuie s fie precis, rapid (cnd se face o interogare pe o

colecie mare, se genereaz un numr foarte mare de puncte caracteristice), reproductibil


(pentru un ir s se returneze de fiecare dat aceeai valoare) i s se stabileasc un interval n
care s fie inclus valoarea returnat.
Un exemplu de astfel de funcie este [16]:
h(ci) = h(ci-1) (A(ci) + h(ci-1) 6 +h(ci-1) 2), i>0
unde c0 c1...ck este un ir, A(ci) este o funcie care convertete un caracter ntr-un numr ntreg
(de obicei valoarea ASCII asociat), i reprezint shift-are la stnga, respectiv la dreapta,
iar

reprezint operaia boolean XOR (Exclusive OR). Pentru primul caracter din orice ir

se d o valoare iniial.
Dac valoarea maxim pe care o poate lua funcia f este m, atunci valoarea unui ir este
dat de:
h(ir) = h(ck) mod m.
ii.

stabilirea lungimii subirurilor (granularitatea);


Granularitatea are un impact puternic asupra preciziei ntregului proces [20] i poate fi un

numr fix de caractere sau un numr fix de propoziii. Cu ct granularitatea este mai mare, cu
att similaritatea dintre documente devine mai mic.
iii.

stabilirea numrului de puncte caracteristice din care s fie alctuit amprenta


digital a documentului;
Pentru a decide mai uor dac documentele sunt sau nu coderivate, acestea trebuie

descompuse ntr-un numr ct mai mare de puncte caracteristice. Acest numr poate fi fix, sau

14

variabil n funcie de lungimea documentului. Alegerea unui numr variabil poate conduce la
favorizarea documentelor lungi.
iv.

alegerea unui algoritm care selecteaz subirurile din document (strategia de


selecie).
Exist multe strategii de selecie, unele fiind potrivite pentru amprentare cu numr fix de

puncte caracteristice i altele pentru cea cu numr variabil. Dac a fost stabilit numrul de puncte
caracteristice k, atunci k subiruri vor fi selectate din document. Cea mai simpl selec ie este
selectarea tuturor subirurilor de lungime g (granularitatea), aceast strategie producnd cea mai
mare amprent care se poate genera pentru un document.
O alt strategie este selectarea frazelor n funcie de frecven, cele mai rare avnd un rol
mai important. Aceast metod presupune calcularea punctelor caracteristice, sortarea lor n
funcie de numrul de apariii n document i selectarea celor mai rare. De obicei un punct
caracteristic apare o singur dat, ceea ce nseamn c vor fi eliminate numai sub irurile care
sunt foarte comune.

15

3. Capitolul III Tehnologii Web

O aplicaie web este o aplicaie client-server care cuprinde 2 pri: partea de front-end
(client) i partea de back-end (server).
Modelul client/server este o arhitectur ce descrie relaia dintre 2 programe care se afl
fie pe acelai calculator, fie pe calculatoare diferite. Clientul face o cerere la server, iar serverul
proceseaz cererea i returneaz un rspuns.
n cazul aplicaiilor web, browser-ul (navigatorul) este clientul care trimite cereri unui
server web. Un client poate solicita pagini statice, care nu necesit niciun fel de procesare pe
partea de server, sau pagini dinamice, care cuprind script-uri scrise ntr-un anumit limbaj de
programare pe care serverul web le interpretaz i le trimite napoi clientului sub form de
pagin static.
ntr-o aplicaie web, partea de client (HTML, JavaScript) se ocup cu prezentarea
informaiilor, iar partea de server (PHP, ASP, Perl) se ocup cu stocarea i procesarea acestora.

3.1.

PHP, Apache i MySQL

PHP este un limbaj de scripting folosit pe scar larg n dezvoltarea paginilor i a


aplicaiilor web. A fost creat de Rasmus Lerdof n anul 1995, din dorin a acestuia de a crea un
script pentru a urmri numrul de vizitatori ai site-ului su. [11]
Iniial PHP nsemna Personal Home Page i a fost lansat ca un proiect open source, de-a
lungul timpului muli dezvoltatori alturndu-se la perfecionarea soft-ului. n 1997 PHP a fost
numit cum este i n prezent PHP: Hypertext Preprocessor i reprezint unul dintre cel mai
importante i populare limbaje de programare web. [11]
Fiind un limbaj de scripting, PHP aduce multe avantaje programatorilor, de exemplu
codul scris nu trebuie compilat, ceea ce l face uor de editat i testat. Majoritatea limbajelor de
programare necesit compilarea fiierelor n cod main nainte de rulare, proces care presupune
mult timp.
16

Rulat din linia de comand, PHP permite crearea de aplicaii independente, ns


principalul scop al PHP-ului este crearea de script-uri pentru a fi rulate pe un server web,
permind modificarea paginilor web nainte ca acestea s fie transmise de server ctre
browserele utilizatorilor.
Pentru utilizarea PHP-ului pe un site web, este nevoie de un server care s proceseze
script-uri PHP. Apache este un server HTTP de tip open source, care, odat instalat pe calculator,
permite dezvoltatorilor s ruleze scripturi PHP local, fapt pentru care, Apache este un element
important pentru dezvoltarea local. [11]
Apache este cel mai popular server web n prezent 1, avnd aadar o contribuie mare n
dezvoltarea Internetului. Exist multe module (plugin-uri) care au fost create pentru a extinde
funcionalitatea serverului Apache. Printre cele mai importante funcionaliti ale serverului
Apache se numr suportul pentru CGI (Common Gateway Interface) i gzduirea virtual
(posibilitatea gzduirii mai multor site-uri simultan pe acelai server).
Pentru site-urile dinamice o component important este stocarea datelor astfel nct ele
s poat fi modificate rapid i uor acest lucru fiind principala diferen ntre un site dinamic i
un site static realizat n HTML. Deoarece PHP nu ofer o metod eficient de stocare a
informaiilor, este nevoie de un sistem de gestiune a bazelor de date relaionale (SGBD).
MySQL este unul dintre cele mai populare SGDB-uri open source n prezent 2 i este
foarte des ntlnit mpreun cu PHP. Acesta a fost iniial lansat n 1996 i este denumit dup
numele fiicei principalului autor i co-fondator Michael Widenius [17], My, i SQL (Structured
Query Language).
MySQL permite dezvoltatorilor s stocheze datele n tabele structurate pe linii i coloane
pentru ca informaia s fie bine organizat, uor de gsit, modificat, adugat i ters. MySQL este
un server de baze de date SQL multi-user (controleaz accesul la date pentru a garanta c mai
muli utilizatori pot lucra simultan cu acestea) i multi-thread (mai multe fire de execuie).
MySQL utilizeaz limbajul de programare SQL, limbaj care se ocup att cu inserri,
interogri, tergeri i modificri asupra informaiilor dintr-o baz de date, ct i cu controlul
accesului la o baz de date. SQL este un limbaj specific pentru gestiunea datelor n SGBD-uri.
1 http://w3techs.com/technologies/overview/web_server/all
2 http://db-engines.com/en/ranking
17

3.2.

HTML, CSS i jQuery

Pentru ca o pagin web s poat fi afiat ntr-un browser (navigator), este necesar
utilizarea unui limbaj de marcare, care are ca scop structurarea i prezentarea documentului.
HTML (acronimul de la HyperText Mark-up Language) este limbajul de marcare care st la baza
paginilor web i folosete etichete denumite tag-uri care ofer indicaii de redare a informa iei.
Browser-ul interpreteaz tag-urile, i astfel documentul este structurat n diferite moduri: tabele,
liste, paragrafe, titluri etc. [23]
Standardele HTML sunt meninute de World Wide Web Consortium (W3C), o ascociaie
fondat i condus n prezent de Tim Berners-Lee [14], care are ca scop dezvoltarea standardelor
pentru World Wide Web n vederea creterii i a mbuntirii acestuia, pentru a-l face accesibil
tuturor utilizatorillor.
Orice fiier HTML ar trebui s nceap cu declaraia <!DOCTYPE>, care informeaz
browser-ul despre versiunea de HTML n care este scris pagina. Urmtorul tag este
<html>..</html>, tag-ul care le cuprinde pe toate celelalte i care spune browser-ului c
documentul curent este de tip HTML. Apoi este elementul <head>..</head>, care adaug
informaii despre documentul HTML, cum ar fi titlu (prin tag-ul <title>), cuvinte cheie,
descriere, detalii despre autor (folosind tag-ul <meta>, care ajut la controlarea modului n care
motoarele de cutare indexeaz site-ul) i adaug, de asemenea, fiiere externe utiliznd tag-ul
<link>. Zona care va fi afiat n browser este delimitat de <body>..</body>. Aceasta cuprinde
toate elementele fiierului HTML: imagini, cmpuri, text, liste, tabele etc.
n timp ce HTML structureaz coninutul unui document, este nevoie de un instrument
care s l stilizeze i s l formateze. CSS (Cascading Style Sheet) este un limbaj de stilizare care
se ocup cu acest lucru, personaliznd tag-urile (etichetele) HTML, XML i XHTML, iar
standardele sale sunt menionate tot de W3C [18]. Utiliznd CSS se poate formata orice element
al unei pagini web, de la culorile textelor, margini, imagini i culori de fundal la pozi ionarea
elementelor n pagin, acest lucru realizndu-se prin proprieti. CSS are o sintax simpl,
proprietile fiind specificate prin cuvinte cheie din limba englez: font, font-size, text-align,
margin, padding, float, height, border, background etc.

18

CSS se poate aduga direct n interiorul tag-urilor HTML prin atributul style (de
exemplu <p style=font-size: 13px;> Paragraf </p>), acesta fiind numit CSS inline, sau n
partea de head a fiierului HTML cu ajutorul tag-ului <style>, numit CSS intern :
<head>

<style type=text/css>
p{
font-size: 13px;
}

</head>

Cea mai bun metod ns este utilizarea unui fiier CSS extern, care s fie inclus tot n
partea de head a fiierului HTML cu ajutorul tag-ului <link>:
<link rel=stylesheet type=text/css href=style.css>,

deoarece modificrile ulterioare s fie fcute numai n fiierul CSS, nu i n HTML.


JavaScript este un limbaj de programare, de tip script, care lucreaz pe partea de client i
care definete comportamentul elementelor ntr-o pagin Web [12]. n general, JavaScript este
utilizat pentru a aduga funcionaliti unei pagini Web, de exemplu s rspund la diferite
aciuni (click, micarea mouse-ului, apsarea unei taste), s comunice cu serverul, s valideze
date i multe altele.
JavaScript a fost dezvoltat de firma Netscape, de Brendan Eich, sub numele de LiveScript
[22], pentru a extinde funcionalitile HTML. JavaScript a aprut din necesitatea de a rezolva
sarcini relativ simple pe partea de client i de a face mai interactiv navigarea n cadrul site-ului.
JQuery [12] este o librrie JavaScript conceput de ctre John Resig n anul 2006 pentru
a simplifica lucruri precum parcurgerea unui document HTML, anima iile, apelurile AJAX i
manipularea evenimentelor. JQuery este cea mai popular librrie JavaScript n prezent3 i a
schimbat modul de codare n JavaScript a multor dezvoltatori. De asemenea, au fost create sute
de plugin-uri care extind funcionalitatea jQuery, prin urmare acesta este un instrument esen ial
pentru orice poriune de scripting pe partea de client.
3 http://w3techs.com/technologies/overview/javascript_library/all
19

JQuery ofer modaliti elegante de selectare a elementelor dintr-o pagin, schimb


proprieti din CSS dinamic i poate modifica chiar i coninutul paginii, simplific schimbul de
informaii cu server-ul fr ncrcarea paginii (apeluri AJAX) i nu n ultimul rnd, adaug
animaii interesante i complexe paginilor Web.

3.3.

Drupal

Scrierea aplicaiilor web poate fi simplificat prin utlizarea unui sistem de gestionare a
coninutului (Content Management System CMS), precum WordPress, Joomla sau Drupal.
Aceste CMS-uri faciliteaz dezvoltarea rapid a aplicaiilor, permind dezvoltatorilor s se
concentreze asupra sarcinilor ce duc la atingerea scopului propus, fr a fi nevoii s
implementeze funcionaliti de baz, cum ar fi gestionarea utilizatorilor.
Drupal este un sistem de gestionare a coninutului scris n PHP, mbinat cu JavaScript
(cea mai folosit librrie fiind jQuery) pe partea de front-end, iar ca baz de date se poate utiliza
MySQL, MariaDB sau PostgreSQL pentru stocarea coninutului unui site, dar i a configurrilor.
Drupal permite utilizarea oricrei baze de date care accept PHP, deoarece interfa a bazei de date
este bazat pe PDO (PHP data object), care ofer un strat de abstractizare pentru accesarea
datelor [3]. Acest lucru nseamn c indiferent de baza de date utilizat, instruciunile de
preluare, modificare, adugare a datelor sunt la fel.
Drupal este mai mult dect un CMS, este o platform puternic i flexibil utilizat
pentru a crea aplicaii web, bloguri, forumuri, magazine online etc, iar fiecare versiune major
conine un API (Application Programming Interface) mbuntit.

3.3.1. Noiuni de baz


Drupal este construit din module plugin-uri care adaug funcionaliti la un site.
Drupalul de baz (Drupal core) instalat cu setrile prestabilite (cu modulele de baz) are toate
funcionalitile importante pe care orice CMS ar trebui s le conin: autentificare, nregistrare,
definirea tipurilor de utilizatori (user roles) i de coninut (content types), definirea permisiunilor
pe care le au utilizatorii n funcie de roluri, crearea de pagini de un anumit tip definit, editarea i
gestionarea acestora etc.

20

Drupal a fost proiectat ca s fie personalizat, dar acest lucru se face adugnd module, nu
prin modificarea codului de baz. Modulele trebuie activate pentru a aduga funcionalitatea
oferit.
Astfel, pentru extinderea funcionalitilor de baz exist module contrib (sau de
contribuie) care sunt de asemenea open-source i care zilnic sunt mbuntite de comunitatea
Drupal. Pe site-ul oficial exist peste 20 000 de module 4, printre care cele mai importante, care
sunt utilizate aproape pe orice site, sunt:

Views se ocup cu sortarea i listarea coninutului dup criterii stabilite de utilizator.


Nume acestui modul vine de la terminologia din bazele de date, views o interogare
complex stocat ntr-un tabel. Acest modul permite selectarea unor anumite pri dintrun coninut dup criteriile dorite ns fr a scrie nicio linie de cod, ci printr-o interfa
grafic care creeaz interogarea dorit. Exemple de view-uri comune: cele mai recente
postri ale unui utilizator (pentru bloguri), evenimente care urmeaz s se petreac, cele
mai vndute produse etc.

Panels ofer posibilitatea de a crea pagini personalizate cu uurin, deoarece pune la


dispoziia utilizatorului un sistem drag and drop prin care se poate proiecta structura unei
pagini vizual i se poate plasa coninutul n cadrul paginii n funcie de layout-ul creat. De
exemplu, o pagin de start poate avea o imagine de prezentare n partea de sus, un meniu
pe partea stng i un coninut principal n spaiul rmas.

Pathauto genereaz n mod automat URL-uri (alias-uri) pentru diferite tipuri de


coninut (pagini de un anumit tip, pagini ale utilizatorilor). Alias-urile se bazeaz pe
modele definite de administrator, de exemplu, pentru pagini de tip proiect s se
genereze URL-uri de tipul www.example.com/proiect/nume-proiect.

Date permite adugarea cmpurilor de tip dat n orice tip de coninut, afi ate cu
calendare tip pop-up.

4 https://drupal.org/project/Modules
21

Pentru adgarea unei funcionaliti specifice unui site, orice utilizator poate crea un
modul nou, iar funciile din acest modul sunt apelate de Drupal pe rnd. Aceste oportunit i n
care modulele se afirm sau se aga de tot ce se ntampl n Drupal se numesc hooks
(crlige). Un crlig este o funcie PHP, numit my_module_name(), unde my_module este
numele modulului i name este numele hook-ului [7]. Pentru a extinde Drupal, un modul nu
trebuie dect s implementeze un hook, aceasta fiind cea mai comun (i corect) metod de a
modifica Drupal de baz. Cnd Drupal dorete s permit intervenia din partea modulelor, el
verific care dintre modulele sale implementeaz un anumit hook i apeleaz hook-ul respectiv
n toate cele care l implementeaz.
Un exemplu concret al acestui proces este momentul n care un utilizator se nregistreaz
pe un site. Drupal apeleaz hook_user_login, ceea ce nseamn c fiecare funcie din orice modul
(de baz, de contribuie sau personalizat) ce respect convenia de nume (nume_modul +
nume_crlig) va fi apelat.
O poriune de coninut, care poate fi o postare ntr-un blog, o descriere a unui eveniment,
a unui produs sau pur i simplu o pagin normal este numit nod. Nodurile pot avea cmpuri
(field-uri) personalizate, care definesc un tip de nod (content type). Astfel, se poate crea un tip de
nod proiect (care conine, de exemplu, 3 field-uri: titlu, o imagine i un fi ier) pentru a putea fi
ulterior create noduri cu aceast structur, completnd cmpurile din interfa.
Blocurile reprezint o parte important, ele fiind buci de coninut reutilizabil (meniuri,
un formular de cutare sau autentificare, un top al celor mai vizitate noduri etc), care pot fi
afiate pe anumite pagini, dup anumite criterii setate.
Modulul Taxonomy permite clasificarea coninutului unui site n categorii i subcategorii,
prin crearea de vocabulare (de exemlu vocabularul Produse) i adugarea la vocabularul creat
a termenilor (Computere) i a sub-termenilor (Laptopuri, Desktop PC). Fiecare por iune
de coninut este etichetat cu un termen dintr-un vocabular i astfel cantiti mari de con inut pot
fi clasificate astfel nct utilizatorii s gseasc rapid ceea ce i intereseaz.
Utilizatorii, rolurile i permisiunile reprezint o parte foarte util dezvoltat n Drupal.
Utilizatorii sunt conturile nregistrate pe un site, iar rolurile ajut la securitatea i administrarea
site-ului respectiv. Drupal permite crearea de roluri pentru orice grup de utilizatori care au
anumite privilegii. Implicit, Drupal are 2 roluri de utilizatori: anonim (utilizatori care nu au cont
sau care nu s-au nregistrat) i autentificat (utilizatori nregistrai care i pot edita profilul
22

personal). Ulterior se pot crea roluri pentru orice tip de utilizatori care urmeaz s acceseze un
site. De exemplu pentru un magazin online se pot crea rolurile client i vnztor, clientul avnd
permisiuni precum vizualizare i cumprare produse, iar vnztorii avnd n plus permisiuni de
editare, adugare i tergere produse.

3.3.2. Teme Drupal


O tem n Drupal este o colecie de fiiere care returneaz aspectul unui site, aadar
acestea conin HTML, CSS, JavaScript, imagini, dar i PHP. Temele se bazeaz pe fi iere numite
template-uri (abloane) cu extensia .tpl.php, prin care Drupal determin cum s genereze HTMLul pe care trebuie s-l trimit la server.
abloanele conin poriuni mari de HTML, combinate cu mici fragmente (de obicei
afiri de variabile) care sunt generate dinamic de Drupal pe msur ce se contruie te o pagin i
care reprezint coninutul propriu-zis. abloanele sunt folosite pentru orice bucat de con inut:
meniuri, noduri, comentarii, regiuni dintr-o pagin, blocuri, cmpuri i chiar pentru pagini
ntregi sau tipuri de pagini.
n orice tem exist un fiier numit template.php n care sunt procesate datele de ieire ce
urmeaz a fi introduse n codul HTML din fiiere de tip ablon. Acest fiier nu este necesar, dar
este recomandat utilizarea acestuia pentru a pstra fiierele de tip ablon curate, i pentru a
organiza preprocesarea datelor .
n prezent exist peste 1700 de teme5 de contribuie, dezvoltate de comunitatea Drupal.
Se poate descrca i utiliza orice tem de pe site-ul oficial i acestea pot fi extinse, crendu-se
astfel sub-teme care motenesc toate caracteristicile temei printe.
Pentru crearea unei teme noi este nevoie de un fiier nume_tem.info pentru ca Drupal s
recunoasc tema, fiier n care trebuie definite regiunile (cum va fi secionat o pagin) i
fiierele ablon, CSS i JavaScript care vor fi utilizate.
Legtura ntre noiunile descrise anterior este evideniat n Fig. 3.1.

5 https://drupal.org/project/themes
23

Fig. 3.1 Prezentare general simplificat a unui site creat n Drupal [2]

24

4. Capitolul IV Aplicaie de detectare a plagiatului

Pentru a identifica similariti ntre documente, exist 2 abordri principale. Una dintre
acestea este compararea textelor folosind amprente digitale, valori ce reprezint descrieri
asociate fiecrui document. O amprent este o colecie de numere ntregi numite puncte
caracteristice, obinute prin aplicarea unor formule matematice asupra subirurilor din document
i care sunt folosite pentru cutarea rapid n celelalte documente din colecie.
O alt abordare este analiza amnunit a unui grup de documente, metod care const n
compararea cuvintelor pentru a determina secvene plagiate i gradul de similitudine dintre
oricare dou texte. Dei costul vitezei n etapa de comparare poate fi mai mare dect n cazul
amprentrii, aceast abordare are avantajul producerii de rezultate mai lizibile.
Pentru a identifica i a vizualiza ulterior ct mai exact paragrafele i cuvintele care au fost
copiate sau modificate, am decis s implementez un algoritm din a doua categorie. Aadar
metoda propus, numit SimilarDocumentsDetection (SimDD), compar cuvintele din oricare 2
documente dintr-o colecie i detecteaz astfel paragrafe suspecte.
n procesul comparare a 2 documente, se pune problema mpririi documentului suspect
n fragmente de text (sau iruri de cuvinte cheie), astfel nct fiecare fragment s fie cutat n
documentul cu care se compar. Aceast poriune de text este asemntoare unei interogri
pentru motoarele de cutare.
Plecnd de la ideea c, n medie, un paragraf are aproximativ 10-20 de cuvinte
semnificative, n metoda propus, documentele suspecte au fost mprite n iruri de 15 cuvinte
cheie. mprirea n propoziii este o alegere des ntlnit n sistemele de comparare a textelor,
dar uneori propoziiile pot fi prea scurte, sau prea lungi ca s fie relevante. Paragrafele pot fi, de
asemenea, foarte mari, fapt care poate conduce la identificarea greit a unor poriuni care nu
sunt de fapt plagiate.
Primul pas al acestei metode este preprocesarea documentelor, n urma cruia fiecare text
este reprezentat sub forma unei liste de cuvinte cheie. Apoi, sunt luate cte 15 cuvinte cheie i se
compar, pe rnd, cu cte un document dintr-o colecie. Pentru fiecare document, sunt returnate
25

secvene n care au fost gsite mai multe cuvinte cheie apropiate. Ideea de baz a acestei metode
este c un fragment poate fi considerat plagiat dac are mai mult de 3 cuvinte comune cu un alt
fragment dintr-un document.
Algoritmul propus a fost dezvoltat n scopul ndeplinirii urmtoarelor obiective:
1.

S identifice mai multe tehnici de plagiere, cum ar fi copierea total, parial, amestecarea

cuvintelor, reordonarea paragrafelor etc.


2.

S afieze rezultatele ntr-un format care poate fi uor de interpretat.

3.

S compare n detaliu documentele, astfel nct s fie gsit orice secven plagiat.

4.1.

Preprocesarea documentelor

Etapa de preprocesare a documentelor presupune parcurgerea acestora i salvarea


cuvintelor cheie n fiiere.
Preprocesarea const n aplicarea a 3 filtre: eliminarea diacriticelor i transformarea
tuturor literelor mari n litere mici, eliminarea cuvintelor de legtur i a caracterelor speciale i
eliminarea sufixelor cuvintelor.
Diacriticele au fost eliminate att pentru compararea mai uoar a cuvintelor, ct i pentru
identificarea unor cuvinte copiate care n textul original au fost articulate, iar n textul plagiat
sunt nearticulate, sau invers. De exemplu: mas i masa.
Literele mari au fost transformate n litere mici n ideea c unele propoziii sunt plagiate
prin reordonarea cuvintelor, ceea ce nseamn c un cuvnt care a fost n mijlocul propoziiei
originale, n cea plagiat poate fi primul. Aceste dou operaii au fost aplicate n faza de
preprocesare pentru a economisi timp n etapa de comparare.
Cuvintele de legtur (de, i, c, ns etc) i caracterele speciale (. ! ? , / ) nu
au o valoare important n procesul de comparare a textelor deoarece sunt prea comune i nu au
nicio relevan ntr-o propoziie, de aceea ele pot fi eliminate pentru reducerea timpului de
procesare, fr afectarea calitii rezultatelor obinute.
Eliminarea sufixelor este o operaie care a fost aplicat pentru a ob ine originea comun a
cuvintelor din aceeai familie lexical. n compararea textelor, acest pas este util pentru a putea
considera cuvintele cu sens i form comun ca fiind identice i pentru a identific propozi ii
care sunt similare n forma lor original. Am presupus c, n general, cuvintele de baz au
aproximativ 5 litere, aadar au fost eliminate restul literelor din cuvintele lungi.
26

Exemplu:
Propoziia iniial: Din cauza faptului c rata de plagiere a crescut semnificativ n ultima vreme,
calitatea educaiei primite de studeni a fost afectat.
Propoziia dup aplicarea filtrelor: {cauza faptu rata plagi cresc semni ultim vreme calit educa
primi stude fost afect}.

4.2.

Compararea documentelor

Dup etapa de preprocesare, pentru fiecare proiect exist, pe lng documentul original,
un fiier de tip text n care sunt salvate cuvintele cheie. Aceste fiiere, numite fiiere procesate,
sunt utilizate pentru identificarea fragmentelor suspecte.
Compararea unui document DP cu celelalte documente din colecie ncepe prin mprirea
fiierului su procesat n mai multe fiiere (fiiere interogare), fiecare coninnd 15 cuvinte.
Algoritmul compar fiecare interogare cu fiierul procesat al fiecarui document i
returneaz toate secvenele de cel puin 3 cuvinte aflate la distan mai mic de 5 (n fiierul
procesat).
Datorit acestei abordri, pot fi identificate mai multe tehnici de plagiere. Una dintre
acestea este crearea unei propoziii P dintr-o propoziie original S, n care cuvintele au fost
reordonate, nlocuite sau terse. Algoritmul determin secvenele n care cuvintele au fost
amestecate, deoarece nu ine cont de ordinea n propoziie; acesta caut o secven de oricare n
(n3) cuvinte consecutive din cele 15 ale fiierului interogare. De asemenea, dac au fost cuvinte
adugate, algoritmul este n continuare capabil s identifice fraza plagiat, deoarece acesta
identific secvene de cuvinte suspecte aflate la distan de cel mult 5 cuvinte, aadar dac ntre 2
cuvinte cheie a fost adugat nc unul, cele 2 cuvinte vor fi detectate la distan de 1 cuvnt.
Exemplu:
Propoziia iniial: Peste 30% din studenii de la Medicin sunt voluntari la o asociaie.
Propoziia plagiat: Peste 30% din studenii de la Facultatea de Medicin sunt voluntari la o
asociaie.

Complexitatea algoritmului este O(n + m), unde n este numrul de termeni din
documentul cu care este verificat o interogare, iar m este numrul de cuvinte din interogare care
au fost gsite n document. ntotdeauna m este mai mic sau egal cu n, ceea ce nseamn c
procesarea unei interogri se face timp liniar, O(n).
27

i=0;
pentru fiecare cuvnt c din document
dac c

query

cuvinte_gsite[i]= poziie_cuvnt
sf.dac
sf.ptr
lungime_secven = 0; start = cuvinte_gsite[1];
pentru i=1..c
dac (cuvinte_gsite[i] - cuvinte_gsite[i-1] < 5)
lungime_secven++;
altfel
dac (lungime_secven > 3)
returneaz secven gsit;
sf.dac
sf.dac
start = cuvinte_gsite[i];
lungime_secven = 0;
sf.ptr

Algoritm 1 Pseudocod pentru compararea unui query cu un document

Pentru a reduce timpul de execuie, algoritmul de comparare a textelor a fost scris n


limbajul awk.
AWK este un limbaj de programare care a fost conceput pentru procesarea textelor aflate
n fiiere. Numele provine de la iniialele autorilor Alfred V. Aho, Peter J. Weinberger and Brian
W. Kernighan [1]. Funcia de baz a acestui limbaj este citirea liniilor dintr-un fi ier, pentru a
cuta potriviri cu un anumit ablon (pattern). Cnd este gsit o potrivire, se execut o aciune pe
aceast linie, dup care procesul se reia.
Pentru acelai set de teste, a fost calculat timpul de execu ie al algoritmului scris n php i
n awk. S-a utilizat o comand PowerShell numit Measure-Command, comand care execut un
script sau un cmdlet (scripturi PowerShell care efectueaz o singur funcie) i calculeaz timpul
de execuie al acesteia6.
Pentru evaluarea timpilor de execuie ai agloritmilor s-a comparat propoziia
Din cauza faptului c rata de plagiere a crescut semnificativ n ultima vreme,
calitatea educaiei primite de studeni a fost afectat.
6 http://www.powershellmanual.com/measure-command
28

cu paragraful
n urma studiilor s-a descoperit c plagiatul n universiti a crescut semnificativ n
ultima jumtate de secol, ceea ce a afectat calitatea educaiei primite de studen i. Cadrele
universitare tiu c pentru a avea cunotine bogate n orice domeniu, studen ii au nevoie de
informaia furnizat de paginile web, ns acetia sunt tenta i s utilizeze informa iile gsite
pentru a practica plagiatul.
n urma preprocesrii, datele utilizate n algoritmi au fost urmtoarele:
-

cuvinte cheie din prima propoziie: cauza, faptu, rata, plagi, cresc, semni, ultim,

vreme, calit, educa, primi, stude, afect;


cuvinte cheie din documentul original: urma, studi, desco, plagi, unive, cresc,
semni, ultim, jumat, secol, afect, calit, educa, primi, stude, cadre, unive, stiu,
cunos, bogat, domen, stude, nevoi, infor, furni, pagin, web, tenta, utili, infor,
gasit, pract, plagi.

Fig. 4.1 Timpii de execuie pentru algoritmul de cutare n limbajele awk i php

29

4.3.

Funcionaliti ale aplicaiei

Aplicaia ofer, pe lng detectarea plagiatului, diverse funcionaliti cum ar fi: nregistrare,
autentificare, editarea profilului unui utilizator, adugarea i gestionarea proiectelor proprii de
ctre studeni.
O prezentare general a funcionalitilor aplicaiei create este ilustrat n Fig. 4.2.

Fig. 4.2 Funcionalitile aplicaiei

Fig. 4.3 Autentificarea utilizatorilor

30

Un utilizator se poate autentifica dac are deja un cont (Fig.4.3), sau i poate crea un
cont, prin completarea cmpurilor: e-mail, nume, prenume, parol (Fig. 4.4). Dup ce a fost
nregistrat, utilizatorul i poate edita profilul n funcie de tipul de cont pe care i l-a creat
profesor sau student (Fig. 4.5, Fig. 4.6).

Fig. 4.4 nregistrare utilizator

31

Fig. 4.5 Editare profil student

Fig. 4.6 Editare profil profesor

Un student i poate vizualiza proiectele (Fig. 4.7) i poate, de asemenea s i depun


proiecte noi (Fig. 4.8). Un profesor poate vizualiza studenii de la secia la care pred (Fig. 4.9) i
poate detecta dac lucrrile pe care acetia le-au depus sunt plagiate sau nu.

Fig. 4.7 Vizualizare proiecte

32

Fig. 4.8 Adugare proiect nou

Fig.4.9 Vizualizare studeni

O caracteristic important pe care orice soft de detectare a plagiatului ar trebui s o aib


este vizualizarea rezultatelor n urma comparrii textelor ntr-un format uor de interpretat.
n aplicaia dezvoltat, rezultatele sunt afiate pe o pagin mprit n 2 (Fig. 4.10): n
partea din stnga este documentul iniial, n care sunt evideniate paragrafele care au fost gsite
suspecte i n partea dreapt sunt afiate cele mai importante paragrafe din primele 3 documente
n funcie de numrul de similariti identificate nsoite de numele i autorul proiectului original.

33

Fig. 4.10 Comparare document suspect cu primele 3 cele mai asemntoare

De asemenea, interfaa permite compararea documentului suspect 1 la 1 (Fig. 4.11).


Fcnd click pe unul dintre textele din partea dreapt, celelalte paragrafe dispar i este afiat
ntregul document selectat cu toate secvenele n care au fost gsite cuvinte comune.

34

Fig. 4.11 Compararea documentului suspect cu un document.

Pentru fiecare paragraf suspect din documentul verificat, la trecerea cursorului deasupra
acestuia, este afiat numele documentului (sau a documentelor) n care a fost gsit (Fig. 4.12).
De asemenea, textele sunt ncadrate n poriuni de lungime fix, dotate cu bar de scroll,
pentru a putea parcurge textele n sus i n jos n scopul identificrii propoziiilor comune.

35

Fig. 4.12 Identificarea textelor originale din care au fost luate paragrafele selectate

4.4.

Analiza rezultatelor

Pentru a testa metoda propus i a evalua acurateea algoritmului, a fost folosit o


colecie de documente, ale cror subiectele erau din acelai domeniu (Informatic).
n aceast colecie, 5 lucrri au fost plagiate, prin (i) tergerea unor paragrafe din
documentul iniial D, (ii) adugarea unor propoziii n D i (iii) modificarea unor propoziii din D
prin reordonarea i derivarea cuvintelor. Au fost fcute comparaii ntre fiecare dintre aceste 5
documente cu restul coleciei, i a fost calculat acurateea metodei SimDD raportat la
rezultatele obinute, astfel:

36

fragmente
de
numrul clasificate corect
100
numrul fragmente
Rezultatul a fost 87.2%, algoritmul clasificnd 12.8% dintre fragmente ca fiind plagiate,
ceea ce nseamn c SimDD returneaz uneori rezultate pozitive false, ns nu rezultate negative
false, toate secvenele plagiate fiind ntotdeauna identificate.
Au fost fcute teste i pentru documentele originale, pentru a verifica corectitudine
algoritmului. Pentru unele dintre lucrri, s-au gsit secvene scurte de cuvinte din documente cu
acelai subiect, secvene care nu erau neaprat plagiate. Hotrrea de a afia aceste documente n
care au fost gsite numai secvene scurte, a fost luat pentru compararea cu ochiul liber a
documentelor cu aceeai tem, pentru a se stabili dac au aceeai structur sau dac au fost
nlocuite sinonime n propoziiile originale.

37

5. Capitolul V Concluzii
n urma studiului realizat, au fost evaluate diverse metode de detectare a textelor plagiate
i au fost prezentate avantaje i dezavantaje ale acestora. Printre metodele existente studiate, se
numr urmtoarele:
-

analiza similitudinii folosind metrici precum cosinus, Dice sau Jaccard


compararea documentelor la nivel de propoziie prin atribuirea unei valori care reflect

gradul de similitudine dintre oricare 2 propoziii


clasificarea documentelor n ordinea descresctoare a valorilor date de funciile de

msurare a similitudinii, cum ar fi produsul intern sau produsul intern normalizat


amprentarea documentelor n vederea comparrii rapide ale acestora.
Metodele studiate prezint diferite tehnici de implementare, deciziile fiind luate n

vederea scopului propus: obinerea unui cost mic al vitezei n etapa de comparare a
documentelor, vizualizarea rezultatelor ntr-o form ct mai uor de interpretat, clasificarea
documentelor n funcie de gradul de plagiere etc.
Pentru identificarea similaritilor dintre documente, am dezvoltat o aplicaie care a fost
testat pe un set de lucrri originale, dar i plagiate. Metoda propus se bazeaz pe cuvinte
vecine pentru detectarea paragrafelor plagiate. Au fost considerate cuvinte vecine acele cuvinte
din documentul suspect care apar la distane relativ apropiate n documentul cu care este
verificat. SimDD identific documentele care au fost plagiate prin mai multe tehnici precum
copierea paragrafelor n totalitate sau parial, dar i prin reordonarea, adugarea i tergerea
cuvintelor n propoziiile originale. Rezultatele obinute n urma experimentului efectuat
dovedesc faptul c algoritmul are o acuratee de 87.2%, rata de eroare fiind ob inut n urma
comparrii a 2 lucrri cu tem comun, unde termenii de specialitate apar frecvent.
Desigur, aceasta nu este o aplicaie pentru producie ci a fost realizat n scop academic.
Pentru perfecionarea ei i calibrarea algoritmului de detectare a plagiatului n func ie de
domeniul de studiu (informatic, biologie etc) este nevoie de colec ii mari de documente pentru
testare i de feed-back din partea utilizatorilor.

38

5.1.

Activiti propuse

Pentru extinderea aplicaiei, printre activitile care vor fi luate n considerare, se numr
permiterea depunerii lucrrilor n format PDF sau Word, ceea ce resupune conversia
documentelor la text, i permiterea nregistrrii pe site doar acelor utilizatori care dein adrese de
e-mail din anumite domenii (cs/scs).
Referitor la mbuntirea algoritmului de cutare, o activitate propus este testarea unei
colecii mai mari de documente, pentru optimizarea performanei i a calitii rezultatelor
obinute. Acest lucru se poate face prin filtrarea rezultatelor astfel nct s nu fie considerate
plagiate acele paragrafe comune care sunt corect citate n 2 documente diferite, sau cele care
conin numai cuvinte care au o frecven mare n documentele cu tem comun.

39

6. Bibliografie

[1] Arnold D. Robbins: GAWK: Effective AWK Programming,


http://www.gnu.org/software/gawk/manual/gawk.html.
[2 ] A. Chavan: Drupal Ingredients Diagram: Let's start at the very beginning...,
http://www.urbaninsight.com/comment/2206.
[3] Benjamin Melancon, Jacine Luisi, Karoly Negyesi, Greg Anderson, Bojhan Somers,
Stephane Corlosquet, Stefan Freudenberg, Michelle Lauer, Ed Carlevale, Florian Loretan, Dani
Nordin, Ryan Szrama, Susan Stewart, Jake Strawn, Brian Travis, Dan Hakimzadeh, Amye
Scavarda, Albert Albala, Allie Micka, Robert Douglass, Robin Monks, Roy Scholten, Peter
Wolanin, Kay VanValkenburgh, Greg Stout, Kasey Qynn Dolin, Forest Mars, Sam Boyer, Mike
Gifford and Claudina Sarahe: Definitive Guide To Drupal, Apress, New York, 2011.
[4] Christopher D. Manning, Prabhakar Raghavan, Hinrich Schtze: An Introduction to
Information Retrieval, Cambridge University Press, Cambridge, England, 2010.
[5] Daniel R. White and Mike S. Joy: Sentence-Based Natural Language Plagiarism Detection,
ACM Journal of Educational Resources, 4 (2004), 1-20.
[6] Dex Online, definiie a plagia, Dicionarul Explicativ al limbii romne, ediia a II-a, DEX
'98, Academia Romn, Institutul de Lingivstic Iorgu Iordan, Ed. Univers Enciclopedic,
1998, http://dexonline.ro/definitie/plagia.
[7] Drupal community: Drupal.org Community Documentation,
https://api.drupal.org/api/drupal/includes%21module.inc/group/hooks/7.
[8] Felipe Felipe Bravo-Marquez, Gaston L'Huillier, Sebastian A. Ros, Juan D. Velasquez: A
Text Similarity Meta-Search Engine Based on Document Fingerprints and Search Results
Records, Proceedings of the 2011 IEEE/WIC/ACM International Conferences on Web
Intelligence and Intelligent Agent Technology, 1 (2011), 146-153.
40

[9] Introna, Lucas and Hayes, Niall: Plagiarism Detection Systems and International Students:
Detecting plagiarism, copying or learning? in Student Plagiarism in an Online World:
Problems and Solutions. Idea Group Publishing, Hershey and London, 2007, pp. 108-122
[10] Jack Lynch: The Perfectly Acceptable Practice of Literary Theft: Plagiarism, Copyright,
and the Eighteenth Century, http://www.writing-world.com/rights/lynch.shtml.
[11] Jason Lengstorf: PHP for Absolute Beginners, Apress, New York, 2009.
[12] Jonathan Chaffer, Karl Swedberg: Learning jQuery Third Edition, Packt Publishing,
Birmingham, UK, 2009.
[13] Nathaniel Gustafson, Maria Soledad Pera, Yiu-Kai Ng: Nowhere to Hide: Finding
Plagiarized Documents Based on Sentence Similarity, Proceedings of the 2008 IEEE/WIC/ACM
International Conference on Web Intelligence and Intelligent Agent Technology, December
(2008), 690-696.
[14] Mary Bellis: The History of the Internet,
http://inventors.about.com/od/istartinventions/a/internet.htm.
[15] M. Pera and Y.-K. Ng.: Utilizing Phrase-Similarity Measures for Detecting and Clustering
Informative RSS News Articles, Integrated Computer-Aided Engineering, 15 (2008), 331-350.
[16] M.V. Ramakrishna and J. Zobel: Performance in practice of string hashing function,
Proceedings of the Fifth International Conference on Database Systems for Advanced
Applications, April(1997), 178-185.
[17] MySQL 3.23, 4.0, 4.1 Reference Manual,
http://dev.mysql.com/doc/refman/4.1/en/history.html.
[18] Robert Schifreen: How to create Web sites and applications with HTML, CSS, Javascript,
PHP and MySQL, Oakworth Business Publishing Ltd, UK, 2009.
[19] - Shanmugasundaram Harihara: Automatic Plagiarism Detection Using Similarity Analysis,
The International Arab Journal of Information Technology, 4 (2012), 322 326.

41

[20] - Timothy C. Hoad and Justin Zobel: Methods for Identifying Versioned and Plagiarized
Documents, Journal of the American Society for Information Science and Technology, 54 (2003),
203-215.
[21] Witten, I.H., Moffat, A., & Bell, T.C.: Managing gigabytes: Compressing and indexing
documents and images (2nd ed.), Morgan Kaufmann, San Francisco, CA, 1999.
[22] w3c: A Short History of JavaScript,
http://www.w3.org/community/webed/wiki/A_Short_History_of_JavaScript.
[23] w3schools: HTML Introduction, http://www.w3schools.com/html/html_intro.asp.

42