Machine learning 如何评估网页的质量?

Machine learning 如何评估网页的质量?,machine-learning,nlp,spam,information-retrieval,Machine Learning,Nlp,Spam,Information Retrieval,我正在做一个大学项目,该项目必须收集并合并用户提供主题的数据。我遇到的问题是,谷歌对许多术语的搜索结果被低质量的自动生成页面所污染,如果我使用这些页面,我可能会得到错误的事实。如何评估页面的质量/可信度 你可能会认为“不,谷歌的工程师们已经为这个问题工作了10年,他正在寻求解决方案”,但如果你仔细想想,SE必须提供最新的内容,如果它将一个好页面标记为一个坏页面,用户将不满意。我没有这样的限制,所以如果算法意外地将一些好的页面标记为坏页面,这不会是一个问题 下面是一个例子: 假设输入是在南洛杉矶购

我正在做一个大学项目,该项目必须收集并合并用户提供主题的数据。我遇到的问题是,谷歌对许多术语的搜索结果被低质量的自动生成页面所污染,如果我使用这些页面,我可能会得到错误的事实。如何评估页面的质量/可信度

你可能会认为“不,谷歌的工程师们已经为这个问题工作了10年,他正在寻求解决方案”,但如果你仔细想想,SE必须提供最新的内容,如果它将一个好页面标记为一个坏页面,用户将不满意。我没有这样的限制,所以如果算法意外地将一些好的页面标记为坏页面,这不会是一个问题

下面是一个例子: 假设输入是
在南洛杉矶购买阿司匹林
。试着用谷歌搜索一下。前三个结果已经从网站上删除了,但第四个结果很有趣:
radioteleginen.ning.com/profile/buyasapirism
(我不想建立活动链接)

这是正文的第一段:

从加拿大购买处方药的风险很大 现在在美国。这是 因为在美国,处方药 价格暴涨,使之成为现实 对于那些受到限制或 集中收入购买他们的产品 需要药物治疗。美国人付的钱更多 因为他们的毒品比世界上任何人都多 班级


文本的其余部分是类似的,然后相关关键字列表如下。我认为这是一个低质量的页面。虽然这篇特别的文章似乎有道理(除了它很恐怖),但我看到的其他例子(现在还找不到)只是一些垃圾,其目的是从谷歌获得一些用户,并在创建后一天被禁止。

定义网页的“质量”吗?度量标准是什么

如果有人想买水果,那么搜索“大甜瓜”会得到许多包含“非纺织品”倾斜图像的结果

然而,这些页面的标记和托管可能是可靠的工程


但是,一个土农展示其优质、美味和健康农产品的页面可能只有在IE4.5中才能看到,因为html是“坏的”…

对于每个关键字查询的每个结果集,执行单独的google查询以查找链接到此站点的站点数量,如果没有其他站点链接到此站点,则将其排除。我认为这至少是一个好的开始

N-gram语言模型

您可以尝试在自动生成的垃圾邮件页面上训练一个,在其他非垃圾邮件页面集合上训练一个

然后,您可以简单地使用这两种语言模型为新页面打分,以查看文本是否与垃圾邮件网页或常规web内容更相似

通过贝叶斯定律获得更好的得分

当您使用垃圾邮件语言模型对文本进行评分时,您将得到在垃圾邮件网页上找到该文本的概率估计值,
p(text | spam)
。该符号表示
文本
给定的
垃圾邮件(页面)
的概率。非垃圾邮件语言模型的得分是对在非垃圾邮件网页上找到文本的概率的估计,
P(text | non-spam)

但是,您可能真正想要的术语是
p(垃圾邮件文本)
,或者相当于
p(非垃圾邮件文本)
。也就是说,如果页面上出现文本,您想知道页面是
垃圾邮件
非垃圾邮件
的概率

要获得这两个选项中的任何一个,您需要使用

           P(B|A)P(A)
P(A|B) =  ------------
              P(B)
利用贝叶斯定律,我们得到了

P(Spam|Text)=P(Text|Spam)P(Spam)/P(Text)

p(垃圾邮件)
是您先前的信念,即从web上随机选择的页面是垃圾邮件页面。您可以通过计算某些示例中有多少垃圾邮件网页来估计此数量,甚至可以将其用作手动调整以进行权衡的参数。例如,将此参数设置为高值将导致错误分类为非垃圾邮件的垃圾邮件页面减少,而将此参数设置为低值将导致错误分类为垃圾邮件的非垃圾邮件页面减少

术语
p(Text)
是在任何网页上找到
Text
的总概率。如果我们忽略
P(Text | Spam)
P(Text | Non-Spam)
是使用不同的模型确定的,这可以计算为
P(Text)=P(Text | Spam)P(Spam)+P(Text | Non-Spam)P(Non-Spam)
。这将求出二进制变量
Spam
/
非Spam

仅分类

但是,如果不打算将概率用于其他任何事情,则不需要计算
p(Text)
。相反,您可以只比较分子
P(Text | Spam)P(Spam)
P(Text | Non-Spam)P(Non-Spam)
。如果第一个较大,则该页面最有可能是垃圾邮件页面,而如果第二个较大,则该页面最有可能是非垃圾邮件页面。这是因为上述
P(垃圾邮件|文本)
P(非垃圾邮件|文本)
的方程均由相同的
P(文本)
值标准化

工具


在软件工具包方面,你可以使用类似的东西,这将是一个很好的开始,它是免费的非商业用途。如果您想在商业上使用某些东西,并且不想为许可证付费,那么您可以使用,它是在LGPL下分发的

如果您正在寻找与性能相关的指标,那么Y!Slow[plugin for firefox]可能很有用


您可以使用监督学习模型进行此类分类。一般过程如下:

  • 获取培训样本集。这需要提供您想要涵盖的文档示例。您希望的通用性越高,您需要使用的示例集就越大。如果你只想关注与阿司匹林相关的网站
    P(Non-Spam|Text)=P(Text|Non-Spam)P(Non-Spam)/P(Text)