我需要分析Java中的字符串以判断它是否包含乱码。

例如:
“asdasx123ax”-乱码
“dsjkklcq”-乱码
“12das”-乱码
“samarta”-不是乱七八糟的(请注意,它不必是字典中的真实单词,才可以被视为“non gubberish”)
“karatko”-不乱语

基本上,我将分析域名,并且我想要一种算法,该算法将使我有一个特定域名是垃圾邮件/健壮邮件/垃圾邮件域名的可能性。

因此,我更多地关注键盘混搭或类似猫的胡言乱语。

附言我专注于英语。我会对算法不是100%精确的算法感到满意,并且如果它有时会出错,如果成功检测到乱码的可能性(我在上面如何定义)大于0.6,我会认为它是满足我的需求的可行算法。

也许Java中有一些库或算法可以解决此问题?

最佳答案

对于英语,这是我如何计算每个单词的可信度得分:

  • 合理的元音/辅音比率的奖励积分
  • 减去数字
  • 的存在
  • 奖励存在常见字母组合(“ee”,“oo”,“ey”,“th”,“ch”,“sh”,“qu”)的点数
  • 减去常见键盘混搭组合的点(“asdf”,“qwer”,“q”后跟除“u”以外的其他任何东西),依此类推。

  • 然后,我会得到一长串单词并对其进行微调。

    10-06 13:16