【发布时间】:2017-11-02 13:12:23
【问题描述】:
我想计算两个单词之间的欧几里得距离。首先,每个音素都被向量化了:
g = (0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0)
a = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0)
k = (0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0)
n = (0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0)
N = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
因此,例如“gaN”和“gak”这两个词之间的距离是
dst1 = distance.euclidean(g,g)
dst2 = distance.euclidean(a,a)
dst3 = distance.euclidean(N,k)
dist = dst1+dst2+dst3
print(dist)
我想做的是一个巨大的矩阵,显示超过 800 个单词之间的所有距离。这应该如下表所示(如在 csv 文件中)
gaN gak gan gal ...
gaN 0 1.73 1.41
gak 1.73 0 2.24
gan 1.41 2.24 0
gal
...
谁能帮我解决这个问题?我目前正在使用 Python,但 R 也可以。
【问题讨论】:
-
到目前为止你有什么尝试?你有计算两个词之间的欧几里得距离的函数吗?你知道如何将矩阵写入 CSV 文件吗? ...
-
两个词之间的欧几里得距离到底是多少?您是否在使用某个模块,如果是,是哪个模块?有没有写过代码,在哪里?
-
非常感谢。在 Python 中,我使用了欧几里得距离的内置函数(来自 scipy.spatial 导入距离),但是当我使用 RI 时写为:euc.dist
标签: python matrix euclidean-distance