这将是我第二次询问计算语言学/模糊字符串匹配,但这一次,它不是关于词干的。
我的第一个问题是使用模糊字符串匹配重复数据库,我已经完成了。现在,我必须检测字符串是否是另一个字符串的简写。例如:
我目前正在使用.Net版本的SimMetrics来解决我的第一个问题。那么,SimMetrics中有一种方法可以解决我的问题吗?如果没有,那么解决这个问题的最佳方法是什么?
以下是SimMetrics中实施的指标:
我对所有这些算法并不熟悉。我在这里使用的是Leveshtein Distance,Needleman-Wunch,Jaro-Winkler,SoundEx和TF / IDF。我认为这些算法不足以解决这个速记名称问题
答案 0 :(得分:2)
您很可能需要自定义方法。这是我尝试的:
1)JOHN ADRIAN FREEMAN WELTER等同于JAF Welter或JAFWelter
在这里,您可以使用单词的第一个字母来获取缩写。如果所有出现都是最后一个单词已满,这很可能会给你独特的分辨率,否则你很可能会发现其他单词序列具有相同的缩写(例如JAFW:Java作为外来单词)
2)MICROSOFT OFFICE等于MS OFFICE
在这里,您需要一个已知单词的字典,并认识到 Microsoft 可以从 Micro 和 Soft 组合在一起(假设两者都在你的字典)并使用第一种方法
3)BUILDING等于BLDG
在这里,您需要一个单词和自定义缩写词典(我认为您不会找到一个可以计算所有单词缩写的规则/算法)