如何在PHP中将文本验证为不胡言乱语


How to validate text as not gibberish in PHP?

使用PHP验证字符串不是胡言乱语的最佳方法是什么?

例如,如果我从用户那里得到一个必须至少250个字符长的字符串输入,我如何判断他们输入的是合法文本(例如真实单词)还是符合最小字符数的胡言乱语(例如asdlfkjfksjlfkjldskfjelkef)?

我曾考虑过将字数作为一个选项,但用户仍然可以将他们的胡言乱语隔开(例如asdlf-kjef-ksjlf-kjl-dskfje-lkef),因此需要进行另一种检查。

有没有什么方法可以检查字符串中至少有一半包含真正的字典单词,或者类似的东西?

这个问题的最佳解决方案是什么?

谢谢。

你不能正确地做到这一点,因为无色绿色的想法睡得很香。

您可以尝试Bloom过滤器

您可以浏览字典,从用户输入中删除所有字典单词,然后检查其余的长度

您可以查看马尔可夫链。简单地说,这个算法可以确定字符序列是否看起来像是属于一起的。它不一定会告诉你这不是胡言乱语,但它应该能说出"ksjhglah等"之类的话。

请参阅马尔可夫文本生成器