我正在尝试使用 TF-IDF将文档分类。我已经计算了一些文档的 tf_idf,但是现在当我尝试计算其中两个文档之间的余弦相似度时,我得到一个回溯说:
#len(u)==201, len(v)==246
cosine_distance(u, v)
ValueError: objects are not aligned
#this works though:
cosine_distance(u[:200], v[:200])
>> 0.52230249969265641
切片向量以便 len(u)==len(v) 是正确的方法吗?我认为余弦相似性适用于不同长度的向量。
我正在使用这个功能:
def cosine_distance(u, v):
"""
Returns the cosine of the angle between vectors v and u. This is equal to
u.v / |u||v|.
"""
return numpy.dot(u, v) / (math.sqrt(numpy.dot(u, u)) * math.sqrt(numpy.dot(v, v)))
另外——向量中 tf_idf 值的顺序重要吗?是否应该对它们进行排序——或者它对这个计算不重要?