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

当您通过其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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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