【问题标题】:How to estimate the quality of a web page?如何评估一个网页的质量?
【发布时间】:2011-02-14 12:04:33
【问题描述】:

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

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

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

这是正文的第一段:

从加拿大购买处方药的机会很大 此刻在美国。这是 因为在美国处方药 价格暴涨使其成为 对于那些限制有限或 集中收入购买他们的很多东西 需要的药物。美国人付出更多 他们的毒品比世界上的任何人 类。

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

【问题讨论】:

  • 您的问题到底是什么?您能否更详细地说明“质量/可信度”?
  • 这个编程有什么关系?
  • 你距离要求通用 AI 还差 1 英寸。
  • @roddik 这是搜索引擎的圣杯——尽管拥有 5 亿美元的预算和一些最聪明的大脑,但 Google 无法为此提供通用解决方案是有原因的在这个星球上。 :)
  • @Jeff 这个 not 编程有什么关系?如果我没记错的话,他说的是以编程方式衡量搜索结果的相关性。不是吗?

标签: machine-learning nlp spam information-retrieval


【解决方案1】:

您可以使用监督学习模型进行此类分类。大致流程如下:

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

  2. 从文档中提取特征。这可能是从网站上提取的字词。

  3. 将特征输入分类器,例如(MALLETWEKA)中提供的分类器。

  4. 使用类似k-fold cross validation 的方式评估模型。

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

当您谈论不关心是否将好网站标记为坏网站时,这称为召回。 Recall 衡量你应该取回多少你实际取回的数量。 Precision 衡量您标记为“好”和“坏”的有多少是正确的。由于您声明了更精确的目标并且召回并不那么重要,因此您可以调整您的模型以获得更高的精度。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      N-gram 语言模型

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

      然后,您可以简单地使用两种语言模型对新页面进行评分,以查看文本看起来是否更类似于垃圾邮件网页或常规 Web 内容。

      通过贝叶斯定律提高评分

      当您使用垃圾邮件语言模型对文本进行评分时,您可以估算在垃圾邮件网页上找到该文本的概率,P(Text|Spam)。该符号读取为给定Spam (page)Text 的概率。非垃圾邮件语言模型的分数是对在非垃圾邮件网页上找到文本的概率的估计,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) 的等式均由same P(Text) 值标准化。

      工具

      就可用于此类用途的软件工具包而言,SRILM 将是一个不错的起点,而且它可免费用于非商业用途。如果您想在商业上使用某些东西并且不想为许可证付费,您可以使用在 LGPL 下分发的IRST LM

      【讨论】:

        【解决方案4】:

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

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

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

        但是一个土农展示他的高品质、美味和健康产品的页面可能只在 IE4.5 中可见,因为 html 已“损坏”...

        【讨论】:

        • 我一般来说,用户制作高质量的页面,垃圾邮件发送者制作低质量的页面。请看一下我刚刚添加的示例
        • @roddik:请仔细看看这个站点(实际上是三部曲中的所有四个站点)。这里的一些问题很难阅读,充满了拼写和语法错误(我的也是!)。然而,它们很有趣/切中要害。其他问题说得很好,但完全是垃圾。恕我直言,将语言/语法与质量联系起来是有问题的,并且接近精英主义。
        • 我认为问题可能是关于具有自动生成文本的页面。应该可以检测到其中的许多。
        【解决方案5】:

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

        【讨论】:

        • 也许我太天真了,但据说是大学项目。此外,谷歌本身使用这个因素来决定相关性。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-18
        • 1970-01-01
        • 1970-01-01
        • 2013-04-12
        • 2011-07-19
        • 2011-05-10
        相关资源
        最近更新 更多