当前位置: 首页 > 面试题库 >

sklearn:TFIDF转换器:如何获取文档中给定单词的tf-idf值

邴奇逸
2023-03-14
问题内容

我使用 sklearn 使用以下 命令 来计算文档的TFIDF(术语频率与文档频率成反比):

from sklearn.feature_extraction.text import CountVectorizer
count_vect = CountVectorizer()
X_train_counts = count_vect.fit_transform(documents)
from sklearn.feature_extraction.text import TfidfTransformer
tf_transformer = TfidfTransformer(use_idf=False).fit(X_train_counts)
X_train_tf = tf_transformer.transform(X_train_counts)

X_train_tfscipy.sparse形状的矩阵(2257, 35788)

如何获得特定文档中单词的TF-IDF?更具体地说,如何在给定文档中获取最大TF-IDF值的单词?


问题答案:

您可以从sklean使用TfidfVectorizer

from sklearn.feature_extraction.text import TfidfVectorizer
import numpy as np
from scipy.sparse.csr import csr_matrix #need this if you want to save tfidf_matrix

tf = TfidfVectorizer(input='filename', analyzer='word', ngram_range=(1,6),
                     min_df = 0, stop_words = 'english', sublinear_tf=True)
tfidf_matrix =  tf.fit_transform(corpus)

上面的tfidf_matix具有语料库中所有文档的TF-IDF值。这是一个很大的稀疏矩阵。现在,

feature_names = tf.get_feature_names()

这将为您提供所有标记,n-gram或单词的列表。对于语料库中的第一个文档,

doc = 0
feature_index = tfidf_matrix[doc,:].nonzero()[1]
tfidf_scores = zip(feature_index, [tfidf_matrix[doc, x] for x in feature_index])

让我们打印出来

for w, s in [(feature_names[i], s) for (i, s) in tfidf_scores]:
  print w, s


 类似资料:
  • 本文向大家介绍python TF-IDF算法实现文本关键词提取,包括了python TF-IDF算法实现文本关键词提取的使用技巧和注意事项,需要的朋友参考一下 TF(Term Frequency)词频,在文章中出现次数最多的词,然而文章中出现次数较多的词并不一定就是关键词,比如常见的对文章本身并没有多大意义的停用词。所以我们需要一个重要性调整系数来衡量一个词是不是常见词。该权重为IDF(Inver

  • 问题内容: 我正在研究关键字提取问题。考虑非常普遍的情况 这给了我 很好 对于其中出现的任何新文档,是否有办法获得tfidf得分最高的前n个术语? 问题答案: 您必须做一点点的歌舞才能将矩阵转换为numpy数组,但这应该可以满足您的需求: 这给了我: 该电话确实是有用的,这里有它的文档。我们必须这样做,因为仅支持从小到大的排序。我们呼吁将维数减少到1d,以便可以使用排序后的索引来索引1d特征数组。

  • 我想知道如何使用Lucene获取单词在文档中的位置我已经生成了索引文件,我想从索引中提取一些信息,如索引的单词,单词在文档中的位置等

  • 我需要你帮助我设计一个真实场景的索引。这可能是一个很长的问题,让我尽量简明扼要地解释一下。 我们正在构建一个基于Elasticsearch的搜索平台,为客户提供站点搜索体验,索引中的文档可以是这样的: 对于每个查询,返回的命中文档默认按相关性排序,但我们的客户还希望为一些关键字提升一些特定文档, 它们为我们提供了以下内容,如增强配置XML: 也就是说,如果用户搜索“keyword1”,前1名命中的

  • TF-IDF TF-IDF(Term Frequency and Inverse Document Frequency),是一种用于信息检索与数据挖掘的常用加权技术。它的主要思想是:如果某个词或短语在一篇文章中出现的频率(term frequency)高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。 计算公式是TF * IDF 而这里的: scikit-lea

  • 问题内容: 我搜索了这个问题,但找不到任何有用的答案。我想获取文档中每个单词的总数,例如,我的索引中有一些推文,并且有一条推文中写着这样的内容:“这里太无聊了,我想去我的家,甜蜜的家”。查询应返回如下响应: 有可能这样做吗? 问题答案: 您正在寻找利用分析仪的。这样做时,您可以定义所需的任何分析器,即阻止分析器将单词转换为根/普通形式。查看文档以获取更多详细信息。 在: 出: