对于在tf-idf进行关键字提取的过程中,Scikit-learn提供了TFIDF算法的相关函数,本文主要用到了sklearn.feature_extraction.text下的TfidfTransformer和CountVectorizer函数。其中,CountVectorizer函数用来构建语料库的中的词频矩阵,TfidfTransformer函数用来计算词语的tfidf权值。
本部分参考自:http://sklearn.apachecn.org/#/docs/39?id=_52-%e7%89%b9%e5%be%81%e6%8f%90%e5%8f%96
模块 sklearn.feature_extraction
可用于提取符合机器学习算法支持的特征,比如文本和图片
文本分析是机器学习算法的主要应用领域。 然而,原始数据,符号文字序列不能直接传递给算法,因为它们大多数要求具有固定长度的数字矩阵特征向量,而不是具有可变长度的原始文本文档。
为解决这个问题,scikit-learn提供了从文本内容中提取数字特征的最常见方法,即:
- 令牌化(tokenizing) 对每个可能的词令牌分成字符串并赋予整数形的id,例如通过使用空格和标点符号作为令牌分隔符。
- 统计(counting) 每个词令牌在文档中的出现次数。
- 标准化(normalizing) 在大多数的文档 / 样本中,可以减少重要的次令牌的出现次数的权重。。
在该方案中,特征和样本定义如下:
- 每个单独的令牌发生频率(归一化或不归零)被视为一个特征。
- 给定文档中所有的令牌频率向量被看做一个多元sample样本。
因此,文本的集合可被表示为矩阵形式,每行对应一条文本,每列对应每个文本中出现的词令牌(如单个词)。
我们称向量化是将文本文档集合转换为数字集合特征向量的普通方法。 这种特殊思想(令牌化,计数和归一化)被称为 Bag of Words 或 “Bag of n-grams” 模型。