我有2个问题,
我通过查找每个单词出现在文档中的次数,从文档中创建了一个向量。这是制作载体的正确方法吗?或者我还必须做其他事情吗?
使用上述方法,我创建了16个文档的向量,这些文档具有不同的大小。现在我想应用余弦相似性来找出每个文档的相似程度。我遇到的问题是得到两个向量的点积,因为它们的大小不同。我该怎么做?
答案 0 :(得分:3)
听起来很合理,只要这意味着您有(word, count)
对的list / map / dict / hash作为矢量表示。
对于某些向量中没有出现的单词,您应该pretend that you have zero values,而不将这些零存储在任何位置。然后,您可以使用以下算法计算这些向量的点积(伪代码):
algorithm dot_product(a : WordVector, b : WordVector):
dot = 0
for word, x in a do
y = lookup(word, b)
dot += x * y
return dot
lookup
部分可以是任何东西,但为了速度,我会使用哈希表作为矢量表示(例如Python的dict
)。