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
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
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
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_
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_
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
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
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_
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_