【发布时间】:2017-03-14 22:51:40
【问题描述】:
我正在尝试匹配两个不同数据框 df1 和 df2 的公司名称。我正在尝试在两列上实现 tf-idf 和余弦相似度——df1 中的 company1 和 df2 中的 company2。
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
v = TfidfVectorizer()
tfidf_matrix1 = v.fit_transform(df1['company1'])
tfidf_matrix2 = v.fit_transform(df2['company2'])
cosine_similarity(tfidf_matrix2, tfidf_matrix1)
这给了我一个错误:
ValueError: Incompatible dimension for X and Y matrices: X.shape[1]
== 31089 while Y.shape[1] == 46844
这可能是因为:
tfidf_matrix1.shape
给我 (78684, 46844) 作为输出。还有-
tiff_matrix2.shape
给我 (39462, 31089) 作为输出。如何纠正此错误?
【问题讨论】:
-
这真的是一个错误吗?您是否期望矩阵具有相同的形状?如果您不希望它们具有相同的形状,那么您希望如何“解决”问题?
-
我是 tf-idf 的新手。我想找到每个公司名称之间的余弦相似度,以便找到匹配的公司。我的主要目标是找到匹配的公司。由于此错误,我不知道如何继续。
标签: python pandas tf-idf cosine-similarity sklearn-pandas