长话短说,我正在尝试将非电子邮件文本(实际上是小书)过滤为坏(垃圾邮件)和好(火腿)。我正准备使用 bogofilter ( http://bogofilter.sourceforge.net/ ),因为它看起来既成熟又有效,但是我一直在用 Python 编写代码;这意味着我可能不得不使用子进程从我的脚本中调用 bogofilter,因为它是用 (C?) 编写的。我刚刚遇到了一个基于 python 的垃圾邮件过滤器,它似乎可以满足我的需要https://github.com/jart/redisbayes(虽然我还没有测试一个与另一个的有效性。我还没有一个很好的数据集)。它使用了一个看起来一切都很好的 redis 密钥后端,但是我不熟悉 redis,并且不确定它与对 bogofilter 的子进程调用(由 BerkleyDB 支持)相比有什么优点/缺点。我知道 redis 实际上是一个服务器进程,因此似乎我必须在脚本启动之前运行一个实例。这不是什么大问题,但最终目标是让它在我的 Uni 的服务器上运行;另一方面,bogofilter 没有需要我注意的正在进行的后台进程。
归结为 1:性能(说实话并不是世界末日,这个数据集是 100k-400k 短文本行;大约 50 MB 的价值),2:实用性不仅来自程序员的立场(我!),但稍后是系统管理员,以及 3:模型可靠性(我计划在这里稍微研究一下 bogofilter 算法,因为我知道它不仅仅是一个贝叶斯模型......我想。我是机器学习领域的新手)。
我只是想对最聪明的行动方案有一些想法,也许可以帮助下一个人做这样有点晦涩的事情。卑微的本科生愿意接受建议,打我!