src/HOL/Tools/Sledgehammer/MaSh/src/sparseNaiveBayes.py
changeset 54692 5ce1b9613705
parent 54432 68f8bd1641da
child 54697 b08e1bbde10a
equal deleted inserted replaced
54691:506312c293f5 54692:5ce1b9613705
   110             fWeightsA = self.counts[a][1]
   110             fWeightsA = self.counts[a][1]
   111             resultA = log(posA)
   111             resultA = log(posA)
   112             for f,w in features.iteritems():
   112             for f,w in features.iteritems():
   113                 # DEBUG
   113                 # DEBUG
   114                 #w = 1.0
   114                 #w = 1.0
   115                 if f in fA:
   115                 # Test for multiple features
       
   116                 isMatch = False
       
   117                 if not isinstance( f, ( int, long ) ):
       
   118                     f = f[0]
       
   119                     inter = set(f).intersection(fA)
       
   120                     if len(inter) > 0:
       
   121                         isMatch = True
       
   122                 else:
       
   123                     if f in fA:
       
   124                         isMatch = True
       
   125                  
       
   126                 if isMatch:
       
   127                 #if f in fA:
   116                     if fWeightsA[f] == 0:
   128                     if fWeightsA[f] == 0:
   117                         resultA += w*self.defVal
   129                         resultA += w*self.defVal
   118                     else:
   130                     else:
   119                         assert fWeightsA[f] <= posA
   131                         assert fWeightsA[f] <= posA
   120                         resultA += w*log(float(self.posWeight*fWeightsA[f])/posA)
   132                         resultA += w*log(float(self.posWeight*fWeightsA[f])/posA)