2012-04-15 47 views
0

这将是我第二次问计算语言学/模糊字符串匹配,但这次不是关于词干。模糊字符串比较 - 检测简写名称

我的第一个问题是使用模糊字符串匹配对数据库进行重复数据删除,我已经完成了。现在,我必须检测一个字符串是否是另一个字符串的简写。例如:

  • JOHN阿德里安·弗里曼飞扬等于JAF量级或JAFWelter
  • MICROSOFT OFFICE等于MS OFFICE
  • BUILDING等于建筑物

我目前使用的。我的第一个问题是SimMetrics的净版本。那么,SimMetrics中是否有方法可以解决我的问题?如果没有,那么解决这个问题的最好方法是什么?

下面是SimMetrics实现的指标:

  • 汉明距离
  • Levenshtein距离
  • 的Needleman-Wunch距离或卖方算法
  • 史密斯 - 沃特曼距离
  • 五岛距离或史密斯 - 沃特曼-Gotoh距离
  • 块距或L1距离或城市街区距离
  • 蒙赫埃尔肯距离
  • 哈罗距离度量
  • 哈罗温克勒
  • 的SoundEx距离度量
  • 匹配系数
  • 骰子的系数
  • Jaccard相似或的Jaccard系数或Tanimoto系数
  • 重叠系数
  • 欧氏距离或L2距离
  • 余弦相似度
  • 变距离
  • 海林格距离或Bhattacharyya距离
  • 信息半径(詹森 - 香农散度)
  • 调和平均
  • 斜交发散
  • 混淆概率
  • Fellegi和Sunters(SFS)公制
  • TFIDF或TF/IDF
  • 的FastA
  • BLASTP
  • 最大匹配
  • Q-克
  • Ukkonen算法

我没那么熟悉所有的这些算法。我已经在这里使用的是Leveshtein Distance,Needleman-Wunch,Jaro-Winkler,SoundEx和TF/IDF。我认为这些算法不足以解决这个速记名称问题

+0

你可以提供更多的信息,你是如何做到这一点:'我的第一个问题是重复数据库使用模糊字符串匹配,并且我已经完成了那个' – zaitsman 2017-08-18 02:14:39

回答

2

你很可能需要自定义方法。这是我想尝试:

1)JOHN阿德里安·弗里曼飞扬等于JAF韦尔特或JAFWelter

在这里,你可以使用单词的首字母来获得的缩写。如果所有的事件都是最后一个词是完整的,这最有可能给你独特的决议,否则你可能会发现其他的词序列相同的简称(例如,JAFW:Java作为外来词)

2)MICROSOFT OFFICE等于MS OFFICE

在这里,你需要知道字的字典,并认识到微软可以从软放在一起(假设两者在你的字典),并使用第一种方法对这些

3)建筑等于建筑物

在这里,你需要的单词和CUS的字典汤姆缩写(我不认为你会发现一个规则/算法,可以计算所有单词的缩写)

+0

感谢您的回复。其实,我正在制作一个类似于你的答案的算法。但是,我放弃了,因为如果我将阈值设置得更低,并且误报太高,它总会给我带来假阴性。那么我会改进它。 – Jinnean 2012-04-15 12:29:41