我必须数组,S&T,包含单词(小写,修剪,没有变音符号)。字数可以不同。(大部分数据是一种专有名词,比较短(<5))
我需要找到一个好的指标(及其实现,甚至可能是研究论文),它允许计算这些数组的相似度
到目前为止我的一些想法:
- 对两个数组中出现的所有单词进行评分
- 对两个数组中出现在同一位置的所有单词进行评分
- 评分最长的公共序列
- 以上 + 考虑到索引的相对位置(在开始时更重要)
- 使用单词而不是字符的某种类型的 levensthein(插入/删除计数)
还有其他想法吗?
我必须数组,S&T,包含单词(小写,修剪,没有变音符号)。字数可以不同。(大部分数据是一种专有名词,比较短(<5))
我需要找到一个好的指标(及其实现,甚至可能是研究论文),它允许计算这些数组的相似度
到目前为止我的一些想法:
还有其他想法吗?
对我来说,它看起来像是使用词袋模型 http://en.wikipedia.org/wiki/Bag-of-words_model对文档进行建模
根据您的应用程序,您可以使用不同的标准来比较两个词袋特征向量,就像您在应用程序中所说的那样。此外,还有基于静态学习不同词/句之间关系的模型,例如主题模型http://en.wikipedia.org/wiki/Topic_model
如果数组相当短,那么您可以在给定一些单词相似度的情况下找到单词的最佳配对。然后在顶部进行一些评分,以确定字符串必须旋转/扭曲多远才能配对最佳配对。这可能是某种乘数,也可能是其他系统。
我们最近在自然语言处理中学习的单词相似度的一个度量是Levenshtein Distance。还有其他更复杂的变体,例如 Smith-Waterman 算法(链接在 wiki 页面上)。这些算法旨在测量正字法相似性,因此它们用于形态分析,以了解相似词是如何基于外观的。Smith-Waterman 算法表示,如果一个词包含在另一个词中,那么无论后缀/前缀有多长,它们都非常相似。
如果字符串是西方名称,Soundex 可能是一个起点。