更好的维基百科编辑过滤方法

当您通过其RSS频道关注特定维基百科文章的新闻时,如果不进行信息过滤,会很烦人,因为大多数编辑都是垃圾信息、破坏行为、微小编辑等。

我的方法是创建过滤器。我决定删除所有不包含贡献者昵称而仅通过贡献者IP地址识别的编辑,因为大多数这样的编辑都是垃圾信息(尽管也有一些好的贡献)。使用正则表达式很容易做到这一点。我还删除了包含粗俗语言和其他典型垃圾信息关键词的编辑。

您是否知道一些更好的方法,利用算法或启发式与正则表达式、人工智能、文本处理技术等结合?该方法应该能够检测出不良帖子(微小编辑或破坏行为),并且能够逐步学习什么是好的/坏的贡献,并更新其数据库。

谢谢


回答:

这里有很多不同的方法可以尝试,但传统上,具有增量学习功能的垃圾邮件过滤器通常使用朴素贝叶斯分类器来实现。个人而言,我更喜欢实现起来更简单的Winnow2算法(详细信息可以在这篇论文中找到)。

首先,您需要从要分类的文本中提取特征。不幸的是,维基百科的RSS订阅源似乎不太适合机器读取,因此您可能需要进行一些预处理。或者,您可以直接使用Mediawiki API,或者查看此页面底部链接的机器人框架是否对您有帮助。

理想情况下,您最终会得到一个列表,包含添加的单词、删除的单词、您可以从中计算的各种统计数据,以及编辑的元数据。我想象特征列表看起来会像这样:

  • editComment: wordA(wordA出现在编辑评论中)
  • -wordB(wordB从文章中删除)
  • +wordC(wordC添加到文章中)
  • numWordsAdded: 17
  • numWordsRemoved: 22
  • editIsMinor: Yes
  • editByAnIP: No
  • editorUsername: Foo
  • 等等

任何您认为有助于区分好坏编辑的特征都可以使用。

一旦您提取了特征,使用它们来训练Winnow/贝叶斯分类器就相当简单了。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注