我对如何将任何文本分析成有效的句子有疑问。
假设给定一个文本iamjhamb并将其解析为i am jhamb

My approach: I solved this using Dynamic programmnig,
             Make an array T[], where T[i] shows string from 0 to i made any valid setence or not
             formula is T[i] = 1 iff T[j] = 1 and substring(j+1, i) is a word in dictionary for all
             j < i.

但这种方法并不完全正确,它给出了所有可能的文字形式从这篇文章,因为这不是这个问题的要求。
所以,请帮助我纠正这种做法,或建议任何其他好的做法。
我还有一个疑问,我在网上搜索了很多关于后缀数组的东西,但是没有得到任何好的教程所以让我理解这个概念,或者建议任何好的联系。提前谢谢。

最佳答案

这个问题在自然语言处理中被称为word segmentation problem。虽然这个问题很少出现在英语中,但在阿拉伯语或汉语中却很常见。你可以回顾一下关于这个问题的文献,并考虑将其中一种方法应用到你的案例中。
至于你的算法,最简单的方法是枚举它产生的可能分段,并使用language model选择一个。我认为一个大的模型可能足够简单的句子。
后缀树可以让您更有效地找到可能的分段,但无助于识别最可能的分段,除非您选择language model based on suffix trees

关于string - 将文本解析为有效的句子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12166250/

10-11 00:53
查看更多