spamassassin 中如何匹配日语?

spamassassin 中如何匹配日语?

我住在日本。最近有很多来自中国的垃圾邮件,内容都是中文。由于 spamassassin 没有针对中文的规则,所以大多数邮件都以低分通过了。

我想识别电子邮件是否仅以中文书写。由于大多数日文汉字都包含在中文范围内(U+E400 至 U+E9FF),因此识别日语的一种方法是查看平假名(U+3040 至 U+309F)和片假名(U+30A0 至 U+30FF)。如果它包含平假名或片假名,我可以放心地认为它是日语,否则就是中文。

如果我测试单个字符,例如:或者它们匹配正确,但是当我使用范围时它不起作用。这是我们尝试过的:

body    CHINESE       /[\xe4-\xe9]/                 <--- this form seems to work fine
body    JAPANESE      /[\x30-\x31]/                 <--- not sure what is actually matching
body    JAPANESE      /(あ|え)/                      <---- this matches single character just fine
body    JAPANESE      /[あ-ん]/                      <--- doesn't work
body    JAPANESE      /[U+3040-U+30FF]/              <--- doesn't work
body    JAPANESE      /[\xe3\x81\x81-\xe3\x82\x96]/  <--- doesn't work
body    JAPANESE      /[\x{3040}-\x{30FF}]/          <--- doesn't work

我真的不知道自己在做什么了。我知道上面的一些内容毫无意义……

指定这些范围的正确方法是什么?

答案1

你有没有尝试过使用 Mail::SpamAssassin::Plugin::TextCat(语言检测器)?
依我之见,您应该先考虑/评估它。

header LANGUAGE_ZH X-Languages =~ /\b(?:zh)\b/
describe LANGUAGE_ZH Chinese language
score LANGUAGE_ZH 1.0

header LANGUAGE_JA X-Languages =~ /\b(?:ja)\b/
describe LANGUAGE_JA Japanese language
score LANGUAGE_JA -0.1

您可以修改它以匹配“仅检测/猜测一种语言”或几种语言的混合。

警告:确保插件已由您的 SpamAssassin 配置加载。它在Debian Linux 上的文件
中配置。/etc/spamassassin/v310.pre

相关内容