我有一个缩写列表,例如" ccd" ," bbq"," phd"等
例如,让我们采取" bbq" ,我们尝试将此缩写映射到字符串列表
烧烤国家 - 实际答案应该是这个
BBQ Smoke and Grill
啤酒和烘烤盖茨我们如何决定缩写属于哪个字符串。我已经尝试通过KMP和Longest Common Subsequence算法使用字符串匹配,并添加了更多值,以便为之前匹配的字符串添加更多值。
是否有任何可以帮助的数据结构或任何可以处理此类情况的算法?
谢谢!
答案 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),这是一个更好的分数。这些编辑成本必须在您拥有的训练集上进行平衡,如果您想要任何一般性,则应该有数千个示例。