在数据库中存储字数的好方法?

时间:2014-02-27 21:33:22

标签: database word-count spam-prevention

我正在尝试编写一个垃圾邮件过滤器,通过对大量垃圾邮件和非垃圾邮件进行抽样来学习,如果邮件是垃圾邮件则通过字数来判断。

我需要一种在数据库中添加新消息的字数的好方法,因此总计数会累积。例如:

# 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是个好主意吗?当然,重点是我想查看我想要稍后分析的消息的字数。

我对数据库的细节理论知之甚少,但我很乐意了解更多信息,建议使用哪种技术或欢迎学习资源。

1 个答案:

答案 0 :(得分:0)

我是一个数据库人员,但是如果你要存储的只是这个,那么你可能最好只使用一个哈希并将其保存为文本文件(如果需要)。使用数据库,您将有一些开销,并更新记录,这可能使文本同样快。

有很多python教程涵盖了这种场景 - 你使用的是哪种语言?

如果你真的想使用数据库,我建议你使用Postgresql或者只是内存。也许您可以详细说明为什么您认为需要关系数据库 - 您是否有其他数据要存储,工作框架是否已连接到数据库。在这种情况下,一个单词表和另一个word_counts表应该可以正常工作,但是只有word_counts(id,word,count)的非规范化数据库 - >平面文件的搜索和更新速度会更快。