我一直在搜索和测试各种字符串重建算法,即将无空间文本重建为普通文本.
我的结果发布在这里解决方案部分在Ruby工作,正在进行90%的重建2或3个单词的句子,带有完整的字典.但我不能让它比这更好!
我认为我的算法受动态编程的启发很糟糕,并且包含很多补丁工作.
你能提出另一种算法(伪代码),它可以用完整的字典工作吗?
您需要的不仅仅是字典,因为您可以从同一个无空间字符串中拥有多个可能的短语.例如,"themessobig"可能是"混乱如此之大"或"主题如此之大"或"主题如此之大"等.
这些都是有效的可能性,但有些远比其他可能性更大.因此,您想要做的就是选择最可能的语言实际使用方式.为此,您需要一个庞大的文本语料库和一些NLP算法.可能最简单的一个是计算一个单词在另一个单词之后出现的可能性.因此,对于"如此大的混乱",它可能是:
P(the | <START>) * P(mess | the) * P(so | mess) * P(big | so)
Run Code Online (Sandbox Code Playgroud)
对于"如此大的主题",可能性是:
P(themes | <START>) * P(so | themes) * P(big | so)
Run Code Online (Sandbox Code Playgroud)
然后你可以选择最有可能的.您还可以构造三元组而不是元组(例如P(so | the + mess)),这将需要更大的语料库才能生效.
这不是万无一失的,但你可以通过更好的语料库或调整算法来获得更好和更好的效果.