如果我们有两个字符串列表:
A = "Hello how are you? The weather is fine. I'd like to go for a walk.".split()
B = "bank, weather, sun, moon, fun, hi".split(",")
列表 A
中的单词构成了我的词向量基础。如何计算列表 B 中每个单词的余弦相似度得分?
我已经完成的工作: 我可以使用以下函数计算两个完整列表之间的余弦相似度:
def counter_cosine_similarity(c1, c2):
terms = set(c1).union(c2)
dotprod = sum(c1.get(k, 0) * c2.get(k, 0) for k in terms)
magA = math.sqrt(sum(c1.get(k, 0)**2 for k in terms))
magB = math.sqrt(sum(c2.get(k, 0)**2 for k in terms))
return dotprod / (magA * magB)
但是我应该如何整合我的向量基,并且如何计算B中术语之间的相似性?
counter_cosine_similarity
参数中所看到的那样,相似性涉及两个向量,因此我认为您想要在两个单词之间进行比较。那么,您是否希望对于从A
和B
中各选一个单词的每一对单词进行相似度比较? - Rory Daulton