MASTER ABD, ANUL 2, SEMESTRUL 2 2020 CUPRINS Cuprins 2 Abstract 3 1 Introducere 4 [632144]

TEXT MINING

Student: [anonimizat]:

Prof. dr. ing. Florin R
ă
dulescu

MASTER ABD, ANUL 2, SEMESTRUL 2

2020

CUPRINS

Cuprins
2

Abstract
3

1
Introducere
4

2
Context
ș
i motiva
ț
ie
5

3
Prezentarea aplica
ț
iei
6

3.1
Alegerea setului de date
8

3.2
Procesul de implementare
9

3.3
Pa
ș
ii pentru imp lementare
10

3.4
Fluxul de lucru al aplica
ț
iei

14

3.5
Rezultate ob
ț
inute

15

3.6
Evaluarea rezultatelor

20

4
Limit
ă
ri

ș
i direc
ț
ii de explorare pentru viitor
21

5
Concluzii
22

6
Bibliografie
ș
i referin
ț
e
23

2

ABSTRACT

Prin
aplicarea
unor
metode
statistice
pentru
prelucrarea
ș
i
procesarea
datelor
pe
un
set
de

date
semistructurat
care
con
ț
ine
informa
ț
ii
despre
cazurile
de
poluare
din
jude
ț
ele
din

România,
îmi
propun
s
ă
ob
ț
in
în
aceast
ă
lucrare
un
set
de
grafice
care
prezint
ă
rezultate

semnificative
sub
forma
unor
statistici
interesante.
Astfel,
în
aceast
ă
lucrare
voi
prezenta
în

detaliu
o
aplica
ț
ie
care
poate
reprezenta
un
început
pentru
investigarea,
aprofundarea
ș
i

în
ț
elegerea fenomenului de poluare din România.

3

1
INTRODUCERE

Explorarea
datelor
de
tip
text
(“text
mining”)
sau
descoperirea
de
cuno
ș
tin
ț
e
este

acel
subproces
din
domeniul
exploat
ă
rii
datelor
(“data
mining”)
care
este
utilizat
pe
scar
ă

larg
ă
pentru
a
descoperi
modele
interesante
ș
i
informa
ț
ii
semnificative
dintr-o
cantitate

mare de seturi de date semi structurate sau nestructurate.

A
ș
adar,
text
minin g
ș
i
data
mining
sunt
dou

ă
domenii
similare,
exceptând
faptul
c
ă
în

domeniul
data
mining
se
lucreaz
ă
cu
date
structurate
în
timp
ce
în
domeniul
text
mining
se

lucreaz
ă
cu
date
semistructurate
ș
i
nestructurate.
Procesul
de
data
mining
este
responsabil

pentru
extragerea
datelor
poten
ț
iale
ș
i
necunoscute,
iar
procesul
de
text
mining
este

responsabil
în
mare
parte
pentru
extragerea
datelor
specificate
explicit
în
textul
dat.
Totu
ș
i,

ambele au în comun urm
ă
toarea caracteristic
ă
: extragerea de informa
ț
ii poten
ț
iale.

În
continuare,
voi
prezenta
unele
dintre
cele
mai
populare
tehnici
folosite
pentru

extragerea
cuno
ș
tin
ț
elor
utile
din
date
text
în
fig.
1
[1]
ș
i
diversele
utiliz
ă
ri
ale

instrumentelor de extragere a cuno
ș
tin
ț
elor utile din date text în fig. 2 [1]:

Fig. 1 Cele mai populare tehnici de

exploatare a datelor text

Fig. 2 Utiliz
ă
ri ale uneltelor de exploatare

a datelor text

În
consecin
ț
ă
,
cele
dou
ă
figuri
(fig.1
ș
i
fig
2)
sunt
reprez entative
pentru
în
ț
elegerea

procesului
de
text
mining
ș
i
totodat
ă
reprezint
ă
un
reper
pentru
alegerea
tehnicilor
de

procesare
ș
i utiliz
ă
ri pent ru o viitoare aplica
ț
ie.

4

2
CONTEXT
Ș
I MOTIVA
Ț
IE

A
ș
adar,
extragere a
cuno
ș
tin
ț
elor
din
datele
textuale
se
refer
ă
la
aplicarea
tehnicilor

de
prelucrare
ș
i
procesa re
a
limbajului
natural
ș
i
a
metodelor
analitice
asupra
datelor
text

pentru
a
ob
ț
ine
informa
ț
ii
relevante.
Datorit
ă
unei
cre
ș
teri
exponen
ț
iale
a
datelor
de
tip
text

în format digital, explorarea datelor de tip text prime
ș
te o aten
ț
ie deosebit
ă
în ultimii ani.

Totodat
ă
,
vizualizarea
datelor
joac
ă
un
rol
important
în
fluxurile
de
lucru
pentru

analiza
datelor.
Prin
urmare,
aceasta
permite
anali
ș
tilor
de
date
s
ă
descopere
eficient

tiparele
în
seturi
de
date
mari
prin
mijloace
grafice
ș
i
s
ă
reprezinte
aceste
descoperiri
într-un

mod
semnificativ
ș
i
eficient.
Vizualizarea
datelor
este
un
domeniu
interdisciplinar,
care

necesit
ă
abilit
ă
ț
i
de
proie ctare,
dezvoltare
web,
baze
de
date
ș
i
codificare,
domenii
necesare

pentru în
ț
elegerea rezult atelor ob
ț
inute prin tehnici de exploata re a datelor text.

În
consecin
ț
ă
,
pentru
aplicarea
unor
tehnici
de
procesare
ș
i
prelucrare
date
text
ș
i

pentru
a
ob
ț
ine
rezultate
semnificative
ș
i
interesante
pentru
a
fi
analizate
ș
i
vizualizate,
am

ales
un
domeniu
care
a
avut
o
cre
ș
tere
exponen
ț
ial
ă
a
interesului
ș
i
implicit
a
datelor

colectate: poluarea în jude
ț
ele din România.

Astfel,
poluarea
aerului
ș
i
poluarea
apei
cauzate
de
industrie
reprezint
ă
probleme
de

mediu
grave
în
România.
Fabricile,
instala
ț
iile
chimice
ș
i
centralele
electrice
din
ț
ar
ă
depind

foarte
mult
de
arderea
combustibililor
fosili,
un
proces
care
emite
niveluri
ridicate
de
dioxid

de carbon
ș
i dioxid de su lf – o component
ă
cheie a ploilor acide.

Centrele
industriale
în
centrul
României
ș
i
Giurgiu,
în
sud,
produc
probleme
severe

de
poluare
a
aerului.
Bucure
ș
tiul,
capitala,
produce,
de
asemenea,
o
poluare
grav
ă
a
aerului.

O
mare
parte
din
scurgerile
industriale
ale
na
ț
iunii
se
termin
ă
în
sistemul
Dun
ă
rii,
ceea
ce

face
ca
apa
s
ă
fie
nesigur
ă
pentru
b
ă
ut
ș
i
amenin
ț
ând
diversele
ecosisteme
ale
deltei

Dun
ă
rii.
Totodat
ă
practicile
agricole
slabe,
în
special
rota
ț
ia
necorespunz
ă
toare
a
culturilor,

au dus la degradarea
ș
i eroziunea sever
ă
a solului în unele p
ă
r
ț
i ale României.

Astfel,
consider
c
ă
doar
prin
investigarea
procesului
de
poluare
prin
ob
ț
inerea
de

cuno
ș
tin
ț
e
ș
i
modele
utile
vom
putea
combate
acest
fenomen
nociv

poluarea
din
jude
ț
ele

din România – fenomen care ne afecteaz
ă
s
ă
n
ă
tatea în fiecare zi.

5

3
PREZENTAREA APLICA
Ț
IEI

În
acest
capitol
voi
prezenta
aplica
ț
ia
realizat
ă
din
perspectiva
urm
ă
toarelor
aspecte:

pa
ș
ii
realiza
ț
i
pentru
a
alege
setul
de
date,
pa
ș
ii
detalia
ț
i
pentru
realizarea
procesului
de

implementare,
pa
ș
ii
urma
ț
i
pentru
implementarea
efectiv
ă
a
aplica
ț
iei
cât
ș
i
detalierea

fluxului
de
lucru
al
aplica
ț
iei,
urmând
ca
în
capitolele
urm
ă
toare
s
ă
prezint
rezultatele

ob
ț
inute împreun
ă
cu eva luarea acestora.

Urm
ă
rind
fig.
1
prezentat
ă
în
primul
capitol,
aplica
ț
ia
realizat
ă
se
încadreaz
ă
în

categoria
instrumentelor
de
exploatare
de
date
text
care
folosesc
metode
ș
i
tehnici

statistice pentru extragerea informa
ț
iilor semnificative din setul de date ales.

Totodat
ă
,
urm
ă
rind
fig.
2
prezentat
ă
tot
în
capitolul
întâi,
aplica
ț
ia
realizat
ă
se

încadreaz
ă
în
categoria
instrumentelor
de
exploatare
text
care
sunt
utilizate
pentru
analiza

textului
(descompunerea
ș
i
prelevarea
informa
ț
iilor
relevante
din
setul
de
date
text),
cât
ș
i

pentru
procesarea
/prelucrarea
de
date
text
(transformarea
ș
i
manipularea
datelor
pentru
a

putea aplica metodele de analiz
ă
asupra setului de date ales).

A
ș
adar,
ideea
aplica
ț
iei
realizate
porne
ș
te
de
la
aplicarea
unor
tehnici
de
prelucrare

ș
i
de
procesare
a
datel or
text,
folosind
un
set
de
date
semistructurat,
pentru
a
ob
ț
ine

rezultate semnificative sub forma unor statistici.

Totodat
ă
pentru
a
în
ț
elege
mai
bine
rezultatele,
am
construit
în
aplica
ț
ie
ș
i
o

interfa
ț
ă
interactiv
ă
pentru
utilizator
pentru
vizualizarea
datelor
ș
i
în
ț
elegerea
modelelor

care reies din datele prelucrate.

Astfel,
prin
aplicarea
unor
metode
statistice
pentru
prelucrarea
ș
i
procesarea
datelor

pe
un
set
de
date
semistructurat
care
con
ț
ine
informa
ț
ii
despre
cazurile
de
poluare
din

jude
ț
ele
din
România,
am
ob
ț
inut
un
set
de
grafice
care
prezin t
ă
rezultatele
semnificative

sub forma unor statistici interesante.

Printre
metodele
folosite
pentru
prelucrarea
ș
i
procesarea
datelor
pentru
ob
ț
inerea

cuno
ș
tin
ț
elor
utile
din
setul
de
date
ales
se
num
ă
r
ă
:
metode
de
prelucrare
a
textului
în

limba
român
ă
care
se
refer
ă
la
procesarea
diacriticelor
ș
i
a
gramaticii
limbii
române,
metode

pentru
determinarea
unor
distribu
ț
ii
de
valori
ș
i
metode
pentru
determinarea
frecven
ț
ei

unor grupuri de cuvinte (“bag of words”) [2].

6

Pentru
a
realiza
acest
lucru
am
ob
ț
inut
setul
de
date
despre
cazurile
de
poluare
din

România,
raportate
pe
un
site
de
colectare
a
datelor
pentru
institu
ț
iile
de
stat
administrative

publice
[3],
le-am
preprocesat
într-un
format
care
s
ă
poat
ă
fi
citit
de
baza
de
date
aleas
ă
:

MongoDB
[4]
(JSON),
iar
apoi
am
aplicat
metodele
de
prelucrare
ș
i
procesare
a
setului
de

date
men
ț
ionate
mai
sus
în
vederea
ob
ț
inerii
unor
grafice
cu
rezultate
semnificative
pe
care

le-am construit cu ajutorul bibliotecilor Javascript D3.js [5]
ș
i DC.js [6].

Totodat
ă
,
pentru
comunicarea
cu
baza
de
date
MongoDB
am
implementat
un
server

în
Python,
iar
pentru
vizualizarea
datelor
în
browser
am
realizat-o
cu
ajutorul
web

framework-ul
Flask.
În
consecin
ț
ă
,
au
rezultat
un
set
de
grafice
reprezentative
pentru
setul

de date colectat despre cazurile de poluare din România.

Scopul
aplica
ț
iei
este
de
a
observa
statistici
despre
setul
de
date
folosit
ș
i
totodat
ă

pentru a crea o experien
ț
ă
de vizualizare interactiv
ă
pentru utilizatori.

Pentru
a
ob
ț
ine
acest
lucru,
am
folosit
dou
ă
seturi
de
date
ș
i
o
suit
ă
de
alte

tehnologii pe care le voi detalia mai jos astfel:

1.
Un
set
de
date
în
format
JSON
care
con
ț
ine
cazurile
de
poluare
raportate
în

jude
ț
ele d in România pe parcursul a zece ani;

2.
Un
set
de
date
în
format
GEOJSON
pentru
maparea
datelor
despre
poluare

pe harta cu jude
ț
ele din România;

3.
MongoDB
pentru
stocarea
setului
de
date
ș
i
pentru
realizarea
de
interog
ă
ri

asupra setului de date;

4.
Python
pentru
construirea
serverului
web
care
s
ă
interac
ț
ioneze
cu
baza
de

date MongoDB
ș
i cu paginile html;

5.
Flask,
un
web
framework
folosit
pentru
interac
ț
iunea
serverului
scris
în

Python cu paginile html;

6.
Biblioteci
javascript
(D3.js
ș
i
DC.js)
pentru
construirea
graficelor
interactive

care con
ț
in statisticile ob
ț
inute;

7.
Paginile
HTML
pentru
înc
ă
rcarea
graficelor
construite
cu
ajutorul
bibliotecilor

Javascript în pagina de browser;

8.
CSS pentru interfa
ț
a aplica
ț
iei.

7

3.1
ALEGEREA SETULUI DE DATE

În
aceast
ă
sec
ț
iune,
voi
eviden
ț
ia
în
mod
detaliat
procesu l
din
spatele
alegerii
setului

de
date
care
con
ț
ine
datele
despre
cazurile
de
poluare
din
jude
ț
ele
din
România
[7].
De

asemenea,
voi
detalia
etapele
care
au
dus
la
alegerea
setului
de
date
necesar
pentru

maparea datelor despre cazurile de poluare pe harta cu jude
ț
ele din România [8].

Astfel
în
c
ă
utarea
unui
set
de
date
care
s
ă
ofere
op
ț
iuni
pentru
procesarea
ș
i

vizualizarea
unor
rezultate
semnificative,
am
g
ă
sit
site-ul
de
colectare
a
datelor
pentru

institu
ț
iile
de
stat
admin istrative
publice
care
reprezint
ă
un
portal
pentru
seturile
de
date

open
source
care
sunt
oferite
de
c
ă
tre
autorit
ă
ț
ile
ș
i
institu
ț
iile
administra
ț
iei
publice
pentru

a
facilita
procesul
de
g
ă
sire,
desc
ă
rcare
ș
i
utilizare
a
informa
ț
iilor
generate
ș
i
oferite
de
c
ă
tre

structurile administrative [3].

În
consecin
ț
ă
,
am
ales
unul
dintre
seturile
de
date
despre
cazurile
de
poluare

raportate
în
jude
ț
ele
din
România
deoarece
acest
set
de
date
permite
procesarea
ș
i

vizualizarea
unor
modele
de
date
ș
i
g
ă
sirea
de
cuno
ș
tin
ț
e
semnificative,
iar
totodat
ă

poluarea
din
jude
ț
ele
din
România
reprezint
ă
un
fenomen
care
ne
impacteaz
ă
s
ă
n
ă
tatea
ș
i

care
ne
afecteaz
ă
în
mod
direct.
Consider
c
ă
doar
prin
investigarea
procesului
de
poluare

prin ob
ț
inerea de cuno
ș
tin
ț
e
ș
i modele utile vom putea combate acest fenomen nociv.

Totodat
ă
,
pe
lâng
ă
setul
de
date
ales
pentru
procesare
ș
i
ob
ț
inerea
de
rezultate
ș
i

modele
utile,
am
ales
s
ă
caut
ș
i
s
ă
manipulez
înc
ă
un
set
de
date
pentru
vizualizarea
datelor

procesate
prin
metode
statistice.
A
ș
adar,
pentru
maparea
ș
i
vizualizarea
datelor
despre

poluare pe harta cu jude
ț
ele din România am ales un set de date în format GEOJSON [8].

De
asemenea,
în
mediul
online
exist
ă
o
serie
de
versiuni
pentru
maparea
ș
i

vizualizarea
unei
h
ă
r
ț
i
cu
jude
ț
ele
din
România
(de
exemplu
[9]
ș
i
[10]).
Astfel,
am
ales

formatul
GEOJSON
deoarece
acesta
este
u
ș
or
incorporabil
cu
ajutorul
bibliotecilor
de

generare
a
graficelor
folosite
în
aplica
ț
ie.
De
ș
i
este
un
format
mai
pu
ț
in
compact
decât

formatul TOPOJSON, acesta este mult mai u
ș
or de folosit
ș
i flexibil.

A
ș
adar,
seturile
de
date
alese
reprezint
ă
un
început
promi
ț
ă
tor
pentru
realizarea

unei
aplica
ț
ii
utile.
În
viitor
setul
de
date
cu
datele
despre
poluare
ar
putea
fi
extins
ș
i

îmbun
ă
t
ă
ț
it pentru a con
ț
ine date mult mai recente despre cazu rile de poluare.

8

3.2
PROCESUL DE IMPLEMENTARE

Înainte
de
a
începe
implementarea,
am
identificat

ț
iva
pa
ș
i
pentru
a-i
urma
pentru

a
preg
ă
ti
setul
de
date
ș
i
de
a
implementa
aplica
ț
ia,
pe
care
îi
voi
detalia
în
aceast
ă
sec
ț
iune.

Abordarea general
ă
a urmat pa
ș
ii:

1.
Identificarea
unui
set
de
date
potrivit
pentru
a
aplica
tehnici
de
procesare
a

datelor
de
tip
text
ș
i
de
vizualizare
a
acestora
care
sa
aib
ă
o
surs
ă
pentru

desc
ă
rcare:
setul
de
date
despre
cazurile
de
poluare
raportate
în
jude
ț
ele
din

România
[7]
care
ofer
ă
foarte
multe
op
ț
iuni
de
procesare
ș
i
vizualizare
cum
ar

fi:
distribu
ț
ia
valorilor
despre
cazurile
de
poluare
pe
ani,
distribu
ț
ia
ș
i

propor
ț
ia
sectoarelor
de
activitate
care
produc
cazurile
de
poluare,
distribu
ț
ia

categoriilor de poluan
ț
i cei mai des întâlni
ț
i etc.

2.
Preprocesarea
ș
i
“cur
ă
ț
area”
setului
de
date
semistructurat
colectat
pentru
a

putea
fi
citit
de
baza
de
date
MongoDB,
unul
dintre
formatele
suportate
de

c
ă
tre baza de date, JSON fiind formatul ales.

3.
Stocarea
datelor
într-o
baz
ă
de
date
potrivit
ă
:
am
folosit
MongoDB
care
este

o baza de date open source flexibil
ă

ș
i scalabil
ă
.

4.
Procesarea,
prelucrarea
ș
i
modelarea
datelor
înainte
de
aplicarea
tehnicilor

de
procesare
ș
i
prelucrare
date
text
cu
ajutorul
metodelor
precum:
metode

de
prelucrare
a
textului
în
limba
român
ă
care
se
refer
ă
la
procesarea

diacriticelor
ș
i a gramaticii limbii române.

5.
Implementarea
serverului
scris
în
Python
care
preia
date
din
baza
de
date
ș
i

ofer
ă
un endpoint prin trimiterea datelor c
ă
tre client (browser).

6.
Implementarea
clientului
care
preia
datele
prelucrate
de
la
server
ș
i
le

expune într-un dashboard.

7.
Implementarea
metodelor
ș
i
tehnicilor
statistice
pentru
determinarea
unor

distribu
ț
ii de valori
ș
i pentru determinarea frecven
ț
ei unor grupuri de cuvinte.

8.
Implementarea graficelor folosind bibliotecile Javascript (d3.js
ș
i dc.js).

9.
Implementarea paginilor html cu css pentru vizualizarea graficelor ob
ț
inute.

9

3.3
PA
Ș
II DE IMPLEMENTARE

Considerând
abordarea
prezentat
ă
anterior,
dup
ă
ce
am
identificat
setul
de
date

folosit, am continuat sa urmez pa
ș
ii ace
ș
tia:

1.
Preprocesarea
setului
de
date
ales
în
vederea
stoc
ă
rii
în
baza
de
date

MongoDB

Pentru
a
putea
stoca
setul
de
date
ales
[7]
în
baza
de
date
MongoDB,
l-am

transformat
într-un
format
suportat
de
c
ă
tre
baza
de
date
ș
i
anume:
JSON.

Am
realizat
acest
lucru
folosind
[11]
pentru
a
ob
ț
ine
urm
ă
torul
fi
ș
ier
în

formatul dorit:


poluareRomania.json:
fi
ș
ierul
con
ț
ine
informa
ț
ii
despre
cazurile
de

poluare
raportate
în
jude
ț
ele
din
România
pe
parcursul
a
zece
ani,
iar

câteva din informa
ț
iile utile prelevate sunt urm
ă
toarele:


an_raportare: anul raport
ă
rii cazului de poluare;


nume_operator: numele firmei poluante;


adresa: adresa companiei poluante;


localitate:
localitatea
în
care
firma
poluant
ă
î
ș
i
exercit
ă

activitatea;


jude
ț
: jude
ț
ul în care firma poluant
ă
î
ș
i exercit
ă
activitatea;


companie_parinte: numele companiei p
ă
rinte;


sector_actvitate:
sectorul
de
activitate
în
care
firma
poluant
ă

î
ș
i exercit
ă
activitatea;


activitate_industriala:
numele
activit
ă
ț
ii
industriale
realizate
de

firm
ă
;


poluant: categoria de poluant;


cod_poluant: formula chimic
ă
a poluantului;


cantitate_totala_kg: cantitatea total
ă
de poluare în kg;


cantitate_accidentala_kg: cantitatea accidental
ă
de poluare;


metoda_de_baza: metoda pentru determinarea polu
ă
rii;


tip_metoda: tipul metodei pentru determinarea polu
ă
rii;


descriere_metoda: descriere metod
ă
poluare.

10

2.
Importarea setului de date în baza de date MongoDB


Configurarea bazei de date:


Crearea bazei de date numit
ă
poluare;


Crearea colec
ț
iei numit
ă
românia.


Importarea
fi
ș
ierului
care
con
ț
ine
setul
de
date
în
format
JSON

în
baza
de
date
MongoDB
cu
urm
ă
toarea
comand
ă
listat
ă
mai

jos (fig. 3):

mongoimport -d pollution -c romania –file

poluareRomania.json –drop

Fig. 3 Importarea setului de date în baza de date [12]


Verificarea integrit
ă
ț
ii datelor inserate (fig. 4):

Fig. 4 Vizualizarea unei înregistr
ă
ri în baza de date

3.
Procesarea,
prelucrarea
ș
i
modelarea
datelor
înainte
de
aplicarea
tehnicilor

de procesare
ș
i prelucrare date text

Acest
lucru
a
fost
realizat
în
Javascript
ș
i
Python
cu
ajutorul
metodelor

precum:
metode
de
prelucrare
a
textului
în
limba
român
ă
care
se
refer
ă
la

procesarea diacriticelor
ș
i a gramaticii limbii române.

11

4.
Implementarea
serverului
scris
în
Python
care
preia
date
din
baza
de
date
ș
i

ofer
ă
un endpoint prin trimiterea datelor c
ă
tre client (browser)

Fi
ș
ierul
app.py
reprezint
ă
serverului
ș
i
con
ț
ine
toate
proces
ă
rile
ș
i
toate

func
ț
iile
necesare
pentru
comunicarea
cu
baza
de
date.
Totodat
ă
,
acesta

con
ț
ine to ate rut
ă
rile necesare pentru ob
ț
inerea rezultatelor
ș
i graficelor.

5.
Implementarea
clientului
web
care
preia
datele
prelucrate
de
la
server
ș
i
le

expune într-un dashboard

a.
Configurarea proiectului


Pentru
folosirea
corect
ă
a
bibliotecilor
în
mod
eficient
ș
i

corect,
am
urm
ă
rit
câteva
tutoriale
pentru
a
realiza
partea
de

vizualizare
a
aplica
ț
iei
ș
i
anume:
DC.js
Tutorial
[13],
IMDB
Data

Vizualizations
with
D3
+
Dimple.js
[14],
Interactive
Data

Visualization
with
D3.js,
DC.js,
Python
and
MongoDB
[15].

Organizarea
final
ă
a
fi
ș
ierelor
ș
i
a
tehnologiilor
folosite
in

proiect se reg
ă
se
ș
te în figura urm
ă
toare (fig. 5):

Fig. 5 Organizarea ierarhic
ă
a fi
ș
ierelor în proiectul aplica
ț
iei

12


Crearea
fi
ș
ierului
pentru
pagina
web
(

index.html

)
ș
i
înc
ă
un

fi
ș
ier necesar pentru crearea grafurilor (

graphs.js

);


Ad
ă
ugarea fi
ș
ierelor css
ș
i js necesa re în fi
ș
ierul index.html.


Folosirea
bibliotecilor
D3.js
ș
i
DC.js
pentru
manipularea

datelor
ș
i vizualizarea datelor;


Totodat
ă
,
am
stocat
bibliotecile
folosite
local,
în
fi
ș
ierul

lib, la fel
ș
i pentru fi
ș
ierele s tandard css.

6.
Implementarea
metodelor
ș
i
tehnicilor
statistice
pentru
determinarea
unor

distribu
ț
ii de valori
ș
i pentru determinarea frecven
ț
ei unor grupuri de cuvinte.


Printre metodele folosite se num
ă
r
ă
urm
ă
toarele:


Metode
statistice
pentru
determinarea
unor
distribu
ț
ii

de valori;


Metode
statistice
pentru
determinarea
frecven
ț
ei
unor

grupuri de cuvinte (“bag of words”);


Metode
statistice
pentru
determinarea
frecven
ț
ei
unor

valori
ș
i a asocierilor de cuvinte.

7.
Implementarea
graficelor
pentru
vizualizarea
statisticilor
folosind
bibliotecile

Javascript (D3.js
ș
i DC.js).


În fi
ș
ierul

graphs.js

am realizat urm
ă
toarele:


Procesarea
ș
i
prelucrarea
datelor
din
baza
de
date

folosind biblioteci implementate în Javascript;


Identificarea
grupurilor
ș
i
a
dimensiunilor
necesare

pentru a crea graficele dorite;


Crearea
efectiv
ă
a
graficelor
pentru
vizualizarea

statisticilor.

8.
Implementarea paginilor html cu css pentru vizualizarea graficelor ob
ț
inute.

În
fi
ș
ierul

index.html
am
ad
ă
ugat
graficele
organizate
într-un
dashboard,

folosind identit
ă
ț
ile specificate în

graphs.js

.

13

3.4
FLUXUL DE LUCRU AL APLICA
Ț
IEI

Considerând
cele
descrise
în
sec
ț
iunile
anterioare,
în
acest
capitol
voi
prezenta
fluxul

de
lucru
al
aplica
ț
iei.
Înainte
de
a
porni
aplica
ț
ia,
urm
ă
toarele
condi
ț
ii
sunt
necesare
a
fi

f
ă
cute în prealabil (fig. 6):

1.
Serverul de baze de date trebuie pornit, folosind urm
ă
toarea comand
ă
:

sudo service mongod start

2.
Serverul scris în Python trebuie pornit pentru a putea rula aplica
ț
ia:

export FLASK_APP=app.py

python -m flask run

3.
Pentru a rula aplica
ț
ia local
ă
, trebuie accesat urm
ă
torul link dintr-un browser:

http://127.0.0.1:5000/

Fig. 6 Pa
ș
ii pentru pornirea aplica
ț
iei

Atunci când aplica
ț
ia este pornit
ă
urm
ă
toarele lucruri se întâmpl
ă
în background:

1.
Serverul
Python
începe
s
ă
ruleze
pe
portul
pe
care
este
setat
(în
cazul
acesta

portul serverului web Flask default

5000

)
ș
i pe adresa localhost (

127.0.0.1

);

2.
Index.html

este înc
ă
rcat fiind conectat la ruta default în serverul Python;

3.
Graphs.js

este înc
ă
rcat fiind unul dintre scripturile incluse cu

index.html;

a.
Datele
sunt
cerute
de
c
ă
tre
serverul
web
Python
ș
i
sunt
luate
din
baza

de date Mongodb;

b.
Datele
sunt
folosite
în
scop
de
prelucrare
ș
i
vizualizare
prin

intermediul graficelor.

4.
Graficele
sunt
înc
ă
rcate
de
c
ă
tre
browser,
browser-ul
bazându-se
pe
id-ul

specificat în fi
ș
ierul

graphs.js

.

14

3.5
REZULTATE OB
Ț
INUTE

În
urm
ă
toarea
sec
ț
iune
voi
prezenta
graficele
ob
ț
inute
prin
prelucrarea
datelor
din

setul
de
date
despre
poluarea
jude
ț
elor
din
România
ș
i
totodat
ă
,
dashboard-ul
interactiv

creat cu ajutorul graficelor care prezint
ă
statisticile cu privire la poluarea din România.

Prin
urmare,
dashboard-ul
creat
se
reg
ă
se
ș
te
în
întregime
în
urm
ă
toarele
4
figuri
ș
i

anume:
primele
dou
ă
figuri
(fig.
7
ș
i
fig.
8)
cu
dashboard-ul
reprezint
ă
doar
vizualizarea

graficelor la accesarea link-ului din browser cu aplica
ț
ia construit
ă
.

Fig. 7 Dashboard-ul cu graficele aplica
ț
iei f
ă
r
ă
interac
ț
iunea utilizatorului

Fig. 8 Dashboard-ul cu graficele aplica
ț
iei f
ă
r
ă
interac
ț
iunea utilizatorului

Urm
ă
toarele
dou
ă
figuri
(fig.
9
ș
i
fig.
10)
reprezint
ă
interac
ț
iunea
utilizatorului
cu

dashboard-ul, astfel:


utilizatorul apas
ă
pe unul dintre jude
ț
ele din România;


utilizatorul
poate
astfel
observa
cum
toate
graficele
din
cadrul
dashboard-ului

sunt actualizate cu date specifice doar pentru acel jude
ț
;

15


utilizatorul
poate
s
ă
apese
pe
înc
ă
un
alt
jude
ț
din
România
ș
i
va
vedea
c
ă

toate graficele vor fi actualizate cu date specifice celor dou
ă
jude
ț
e;


astfel,
un
utilizator
poate
interac
ț
iona
cu
oricare
dintre
grafice
realizate
în

dashboard-ul
interactiv,
iar
toate
celelalte
grafice
se
vor
actualiza
în
mod

sincron cu date specifice select
ă
rii.

Fig. 9 Dashboard-ul cu graficele aplica
ț
iei cu interac
ț
iunea utilizatorului

Fig. 10 Dashboard-ul cu graficele aplica
ț
iei cu interac
ț
iunea utilizatorului

A
ș
adar,
dashboar d-ul
prezentat
în
cele
patru
figuri
(fig.
7,
8,
9
ș
i
10)
con
ț
ine
graficele

care
prezint
ă
statisticile
colectate
cu
ajutorul
setului
de
date
ș
i
sunt
reprezentative
pentru

setul de date ales. În continuare, voi descrie fiecare grafic
ș
i rezultatele ob
ț
inute.

Astfel,
figurile
7
ș
i
8
prezint
ă
dashboard-ul
care
apare
odat
ă
cu
deschiderea
aplica
ț
iei

ș
i
accesarea
acesteia,
iar
figurile
9
ș
i
10
prezint
ă
dashboard-ul
atunci
când
o
parte
din
date

sunt
selectate
de
c
ă
tre
utilizator
în
interfa
ț
ă
ș
i
atunci
toate
graficele
sunt
populate
ș
i

actualizate cu informa
ț
ii, bazându-se pe informa
ț
iile specifice solicitate de c
ă
tre utilizator.

16

Figura
11
reprezint
ă
un
grafic
de
tip
“map”
(hart
ă
),
care
reprezint
ă
baza
aplica
ț
iei

deoarece
cu
ajutorul
acestuia
se
pot
vizualiza
jude
ț
ele
României
împreun
ă
cu
totalul
polu
ă
rii

în
kg,
ș
i
anume
distribu
ț
ia
polu
ă
rii
pe
jude
ț
e.
A
ș
adar,
în
figur
ă
se
poate
observa
c
ă
se
poate

trece
cu
mouse-ul
deasupra
h
ă
r
ț
ii
ș
i
c
ă
informa
ț
iile
necesare
vor
putea
fi
vizualizate
per

jude
ț
.

Fig. 11 Map chart – harta României cu distribu
ț
ia polu
ă
rii pe jude
ț
e

Pentru
realizarea
acestui
grafic
(fig.
11),
am
folosit
dou
ă
seturi
de
date:
un
set
de

date
pentru
maparea
jude
ț
elor
pe
hart
ă
(un
geojson
con
ț
inând
numele
jude
ț
elor
împreun
ă

cu
propriet
ă
ț
ile
ș
i
coordonatele
acestora
[8])
ș
i
înc
ă
un
set
de
date
pentru
maparea
valorilor

de
poluare
a
jude
ț
elor
pe
hart
ă
(setul
de
date
de
pe
site-ul
institu
ț
iilor
de
administra
ț
ie

public
ă
a
statului
[7]).
Astfel,
am
putut
calcula
mapa
distribu
ț
ia
valorilor
de
poluare
din

jude
ț
ele
din
România
într-un
mod
interactiv
cu
ajutorul
scripturilor
Python
ș
i
a
bibliotecilor

Javascript DC.js
ș
i D3.js.

Totodat
ă
,
datorit
ă
faptului
c
ă
pentru
acest
grafic
am
folosit
dou
ă
seturi
de
date,
au

fost
necesare
anumite
proces
ă
ri
ale
datelor
în
cod,
în
mare
parte
datorit
ă
inconsisten
ț
elor

datelor
în
cele
dou
ă
seturi
de
date:
diacriticele,
spa
ț
iile
sau
liniile
de
leg
ă
tur
ă
erau

inconsistente
în
cele
dou
ă
seturi
de
date
ș
i
au
fost
a
ș
adar
procesate
pentru
o
mapare

corect
ă
.
Mai
mult
decât
atât,
în
seturile
de
date
au
fost
corectate
tipurile
de
date
ș
i

inconsisten
ț
ele legate de inexisten
ț
a unor valori în seturile de da te.

17

Figura
12
reprezint
ă
un
grafic
de
tip
“bar”
(cu
bare),
unde
valorile
anilor
care
se

reg
ă
sesc
în
setul
de
date
sunt
plasate
pe
axa
OX,
iar
num
ă
rul
cazurilor
de
poluare
în
jude
ț
ele

din
România
sunt
plasate
pe
axa
OY.
Astfel,
se
poate
observa
faptul
c
ă
valorile
din
setul
de

date
folosit
nu
sunt
foarte
actualizate
sau
recente,
iar
cazurile
de
poluare
din
cadrul

jude
ț
elor
din
România
nu
sunt
raportate,
neexistând
un
plan
al
combaterii
polu
ă
rii
în
rândul

institu
ț
iilor de stat.

Fig. 12 Bar chart – distribu
ț
ia num
ă
rului de cazuri de poluare pe ani

Figura
13
reprezint
ă
un
grafic
de
tip
“pie”
(pl
ă
cint
ă
)
ș
i
con
ț
ine
cazurilor
de
poluare
ș
i

a
num
ă
rului
acestora
pe
categoriile
de
poluan
ț
i
reg
ă
si
ț
i
în
jude
ț
ele
din
România.
A
ș
adar,
în

grafic
este
reprezentat
ă
ș
i
propor
ț
ia
pe
care
categoriile
de
polu an
ț
i
o
ocup
ă
în
setul
de
date

folosit, cea mai popular
ă
categorie de poluan
ț
i reprezentând-o amoniacul.

Fig. 13 Pie chart – distribu
ț
ia cazurilor de poluare pe categoriile de poluan
ț
i

18

Figura
14
reprezint
ă
un
alt
grafic
tot
de
tip
“pie”
(pl
ă
cint
ă
)
ș
i
prezint
ă
distribu
ț
ia

metodelor
folosite
pentru
determinarea
cazurilor
de
poluare
în
cadrul
jude
ț
elor
din
România

ș
i totodat
ă
, cuprinde pro por
ț
ia pe care aceste metode folosite le ocup
ă
în setul de date.

Fig. 14 Pie chart – distribu
ț
ia metodelor folosite pentru determinarea polu
ă
rii

În
continuare,
voi
prezenta
un
grafic
care
prezint
ă
statistici
cu
privire
la
frecven
ț
a

grupurilor
care
con
ț
in
tipurile
cele
mai
poluante
sectoare
de
activitate
selectate.
A
ș
adar,
în

figura
15
se
reg
ă
se
ș
te
un
grafic
de
tip
“row”
(cu
rânduri)
în
care
se
prezint
ă
grupurile
de

sectoare
de
activitate
cele
mai
poluante
în
setul
de
date
ș
i
care
ocup
ă
cea
mai
mare

propor
ț
ie
din
setul
de
date,
cât
ș
i
num
ă
rul
de
cazuri
de
poluare
identificate
în
respectivele

sectoare.
Prin
realizarea
acestui
grafic,
s-au
identificat
grupurile
de
cuvinte
cele
mai

frecvente (“bag of words”) pentru identificarea celor mai poluante sectoare de activitate.

Fig. 15 Row chart – distribu
ț
ia num
ă
rului de cazuri de poluare pe sector de activitate

19

3.6
EVALUAREA REZULTATELOR

Prin
urmare
pân
ă
acum
în
capitolul
anterior
am
prezentat
dashboard-ul
cu
grafice,

iar în continuare voi detalia statisticile rezultate în leg
ă
tur
ă
cu setul de date ales precum:


frecven
ț
a
cazurilo r
de
poluare
raportate
în
jude
ț
ele
din
România
pe
parcursul
a
zece

ani
(setul
de
date
ales
având
cele
mai
multe
cazuri
raportate
de
poluare
în
anul
2008,

iar
cazurile
de
poluare
raportate
g
ă
site
în
setul
de
date
nu
reprezint
ă
cele
mai

recente
valori
raportate
în
ultimii
ani,
lucru
care
poate
fi
îmbun
ă
t
ă
ț
it
într-o
viitoare

itera
ț
ie a aplica
ț
iei);


frecven
ț
a
categor iilor
de
poluan
ț
i
cei
mai
des
întâlni
ț
i
în
cazurile
de
poluare
raportate

în
jude
ț
ele
din
România
(amoniacul,
dioxidul
de
carbon,
oxizii
de
azot
ș
i
metanul

reprezentând
categoriile
de
poluan
ț
i
cele
mai
frecvente
întâlnite
în
cazurile
de

poluare raportate în România);


frecven
ț
a
metod elor
pentru
determinarea
cazurilor
de
poluare
din
jude
ț
ele
din

România
(în
graficul
cu
distribu
ț
ia
metodelor
folosite
pentru
determinarea
cazurilor

de
poluare
sunt
folosite
denumirile
ș
tiin
ț
ifice
ale
meto delor,
iar
propor
ț
ia
cea
mai

mare
o
reprezint
ă
metodele
bazate
pe
calcule
ș
i
m
ă
sur
ă
tori
ș
i
propor
ț
ia
cea
mai

mic
ă
o reprezint
ă
metodele bazate pe estim
ă
ri);


frecven
ț
a
sectoar elor
de
activitate
care
provoac
ă
cele
mai
multe
cazuri
de
poluare
în

jude
ț
ele
din
Rom ânia
cât
ș
i
distribu
ț
ia
num
ă
rului
de
cazuri
de
poluare
per
sector
de

activitate
(a
ș
adar ,
sectorul
energetic
ș
i
produc
ț
ia
animal
ă
intensiv
ă
cât
ș
i
acvacultura

produc cele mai multe cazuri de poluare în jude
ț
ele din România);


distribu
ț
ia
polu
ă
rii
în
jude
ț
ele
din
România
eviden
ț
iat
ă
prin
totalul
polu
ă
rii
în
kg
al

fiec
ă
rui
jude
ț
,
realizat
ă
cu
ajutorul
unei
h
ă
r
ț
i
cu
jude
ț
ele
din
România
(cele
mai

poluate
jude
ț
e
sunt
cele
eviden
ț
iate
cu
culoarea
portocal iu
închis,
urmate
de
jude
ț
ele

eviden
ț
iate cu por tocaliu deschis, verde, albastru închis
ș
i albastru deschis).

A
ș
adar,
evaluând
graficele
detaliate
mai
sus
se
poate
observa
c
ă
setul
de
date
ales

este
unul
concludent
care
poate
fi
îmbun
ă
t
ă
ț
it
pentru
a
cuprinde
date
mai
recente
despre

poluarea
din
România.
Totodat
ă
statisticile
rezultate
din
setul
de
date
sunt
interesante
ș
i

reprezint
ă
un
punct
de
plecare
pentru
extinderea
aplica
ț
iei
ș
i
pentru
în
ț
elegerea
întregului

fenomen de poluare care ne afecteaz
ă
s
ă
n
ă
tatea în fiecare zi.

20

4
LIMIT
Ă
RI
Ș
I DIREC
Ț
II DE EXPLORARE PENTRU VIITOR

În
continuare,
în
aceast
ă
sec
ț
iune
voi
prezenta
limit
ă
rile
aplica
ț
iei
dezvoltate
ș
i

prezentate
în
sec
ț
iunile
anterioare,
dar
totodat
ă
voi
eviden
ț
ia
atât
direc
ț
iile
cât
ș
i
abord
ă
rile

pe care le voi putea explora în viitor în vederea îmbun
ă
t
ă
ț
irii rezultatelor ob
ț
inute:

1.
Îmbun
ă
t
ă
ț
irea
setului
de
date
ales
prin
folosirea
unor
date
mai
recente
în

vederea ob
ț
inerii unor date mai exacte
ș
i a unor r ezultate mai complexe

În
aplica
ț
ia
curent
ă
realizat
ă
,
am
folosit
un
set
de
date
semistructurat
oferit

de
c
ă
tre
un
site
de
colectare
a
datelor
a
institu
ț
iilor
de
stat
administrative
ș
i

publice
ale
României
[7]
care
con
ț
ine
date
despre
cazurile
de
poluare
din

România
de-a
lungul
a
zece
ani,
neavând
date
actualizate
despre
ultimele

cazuri
recente
de
poluare
din
jude
ț
ele
din
România.
Astfel,
prin
îmbun
ă
t
ă
ț
irea

setului
de
date
ales,
lucru
care
poate
fi
realizat
prin
al
ă
turarea
unor
date
mai

recente
la
setul
de
date
folosit,
s-ar
putea
ob
ț
ine
rezultate
mai
concludente
ș
i

mai complexe pentru în
ț
elegerea fenomenului de poluare din România.

2.
Folosirea
de
metode
de
prelucrare
ș
i
procesare
date
mult
mai
avansate
în

vederea aplic
ă
rii unor algoritmi mai complec
ș
i asupra setului de date ales

Prin
urmare,
pe
lâng
ă
faptul
c
ă
folosirea
unui
set
de
date
mai
cuprinz
ă
tor
ar

putea
duce
la
ob
ț
inerea
unor
rezultate
mai
semnificative
ș
i
interesante,
tot
la

fel
ar
putea
contribui
ș
i
folosirea
unor
metode
de
prelucrare
ș
i
procesare
date

mult
mai
avansate.
Astfel,
în
aplica
ț
ia
realizat
ă
am
folosit
metode
statistice

pentru
prelucrarea
ș
i
procesarea
datelor
cum
ar
fi:
metode
de
prelucrare
a

textului
în
limba
român
ă
care
se
refer
ă
la
procesarea
diacriticelor
ș
i
a

gramaticii
limbii
române,
metode
pentru
determinarea
unor
distribu
ț
ii
de

valori
ș
i
a
frecven
ț
ei
unor
grupuri
de
cuvinte.
În
consecin
ț
ă
,
consider
c
ă

folosirea
unor
tehnici
de
exploatarea
a
datelor
mult
mai
avansate
realizate
pe

baza
setului
de
date
ales
ar
putea
duce
la
ob
ț
inerea
unor
rezultate
mai

interesant
ș
i la vizualizarea unor modele mult mai concludente.

21

5
CONCLUZII

În
concluzie,
datorit
ă
cre
ș
terii
rapide
a
volumului
de
date
digitale,
exploatarea
de

text
(“text
mining”
sau
extragerea
de
modele
interesante
din
text)
a
devenit
un
domeniu

care
a
atras
aten
ț
ia
cuve nit
ă
unei
nevoi
viitoare
de
transformare
a
datelor
în
informa
ț
ii
ș
i

cuno
ș
tin
ț
e
utile.
În
consecin
ț
ă
,
exist
ă
un
interes
crescut
în
domeniul
cercet
ă
rii
ș
i
exploat
ă
rii

datelor
de
tip
text.
În
general,
exploatarea
textului
const
ă
în
analiza
unei
cantit
ă
ț
i
mari
de

date
text
prin
extragerea
expresiilor
cheie,
concepte
etc
ș
i
în
preg
ă
tirea
textului
procesat

pentru
o
analiz
ă
ulterioar
ă
cu
tehnici
de
extragere
a
cuno
ș
tin
ț
elor
utile
din
setul
de
date

ales.

Totodat
ă
,
disponibilitatea
unui
volum
mare
de
date
text
este
necesar
pentru
a
putea

extrage
informa
ț
ii
utile.
Tehnicile
de
exploatare
a
textului
sunt
folosite
pentru
a
analiza
ș
i
a

extrage
informa
ț
ii
releva nte
ș
i
interesante
într-un
mod
eficient
din
cantit
ă
ț
i
de
seturi
mari

de
date
semistructurate
sau
nestructurate.
Selectarea
ș
i
utilizarea
tehnicilor
ș
i
uneltelor

adecvate
fac
procesul
de
exploatare
datelor
text
ș
i
de
reg
ă
sire
de
informa
ț
ii
utile
s
ă
devin
ă

mai u
ș
or
ș
i mai eficient.

Astfel,
în
aceast
ă
lucrare
am
realizat
ș
i
prezentat
în
detaliu
o
aplica
ț
ie
care
poate

reprezenta
un
început
pentru
investigarea,
aprofundarea
ș
i
în
ț
elegerea
fenomenului
de

poluare
din
România.
Totodat
ă
,
aceast
ă
aplica
ț
ie
poate
fi
extins
ă
pentru
a
folosi
ș
i
exploata

tehnici
mai
complexe
de
text
mining
asupra
unui
set
de
date
mai
recent
ș
i
actualizat
pentru

a
ajuta
la
în
ț
elegerea
ș
i
combaterea
fenomenului
de
poluare
din
jude
ț
ele
din
România
care

ne afecteaz
ă
s
ă
n
ă
tatea în fiecare zi.

A
ș
adar,
fenomen ul
de
poluare
reprezint
ă
un
domeniu
de
interes
public
care
nu

impacteaz
ă
doar
statul
român
ci
toate
ț
ă
rile
de
pe
întregul
glob,
iar
combatarea
ș
i

în
ț
elegerea
acestui
fenom en
este
un
proces
anevoios
care
poate
fi
u
ș
urat
prin
procesul
de

prelevare
ș
i procesare/pr elucrare a datelor despre poluare.

Acest
lucru
poate
fi
realizat
doar
dac
ă
statele
respective
au
grij
ă
ca
datele
despre

poluare
s
ă
fie
raportate
în
mod
clar
ș
i
precis,
iar
informa
ț
iile
sa
fie
cele
reale
pentru
ca

rezultatele
ob
ț
inute
s
ă
fie
concludente
ș
i
de
ajutor
în
combaterea
fenomenului
nociv
de

poluare care ne pune în pericol s
ă
n
ă
tatea zilnic.

22

6
BIBLIOGRAFIE
Ș
I REFERIN
Ț
E

[1] “Comparison of Text Mining Tools”, Arvinder Kaur, Deepti Chopra, 2016

[2]

https://machinelearningmastery.com/gentle-introduction-bag-words-model/

[3]

https://data.gov.ro/

[4]

https://www.mongodb.com/

[5]

https://d3js.org/

[6]

https://dc-js.github.io/dc.js/

[7]

https://data.gov.ro/dataset/emisii_in_aer/resource/bdf0854e-ee5d-4892-ba12-9eac823
d7c80

[8]

https://savuraluca.carto.com/tables/ro_judete_poligon/public

[9]

https://github.com/deldersveld/topojson/blob/master/countries/romania/romania-coun
ties.json

[10]

https://github.com/codeforamerica/click_that_hood/blob/master/public/data/romania.
geojson

[11]

https://www.freecodeformat.com/excel-json.php

[12]

https://riptutorial.com/mongodb/example/21735/mongoimport-with-json

[13]

https://www.tutorialspoint.com/dcjs/index.htm

[14]

http://www.andreykurenkov.com/writing/project/visualizing-imdb-data-with-d3/

[15]

http://adilmoujahid.com/posts/2015/01/interactive-data-visualization-d3-dc-python-m
ongodb/

23

Similar Posts