分析成人内容识别文本的正确方法是什么?

时间:2016-08-29 07:39:04

标签: python nltk text-classification text-analysis

我想过滤掉推文中的成人内容(或任何相关文字)。

对于垃圾邮件检测,我们有数据集可以检查特定文本是垃圾邮件还是火腿。

对于成人内容,我找到了一个我想要使用的数据集(摘录如下):

arrBad = [
'acrotomophilia',
'anal',
'anilingus',
'anus',
.
. etc.
.
'zoophilia']

问题

如何使用该数据集过滤文本实例?

4 个答案:

答案 0 :(得分:7)

我会将此视为文本分类问题,因为使用单词黑名单通常不能很好地对全文进行分类。黑名单不起作用的主要原因是你会有很多误报(例如:你的清单中包含“性感”这个词,仅凭这一点并不足以将文件标记为成人)。为此,您需要一套训练集,其中的文档被标记为“成人内容”,而其他文档则“安全工作”。所以这就是我要做的事情:

  1. 检查是否可以使用现有的标记数据集。你需要 每个班级有数千份文件。
  2. 如果找不到,请创建一个。例如,您可以创建一个scraper并下载Reddit内容。请阅读Text Classification of NSFW Reddit Posts
  3. 使用NLTK构建文本分类器。如果您不知道如何操作,请阅读:Learning to Classify Text

答案 1 :(得分:1)

这可以视为二进制文本分类问题。您应该收集包含'成人内容'以及不包含成人内容的文档('通用')。您可能会在列表arrBad中包含的单词/短语出现在' universal'中。例如,'女孩在顶部'在句子中她想成为山顶上的第一个女孩。珠峰'您需要获得每个单词/短语出现在成人内容中的次数的计数向量'文件和普遍的'文献。

我建议您考虑使用像Naive Bayes这样的算法(在您的情况下应该可以很好地工作)。但是,如果要捕获使用每个短语的上下文,您也可以考虑支持向量机算法(但这会涉及调整大量复杂参数)。

答案 2 :(得分:0)

您可能对TextRazor之类的内容感兴趣。通过使用他们的API,您可以对输入文本进行分类。

例如,您可以选择删除您不想要的某些类别或关键字附带的所有输入文本。

答案 3 :(得分:0)

我认为你更需要探索过滤算法,研究它们的用法,多模式搜索如何工作以及如何使用其中的一些算法(它们的实现是免费在线的,因此不难找到现有的实现和根据您的需求定制)。一些指针可以是。

  
      
  1. 检查算法的grep族如何工作,尤其是fgrep的bitap算法和Wu-Manber实现。根据你想要的准确度,可能需要增加一些模糊逻辑处理(想想为什么人们使用fukc)而不是他妈的......直接?)。

  2.   
  3. 您可能会发现Bloom Filter很有趣,因为它不会有任何漏报(您的数据集),缺点是它可能包含误报。

  4.