【发布时间】:2013-05-23 12:00:34
【问题描述】:
我使用字典来表示文章中的字数
例如{"name" : 2 , "your": 10, "me", 20}表示“name”出现两次,“your”出现10次,“me”出现20次。
那么,有没有什么好的方法可以计算这些向量的欧式距离呢? 困难在于这些向量的长度不同,有些向量包含某些单词,有些则不包含。
我知道我确实可以编写一个长函数来做到这一点,只是寻找一种更简单、更聪明的方法。谢谢
编辑: 目的是获取两篇文章之间的相似度并将它们分组
【问题讨论】:
-
这个previous answer of mine对你有帮助吗?它使用
counter.Counter(),这是包数据结构的Python实现。 -
只有当两个向量的长度相同(即映射相同的单词)并且顺序相同时才能这样做。
-
你可以计算交叉点的欧几里得距离。无论如何,这是一个任意的选择。如果您准确地告诉我们您的目标,我们可能会帮助您为您想要做的事情设计一个良好的距离函数。
-
问题是,计算不同维度数据的欧几里得距离有多大意义。向量
x=(x1,x2)是二维的,因此可与向量y=(y1,y2)在欧几里得距离方面进行比较。但是从这个意义上讲,您如何将`x` 与向量z = (z1, z2, z3, z4, z5)进行比较?