scikit-learn机器学习库

基础理论

词袋模型

词袋模型(Bag of Words,简称BoW)。

词袋模型假设我们不考虑文本中词与词之间的上下文关系,仅仅只考虑
所有词的权重。而权重与词在文本中出现的频率有关。

从词的角度进行文本数据挖掘是众多挖掘方式中的一种。

词袋模型的步骤:
    分词(tokenizing):
        
    
    统计修订词特征值(counting):

        统计每个词在文本中出现的次数,我们就可以得到该文本基
        于词的特征,如果将各个文本样本的这些词与对应的词频放
        在一起,就是我们常说的向量化。
        
        向量化完毕后一般也会使用TF-IDF进行特征的权重修正,
        因为,如果语料是有很多篇文本组成,那么一个词在一篇文
        本中出现的次数往往不够科学,要把所有文本一起考虑。
        
    标准化(normalizing):

        将特征进行标准化,以便于挖掘。

常用方法

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的解释性不强。


参考
文本挖掘预处理之向量化与Hash Trick

你可能感兴趣的:(scikit-learn)