(self, doc, top_word=0.01)
从文档统计集合中，抽取文本特征
            params: 
                doc 文本统计信息集合 Document类
                top_word    抽取文本特征词比例
            return
                文档分类 文档分类词集合
从文档统计集合中，抽取文本特征
            params: 
                doc 文本统计信息集合 Document类
                top_word    抽取文本特征词比例
            return
                文档分类 文档分类词集合
从文档统计集合中，抽取文本特征 params : doc 文本统计信息集合 Document类 top_word 抽取文本特征词比例 return 文档分类 文档分类词集合
def extract_feature(self, doc, top_word=0.01):
        """从文档统计集合中，抽取文本特征
            params: 
                doc 文本统计信息集合 Document类
                top_word    抽取文本特征词比例
            return
                文档分类 文档分类词集合
        """
        doc_word_score_map = defaultdict(
            lambda: defaultdict(float))  # 文档 -> 词 -> 分值
        for word in doc.get_word_set():
            for doc_type in doc.get_type_set():
                if self.filter(doc , doc_type , word):
                    continue
                score = self.text_feature_score(
                    doc.get_type_word_count(doc_type, word),
                    doc.get_doc_count(doc_type),
                    doc.get_word_count(word),
                    doc.doc_count
                )
                doc_word_score_map[doc_type][word] = score
        # 对所有按照分值大小排序
        for doc_type, word_score in doc_word_score_map.items():  
            sorted_doc_word_by_score = sorted(
                word_score.items(),  key=lambda x: x[1], reverse=True)
            get_top = len(sorted_doc_word_by_score) * top_word
            yield doc_type , [word[0]   for word in sorted_doc_word_by_score][0:int(get_top)]
def extract_feature ( self , doc , top_word = 0.01 ) : doc_word_score_map = defaultdict ( lambda : defaultdict ( float ) ) # 文档 -> 词 -> 分值 for word in doc . get_word_set ( ) : for doc_type in doc . get_type_set ( ) : if self . filter ( doc , doc_type , word ) : continue score = self . text_feature_score ( doc . get_type_word_count ( doc_type , word ) , doc . get_doc_count ( doc_type ) , doc . get_word_count ( word ) , doc . doc_count ) doc_word_score_map [ doc_type ] [ word ] = score # 对所有按照分值大小排序 for doc_type , word_score in doc_word_score_map . items ( ) : sorted_doc_word_by_score = sorted ( word_score . items ( ) , key = lambda x : x [ 1 ] , reverse = True ) get_top = len ( sorted_doc_word_by_score ) * top_word yield doc_type , [ word [ 0 ] for word in sorted_doc_word_by_score ] [ 0 : int ( get_top ) ]