3

我有一个包含单词word_i和权重的庞大数据集weight[i,j],其中权重是单词之间的“连接强度”。

我想对这些数据进行二值化,但我想知道是否存在任何现有的算法来制作每个单词的二进制代码,使得单词代码之间的汉明距离与这个权重相关。

补充:
我正在研究的问题是我想尝试教神经网络或 SVM 在单词之间建立关联。这就是我决定对数据进行二值化的原因。不要问我为什么不想使用马尔可夫模型或只使用图表,我已经尝试过它们并想将它们与神经网络进行比较。

所以,

  1. 我希望给定单词“a”上的 NN 返回其最接近的关联或任何设置的单词及其概率,

  2. 我试图将“ab”二值化并将“ab”作为输入,并将权重作为首选答案,这效果很差,

  3. 我正在考虑使阈值(权重)再改变 1 位。这个阈值越小,您需要的位数越多,

  4. 我有一个情况:a->b w1; b->a w2; w1>>w2,所以方向很重要。

4

1 回答 1

1

您可以做的是使用具有固定长度拓扑的自组织图 (SOM),例如 N 位字,以便例如如果 N=8,则 SOM 中的每个单元格恰好有 8 个邻居(其中一个位已翻转)。现在,如果您有 K [dictionary] 单词,您可以将每个 [dictionary] 单词编码为 0..1 之间的实数向量,以便第 i 个单词的第 i 个元素设置为 1,其他元素设置为 0。然后您可以计算两个任意向量 a1...aK 和 b1...bK 之间的“距离”通过求和

 i,j : ai * bj * distance(ai, bj)

它为您提供了运行 SOM 算法的距离度量。当 SOM 稳定后,度量中彼此接近的 [dictionary] 单词在地图拓扑中彼此接近,从中您可以轻松地将编码作为 [binary] 单词。

请注意,地图的单元格数必须多于单词数,即 2**N > K。

这个答案当然假设具有自组织地图的背景。见 http://en.wikipedia.org/wiki/Self-organizing_map

于 2010-02-19T20:31:23.923 回答