TF-IDF

机器学习:生动理解TF-IDF算法

使用方法:

读取分过词的文本到一个可迭代的容器中


加载模块并使用


TF-IDF_第1张图片

text_features就是得到的TF-IDF矩阵,是一个稀疏矩阵


查看词典中的词

TF-IDF_第2张图片

字典和TF-IDF矩阵的对应关系

TF-IDF_第3张图片

字典vectorizer.vocabulary_中每一个词对应 TF-IDF矩阵中的一列,text中的每个句子对应text_features的一行

因为text_features是一个稀疏矩阵,不能像二维数组那样直接通过索引访问元素(可以用text_featurs.toarray()转换为数组, 不过会占用很多内存)


TF-IDF_第4张图片

也可以使用 text_features.getcol(index) 或 text_features.getrow(index)获取某列或某行的值

text,text_features, vectorizer.vocabulary关系分析



TF-IDF_第5张图片

从这张图片可以看出,对于每个句子,会在text_features中有一行。每个词会占据text_features的一列。text_features的第i行表示,text中第i个句子中的每个词的TF-IDF值

TF-IDF_第6张图片

通过对比上图发现,同一个词在不同句子中的TF-IDF值是不同的,是L2归一化的缘故,详见4.2. 特征提取 — scikit-learn 0.19.0 中文文档 - ApacheCN

取某一行中某个元素的值

不进行归一化时,同一个词在不同句子中的 TF-IDF值是相同的


TF-IDF_第7张图片

你可能感兴趣的:(TF-IDF)