コード例 #1
0
    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)
コード例 #2
0
    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()
コード例 #3
0
 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)
コード例 #4
0
 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()
コード例 #5
0
    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
コード例 #6
0
    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