字符串数组距离的良好指标

时间:2012-10-19 04:17:56

标签: arrays algorithm text language-agnostic levenshtein-distance

我有阵列,S&amp; T,含有词(小写,修剪,没有变音符号)。单词数可以不同。 (大多数数据是一种专有名称,而非短(<5))

我需要找到一个好的指标(及其实现,甚至是研究论文),它可以计算出那些数组的相似程度

到目前为止我有一些想法:

  • 对两个数组中出现的所有单词进行评分
  • 对两个数组中同一位置出现的所有单词进行评分
  • 得分最长的常见序列
  • 以上所有+考虑到指数的相对位置(开头更重要)
  • 某些类型的levensthein(插入/删除计数)使用单词而不是字符

还有其他想法吗?

3 个答案:

答案 0 :(得分:1)

对我来说,它看起来像使用 词袋 模型来建模文档 http://en.wikipedia.org/wiki/Bag-of-words_model

根据您的应用程序,您可以使用不同的标准来比较两个 词袋 特征向量,就像您在应用程序中所说的那样。此外,有些模型基于学习不同单词/句子之间的静态关系,例如主题模型http://en.wikipedia.org/wiki/Topic_model

答案 1 :(得分:0)

如果数组相当短,那么你可以找到给出一些单词相似度的单词的最佳配对。然后在顶部放置一些得分,以确定弦线必须旋转/扭曲多远才能使最佳配对成对。这可能是某种倍增器或某些其他系统。

我们最近在自然语言处理中学到的一个单词相似度量是Levenshtein Distance。还有其他更复杂的变体,例如Smith-Waterman算法(在wiki页面上链接)。这些算法旨在测量正交相似性,因此它们用于形态分析,以便了解相似的单词是如何基于外观的。 Smith-Waterman算法说如果一个词包含在另一个词中,那么无论后缀/前缀有多长,它们都非常相似。

答案 2 :(得分:0)

如果字符串是西方名字,Soundex可能是一个起点。