如何确定网页是否与特定主题有关?

时间:2015-09-11 18:13:58

标签: regex nlp jsoup semantic-web

我正在尝试编写一个代码,该代码可以获取网页的源html,然后决定它是什么类型的网页。我有兴趣决定网页是否与学术课程有关。我有一个天真的第一种方法是检查文本是否包含可以相关的单词(课程,讲师,教学......),并确定它是关于学术课程的,如果它达到足够的命中率。

即使如此,我还需要一些如何更有效地实现这一目标的想法。

任何想法都会受到赞赏。

提前致谢:)

抱歉我的英文。

3 个答案:

答案 0 :(得分:3)

有许多方法可以对文本进行分类,但首先:网页应该转换为纯文本,使用转储方法删除所有HTML标记并阅读剩下的内容,或者使用更智能的方法来识别文本的主要部分。包含所有有用文本的页面,在后一种情况下,您可以使用某些HTML5元素,如<article>,阅读HTML5 structural elements here

然后,您可以尝试以下任何一种方法,具体取决于您愿意接受实施的程度:

  • 就像你提到的那样,只需简单搜索相关单词,但这会让你的成功率非常低。
  • 通过将文本标记传递给词法分析器并专注于名词来改进上述解决方案,名词通常具有最高价值 - 我会尝试找到这个资源但我确定我读过它在实施类似项目的某个地方 - ,这可能会稍微提高一点。
  • 通过查看单词的来源进行更多改进,您可以使用形态分析器来完成此操作,这样您就可以判断“文章”一词与“纸张”相同。这可以改善一点。
  • 您还可以使用像Word Net之类的单词的本体,然后您可以开始查看文档中的单词是否是您正在查找的单词之一的后代,或者反过来但是up表示会影响精度的genaralizing。例如你可以说“小猫”这个词与“猫”这个词有关,所以你可以假设自从文件谈到“小猫”之后就会谈到“猫”。

以上所有内容取决于您设置定义的关键字列表,您可以根据这些关键字做出决定。但生活通常不会这样,这就是我们使用机器学习的原因。基本的想法是,您将获得一组文档并手动标记/分类/分类,然后将这些文档作为训练集提供给您的程序,让您的程序学习它们,之后您的程序将能够应用它在标记其他未标记文档时学到的知识。如果您决定使用此选项,则可以查看此SO question和此Quora question,并且可能性无穷无尽。

假设您说阿拉伯语,如果您感兴趣,我会分享a paper of the project I worked on here,但它是阿拉伯语并处理阿拉伯语文本分类的挑战。

答案 1 :(得分:1)

我对作为c语言程序员的Web编程一无所知,但我会确保它检查不同的域名后缀。 .edu是大多数大学使用的,.gov用于政府页面等,然后无需扫描页面。但是实现最高准确度的方法是使用这些方法,但是为用户创建了一种纠正应用程序的方法,这些信息可以托管在Web服务器上,并且页面可以与该数据库交叉引用。将您的客户用作改进工具总是很棒!

另一种方法是看看你是否可以与在索引中分类的搜索引擎交叉引用它。例如谷歌整理谷歌学者的学术摘要。您可以查看该数据库中是否存在Web年龄?

希望这有帮助!如果我有任何其他想法,您将是第一个知道的!

答案 2 :(得分:1)

通过序列搜索算法运行文本。

算法基础知识:你需要一些明确的academic course相关网页,清理它们并搜索它们经常遇到的单词序列(2-5个单词)。然后手动删除与academic course直接无关的常用单词序列。通过检查在某些网页中可以满足多少这些序列,如果它的内容与测试单词序列的来源密切相关,你可以通过一些精确的方法找到它。

注意:必须正确清理Testet网页。从任何不相关的内容中清除页面内容 - 删除linkscript代码和内容,删除代码本身(但将文字保留在图片&#39; s alt / title属性中)等等。要检查的上下文应该是title,meta keywords&amp;描述+清理页面内容。下一步是阻止文本。