使用PHP验证字符串不是胡言乱语的最佳方法是什么?
例如,如果我从用户那里得到一个必须至少250个字符长的字符串输入,我如何判断他们输入的是合法文本(例如真实单词)还是符合最小字符数的胡言乱语(例如asdlfkjfksjlfkjldskfjelkef)?
我曾考虑过将字数作为一个选项,但用户仍然可以将他们的胡言乱语隔开(例如asdlf-kjef-ksjlf-kjl-dskfje-lkef),因此需要进行另一种检查。
有没有什么方法可以检查字符串中至少有一半包含真正的字典单词,或者类似的东西?
这个问题的最佳解决方案是什么?
谢谢。
你不能正确地做到这一点,因为无色绿色的想法睡得很香。
您可以尝试Bloom过滤器
您可以浏览字典,从用户输入中删除所有字典单词,然后检查其余的长度
您可以查看马尔可夫链。简单地说,这个算法可以确定字符序列是否看起来像是属于一起的。它不一定会告诉你这不是胡言乱语,但它应该能说出"ksjhglah等"之类的话。
请参阅马尔可夫文本生成器