我想过滤掉推文中的成人内容(或任何相关文字)。
对于垃圾邮件检测,我们有数据集可以检查特定文本是垃圾邮件还是火腿。
对于成人内容,我找到了一个我想要使用的数据集(摘录如下):
arrBad = [
'acrotomophilia',
'anal',
'anilingus',
'anus',
.
. etc.
.
'zoophilia']
问题
如何使用该数据集过滤文本实例?
答案 0 :(得分:7)
我会将此视为文本分类问题,因为使用单词黑名单通常不能很好地对全文进行分类。黑名单不起作用的主要原因是你会有很多误报(例如:你的清单中包含“性感”这个词,仅凭这一点并不足以将文件标记为成人)。为此,您需要一套训练集,其中的文档被标记为“成人内容”,而其他文档则“安全工作”。所以这就是我要做的事情:
答案 1 :(得分:1)
这可以视为二进制文本分类问题。您应该收集包含'成人内容'以及不包含成人内容的文档('通用')。您可能会在列表arrBad中包含的单词/短语出现在' universal'中。例如,'女孩在顶部'在句子中她想成为山顶上的第一个女孩。珠峰'您需要获得每个单词/短语出现在成人内容中的次数的计数向量'文件和普遍的'文献。
我建议您考虑使用像Naive Bayes这样的算法(在您的情况下应该可以很好地工作)。但是,如果要捕获使用每个短语的上下文,您也可以考虑支持向量机算法(但这会涉及调整大量复杂参数)。
答案 2 :(得分:0)
您可能对TextRazor之类的内容感兴趣。通过使用他们的API,您可以对输入文本进行分类。
例如,您可以选择删除您不想要的某些类别或关键字附带的所有输入文本。
答案 3 :(得分:0)
我认为你更需要探索过滤算法,研究它们的用法,多模式搜索如何工作以及如何使用其中的一些算法(它们的实现是免费在线的,因此不难找到现有的实现和根据您的需求定制)。一些指针可以是。
检查算法的grep族如何工作,尤其是fgrep的bitap算法和Wu-Manber实现。根据你想要的准确度,可能需要增加一些模糊逻辑处理(想想为什么人们使用fukc)而不是他妈的......直接?)。
- 醇>
您可能会发现Bloom Filter很有趣,因为它不会有任何漏报(您的数据集),缺点是它可能包含误报。