匹配缩写,例如" ccd" ," bbq"," phd"等来自一组字符串中最相似的字符串

时间:2016-11-04 12:49:56

标签: algorithm nlp pattern-matching dynamic-programming string-matching

我有一个缩写列表,例如" ccd" ," bbq"," phd"等

例如,让我们采取" bbq" ,我们尝试将此缩写映射到字符串列表

烧烤国家 - 实际答案应该是这个

BBQ Smoke and Grill

啤酒和烘烤盖茨

我们如何决定缩写属于哪个字符串。我已经尝试通过KMP和Longest Common Subsequence算法使用字符串匹配,并添加了更多值,以便为之前匹配的字符串添加更多值。

是否有任何可以帮助的数据结构或任何可以处理此类情况的算法?

谢谢!

1 个答案:

答案 0 :(得分:0)

啊,共识问题。我的专业。

查看它的一种方法是作为字典的拼写纠正问题。你想要的是有两个组件,一个由j_random_hacker记录的编辑距离度量和一个列出所有可接受的缩写的字典。您可能希望在字典中包含计数,以便更常见的长表单计数更多。

编辑距离模型将通过针对评估指标进行调整来确定。在http://alias-i.com/lingpipe/demos/tutorial/querySpellChecker/read-me.html

有一个很好的拼写检查教程

您不会使用语言模型来评估修改,但它会为您设置性能指标,编辑距离等...

Breck的

澄清后续问题:

您的指标将受系统性能的驱动。你看看系统正确的是什么,它出了什么问题,然后修改编辑距离以更好地模拟你想要的。

因此,字典的分数可以是短语是在词典中还是在词典之外。我从第一个字符匹配开始,短语中每个单词的得分为-1,对于短语中的跳过的功能单词为-1,对于跳过首字母缩略词中的字母而言为'和',-5。所以" bbq",通过查看字典可以匹配"啤酒和烘焙盖茨"得分为-8(-1 + -1 + -1 + -5)

" Barbeque Nation"将需要更好的编辑。因此,相同单词中的字母得分为-.5,跳过的单词为-6.5(-.5 + - .5 + - .5 + -5),这是一个更好的分数。这些编辑成本必须在您拥有的训练集上进行平衡,如果您想要任何一般性,则应该有数千个示例。