基础理论

常用方法

fit vs transform vs fit_transform vs

fit方法是用于从训练集中学习模型参数,其中包括归一化和均值,标准偏差的处理。

transform方法用于将模型用于位置数据

fit_transform是fit和transform的合集,高效的将模型训练和转
化合并到一起。

CountVectorizer

文本型文档集合转换成计数矩阵。用于分词计数作为特征的场景。

底层用scipy.sparse.csr_matrix库实现,会产生一个计数的稀疏
表示。

如果不提前准备词典,并且不提供一个分析器做特征选择,
那么特征数量和文档集合中词汇量数量相等。

输入可迭代的语料,得到语料中所有单词,统计出每个单词在每条迭代
元语料元素的个数。

所有语料个数为sc (变量i),单词记为wc (变量j)。得到的单词个
数矩阵 sc * wc。
(i,j)表示第i个单词在语料j中出现的次数。

方法


self.fit_transform(corpus)
    返回值:每个单词在每条语料中出现次数。
    
self.get_feature_names
    返回值:按照字典排序的单词列表

HashingVectorizer


对数据进行降维的一种向量化方式。解决大规模分词情况下计算效率低
的问题。

大规模的文本处理中,由于特征的维度对应分词词汇表的大小,所以维
度可能非常恐怖,此时需要进行降维,不能直接用CountVectorizer     的向量化方法。

这种方式又叫Hash Trick。

signed hash trick是一种升级的Hash Trick用来解决某些哈希
位置的值过大。

由于不知道每一列的意义,所以Hash Trick的解释性不强。

DictVectorizer


把list<map> 转换为稀疏矩阵表示。解决了原始数据元素是entry的
稀疏矩阵表示问题。

对于map entry value是string类型的部分用到了"one-hot 独热
编码"。

输出矩阵行列含义:
    
    把每一个map作为行,总共有list.size行,所有map中的每一
    个entry作为列的含义,比如 "city=beijing",另外对于
    nubmer类型的entry,比如"temperature=23"列的含义
    为"temperature",23作为矩阵元素的值。
    
特征值:
    特征值名称是每一个"value是string的"entry,以及每一
    个"value是number的"key。

矩阵值如何生成:
    
    如果map的entry中value是string类型,则用0,1表
    示。如果是数字,则表示原来的数字。
    

注意:
    对于list中的每个map而言,entry的key是唯一不重复的。
    而对于list中的所有map而言,map之间的key可能是重复的。

    one-hot编码体现在: 
    
        map之间key=value的key一致,但
        value不一致的时候,如果只有一个map有该value,则把
        该特征值key=value列下有该key=value的矩阵值编码为
        1,表示该map有该key=value,把同列上其余map中的该
        key=value编码为0,表示其余map没有该key=value。
    

TfidfVectorizer

输出:

参数:
   max_features:  构建词汇时,取跨语料词条频率排序最靠前的词汇个数。
   max_df: 删除过于频繁的术语,也称为“语料库特定的停用词。
            max_df = 0.50表示“忽略超过50%的文档”中出现的字词。
            max_df = 25表示“忽略出现在超过25个文档”中的术语
            
    

LatentDirichletAllocation

该模型用于对N篇语料进行主题分类的场景。

输入:

N篇文章
主题个数K,(调用者凭经验自己设定所有语料被划分的主题个数,
          往往需要根据结果调试)
所有语料词语个数 W:是一个中间结果。          

输出:
    
语料主题概率矩阵,维度是(N,K),值表示该语料属于该主题的概率。

主题词语分布矩阵,维度 (K, W),值表示分布值



参考
文本挖掘预处理之向量化与Hash Trick
DictVectorizer输出稀疏矩阵的表示
用scikit-learn学习LDA主题模型(中间结果-矩阵表示)
如何用Python从海量文本抽取主题?(LDA结果图形展示)

肖圣贤
31 声望5 粉丝

学习让我充实


引用和评论

0 条评论