String 将文本解析为有效句子

String 将文本解析为有效句子,string,algorithm,dynamic-programming,String,Algorithm,Dynamic Programming,我对如何将任何文本解析成有效的句子有疑问 假设一个文本被赋予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] =

我对如何将任何文本解析成有效的句子有疑问

假设一个文本被赋予
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.
我的方法:我用动态编程解决了这个问题,
生成一个数组T[],其中T[i]显示从0到我是否进行了有效设置的字符串
当T[j]=1时,公式为T[i]=1,子串(j+1,i)是字典中的一个单词
j
但这种方法并不完全正确,它给出了本文中所有可能的单词形式,因为这不是这个问题的要求。 所以,请帮我纠正这个方法,或者建议其他好的方法


我还有一个疑问,我在网上搜索了很多关于后缀数组的内容,但并没有得到任何好的教程。所以让我理解这个概念,或者建议任何好的链接。提前感谢。

您是否尝试过为
字符串构建trie?了解他们。除了有多种选择的情况外,它将起作用。例如:
aneat
可以是
一个整洁的
一个eat

这个问题被称为自然语言处理中的问题。虽然这个问题在英语中很少出现,但在阿拉伯语或汉语中却很常见。你可以复习有关这方面的文献,并考虑将其中一种方法应用到你的案例中。

至于您的算法,最简单的方法是枚举它生成的可能分段,并使用。我认为对于简单的句子来说,一个二元模型可能就足够了


后缀树可以让你更有效地找到可能的分词,但无助于识别最可能的分词,除非你选择一个。

你对“有效”句子的定义是什么?例如,作为英语中的一个句子,它应该有“意义”,还是应该是一串英语单词?它应该在字典里,或者你也可以说这个单词有一些意义。你能给我推荐一个关于后缀数组的好链接吗,因为我无法完全理解这个概念