Documente Academic
Documente Profesional
Documente Cultură
Lucrare de Laborator 1 CCI-Iurie Ciala
Lucrare de Laborator 1 CCI-Iurie Ciala
RAPORT
Lucrare de Laborator Nr.1
A efectuat:
A verificat:
Lector Superior
Chiinu 2016
Lazu Victoria
comoara pzit de dragonul Smaug. Cltoria lui Bilbo l poart din mprejurimile rurale
luminoase adnc n teritoriile ntunecate. Povestea este relatat sub forma unei cutri mprite
pe episoade, majoritatea capitolelor introducnd o nou creatur sau un tip specific de creatur.
Povestea ncepe din ziua n care Bilbo Baggins are parte de o vizit neateptat din partea
vrjitoului Gandalf i unui grup de treisprezece pitici condui de Thorin (Scut-de-Stejar),
compus din Balin, Glin, Bifur, Bofur, Bombur, Dwalin, Ori, Dori, Nori, in, Kli i Fli. Piticii
au nevoie de un membru suplimentar n grupul lor, un ho expert, pentru a-i ndeplini planul: s
cucereasc Muntele Singuratic, s-l nfrng pe balaurul Smaug, s pun mna pe comorile sale
i s recupereze regatul piticilor. Gandalf l-a recomandat pe Bilbo pentru aceast misiune, iar el
accept s-i nsoeasc n aventur.
Pierdut n tunelele gnomilor din Munii Ceoi, el d peste un inel misterios (Unicul Inel
pe care l-a gsit Dagol, hobbitul ucis de Smagol, adic Gollum) i l ntlnete pe Gollum, care
l provoac la un joc de ghicitori cu miz mortal. Cu ajutorul inelului, care l face invizibil,
Bilbo scap i se altur piticilor, crescnd n ochii lor. Acest pasaj face parte din contextul
Stpnului inelelor.
Dup alte ntmplri, Bilbo i piticii reuesc s ia comoara din Muntee Singuratic. Bilbo
accept doar o mic parte din ceea ce i revenea din comoar, considernd c nu are nevoie de
mai mult, dar tot se ntoarce acas foarte bogat.
Cuvinte: 256
2.
1 cuvant
din
de
bilbo
n
pe
i
un
parte
s
care
l
o
are
creatur
smaug
hobbitul
baggins
gandalf
povestea
piticii
nevoie
lor
pentru
comoara
singuratic
piticilor
l-a
el
accept
inel
cu
face
se
2 cuvinte
parte din
bilbo baggins
nevoie de
care l
aparitii
frecventa
10
10
7
6
6
6
5
4
4
4
4
4
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3.91%
3.91%
2.73%
2.34%
2.34%
2.34%
1.95%
1.56%
1.56%
1.56%
1.56%
1.56%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
0.78%
3
2
2
2
1.17%
0.78%
0.78%
0.78%
Text 2
1 cuvant
i
de
a
n
la
pe
care
inelul
su
frodo
gandalf
despicat
ctre
vlceaua
negri
este
cu
din
de-a
multe
c
inel
i
lui
dup
ani
ce
mai
inelului
pentru
ajutorul
timp
clreii
s
i
bilbo
comitat
se
aragorn
2 cuvinte
de ctre
pe care
aparitii
frecventa
8
8
7
6
5
5
5
5
5
5
3
3
3
3
3
3
3
3
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2.84%
2.84%
2.48%
2.13%
1.77%
1.77%
1.77%
1.77%
1.77%
1.77%
1.06%
1.06%
1.06%
1.06%
1.06%
1.06%
1.06%
1.06%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
0.71%
3
2
1.06%
0.71%
cu ajutorul
clreii negri,
la vlceaua
vlceaua despicat,
3 cuvinte
la vlceaua despicat,
aparitii
2
2
2
2
frecventa
0.71%
0.71%
0.71%
0.71%
0.71%
Text 3
1 cuvant
i
l
pe
de
s
n
ctre
lui
din
se
a
saruman
dar
c
la
gollum
inelul
gandalf
este
el
ce
frodo
cu
care
boromir
merry
sale
pentru
va
pippin
sa
ajut
acetia
timp
i
cei
aparitii
frecventa
10
9
9
8
7
7
6
5
5
5
4
4
4
4
4
3
3
3
3
3
3
3
3
2
2
2
2
2
2
2
2
2
2
2
2
2
3.25%
2.92%
2.92%
2.6%
2.27%
2.27%
1.95%
1.62%
1.62%
1.62%
1.3%
1.3%
1.3%
1.3%
1.3%
0.97%
0.97%
0.97%
0.97%
0.97%
0.97%
0.97%
0.97%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
dup
sunt
o
ntlnesc
sam
spre
lupt
un
prin
ei
acesta
shelob
s-a
2 cuvinte
de ctre
lui saruman,
frodo i
i l
saruman n
merry i
s l
pe frodo
3 cuvinte
lui saruman, n
pe frodo i
frodo i l
4 cuvinte
pe frodo i l
aparitii
2
2
2
2
2
2
2
2
2
2
2
2
2
frecventa
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
0.65%
5
3
3
3
2
2
2
2
1.62%
0.97%
0.97%
0.97%
0.65%
0.65%
0.65%
0.65%
2
2
2
0.65%
0.65%
0.65%
0.65%
Text 4
aparitii
frecventa
11
4.1%
de
11
4.1%
artificial
2.61%
2.61%
care
2.24%
este
2.24%
un
2.24%
1.87%
inteligen
1.49%
1 cuvant
10
aparitii
frecventa
mai
1.49%
se
1.49%
1.49%
inteligena
1.12%
sau
1.12%
cu
1.12%
inteligenei
1.12%
artificiale
1.12%
la
1.12%
ai
0.75%
prin
0.75%
0.75%
mod
0.75%
ntr-un
0.75%
chiar
0.75%
fi
0.75%
ai
0.75%
pe
0.75%
poate
0.75%
exemplu
0.75%
reguli
0.75%
ar
0.75%
inteligena artificial
1.12%
inteligen artificial
1.12%
este un
0.75%
a inteligenei
0.75%
inteligenei artificiale
0.75%
ntr-un mod
0.75%
o inteligen
0.75%
0.75%
2 cuvinte
3 cuvinte
a inteligenei artificiale
Text 5
aparitii
frecventa
11
3.83%
1 cuvant
de
11
aparitii
frecventa
2.79%
2.79%
care
2.44%
pe
2.09%
1.74%
cu
1.74%
se
1.74%
1.39%
un
1.39%
la
1.05%
test
1.05%
inteligena
1.05%
uman
1.05%
este
1.05%
ani
1.05%
vor
1.05%
pentru
1.05%
turing
1.05%
acest
1.05%
1.05%
ns
0.7%
testul
0.7%
ca
0.7%
artificial
0.7%
s-a
0.7%
inteligenei
0.7%
din
0.7%
umane
0.7%
poate
0.7%
lui
0.7%
nc
0.7%
fi
0.7%
noile
0.7%
ale
0.7%
va
0.7%
puterea
0.7%
prin
0.7%
2 cuvinte
12
aparitii
frecventa
s se
0.7%
inteligena artificial
0.7%
puterea de
0.7%
de ani
0.7%
13
Cuvinte cheie:
Text 1
comoar
dragon
povestea
creatur
vrjitor
pitic
balaur
Aventur
gnom
Text 4
4
1
2
2
1
3
1
1
1
tehnic
informatic
main
inteligent
agent
sistem
raiune
cunoatere
prelucrare
limbaj
natural
comunicare
percepie
computer
gndi
regul
algoritm
recunoater
verbal
automat
0,015625
0,00390625
0,0078125
0,0078125
0,00390625
0,01171875
0,00390625
0,00390625
0,00390625
Text 2
magic
aventur
putere
lord
corupt
elf
tron
regat
hobbit
1
1
1
2
1
2
1
1
1
0,003546
0,003546
0,003546
0,00709
0,003546
0,00709
0,003546
0,003546
1
1
1
2
1
2
1
1
1
1
1
1
1
1
2
2
1
1
1
1
0,003546
0,003731
0,003731
0,003731
0,007462
0,003731
0,007462
0,003731
0,003731
0,003731
0,003731
0,003731
0,003731
0,003731
0,003731
0,007462
0,007462
0,003731
0,003731
0,003731
0,003731
Text 5
domeniu
lingvistic
limbaj
natural
main
computer
converseaz
program
calculator
tehnologie
expert
lege
inteligen
Text 3
orc
hobbit
regat
ent
putere
magic
armat
pianjen
2
3
1
1
1
1
1
2
0,00649
0,00974
0,003246
0,003246
0,003246
0,003246
0,003246
0,00649
14
1
1
1
2
1
4
1
1
1
2
1
1
1
0,003484
0,003484
0,003484
0,006968
0,003484
0,013937
0,003484
0,003484
0,003484
0,006968
0,003484
0,003484
0,003484
3.
Text: Fantastic.
1) Poveste, poveste, dragon, creatur, creatur, balaur, pitic, comoar, comoar, comoar,
comoar ;
2) Magic, aventur, putere, lord, lord, corrupt, elf, elf, tron, regat;
3) Orc, orc, regat, ent, putere, magic, pianjen, pianjen;
Text: inteligen artificial .
4) Main, inteligent, inteligent, regul, regul, agent, sistem, sistem, limbaj, natural,
calculator
5) Limbaj, natural, natural, computer, computer, computer, computer, calculator, main
4.
De elaborat un program care determin din ce domeniu fac parte cuvintele introduse
de la tastatur i calculeaz numrul de apariie a acestor cuvinte n fiecare text.
15
= (3*1*1*1*1*1) / (5*48*48*48*48*24) =
= 0.00000000409
P( inteligena art. | clasa ) = 2/5 * 3/29 * 3/29 * 1/29 * 3/29*2/29 =
= (2*3*3*1*3*2) / (5*29*29*29*29*29) =
= 0.0000001053
Textul este de tip: inteligen artificial.
16
Text: Fantastic.
1) Poveste, poveste, dragon, creatur, creatur, balaur, pitic, comoar, comoar, comoar,
comoar ;
2) Magic, aventur, putere, lord, lord, corrupt, elf, elf, tron, regat;
3) Orc, orc, regat, ent, putere, magic, pianjen, pianjen;
Text: inteligen artificial .
4) Main, inteligent, inteligent, regul, regul, agent, sistem, sistem, limbaj, natural,
calculator
5) Limbaj, natural, natural, computer, computer, computer, computer, calculator, main
Rezultate:
package de.daslaboratorium.machinelearning.bayes.example;
import java.util.Arrays;
import
de.daslaboratorium.machinelearning.bayes.BayesClassifier;
import de.daslaboratorium.machinelearning.bayes.Classifier;
DataTable table = new DataTable();
Classifier classifier = new Classifier();
classifier.TrainClassifier(table);
//output would be transgender.
Console.WriteLine(classifier.Classify(new double[] { 4,
150, 12 }));
Console.Read();
public void TrainClassifier(DataTable table)
{
dataSet.Tables.Add(table);
//table
DataTable GaussianDistribution =
dataSet.Tables.Add("Gaussian");
GaussianDistribution.Columns.Add(table.Columns[0].ColumnNam
e);
//columns
for (int i = 1; i < table.Columns.Count; i++)
{
GaussianDistribution.Columns.Add(table.Columns[i].ColumnNam
e + "Mean");
17
GaussianDistribution.Columns.Add(table.Columns[i].ColumnNam
e + "Variance");
}
//calc data
var results = (from myRow in table.AsEnumerable()
group myRow by
myRow.Field<string>(table.Columns[0].ColumnName) into g
select new { Name = g.Key, Count =
g.Count() }).ToList();
for (int j = 0; j < results.Count; j++)
{
DataRow row = GaussianDistribution.Rows.Add();
row[0] = results[j].Name;
int a = 1;
for (int i = 1; i < table.Columns.Count; i++)
{
row[a] = Helper.Mean(SelectRows(table, i,
string.Format("{0} = '{1}'",
table.Columns[0].ColumnName, results[j].Name)));
row[++a] = Helper.Variance(SelectRows(table, i,
string.Format("{0} = '{1}'",
table.Columns[0].ColumnName,
results[j].Name)));
a++;
}
}
}
public string Classify(double[] obj)
{
Dictionary<string,> score = new Dictionary<string,>();
var results = (from myRow in
dataSet.Tables[0].AsEnumerable()
group myRow by myRow.Field<string>(
dataSet.Tables[0].Columns[0].ColumnName) into g
select new { Name = g.Key, Count =
g.Count() }).ToList();
for (int i = 0; i < results.Count; i++)
{
List<double> subScoreList = new List<double>();
int a = 1, b = 1;
for (int k = 1; k <
dataSet.Tables["Gaussian"].Columns.Count; k = k + 2)
{
18
double mean =
Convert.ToDouble(dataSet.Tables["Gaussian"].Rows[i][a]);
double variance =
Convert.ToDouble(dataSet.Tables["Gaussian"].Rows[i][++a]);
double result = Helper.NormalDist(obj[b - 1],
mean, Helper.SquareRoot(variance));
subScoreList.Add(result);
a++; b++;
}
double finalScore = 0;
for (int z = 0; z < subScoreList.Count; z++)
{
if (finalScore == 0)
{
finalScore = subScoreList[z];
continue;
}
finalScore = finalScore * subScoreList[z];
}
score.Add(results[i].Name, finalScore * 0.5);
}
double maxOne = score.Max(c => c.Value);
var name = (from c in score
where c.Value == maxOne
select c.Key).First();
return name;
}
19
P( inteligena art. | clasa ) = 0,4 * 0,10344 * 0,10344 * 0,03448 * 0,10344 * 0,06896 = 0.0000001053
0.00000000409 < 0.0000001053
The chosen class is: fantasy!
CONCLUZII
n procesul realizrii lucrrii de laborator nr.1 cu tema Crearea claselor de texte pentru
clasificare. Naive Bayes am realizat mai muli pai. n primul rnd am selectat 5 texte care fac
parte din 2 domenii diferite, domeniul fantasticii i domeniul inteligenii artificial. Apoi,
utiliznd aplicaia Masterca, am depistat care este frecvena fecrui cuvnd n fiecare text. Am
selectat cuvintele cheie care ajut la depistarea domeniului i am calculat ponderea lor.
20