确定网页(或文本段落)的上下文/含义

Chr*_*man 9 php artificial-intelligence web-crawler

当然谷歌已经这么做了多年!然而,不是从零开始,花费10年+并浪费大笔金钱:)我想知道是否有人知道一个简单的PHP库,它将从Web返回重要单词列表(和/或某种上下文)使用PHP的页面或大块文本?

在一个基本的层面上,我猜测大多数蜘蛛会拉入单词,删除没有实际意义的单词,然后计算其余的.最常出现的词很可能是我感兴趣的.

任何类型的指针都会非常感激!

Lay*_*yke 6

潜在语义索引.

我可以给你指点,但你想查找/研究潜在的语义索引.

而不是解释它,这是一个网页的快速片段.

潜在语义索引本质上是一种从文档中提取含义而不匹配特定短语的方式.一个简单的例子是,一个包含"Windows","Bing","Excel"和"Outlook"字样的文档将与微软有关.您不需要'Microsoft'一次又一次地出现以了解这一点.

这个例子还强调了考虑相关词语的重要性,因为如果"窗口"出现在也以"上釉"为特色的页面上,那么它很可能是完全不同的含义.

你当然可以从文本语料库中删除所有停止词的简单路径,但LSI肯定更准确.

我会在大约30分钟内用更多信息更新这篇文章.(仍然打算更新这篇文章 - 忙于工作).

更新

好吧,LSA背后的基础是提供一种新的/不同的方法来根据特定的搜索时间来回复文档.您可以非常轻松地使用它来确定文档的含义,但也可以.搜索yester-years的问题之一是它们基于关键字分析.如果从1999年末开始使用Yahoo/Altavista到2002/03(请不要引用我的话),他们非常依赖于仅使用关键字作为从索引中检索文档的因素.但是,关键字不会转换为他们所代表的关键字以外的任何内容.但是,关键字"Hot"意味着很多东西,具体取决于它所放置的上下文.如果你要使用术语"热"并且认为它被放置在诸如"辣椒","香料"或"草药"之类的其他术语周围,那么在概念上它意味着与其他术语"热"时完全不同的东西诸如"热"或"温暖"或"性感"和"女孩"之类的术语.

LSA试图通过研究统计学上的一系列(你自己建立的)矩阵来克服这些低效率.

无论如何,一些工具可以帮助您构建这个文档/术语矩阵(并将它们聚集在与其语料库相关的附近).通过将关键字转换为概念,这有利于搜索引擎,因此,如果搜索特定关键字,该关键字甚至可能不会出现在检索到的文档中,而是出现在关键字所代表的概念中.

我一直用Lucence/Solr进行搜索.并且快速进行Google搜索,Solr LSA LSI返回了一些链接.

http://www.ccri.com/blog/2010/4/2/latent-semantic-analysis-in-solr-using-clojure.html

这家伙似乎已经为它创建了一个插件.

http://github.com/algoriffic/lsa4solr

我可能会在接下来的几周内查看它,看看它是如何发展的.


Mar*_*ker 1

就我个人而言,我倾向于使用 Brill 解析器之类的东西来识别每个单词的词性,丢弃代词、动词等,并使用它来提取名词列表(可能带有任何限定形容词)来构建该列表的关键词。您可以在Ian Barber 的 PHP/IR 站点上找到 Brill Parser 的 PHP 实现。