C# 算法:分析网页中的标签

C# 算法:分析网页中的标签,c#,algorithm,search-engine,information-retrieval,information-extraction,C#,Algorithm,Search Engine,Information Retrieval,Information Extraction,在过去的几天里,我一直在做一个项目,在这个项目中有一项任务我实际上不知道怎么做,这个项目包括分析网页,找到网页的特征标签 嘿,伙计,你说的标签是什么意思?我说的标签是概括网页内容的关键词。例如,在这里,你写你自己的标签,这样人们就可以发现你的问题更好。我所说的是建立一个算法来分析网页,通过网页中的文本找到它的标签 我开始从页面获取文本->完成了 一般来说,我在寻找一种方法来找到总结网页内容的关键词 然而,我真的不知道下一步该怎么办。有人有什么建议吗?对于真正基本的方法,您可以使用算法在页面中查找

在过去的几天里,我一直在做一个项目,在这个项目中有一项任务我实际上不知道怎么做,这个项目包括分析网页,找到网页的特征标签

嘿,伙计,你说的标签是什么意思?我说的标签是概括网页内容的关键词。例如,在这里,你写你自己的标签,这样人们就可以发现你的问题更好。我所说的是建立一个算法来分析网页,通过网页中的文本找到它的标签

我开始从页面获取文本->完成了


一般来说,我在寻找一种方法来找到总结网页内容的关键词


然而,我真的不知道下一步该怎么办。有人有什么建议吗?

对于真正基本的方法,您可以使用算法在页面中查找最重要的单词

维基百科中的快速忽略:

tf–idf权重(术语频率–反向文档频率)是 权重通常用于信息检索和文本挖掘。这 权重是用来评估一个词的重要性的统计指标 是指集合或语料库中的文档。重要性增加了 与单词在文档中出现的次数成比例 但被语料库中单词的频率所抵消。变化 tf-idf加权方案的一部分通常被搜索引擎用作 为给定文档的相关性评分和排序的中心工具 用户查询。tf–idf可成功用于停止字过滤 在各个主题领域,包括文本摘要和 分类

一旦你在你的页面中找到了最重要的单词,你就可以用它们作为标签


如果你想改进你的标签,让它们更相关

有很多方法可以继续,但您可以按以下方式继续:

  • 提取一组你知道主要标签的文本
  • 对于所有这些文本,运行TF-IDF算法,并使用 得分最高的人
  • 试着找出一个主要的方向将所有这些向量。(经营机场核心计划) 例如,或任何机器学习工具)
  • 并使用此标记表示来自主方向的一组单词。(机场核心计划的最大矢量)

希望它是可以理解的,并且有助于

通常,您会查找由特定html包围的特定单词。例如,标题通常位于H标记中,例如

如果您解析一个页面的所有H1标记,那么该标记后面的内容是相关的,这是有道理的。这个页面就是一个例子。它在问题标题周围有一个H1标签。这给谷歌一个提示,该页面是关于“算法”、“分析”、“网页”等的

困难的部分是确定上下文

在我们这里的示例中,术语“页面”非常通用,可以与任何内容相关。然而,“网页”更具体一些。您可以使用一个内部字典来实现这一点,该字典是在分析大量文档以找到共性之后,根据术语频率随时间而建立的。在确定给定页面的前X个“标签”时,频率应提供一个加权值。

这更多是一个数据挖掘问题。回顾其中一些可能会有所帮助

当您对网页进行爬网时,实际上是在尝试构建索引。您可以通过构建一个全局术语频率词典来实现这一点,其中语言中的每个单词(通常用于解释复数和其他修改)都存储为键,它们在文档中出现的次数作为值


在此基础上,您可以使用诸如和之类的算法进行数据分析。

您可以实施许多启发式方法:

  • 所有大写字母的首字母缩略词和单词
  • 不频繁使用的词语,即丢弃所有或大多数文档中出现的词语,而选择仅在本文档中出现相对频繁的词语
  • 在本文档中以及其他文档中始终以相同顺序出现的单词序列
  • 等等

您描述的是,您有一些文本(无论是来自网页还是任何地方),希望通过选取一些单词并将其声明为标签来描述文本的特征?您是否针对特定类型的网页?例如那些实现stackoverflow api的?或者你的目标是普通网页。如果是后者,我想你会有困难的。不同的网站将以自己的方式实现“标签”。如果是前者,那么它应该是非常简单的…一般来说,我正在寻找一种方法来找到关键字,总结网页的内容