2016-12-30 64 views
-1

我一直在想如果这是已经创建,但形象的功能,可以验证一个字符串,并确定它是否是一个字。例如是否存在单词检查算法?

print(validateWord("Hello")) --> true 
print(validateWord("Haloe")) --> true (may not be a real word but follows the standards of placements of vowels and such) 
print(validateWord("sewxdw")) --> false 

我不要求代码,我只是想,如果这个已经存在的知识和wiki后这个算法会,如果它确实是很好的。

+0

取决于“单词”的语言和定义。所以一般来说:不。尽管某些语言可能存在这样的算法或至少是近似值。简而言之:在目前的状态下,这个问题太广泛了,很可能已经存在特定语言的重复。 – Paul

+0

通过询问一个“算法”,你是否在寻找解决问题的东西,而不用在包含有效单词的字典中查找输入内容? –

+0

@RichardSchwartz:困难在于找到一个包含* all *有效单词的字典。 – usr2564301

回答

3

你想要的是一个隐藏的马尔可夫模型,在英语语料库(或任何您感兴趣的语言)中对单词进行训练。然后,您可以评估模型是否喜欢它们。它只会禁止实际不允许的组合,比如“jx”,但它应该给不太可能的候选人一个低分数。

尝试将文本分解为音素符号(th,ae qu,ph等),而不是编写使用原始字母的模型,可能会有更好的运气。