用PHP创建自然语言搜索引擎

时间:2011-03-24 15:14:54

标签: php mysql information-retrieval

我正在尝试用PHP编写自然语言解析器和搜索引擎。到目前为止,我所想到的所有方式都是实施,使用或不那么有效的麻烦。

我的一个想法包括一个可以在简化字符串上执行正则表达式的脚本,即。从字符串中删除各种单词,然后首先检查结果字符串以查找用户正在查找的内容 - 即“开放时间”,然后如果可能的话,他们正在搜索的地点 - 让我们说“Derngate”。其余的与此相似。

有人能指出我更有效的做事方式吗?如果我可以提供帮助,我不想每个页面加载25个不同的正则表达式 - 或者计算的数量。“

非常感谢!

编辑:我只是好奇,就是这样。我宁愿做自己的(看看它是如何工作的)而不是像Lucene那样跳进去。

3 个答案:

答案 0 :(得分:2)

您应该查看mapReduce和parallelization:

http://code.google.com/edu/parallel/mapreduce-tutorial.html

多数民众赞成谷歌如何做到这一点我相信。当然,你没有十亿台计算机可以帮助你。

(我也会说在纯php中这样做会非常慢)

答案 1 :(得分:0)

你肯定要研究一下信息检索和自然语言处理。你甚至不会接近谷歌,Bing正常表达的性能/效果。

另外,如果你想在这方面做认真的工作,你应该采用更“高效”的语言(C#,Java,C / C ++ ......)。

答案 2 :(得分:0)

我认为在对现有技术进行回顾之后,我会将根/茎词提取视为一个开端。 (如果您的文档语料库是相对静态的,那么任务不会太重,因为这可以在文档捕获时完成。)

有一个PHP扩展,干。 http://pecl.php.net/package/stem

在PHP中实现了Porter Stemmer,这是上面的关键操作,作为一个函数实现。