4

我有一个域名列表,想确定域名是否看起来像色情网站。有什么更好的方法来做到这一点?色情域名列表看起来像http://dumpz.org/56957/。该域可用于教系统色情域的外观。我还有其他列表 - http://dumpz.org/56960/ - 这个列表的许多域也是色情的,我想通过名称来确定它们。

4

6 回答 6

5

使用贝叶斯过滤器,例如:SpamBayes或 Divmods Reverend。您使用您拥有的列表对其进行训练,并且可以对给定域的可能性进行评分,如果它是色情内容。

有关简短概述,请查看本文

于 2011-05-29T19:39:38.730 回答
5

你不能依赖域名,有太多的色情域名有不错的名字,很少有其他的色情域名但内容安全。

于 2011-05-29T18:41:05.640 回答
1

正如有人已经指出的那样,您需要某种分类来实现您想要的。但是总体准确度(精确度和召回率)取决于您拥有的训练数据集。为此,您可以使用 SVM、决策树等分类器。

我建议采用半监督方法,将不同的 URL 聚集在一起,并检查每个集群中的一些代表性 URL,看看这是否是色情内容。好处是您不需要任何培训,并且您可以找到可能不涵盖您的培训数据集的色情 URL。常见的聚类技术是 k-means、分层、dbscan 等。这仍然不会涵盖没有类似 URL 的色情网站。为此,您必须抓取页面并需要对网页内容进行类似的培训/聚类。

于 2011-05-30T02:11:40.817 回答
1

这可能取决于你的目标是什么。我猜您最感兴趣的是最大限度地减少误报(如果不是,则不小心称一个域为好域)。例如,如果您希望论坛中的所有色情链接在发布之前都进行垃圾邮件审查,这可能是正确的。如果某些非色情链接被标记为审查,那没关系。

在这种情况下,您可能会做一些相当简单的事情。如果你能想出一个色情词列表,你可以将所有包含这些词的域标记为子字符串。不过,这会捕获一些安全域:expertsexchange.com 可以匹配“sex”或“sexchange”,但“yahoo”永远不会标记为正面。易于实施,易于理解,易于调整。

可以使用您最喜欢的搜索引擎找到淫秽词的列表。您也可以使用域列表将域中的常见长子字符串提取为单词。

但是,如果您想真正获得正确的答案,则需要查看这些域上的内容。Site-About-Kitty-Porn.com 可能是 lolcats 域或非法色情内容。除非你做一些爬行,否则不可能知道。如果您获取实际内容并与您的列表匹配,您会做得更好。

您还可以针对某些第三方服务尝试每个域,例如儿童安全的互联网过滤器,或者甚至尝试测试该域是否会出现在您最喜欢的搜索引擎中的安全搜索结果中。当然,请确保您遵循每个服务的 TOS 以及所有这些。

于 2011-05-29T23:45:46.410 回答
0

查看有关按主题分类网页的博客文章。从不良网站列表作为正面例子开始,并使用任何启发式方法来寻找好的网站(基本的网络爬虫植入一些无辜的谷歌搜索)作为负面例子。这篇文章将引导您完成通过页面提取内容的过程,并涉及 Weka 以及您如何应用他们的一些基本学习者。

请注意,您可能希望将其他数据添加到特定于问题领域的训练集中,而不仅仅是使用页面内容。例如,页面上的图片数量或图片大小可能是您可能要考虑的一个因素。

于 2012-06-04T22:55:15.277 回答
0

你的意思是这样的吗?

scala> val pornList = List("porn1.com","porn2.com","porn3.com")
pornList: List[java.lang.String] = List(porn1.com, porn2.com, porn3.com)

scala> val sites = List("porn1.com","site1.com","porn3.com","site2.com","site3.com")
sites: List[java.lang.String] = List(porn1.com, site1.com, porn3.com, site2.com, site3.com)

scala> val result = sites filterNot { pornList contains _ }
result: List[java.lang.String] = List(site1.com, site2.com, site3.com)
于 2011-05-29T19:06:22.020 回答