【发布时间】:2011-12-05 20:38:13
【问题描述】:
如果我们有一组M个词,并且预先知道每对词的含义的相似度(有一个M x M的相似度矩阵),我们可以使用哪种算法来制作一个k维位向量对于每个单词,这样每对单词就可以通过比较它们的向量来进行比较(例如得到向量的绝对差)?
我不知道这个特殊的问题是如何被调用的。如果我知道的话,在一堆具有相似描述的算法中找到会更容易,这些算法会做其他事情。
补充观察:
我认为这个算法必须产生一个副作用,在这种情况下是需要的。如果从矩阵中,单词 A 与单词 B 相似,B 与 C 相似,但检测到的 [A, C] 相似度较低,则计算出的结果向量差异也应该产生较高的 [A, C] 相似度。因此,我们将填补矩阵中先前的空白 - 以某种方式平滑与该算法的相似性。但除了这种平滑之外,目标是使结果尽可能接近矩阵中的原始数字。
【问题讨论】:
-
你是说你有一个函数 f(a,b) 可以返回单词 a 和 b 的相似度,但是你想以不同的方式计算相同的 f(a,b)?
-
是的,当然,因为记忆,我不想有一个巨大的 (M x M) 相似矩阵,因为我只能有 M(n 维)向量来表示相同(或近似)的信息。
-
这听起来像是一个特征分解问题。
-
其实你可能想看看主成分分析或者因子分析。
标签: algorithm vector machine-learning data-mining similarity