【发布时间】:2015-05-03 08:44:55
【问题描述】:
我想计算两个列表的余弦相似度,如下所示:
A = [u'home (private)', u'bank', u'bank', u'building(condo/apartment)','factory']
B = [u'home (private)', u'school', u'bank', u'shopping mall']
我知道A和B的余弦相似度应该是
3/(sqrt(7)*sqrt(4)).
我尝试将列表改造成像“home bank bank building factory”这样的形式,它看起来像一个句子,但是,一些元素(例如 home(私人))本身有空格,有些元素有括号,所以我发现很难计算单词的出现。
你知道如何计算这个复杂列表中的单词出现,那么对于列表B,单词出现可以表示为
{'home (private):1, 'school':1, 'bank': 1, 'shopping mall':1}?
或者你知道如何计算这两个列表的余弦相似度吗?
非常感谢
【问题讨论】:
-
你如何定义
cosine similarity?这些变量3/(sqrt(7)*sqrt(4)).来自哪里? -
我只知道定义余弦相似度的一种方法,就是点(A,B)/|A|.|B|,就像A = [2, 1, 1, 1, 0 , 0] 和 B = [1,1,0,0,1,1],它们的余弦相似度为 3/(sqrt(7)*sqrt(4))
标签: python string list cosine-similarity