因此,我研究了类似的问题,并遇到了一个名为PyEnchant的出色软件包。如果您使用内置的拼写检查器,则可以得到单词建议,这将是一个很好且简单的解决方案。 但是,它仅会建议一个单词(据我所知),因此您遇到的情况是:
wtrbtl = water bottle
不管用。
这是一些代码:
import enchant
wordDict = enchant.Dict("en_US")
inputWords = ['wtrbtl','bwlingbl','bsktball']
for word in inputWords:
print wordDict.suggest(word)
输出为:
['rebuttal', 'tribute']
['bowling', 'blinding', 'blinking', 'bumbling', 'alienable', 'Nibelung']
['basketball', 'fastball', 'spitball', 'softball', 'executable', 'basketry']
也许,如果您知道哪种缩写,可以将字符串分成两个单词,例如
'wtrbtl' -> ['wtr', 'btl']
还有一个自然语言处理工具包( NLTK ),它很神奇,例如,您可以通过查看每个建议单词的普遍程度,将其与上面的代码结合使用。
祝好运!
0
我最近正在处理一个使用各种单词的缩写的数据集。例如,
在使用的约定方面似乎没有任何一致性,即有时他们有时使用元音。我正在尝试为上述缩写词及其对应的词构建一个映射对象,而没有完整的语料库或完整的术语列表(即,可能引入未明确知道的缩写词)。为了简单起见,说它仅限于您在健身房找到的东西,但可以是任何东西。
基本上,如果仅查看示例的左侧,那么在将每个缩写与相应的全文标签相关联方面,什么样的模型可以与我们的大脑进行相同的处理。
我的想法一直停留在拿第一个和最后一个字母,然后在字典中找到它们。然后根据上下文分配先验概率。但是,由于有很多没有指示单词结尾的标记的语素,所以我看不出如何将它们分割。
更新:
我还想结合一些字符串度量算法(例如匹配评级算法)来确定一组相关术语,然后计算该集合中每个单词到目标缩写之间的Levenshtein距离。但是,对于不在主词典中的单词的缩写,我还是一无所知。基本上,推断单词的构造-可能会使用朴素贝叶斯模型可能会有所帮助,但我担心由于使用上述算法而导致的精度误差将使任何模型训练过程无效。
感谢您提供任何帮助,因为我真的很喜欢这个。