python - 在经过训练的文档集上计算查询字符串的 TF-IDF

标签 python machine-learning scikit-learn

我有一个代码可以计算 150 个文档的 TF-IDF 矩阵。

import re
from sklearn.feature_extraction.text import TfidfVectorizer
from nltk.corpus import stopwords
all_lines = []
all_lines_corrected = []
with open("Extracted Functional Goals - Stemmed.txt") as f:
    for line in f:
        temp = line.split(None,1)
        all_lines.append(temp[1])


f.close()
for a in range(len(all_lines)-1):
    all_lines_corrected.append(all_lines[a][:-2])

all_lines_corrected.append(all_lines[len(all_lines)-1])

stop_words = stopwords.words('english')
tf = TfidfVectorizer(analyzer='word', stop_words = stop_words)
tfidf_matrix =  tf.fit_transform(all_lines_corrected).todense()
query_string = raw_input("Enter string : ")

如何获取查询字符串的 TF - IDF? (我们可以假设它看起来像是 150 个经过训练的文档的条目吗?)

最佳答案

您可以使用 values = tf.transform([query_string]) 获取查询字符串的 tf-idf 值。结果将是 sparse matrix有 1 行和 N 列,其中列是向量化器在训练文档中看到的 N 个唯一单词的 tfidf 值。

简短示例,类似于您的代码:

from sklearn.feature_extraction.text import TfidfVectorizer
all_lines = ["This is an example doc", "Another short example document .", "Just a third example"]

tf = TfidfVectorizer(analyzer='word')
tfidf_matrix =  tf.fit_transform(all_lines)
query_string = "This is a short example string"
print "Query String:"
print tf.transform([query_string])
print "Example doc:"
print tf.transform(["This is a short example doc"])

输出:

Query String:
  (0, 9)        0.546454011634
  (0, 7)        0.546454011634
  (0, 5)        0.546454011634
  (0, 4)        0.32274454218
Example doc:
  (0, 9)        0.479527938029
  (0, 7)        0.479527938029
  (0, 5)        0.479527938029
  (0, 4)        0.283216924987
  (0, 2)        0.479527938029

关于python - 在经过训练的文档集上计算查询字符串的 TF-IDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29619610/

相关文章:

python - 没有可视化数据分析的数据集中的模式识别

python - 随机森林分类器的决策路径

python - 标准化后的 PIL 逊相关性

python - 基于 Opencv 和 Grip 视觉机 [TypeError : src is not a numpy array, 既不是标量]

python - 如何从字典中返回值列表?

python - 如何将 svn 存储库内部版本号添加到 Python 代码中?

machine-learning - 有哪些机器学习基准?

python - 使用imputer后如何将数据放入数据框中?

python - 如何显示每个被向量化的单词的实际数量

python - 如何在 python 中覆盖 XML 属性值而不读取整个文件