Ejemplo n.º 1
0
 def _r_i(self, i):
     '''retrieves r_i for past iteration'''
     try:
         query = mongodb.make_query(i=i,p=None)
         r = self.db[self.boot_i].find_one(query, fields=['score'])
         self.logger.debug('_r_i: %f' % r)
         return r.get('score',0.0)
     except Exception as e:
         return 0.0
Ejemplo n.º 2
0
 def _r_i(self, i):
     '''retrieves r_i for past iteration'''
     try:
         query = mongodb.make_query(i=i, p=None)
         r = self.db[self.boot_i].find_one(query, fields=['score'])
         self.logger.debug('_r_i: %f' % r)
         return r.get('score', 0.0)
     except Exception as e:
         return 0.0
Ejemplo n.º 3
0
 def dpmi(self, i, p):
     '''retrieves dpmi value for (i,p) from matrix'''
     try:
         q = mongodb.make_query(i,p)
         r = self.db[self._pmi_ip].find_one(q)
         #print >>sys.stderr, 'dpmi:', q, r
         return r['dpmi']
     except Exception as e:
         return 0.0
Ejemplo n.º 4
0
 def I2P(self, I):
     '''retrieve patterns that match promoted instances in I and
     have not been retrieved in past iteration'''
     P = [r['rel']
          for i in I
          for r in mongodb.fast_find(
             self.db, self.matrix, 
             mongodb.make_query(i=i,p=None), fields=['rel']
             )
          if not self.db[self.boot_p].find_one({'rel':r['rel']}) ]
     P_ = tuple(sorted(set(P)))
     self.logger.info('P: %d => %d' % (len(P), len(P_)))
     return P_
Ejemplo n.º 5
0
 def I2P(self, I):
     '''retrieve patterns that match promoted instances in I and
     have not been retrieved in past iteration'''
     P = [
         r['rel'] for i in I
         for r in mongodb.fast_find(self.db,
                                    self.matrix,
                                    mongodb.make_query(i=i, p=None),
                                    fields=['rel'])
         if not self.db[self.boot_p].find_one({'rel': r['rel']})
     ]
     P_ = tuple(sorted(set(P)))
     self.logger.info('P: %d => %d' % (len(P), len(P_)))
     return P_
Ejemplo n.º 6
0
 def F_ip(self, i, p):
     '''calculate the co-occurence frequency (i.e. the sum of scores) of 
     instance*pattern'''        
     try:
         query = {'_id': mongodb.make_query(i,p)}
         #print >>sys.stderr, 'query:', query
         #print >>sys.stderr, self.db[self._F_ip].find(query).explain()
         v = self.db[self._F_ip].find_one(query, fields=['value'])
         #print >>sys.stderr, 'v:', v
         return v['value']['score']
     except Exception as e:
         #print >>sys.stderr, e, i, p
         #raise e
         return 0.0
Ejemplo n.º 7
0
 def F_i(self, i):
     '''calculate the frequency (i.e. the sum of scores) of an argument 
     instance'''
     try:
         query = {'_id': mongodb.make_query(i)}
         #print >>sys.stderr, 'query:', query
         #print >>sys.stderr, self.db[self._F_i].find(query).explain()
         v = self.db[self._F_i].find_one(query, fields=['value'])
         #print >>sys.stderr, 'v:', v
         return v['value']['score']
     except Exception as e:
         #print >>sys.stderr, e, i
         #raise e
         return 0.0
Ejemplo n.º 8
0
 def P2I(self, P):
     '''retrieve instances that match promoted patterns in P and
     have not been retrieved in past iteration'''
     I = [
         tuple([v for k, v in sorted(r.items()) if k.startswith('arg')])
         for p in P
         for r in mongodb.fast_find(self.db,
                                    self.matrix,
                                    mongodb.make_query(i=None, p=p),
                                    fields=self.args)
         if not self.db[self.boot_i].find_one(
             {k: v
              for k, v in sorted(r.items()) if k.startswith('arg')})
     ]
     I_ = tuple(sorted(set(I)))
     self.logger.info('I: %d => %d' % (len(I), len(I_)))
     return I_
Ejemplo n.º 9
0
 def P2I(self, P):
     '''retrieve instances that match promoted patterns in P and
     have not been retrieved in past iteration'''
     I = [tuple( [v
                  for k,v in sorted(r.items())
                  if k.startswith('arg')] )
          for p in P
          for r in mongodb.fast_find(
             self.db, self.matrix, 
             mongodb.make_query(i=None,p=p), fields=self.args
             )
          if not self.db[self.boot_i].find_one(
             {k:v 
              for k,v in sorted(r.items())
              if k.startswith('arg')} ) ]
     I_ = tuple(sorted(set(I)))
     self.logger.info('I: %d => %d' % (len(I), len(I_)))
     return I_