如何判断网页是否与特定主题相关?
How to decide if a webpage is about a specific topic or not?
我正在尝试编写一个代码,它可以获取网页的来源 html,然后确定它是哪种网页。我有兴趣决定该网页是否与学术课程有关。我有一个天真的第一种方法是检查文本是否包含可以相关的词,例如(课程、讲师、教...),如果它获得足够的点击率,则确定它是关于一门学术课程的。
尽管如此,我需要一些想法如何更有效地实现这一目标。
如有任何想法,我们将不胜感激。
提前致谢:)
对不起我的英语。
作为一名c语言程序员,我对网络编程一无所知,但我会确保它检查不同的域名后缀。 .edu 是大多数大学使用的域名,.gov 用于政府页面等,因此无需扫描页面。但毫无疑问,实现最高准确度的方法是使用这些方法,但为用户创建一种纠正应用程序的方法,该信息可以托管在网络服务器上,并且可以针对该数据库交叉引用页面。将您的客户用作改进工具总是很棒的!
另一种方法是查看您是否可以将其与在其索引中分类的搜索引擎交叉引用。例如google整理google学者的学术摘要。您可以查看该数据库中是否存在网络时代?
希望对您有所帮助!如果我有任何其他想法,您将是第一个知道的!
运行 文本通过 sequence-finding 算法。
算法基础:你取一些绝对 academic course
相关的 web-pages,清理它们并在其中搜索经常遇到的单词序列(2-5 个单词)。然后手动删除与 academic course
不直接相关的常见单词序列。通过检查在某些 web-page 中满足了多少序列,您可以通过一些精度找出它的内容是否是 well-related 到测试单词序列的来源。
注意:Testet 网页必须妥善清理。清除任何不相关的页面内容 - 删除 link
、script
标签和内容、删除标签本身(但在图像的 alt
/title
属性中保留文本)等等。要检查的上下文应该是标题、元关键字和描述 + 页面的清理内容。下一步是干文本。
有很多方法可以对文本进行分类,但首先:应将网页转换为纯文本,或者使用转储方式删除所有 HTML 标签并读取剩下的内容,或者使用更智能的方式确定包含所有有用文本的页面主要部分,在后一种情况下,您可以使用一些 HTML5 元素,如 <article>
,阅读有关 HTML5 structural elements here.
然后您可以尝试以下任何方法,具体取决于您愿意在实施中走多远:
- 就像你说的那样,简单地搜索相关词,但这样的成功率很低。
- 通过将文本的标记传递给词法分析器并专注于名词来改进上述解决方案,名词通常具有最高价值 - 我会尝试找到它的资源,但我'我确定我在实施类似项目时在某处阅读过它 -,这可能会稍微提高速度。
- 通过查看单词的来源来提高更多,您可以使用 形态分析器 来这样做,这样您就可以知道单词 "papers"与 "paper" 相同。那可以改善一点。
- 您还可以使用 ontology 个单词,例如 Word Net,然后您可以开始查看文档中的单词是否是您要查找的单词之一的后代,或者相反,但上升意味着泛化,这会影响精度。例如您可以看出单词 "kitten" 与单词 "cat" 相关,因此您可以假设既然文档谈到了 "kittens",那么它就谈到了 "cats".
以上所有内容都取决于您设置定义的关键字列表,您将根据这些关键字做出决定。但生活通常不会那样运作,这就是我们使用机器学习的原因。基本思想是你会得到一组文档并手动 tag/categorize/classify 它们,然后将这些文档作为训练集提供给你的程序并让你的程序学习它们,之后你的程序将能够应用它在标记其他未标记文档时学到的知识。如果您决定使用此选项,那么您可以检查此 SO question and this Quora question 并且可能性是无限的。
假设你会说阿拉伯语,如果你有兴趣,我会分享 a paper of the project I worked on here,但它是用阿拉伯语写的,并且解决了对阿拉伯语文本进行分类的挑战。
我正在尝试编写一个代码,它可以获取网页的来源 html,然后确定它是哪种网页。我有兴趣决定该网页是否与学术课程有关。我有一个天真的第一种方法是检查文本是否包含可以相关的词,例如(课程、讲师、教...),如果它获得足够的点击率,则确定它是关于一门学术课程的。
尽管如此,我需要一些想法如何更有效地实现这一目标。
如有任何想法,我们将不胜感激。
提前致谢:)
对不起我的英语。
作为一名c语言程序员,我对网络编程一无所知,但我会确保它检查不同的域名后缀。 .edu 是大多数大学使用的域名,.gov 用于政府页面等,因此无需扫描页面。但毫无疑问,实现最高准确度的方法是使用这些方法,但为用户创建一种纠正应用程序的方法,该信息可以托管在网络服务器上,并且可以针对该数据库交叉引用页面。将您的客户用作改进工具总是很棒的!
另一种方法是查看您是否可以将其与在其索引中分类的搜索引擎交叉引用。例如google整理google学者的学术摘要。您可以查看该数据库中是否存在网络时代?
希望对您有所帮助!如果我有任何其他想法,您将是第一个知道的!
运行 文本通过 sequence-finding 算法。
算法基础:你取一些绝对 academic course
相关的 web-pages,清理它们并在其中搜索经常遇到的单词序列(2-5 个单词)。然后手动删除与 academic course
不直接相关的常见单词序列。通过检查在某些 web-page 中满足了多少序列,您可以通过一些精度找出它的内容是否是 well-related 到测试单词序列的来源。
注意:Testet 网页必须妥善清理。清除任何不相关的页面内容 - 删除 link
、script
标签和内容、删除标签本身(但在图像的 alt
/title
属性中保留文本)等等。要检查的上下文应该是标题、元关键字和描述 + 页面的清理内容。下一步是干文本。
有很多方法可以对文本进行分类,但首先:应将网页转换为纯文本,或者使用转储方式删除所有 HTML 标签并读取剩下的内容,或者使用更智能的方式确定包含所有有用文本的页面主要部分,在后一种情况下,您可以使用一些 HTML5 元素,如 <article>
,阅读有关 HTML5 structural elements here.
然后您可以尝试以下任何方法,具体取决于您愿意在实施中走多远:
- 就像你说的那样,简单地搜索相关词,但这样的成功率很低。
- 通过将文本的标记传递给词法分析器并专注于名词来改进上述解决方案,名词通常具有最高价值 - 我会尝试找到它的资源,但我'我确定我在实施类似项目时在某处阅读过它 -,这可能会稍微提高速度。
- 通过查看单词的来源来提高更多,您可以使用 形态分析器 来这样做,这样您就可以知道单词 "papers"与 "paper" 相同。那可以改善一点。
- 您还可以使用 ontology 个单词,例如 Word Net,然后您可以开始查看文档中的单词是否是您要查找的单词之一的后代,或者相反,但上升意味着泛化,这会影响精度。例如您可以看出单词 "kitten" 与单词 "cat" 相关,因此您可以假设既然文档谈到了 "kittens",那么它就谈到了 "cats".
以上所有内容都取决于您设置定义的关键字列表,您将根据这些关键字做出决定。但生活通常不会那样运作,这就是我们使用机器学习的原因。基本思想是你会得到一组文档并手动 tag/categorize/classify 它们,然后将这些文档作为训练集提供给你的程序并让你的程序学习它们,之后你的程序将能够应用它在标记其他未标记文档时学到的知识。如果您决定使用此选项,那么您可以检查此 SO question and this Quora question 并且可能性是无限的。
假设你会说阿拉伯语,如果你有兴趣,我会分享 a paper of the project I worked on here,但它是用阿拉伯语写的,并且解决了对阿拉伯语文本进行分类的挑战。