我正在尝试编写一个垃圾邮件过滤器,它通过对大量垃圾邮件和非垃圾邮件进行采样来学习,通过字数来判断邮件是否为垃圾邮件。
我需要一个很好的方法来添加数据库中新消息的字数统计,因此总计数累积。例如:
# initial database
spam:
buy: 1
my: 1
shit: 1如果我这样做了:
spam_filter.learn({:message => "Buy this", :type => :spam})数据库将如下所示:
spam:
buy: 2
my: 1
shit: 1
this: 1使用YAML是个好主意吗?当然,重点是我想要查找稍后要分析的消息的字数。
我对数据库的基本理论知之甚少,但我很想了解更多,任何关于使用哪种技术或学习资源的建议都是欢迎的。
发布于 2014-04-03 17:47:24
我是一个数据库专家,但是如果你想存储的只是这个,那么如果需要的话,最好使用散列并将其保存为文本文件。使用数据库时,查找和更新记录会有一些开销,这可能会使文本变得同样快。
有很多python教程涵盖了这类场景--你使用的是什么语言?
如果你真的想使用数据库,我会推荐Postgresql,或者暂时只使用内存中的一些东西。也许你可以详细说明为什么你认为关系型数据库是必需的--你是否有其他数据要存储,工作框架是否已经连接到数据库。在这种情况下,词表和计数的另一个表应该工作得很好,但是对于搜索和更新,仅仅是word_counts (id,word,word_counts )->平面文件的非规范化db将会更快。
https://stackoverflow.com/questions/22080927
复制相似问题