def Build_Content_Graph_From_Rg(self, uid): if 'rg' not in dir(self): self._load_user_relation_pickle(uid) self.cg = self.rg.copy() self.cg.delete_edges(self.cg.es) from ExtractContentEdge import ContentEdgeExtractorBaseRoutine cebr = ContentEdgeExtractorBaseRoutine(self.base_dir, self.expr_dir) edges = [] weights = [] for i, vi in enumerate(self.cg.vs): for j in range(i + 1, len(self.cg.vs)): vj = self.cg.vs[j] h1, h2, h3 = cebr.compute_similarity(vi, vj) sim = self.w1 * h1 + self.w2 * h2 + self.w3 * h3 if sim > self.criterion: edges.append((vi.index, vj.index)) weights.append(sim) self.cg.add_edges(edges) self.cg.es['weight'] = weights FSDao.write_pickle(self.base_dir + self.expr_dir, '%s_content.pickle' % uid, self.cg)
def _write_c_adj_txt(self): import os directory = self.base_dir + self.expr_dir + SQLDao.ce.properties[ 'matlab_dir'] if not os.path.exists(directory): os.makedirs(directory) import gc gc.collect() f = open(directory + 'adj_content_full', 'w') from ExtractContentEdge import ContentEdgeExtractorBaseRoutine cebr = ContentEdgeExtractorBaseRoutine(self.base_dir, self.expr_dir) data = [] for i in range(len(self.g_sub.vs)): l = [] for j in range(len(self.g_sub.vs)): l.append(0.0) data.append(l) for i, vi in enumerate(self.g_sub.vs): for j in range(i + 1, len(self.g_sub.vs)): vj = self.g_sub.vs[j] h1, h2, h3 = cebr.compute_similarity(vi, vj) sim = self.w1 * h1 + self.w2 * h2 + self.w3 * h3 data[i][j] = sim data[j][i] = sim pass for l in data: f.write(','.join([str(j) for j in l])) f.write('\n') f.close()
def Build_Content_Graph_From_Rg(self,uid): if 'rg' not in dir(self): self._load_user_relation_pickle(uid) self.cg=self.rg.copy() self.cg.delete_edges(self.cg.es) from ExtractContentEdge import ContentEdgeExtractorBaseRoutine cebr=ContentEdgeExtractorBaseRoutine(self.base_dir,self.expr_dir) edges=[] weights=[] for i,vi in enumerate(self.cg.vs): for j in range(i+1,len(self.cg.vs)): vj=self.cg.vs[j] h1,h2,h3=cebr.compute_similarity(vi,vj) sim=self.w1*h1+self.w2*h2+self.w3*h3 if sim>self.criterion: edges.append((vi.index,vj.index)) weights.append(sim) self.cg.add_edges(edges) self.cg.es['weight']=weights FSDao.write_pickle(self.base_dir+self.expr_dir,'%s_content.pickle'%uid,self.cg)
def _write_c_adj_txt(self): import os directory=self.base_dir+self.expr_dir+SQLDao.ce.properties['matlab_dir'] if not os.path.exists(directory): os.makedirs(directory) import gc gc.collect() f=open(directory+'adj_content_full','w') from ExtractContentEdge import ContentEdgeExtractorBaseRoutine cebr=ContentEdgeExtractorBaseRoutine(self.base_dir,self.expr_dir) data=[] for i in range(len(self.g_sub.vs)): l=[] for j in range(len(self.g_sub.vs)): l.append(0.0) data.append(l) for i,vi in enumerate(self.g_sub.vs): for j in range(i+1,len(self.g_sub.vs)): vj=self.g_sub.vs[j] h1,h2,h3=cebr.compute_similarity(vi,vj) sim=self.w1*h1+self.w2*h2+self.w3*h3 data[i][j]=sim data[j][i]=sim pass for l in data: f.write(','.join([str(j) for j in l])) f.write('\n') f.close()
def _fulfill_content_graph(self, sim): ''' since the edge of the content graph is not enough we have to add more edge to the graph ''' # delete all edges self.cg.delete_edges(None) # rebuild the edges cebr = ContentEdgeExtractorBaseRoutine(self.base_dir, self.expr_dir) edges = [] weights = [] for i, vi in enumerate(self.cg.vs): for j in range(i + 1, len(self.cg.vs)): vj = self.cg.vs[j] h1, h2, h3 = cebr.compute_similarity(vi, vj) similarity = self.w1 * h1 + self.w2 * h2 + self.w3 * h3 if similarity > sim: edges.append((i, j)) weights.append(similarity) pass self.cg.add_edges(edges) self.cg.es['weight'] = weights
def _fulfill_content_graph(self, sim): """ since the edge of the content graph is not enough we have to add more edge to the graph """ # delete all edges self.cg.delete_edges(None) # rebuild the edges cebr = ContentEdgeExtractorBaseRoutine(self.base_dir, self.expr_dir) edges = [] weights = [] for i, vi in enumerate(self.cg.vs): for j in range(i + 1, len(self.cg.vs)): vj = self.cg.vs[j] h1, h2, h3 = cebr.compute_similarity(vi, vj) similarity = self.w1 * h1 + self.w2 * h2 + self.w3 * h3 if similarity > sim: edges.append((i, j)) weights.append(similarity) pass self.cg.add_edges(edges) self.cg.es["weight"] = weights