112得票6回答
Python: 使用tf-idf-cosine算法来寻找文档相似性。

我正在跟随一个在第一部分和第二部分提供的教程。不幸的是,作者没有时间完成最后一节内容,该部分涉及使用余弦相似度实际找到两个文档之间的距离。我按照文章中的示例结合stackoverflow上的以下链接进行了操作,其中包括上述链接中提到的代码(只是为了使生活更加轻松)。from sklearn.f...

68得票3回答
scikit-learn中的TfidfVectorizer:ValueError:np.nan是无效文档。

我正在使用scikit-learn中的TfidfVectorizer从文本数据中提取一些特征。我有一个具有分数(可以为+1或-1)和评论(文本)的CSV文件。我将这些数据转移到DataFrame中,以便可以运行向量化器。 这是我的代码:import pandas as pd import n...

55得票5回答
Python中N-Gram、tf-idf和余弦相似度的简单实现

我需要比较存储在数据库中的文档,并得出0到1之间的相似度分数。 我需要使用的方法必须非常简单。实现一个vanilla版本的n-grams(其中可以定义使用多少个grams),以及tf-idf和余弦相似性的简单实现。 是否有任何程序可以做到这一点?还是我应该从头开始编写?

51得票3回答
Scikit Learn TfidfVectorizer:如何获取具有最高tf-idf分数的前n个术语

我正在解决关键词提取问题。考虑非常普遍的情况: from sklearn.feature_extraction.text import TfidfVectorizer tfidf = TfidfVectorizer(tokenizer=tokenize, stop_words='engli...

49得票5回答
计算词频权重和逆文档频率时,为什么要使用日志?

IDF的公式是log(N/df t),而不仅仅是N/df t。 其中,N表示集合中的文档总数,df t表示词项t的文档频率。 据说使用对数是因为它“减弱”了IDF的影响。这是什么意思? 此外,为什么我们在这里使用对数频率加权来进行词项频率的加权呢?

47得票5回答
如何使用pandas dataframe获取tfidf?

我想从以下文件计算tf-idf。我正在使用Python和Pandas。import pandas as pd df = pd.DataFrame({'docId': [1,2,3], 'sent': ['This is the first sentence','...

47得票4回答
大数据集的TFIDF

我有一个语料库,其中包含大约800万篇新闻文章,我需要将它们作为稀疏矩阵获取TFIDF表示。我已经能够使用scikit-learn对相对较少数量的样本执行此操作,但我认为它不能用于这么庞大的数据集,因为它首先会将输入矩阵加载到内存中,这是一个昂贵的过程。 有人知道如何提取大型数据集的TFID...

43得票6回答
余弦相似度和tf-idf

我对有关TF-IDF和余弦相似度的评论感到困惑。 我阅读了两者的相关资料,在维基百科中查找余弦相似度时,我发现了这句话:“在信息检索的情况下,两个文档的余弦相似度将在0到1之间变化,因为词频(tf-idf权重)不能为负数。两个词频向量之间的夹角不能大于90°。” 现在我在想……它们不是两件...

43得票3回答
我可以使用scikit-learn中的CountVectorizer来计算未被用于提取标记的文档的频率吗?

我一直在使用scikit-learn中的CountVectorizer类。 我明白,如果按照下面的方式使用它,最终的输出将包括一个数组,其中包含特征或标记的计数。 这些标记是从一组关键词中提取的,即:tags = [ "python, tools", "linux, tools, ...

41得票1回答
如何在scikit-learn中使用tfidf后查看术语-文档矩阵的前n个条目

我是scikit-learn的新手,使用TfidfVectorizer来找到一组文档中术语的tfidf值。我使用了以下代码来获取相同结果。vectorizer = TfidfVectorizer(stop_words=u'english',ngram_range=(1,5),lowercase...