gist: 19121 Download_button fork
public
Public Clone URL: git://gist.github.com/19121.git
pasted test code: def load_classifier(name)
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
def load_classifier(name)
# load energetic classifier
labels = Bayes.find(:all,
                    :select => "category",
                    :conditions => ["classifier = ? AND word is NULL AND count is NULL", name])
       
str_labels = []
labels.each do |l|
  str_labels << l.name
end
 
record = Bayes.find(:all,
                    :select => "category, word, count",
                    :conditions => ["classifier = ? AND category is not NULL AND word is not NULL AND count is not NULL", name])
                    
puts record.size
puts str_labels
 
 b = Classifier::Bayes.new str_labels
 b.load_from_data(record)
 b
end
 
 
def training()
record = TempTweet.find(:all,
                        :select => "text, energetic, positive")
 
# Build bayes classifier for energetic
 b = Classifier::Bayes.new '0', '1'
 
record.each do |r|
   b.train r[:energetic], r[:text]
end
 
# Test bayes classifier for energetic
correct = 0
record.each do |r|
  guess = b.classify r[:text]
  correct = correct + 1 if(guess == r[:energetic])
end
# puts correct/record.size
 
save_classifier( b, 'energetic')
 
#######
 
# Build bayes classifier for positive
 b2 = Classifier::Bayes.new '0', '1'
 
record.each do |r|
   b2.train r[:positive], r[:text]
end
 
# Test bayes classifier for positive
correct = 0
record.each do |r|
  guess = b2.classify r[:text]
  correct = correct + 1 if(guess == r[:positive])
end
 
#puts correct/record.size
save_classifier( b2, 'positive')
        
end
 
 
def save_classifier(b, name)
# Save classifier to table
# In the future, clean table
#destroy
cat = b.get_categories
cat.each do |key1, value1|
   value1.each do |key2, value2|
   puts name
   puts key1
   puts key2
   puts value2
   new_bayes = Bayes.new(:classifier => 'a', :category => 'b', :word => 'c', :count => 1)
# new_bayes = Bayes.new
# new_bayes.category = key1.to_s
# name.inspect
# new_bayes.classifier = name
# new_bayes.word = key2.to_s
# new_bayes.count = value2
  new_bayes.save
 end
end
end
 
 
 
 
 
def load_classifier(name)
  # load energetic classifier
  labels = Bayes.find(:all,
                      :select => "category",
                      :conditions => ["classifier = ? AND word is NULL AND count is NULL", name])
         
  str_labels = []
  labels.each do |l|
    str_labels << l.name
  end
  
  record = Bayes.find(:all,
                      :select => "category, word, count",
                      :conditions => ["classifier = ? AND category is not NULL AND word is not NULL AND count is not NULL", name])
                      
  puts record.size
  puts str_labels
  
  b = Classifier::Bayes.new str_labels
  b.load_from_data(record)
  b
end

Owner

carlisia

Revisions