Python:tf-idf-cosine:查找文档相似性

我正在关注第1 部分和第2 部分中可用的教程。不幸的是,作者没有时间进行最后一节的工作,该部分涉及使用余弦相似度来实际查找两个文档之间的距离。我在stackoverflow的以下链接的帮助下关注了本文中的示例,其中包括上述链接中提到的代码(只是为了使生活更轻松)


from sklearn.feature_extraction.text import CountVectorizer

from sklearn.feature_extraction.text import TfidfTransformer

from nltk.corpus import stopwords

import numpy as np

import numpy.linalg as LA


train_set = ["The sky is blue.", "The sun is bright."]  # Documents

test_set = ["The sun in the sky is bright."]  # Query

stopWords = stopwords.words('english')


vectorizer = CountVectorizer(stop_words = stopWords)

#print vectorizer

transformer = TfidfTransformer()

#print transformer


trainVectorizerArray = vectorizer.fit_transform(train_set).toarray()

testVectorizerArray = vectorizer.transform(test_set).toarray()

print 'Fit Vectorizer to train set', trainVectorizerArray

print 'Transform Vectorizer to test set', testVectorizerArray


transformer.fit(trainVectorizerArray)

print

print transformer.transform(trainVectorizerArray).toarray()


transformer.fit(testVectorizerArray)

print 

tfidf = transformer.transform(testVectorizerArray)

print tfidf.todense()

由于上述代码,我有以下矩阵


Fit Vectorizer to train set [[1 0 1 0]

 [0 1 0 1]]

Transform Vectorizer to test set [[0 1 1 1]]


[[ 0.70710678  0.          0.70710678  0.        ]

 [ 0.          0.70710678  0.          0.70710678]]


[[ 0.          0.57735027  0.57735027  0.57735027]]

我不确定如何使用此输出来计算余弦相似度,我知道如何针对长度相似的两个向量实现余弦相似度,但是在这里我不确定如何识别这两个向量。


慕尼黑的夜晚无繁华
浏览 717回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python