如何检测文本是否可读?

我想知道是否有办法告诉给定的文本是人类可读的。 通过人类可读,我的意思是:它有一些含义,格式就像某人写的文章,或者至少是由人类阅读的软件翻译生成的。

这是背景故事:最近我正在创建一个允许用户将短文本上传到数据库的应用程序。 在部署的早期阶段,我注意到由于编码问题,一些用户总是上传损坏的文本。 这个问题后来得到解决,但让我想知道在将文本提供给用户之前是否有办法获取非人类可读文本。

任何建议将被认真考虑。 范围可能太大而无法包含其他语言,所以目前我们只能将讨论限制为英语。

您可以尝试使用语言识别工具或类似工具。

基本上你必须计算字符或字符组(字符n-gram),并将提交的文本字母的分布与用英语写成的文本集合的字母分布进行比较。 (确保此类文本集合代表预期输入)。

在N-gram方法的连续性中,您可能希望尝试基于字典的方法并检查输入文本中是否存在“停用词”(例如“the”,“a”,“an”,“of”) 。