Python模块,评估文本是胡言乱语的可能性



我想检查文本的单词或段落是否可能包含有效的"单词",而不需要对照字典检查单个单词。基本上,用例是测试网站的用户是否输入了一堆胡言乱语作为输入。

就我的目的而言,有一个插件就足够了,它可以检查是否有过多的连续辅音或元音,或者"单词"是否包含合理的音节组合。例如,如果插件在以下情况下以以下方式操作,那就好了:

  • 像"Lekreauglig"或"Prostrebaughi"这样的词可以被视为一个词,因为字母组合看起来足够合理。

  • 像"twumczsarn"或"aeigou"这样的单词会被标记为"可能不是一个单词",因为它有奇怪的连续辅音或元音组合。

  • "mqbadtxjtc"将被标记为"not a word">

我对模块的工作机制不感兴趣(也许它可以是在英语词典上预先训练的基于机器学习的模块),只要模块很小(所以nltk不是一个选项),适合在网络应用程序中使用,并且经过预训练并准备好使用,如果它通过需要训练的方法工作的话。如果它能检查文本的段落,以检测其组成字符串包含胡言乱语的可能性,并给出段落有效性的总体衡量标准,而不仅仅是评估单个单词,那就更好了。有人能推荐一些非常适合这个目的的模块吗?

这应该是一个好的开始:gramishclassier.py

这只是一个简单的解决方案,但您是否想过使用基于字符n-gram的语言检测工具?

如果输入很有可能被检测为英语,那么它应该是好的,并且不包含胡言乱语。如果它被分类,有任何其他语言或英语的可信度很低,你可以假设它是胡言乱语的

当然,只有当您总是期望英文文本作为输入时,此解决方案才有效。

一些开箱即用的、现成的基于n-gram字符的语言检测实现:

langid

langdetect

最新更新