这是命令 sa-learnp,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
sa-learn - 训练 SpamAssassin 的贝叶斯分类器
概要
学习 [选项] [文件]...
学习 [选项] --dump [ 所有 | 数据| 魔法 ]
选项:
--ham 将消息学习为 ham(非垃圾邮件)
--spam 将邮件作为垃圾邮件学习
--forget 忘记留言
--use-ignores 使用 bayes_ignore_from 和 bayes_ignore_to
--sync 如果需要同步数据库和日志
--force-expire 强制数据库同步和到期运行
--dbpath 允许命令行覆盖(以 bayes_path 形式)
从哪里读取贝叶斯数据库
--dump [all|data|magic] 显示贝叶斯数据库的内容
使用可选参数来显示内容
--正则表达式仅用于转储,指定要使用哪些令牌
基于正则表达式的转储。
-f file, --folders=file 从文件中读取文件/目录列表
--dir 忽略; 历史兼容性
--文件忽略; 历史兼容性
--mbox 输入源采用 mbox 格式
--mbx 输入源采用 mbx 格式
--max-size跳过大于 b 字节的消息;
默认为 256 KB,0 表示没有限制
--showdots 使用点显示进度
--progress 使用进度条显示进度
--no-sync 跳过同步数据库和日志
学习后
-L, --local 本地操作,无网络访问
--import 从旧版本/非 DB_File 迁移数据
基于数据库
--clear 清除现有数据库
--backup 备份,到标准输出,现有数据库
- 恢复从文件名恢复数据库
-u 用户名, --username=用户名
覆盖从运行时获取的用户名
环境,与 SQL 一起使用
-C 路径,--configpath=path,--config-file=path
标准配置目录的路径
-p 首选项,--prefspath=文件,--prefs-file=文件
设置用户首选项文件
--siteconfigpath=path 站点配置路径
(默认:/etc/spamassassin)
--cf='config line' 额外的配置行
-D, --debug [area=n,...] 打印调试信息
-V, --version 打印版本
-h, --help 打印使用信息
商品描述
鉴于您收到的邮件被归类为垃圾邮件或非垃圾邮件(非垃圾邮件)的典型选择,这
工具会将每封邮件提供给 SpamAssassin,使其能够“了解”可能出现的迹象
指垃圾邮件,哪些可能指火腿。
只需为您的每个邮件文件夹运行一次此命令,它就会“学习”
邮件在其中。
注意 csh 风格 通配 支持邮件文件夹名称; 换句话说,
将文件夹名称列为“*”将扫描每个匹配的文件夹。 看
“Mail::SpamAssassin::ArchiveIterator”了解更多详情。
SpamAssassin 会记住它已经学习过的邮件信息,并且不会重新学习
再次发送这些消息,除非您使用 - 忘记 选项。 作为垃圾邮件获悉的邮件将
即时删除 SpamAssassin 标记。
如果您犯了一个错误并在它是垃圾邮件时将其扫描为火腿,反之亦然,只需重新运行
此命令与正确的分类,错误将被纠正。
SpamAssassin 会自动“忘记”之前的指示。
希望通过网络远程执行培训的“垃圾邮件”用户应该调查
“spamc -L”开关。
配置
- 火腿
学习输入消息作为火腿。 如果您之前已了解任何消息
作为垃圾邮件,SpamAssassin 会先忘记它们,然后将它们作为火腿重新学习。
或者,如果您以前将它们作为火腿学习过,则这次将跳过它们
大约。 如果消息已经通过 SpamAssassin 过滤,则学习者
将忽略 SpamAssassin 可能进行的任何修改。
- 垃圾邮件
了解输入消息为垃圾邮件。 如果你以前学过任何
作为火腿的邮件,SpamAssassin 会先忘记它们,然后将它们作为垃圾邮件重新学习。
或者,如果您之前将它们作为垃圾邮件学习,这次它会跳过它们
大约。 如果消息已经通过 SpamAssassin 过滤,则学习者
将忽略 SpamAssassin 可能进行的任何修改。
--文件夹=文件名, -f 文件名
sa-learn 将从指定文件中读取文件夹列表,每行一个文件夹
在文件中。 如果文件夹以“ham:type:”或“spam:type:”为前缀,则 sa-learn
将适当地了解该文件夹,否则文件夹将被假定为
指定的类型 - 火腿 or - 垃圾邮件.
上面的“type”是可选的,但与ArchiveIterator的标准相同:mbox,
mbx、dir、file 或detect(如果未指定,则为默认值)。
--mbox
sa-learn 将读取包含要学习的电子邮件的文件,并将
以 mbox 格式处理它们(每个文件一封或多封电子邮件)。
--mbx
sa-learn 将读取包含要学习的电子邮件的文件,并将
以 mbx 格式处理它们(每个文件一封或多封电子邮件)。
--使用忽略
如果发件人地址与配置文件项匹配,则不了解该消息
"bayes_ignore_from" 或 to 地址匹配 "bayes_ignore_to"。 选项可能是
在从大量邮件中学习时使用,其中 hammy 垃圾邮件或
垃圾邮件尚未删除。
- 同步
同步日志和数据库。 成功同步数据库后
日志中的条目,日志文件被删除。
--强制过期
强制到期尝试,无论是否有必要。 笔记:
这并不意味着任何令牌实际上都会过期。 请参阅到期部分
联络一位教师
注意:“--force-expire”也会使日志数据同步到贝叶斯
数据库。
- 忘记
忘记先前学到的给定消息。
--数据库路径
允许命令行覆盖 贝叶斯路径 配置选项。
- 倾倒 选项
显示贝叶斯数据库的内容。 没有选项或有 所有 选项,
将显示所有魔法令牌和数据令牌。 魔法 只会显示魔法
令牌,以及 data 只会显示数据令牌。
也可以使用 --正则表达式 RE 选项来指定基于哪些标记显示
正则表达式。
- 清除
通过删除数据库的所有痕迹来清除现有的贝叶斯数据库。
警告:这是破坏性的,应谨慎使用。
--备份
以机器/人类可读的格式执行贝叶斯数据库的转储。
转储将包括令牌和看到的数据。 它适用于输入回
--restore 命令。
- 恢复=文件名
执行由定义的贝叶斯数据库的恢复 文件名.
警告:这是一个破坏性操作,之前的贝叶斯数据将被清除。
-h, - 帮帮我
打印帮助信息并退出。
-u 用户名, - 用户名=用户名
如果指定此用户名将覆盖从运行时获取的用户名
环境。 您可以使用此选项在虚拟用户配置中指定用户
当使用 SQL 作为贝叶斯后端时。
注意:此选项不会更改为给定的 用户名,它只会尝试采取行动
代表该用户。 因此,您需要拥有适当的权限才能
能够更改拥有的文件 用户名. 在 SQL 的情况下,这通常不是
问题。
-C 径, --配置路径=径, --配置文件=径
使用指定的路径来定位分布式配置文件。 忽略
默认目录(通常是“/usr/share/spamassassin”或类似的)。
--站点配置路径=径
使用指定的路径来定位特定于站点的配置文件。 忽略
默认目录(通常是“/etc/spamassassin”或类似的)。
--cf='配置 线'
直接从命令行添加额外的配置行,在
读取配置文件。 多种的 --cf 可以使用参数,每个参数都是
被视为单独的配置行。
-p 首选项, --首选项路径=首选项, --prefs-文件=首选项
读取用户评分偏好 首选项 (通常是“$HOME/.spamassassin/user_prefs”)。
- 进展
打印显示当前进度的进度条(到 STDERR)。 在没有的情况下
发现有效终端时,此选项的行为与 --showdots 选项非常相似。
-D [区域,...], -调试 [区域,...]
产生调试输出。 如果没有列出任何区域,则所有调试信息都是
打印。 也可以为每个区域单独启用诊断输出; 区 是
要检测的代码区域。 例如,要在贝叶斯上产生诊断输出,
学习和dns,使用:
spamassassin -D 贝叶斯,学习,DNS
有关哪些区域(也称为频道)可用的更多信息,请
请参阅以下位置的文档:
C<http://wiki.apache.org/spamassassin/DebugChannels>
适合正常登录的更高优先级的信息性消息
情况可用于“信息”区域。
--无同步
跳过通常在更改数据库后发生的缓慢同步步骤
条目。 如果您打算批量从多个文件夹中学习,或者要学习很多
一条一条的单个消息,使用此开关并运行“sa-learn”会更快
--sync” 扫描完所有文件夹后。
说明:状态 --无同步 覆盖 贝叶斯学习日志
配置选项。 如果不指定,sa-learn 将直接学习到数据库。
如果指定,sa-learn 将学习到日志文件。
请注意: - 同步 和 --无同步 可以在同一个命令行指定,稍微有点
令人困惑。 在这种情况下, --无同步 选项被忽略,因为没有学习
操作。
-L, - 当地的
在了解有关邮件消息的详细信息时,不要执行任何网络访问。
这将加快学习过程,但可能会导致准确性略低。
请注意,这当前被忽略,因为当前版本的 SpamAssassin 不会
在学习的同时进行网络访问; 但未来的版本可能。
- 进口
如果您之前使用过没有“DB_File”模块的 SpamAssassin 的贝叶斯学习器
安装后,它将创建其他格式的文件,例如“GDBM_File”,
“NDBM_File”或“SDBM_File”。 此开关允许您将旧数据迁移到
“DB_File”格式。 它将覆盖当前在“DB_File”中的任何数据。
也可以与 --数据库路径 径 指定贝叶斯位置的选项
要使用的文件。
迁移
现在有多个后端存储模块可用于存储用户的贝叶斯数据。
因此,您可能希望从一个后端迁移到另一个后端。 这是一个简单的过程
用于从一个后端迁移到另一个后端。
请注意,如果您有单独的用户数据库,则必须执行类似的操作
每个人的程序。
sa-学习--同步
这将同步任何未完成的日记帐分录
sa-learn --backup > 备份.txt
这会将您所有的贝叶斯数据保存到纯文本文件中。
sa-学习--清除
这是可选的,但可以很好地清除旧数据库。
重复!
此时,如果您有多个数据库,则应执行上述过程
对于他们每个人。 (即每个用户的数据库都需要在继续之前进行备份。)
切换后端
备份所有数据库后,您可以更新新数据库的配置
数据库后端。 这将至少涉及 bayes_store_module 配置选项和
可能涉及一些额外的配置选项,具体取决于
模块。 (例如,您可能需要配置 SQL 数据库。)
sa-learn --restore 备份.txt
同样,您需要为每个数据库执行此操作。
如果您要迁移到 SQL,则可以使用 -u sa-learn 中的选项
填充每个用户的数据库。 否则,您必须以 who database 用户身份运行 sa-learn
你正在恢复。
引言 TO 贝叶斯 筛选
(感谢迈克尔贝尔为本节!)
有关其工作原理的更详细说明,请访问 http://www.paulgraham.com/ 并看到
“垃圾邮件计划”。 它具有合理的可读性,即使统计数据让我突围
麻疹。
简短的半不准确版本:经过训练,垃圾邮件启发式引擎可以
大多数“垃圾邮件”和“hammy”词并应用概率分析。 此外,一旦给出
作为分析的基础,引擎可以通过应用两者来继续迭代学习
非贝叶斯规则集和贝叶斯规则集一起创建不断发展的“智能”。
SpamAssassin 2.50 及更高版本支持贝叶斯垃圾邮件分析,以 BAYES 的形式
规则。 这是一个新功能,非常强大,在收到足够多的消息之前会被禁用
被学习了。
贝叶斯垃圾邮件分析的优点:
可以大大减少误报和漏报。
它从您的邮件中学习,因此它是为您独特的电子邮件流量身定制的。
一旦开始学习,它就可以继续向 SpamAssassin 学习并随着时间的推移不断改进。
缺点:
在结果对火腿/垃圾邮件有用之前需要相当数量的消息
决心。
很难解释为什么邮件被标记为或未标记为垃圾邮件。
即:一个简单的规则,匹配,比如说,“VIAGRA”很容易理解。 如果它
产生假阳性或假阴性,很容易理解为什么。
用贝叶斯分析,这都是概率——“因为过去说它很可能
因为这属于您系统中过去垃圾邮件常见的概率分布”。
告诉你的用户! 当客户问“我能做些什么来
改变这个”。(顺便说一下,在这种情况下,答案是“使用白名单”。)
它将占用磁盘空间和内存。
它维护的数据库需要相当多的资源来存储和使用。
抵达 已开始
还是有兴趣? 好的,这是使这个工作的指导方针。
首先是高级概述:
构建一个包含火腿和垃圾邮件的重要样本。
我建议每个数千个,放置在垃圾邮件和 HAM 目录或邮箱中。
是的,你必须手动排序 - 否则结果不会比
SpamAssassin 本身。 验证每条消息的垃圾邮件/垃圾邮件。 你是
敦促避免使用公开可用的语料库(样本)——这必须取自
您的邮件服务器,如果要在统计上有用的话。 否则,结果可能是
相当倾斜。
使用此工具向 SpamAssassin 教授这些样本,如下所示:
sa-learn --spam /path/to/spam/文件夹
sa-learn --ham /path/to/ham/文件夹
...
让 SpamAssassin 继续学习。 当它发现火腿和垃圾邮件时,它会添加
“有趣的令牌”到数据库。
如果您需要 SpamAssassin 忘记特定消息,请使用 - 忘记 选项。
这可以应用于已经通过的火腿或垃圾邮件 学习 流程。
这有点像锤子,真的,降低特定令牌的权重
消息(仅当该消息之前已处理过)。
从单个消息中学习使用如下命令:
sa-learn --ham --no-sync 邮件消息
这对于绑定到邮件用户代理中的密钥非常方便。 它非常快,就像所有
耗时的东西被推迟,直到您使用“--sync”选项运行。
默认情况下启用自动学习
如果您没有保存要学习的邮件语料库,您可以让 SpamAssassin
自动了解您收到的邮件。 如果你从头开始自学,
您收到的邮件数量将决定 BAYES_* 规则生效的时间
活性。
有效 培训
学习过滤器需要培训才能有效。 如果你不训练他们,他们就不会
工作。 此外,您需要定期用新消息训练他们,让他们及时了解-
日期,否则他们的数据将变得陈旧并影响准确性。
你需要训练垃圾邮件 和 火腿邮件。 单独一种类型的邮件不会有任何
效果。
请注意,如果您的邮件文件夹包含转发垃圾邮件、垃圾邮件讨论等内容,
捕捉规则等,这会引起麻烦。 您应该避免扫描这些邮件
如果可能的话。 (一个简单的方法是将它们移到一边,放入一个文件夹中
扫描。)
如果您正在学习的消息已经通过 SpamAssassin 过滤,则
学习者将对此进行补偿。 实际上,它了解每条消息的样子
如果您事先在它上面运行了“spamassassin -d”。
另一件要注意的事情是,通常你的目标应该是训练至少 1000
如果可能,垃圾邮件和 1000 条火腿消息。 更多更好,但什么都结束
在我们的测试中,大约 5000 条消息并没有显着提高准确性。
小心你从同一个来源训练——例如,如果你在旧的垃圾邮件上训练,
但是新的火腿邮件,那么分类器会认为带有旧日期戳的邮件是
可能是垃圾邮件。
还值得注意的是,用很少量的火腿进行训练,会产生
残酷的结果。 你的目标应该是至少以相同的量(或更多,如果
可能!)的火腿数据而不是垃圾邮件。
在持续的基础上,最好继续训练过滤器以确保它具有新鲜
工作的数据。 有多种方法可以做到这一点:
1. 监督学习
这意味着保留所有或大部分邮件的副本,分为垃圾邮件和火腿
桩,并定期使用这些重新训练。 它产生了最好的结果,但
需要您(用户)做更多工作。
(顺便说一下,一个简单的方法是为“已删除”的邮件创建一个新文件夹,
而不是从其他文件夹中删除它们,只需将它们移到那里即可。
然后将所有垃圾邮件保存在一个单独的文件夹中,永远不要删除它。 只要你还记得
将错误分类的邮件移动到正确的文件夹集中,很容易跟上
迄今为止。)
2. 贝叶斯分类的无监督学习
另一种训练方法是将贝叶斯分类器的结果链接回
训练,所以它加强了自己的决定。 这只有在您重新训练时才安全
它基于您发现的任何错误。
SpamAssassin 不支持这种方法,因为实验结果强烈
表明它不能很好地工作,并且因为贝叶斯只是结果的一部分
呈现给用户的分数(而贝叶斯可能做出了错误的决定)
邮件,它可能已被另一个系统覆盖)。
3. 从 SpamAssassin 规则中无监督学习
在 SpamAssassin 中也称为“自动学习”。 根据统计分析
SpamAssassin 成功率,我们可以自动训练贝叶斯数据库
对我们的训练数据是准确的有一定程度的信心。
如果可能的话,还应该补充一些有监督的培训。
这是默认设置,但可以通过设置 SpamAssassin 配置关闭
参数“bayes_auto_learn”为0。
4. 基于错误的培训
这意味着训练少量的邮件,然后只训练那些邮件
SpamAssassin 分类错误。 这有效,但需要更长的时间才能正确
而不是完整的培训课程。
使用 onworks.net 服务在线使用 sa-learnp