-
Notifications
You must be signed in to change notification settings - Fork 2
/
Main.m
28 lines (22 loc) · 1.5 KB
/
Main.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
%positive.txt ve negative.txt dosyalarında %70'i training olacak
%şekilde training.txt dosyası oluşturuluyor.
createTrainingSet();
%tfIdfTermCount fonksiyonu ile kelimelerin tf idf değerleri ve sonraki
%fonksiyonlarda kullanılacak değerler hesaplanıyor.
[resultTFIDF, resultDFmap, resultDFpositive, resultDFnegative, resultTermCountInPos, resultTermCountInNeg, pos_word_count, neg_word_count] = tfIdfTermCount( );
%preprocessedTable foksiyonu ile kelimelerin tfidf değerleri toplanarak bir
%sort işlemi gerçekleştiriliyor. En büyük değere sahip 3000kelime alınarak
%değersiz kelimeler atılıyor ve toplam kelime sayısı azaltılıyor.
weightedTable = preprocessedTable(resultTFIDF);
%calculateIG fonksiyonu ile kelimelerin information gain değerleri
%hesaplanıyor ve en ayırt edici 500 kelime feature olarak seçiliyor.
IGTable = calculateIG(weightedTable, resultDFmap, resultDFpositive, resultDFnegative);
%calculateProbabilities fonksiyonu ile feature'larin hem pozitif hem
%negatif classlar için olasılıkları hesaplanıyor.
[posProbMap, negProbMap] = calculateProbabilities(IGTable, resultTermCountInPos, resultTermCountInNeg, pos_word_count, neg_word_count);
%positive.txt ve negative.txt dosyalarında %30'u testing olacak
%şekilde testing.txt dosyası oluşturuluyor.
createTestingSet();
%testing.txt dosyasından alınan yorumlar ile Naive Bayes ile oluşturduğumuz
%classification methodu test ediliyor ve accuracy değeri hesaplanıyor.
[resultTable, accuracy, fscore, confusionMatrix] = calculateNaiveBayes(posProbMap, negProbMap);