如何估算网页的质量?

时间:2010-05-01 07:01:11

标签: machine-learning nlp spam information-retrieval

我正在做一个大学项目,必须收集和组合用户提供的主题数据。我遇到的问题是许多术语的Google搜索结果都被低质量的自动生成页面污染,如果我使用它们,我最终会得到错误的事实。如何评估页面的质量/可信度?

您可能会认为“不,Google工程师正在解决这个问题已有10年了,他正在寻求解决方案”,但如果您考虑一下,SE必须提供最新内容,如果它标记出一个好页面作为一个坏人,用户将不满意。我没有这样的限制,所以如果算法意外地将某些好页面标记为坏,那就不会有问题了。

这是一个例子: 假设输入为buy aspirin in south la。尝试谷歌搜索它。前3个结果已经从网站中删除,但第四个结果很有趣:radioteleginen.ning.com/profile/BuyASAAspirin(我不想建立活动链接)

以下是案文的第一段:

  

从加拿大购买处方药很少   此时此刻在美国。这是   因为在美国处方药   价格飙升暴涨   对那些有限或有限的人来说是艰难的   集中收入来购买他们的   需要药物。美国人付出更多   他们的毒品比任何人都多   类。

文本的其余部分类似,然后是相关关键字列表。这就是我认为的低质量页面。虽然这个特殊的文本似乎有意义(除了它太可怕了),我见过的其他例子(现在还找不到)只是一些垃圾,其目的是让一些用户从Google获得并在创建后的第一天被禁止

5 个答案:

答案 0 :(得分:6)

N-gram语言模型

您可以尝试在自动生成的垃圾邮件页面上训练一个 n-gram language model ,在其他非垃圾邮件网页上训练一个。

然后,您可以使用两种语言模型对新网页进行评分,以查看文本是否与垃圾网页或常规网页内容更相似。

贝叶斯法更好的得分

使用垃圾邮件语言模型对文本进行评分时,可以估算在垃圾邮件网页P(Text|Spam)上查找该文本的概率。符号读作Text给出Spam (page)的概率。非垃圾语言模型的分数是对在非垃圾网页P(Text|Non-Spam)上查找文本的概率的估计。

但是,您可能真正想要的术语是P(Spam|Text)或等效P(Non-Spam|Text)。也就是说,您希望知道页面SpamNon-Spam给出其上显示的文字的可能性

要获得其中任何一项,您需要使用Bayes Law,其中包含

           P(B|A)P(A)
P(A|B) =  ------------
              P(B)

使用贝叶斯法则,

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

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

P(Spam)先前的信念,从网络中随机选择的网页是垃圾网页。您可以通过计算某些样本中有多少垃圾网页来估算此数量,或者您甚至可以将其用作手动调整以权衡precision and recall 的参数。例如,将此参数设置为较高值会导致较少的垃圾邮件页面被错误地归类为非垃圾邮件,而如果将其设置为较低值,则会导致较少的非垃圾邮件页面被意外归类为垃圾邮件。

术语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 / Non-Spam

仅限分类

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

工具

对于您可以使用的软件工具包,SRILM将是一个很好的起点,它可以免费用于非商业用途。如果您想使用商业用途并且不想支付许可费,可以使用IRST LM,这是在LGPL下分发的。

答案 1 :(得分:3)

定义网页的“质量”?指标是什么?

如果有人想购买水果,那么寻找“大甜瓜”会产生许多结果,其中包含“非纺织品”倾斜的图像。

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

但是,只有在IE4.5中才能看到一个土壤农民展示他的高品质,美味和健康产品的页面,因为HTML已被“破坏”......

答案 2 :(得分:1)

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

答案 3 :(得分:1)

如果您正在寻找与性能相关的指标,那么Y!Slow [firefox的插件]可能会有用。

http://developer.yahoo.com/yslow/

答案 4 :(得分:0)

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

  1. 获取训练样本集。这需要提供您想要涵盖的文档示例。您希望变得越普遍,您需要使用的示例集越大。如果您只想关注与阿司匹林相关的网站,那么缩小必要的样本集。

  2. 从文档中提取功能。这可能是从网站上提取的字样。

  3. 将要素投放到分类器中,例如(MALLETWEKA)中提供的分类器。

  4. 使用k-fold cross validation等内容评估模型。

  5. 使用该模型为新网站评分。

  6. 当你谈到如果你把一个好的网站标记为坏网站而不关心时,这称为召回。 Recall衡量你应该得到多少你实际得到的数量。 Precision衡量你标记为“好”和“坏”的那些是正确的。既然你说你的目标更准确,召回不是那么重要,你可以调整你的模型以获得更高的精确度。