【问题标题】:How to tell if two web contents are similar?如何判断两个网页内容是否相似?
【发布时间】:2012-04-19 14:05:36
【问题描述】:

给定 2 个 html 源,我想首先使用 this 之类的东西从中提取主要内容。有没有other better libraries - 我专门寻找 Python/Javascript 的?

一旦我有两个提取的内容,我想返回一个介于 0 和 1 之间的分数,表示它们有多相似,例如来自 CNN 和 BBC 的同一主题的新闻文章的相似度得分较高,因为它们在同一主题上,或者在 Amazon.com 和 Walmart.com 上与同一产品相关的网页也会有较高的得分。我怎样才能做到这一点?是否有现有的图书馆已经这样做了?我可以使用哪些好的库?基本上我正在寻找automatic summarizationkeyword extractionnamed-entity recognitionsentiment-analysis 的组合。

【问题讨论】:

    标签: python nlp machine-learning text-mining semantic-analysis


    【解决方案1】:

    您的问题中有很多内容。我将尝试为您提供一个库,否则会向您推荐可以解决您的任务的算法(您可以使用 Google 搜索,您将获得许多 python 实现)

    第 1 点。要从 html (http://nltk.googlecode.com/svn/trunk/doc/book/ch03.html) 中提取主要内容以及其他与 NLP 相关的内容,您可以查看 NLTK。它是用 Python 编写的。您还可以查看一个名为 BeautifulSoup 的库,它很棒 (http://www.crummy.com/software/BeautifulSoup/)

    第 2 点。当你说:

    获得两个提取的内容后,我想返回一个介于 0 和 1 之间的分数,表示它们的相似程度......

    为此,我建议您可以使用任何无监督学习聚类技术来聚类您的文档集。由于您的问题属于基于距离度量的聚类,因此您应该很容易对相似的文档进行聚类,然后根据它们与聚类质心的相似性为它们分配一个分数。尝试 K-Means 或自适应共振理论。在后者中,您不需要提前定义集群的数量。或者正如 larsman 在他的 cmets 中指出的那样,您可以简单地使用 TF-IDF (http://www.miislita.com/term-vector/term-vector-3.html)

    第 3 点。当你说:

    基本上我正在寻找自动摘要、关键字提取、命名实体识别和情感分析的组合

    对于自动汇总,请使用非负矩阵分解

    对于关键字提取使用 NLTK

    对于命名实体识别,使用 NLTK

    对于情感分析,使用 NLTK

    【讨论】:

      猜你喜欢
      • 2014-03-22
      • 2020-08-29
      • 2015-02-07
      • 2023-04-07
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多