2009-06-05 33 views
2

我在论坛数据库中实现了全文搜索,并且希望以Google的方式显示 搜索结果。即使是非常长的html页面,也只有一两个或三个 行文本显示在搜索结果列表中。通常这些行 其中包含搜索条件。从全文搜索结果中提取小的相关位文本

如何基于文本本身和搜索项提取几行文本的好算法是什么?我可以想到一些简单的事情,就像在文本和行后的搜索词出现之前使用一行文本一样简单 - 但这似乎太简单了,无法工作。

想获得一些方向,想法和见解。

谢谢。

+0

添加了自然语言处理(nlp)标记 – 2009-06-05 10:02:35

回答

0

您是否试过代码中的“行前/行后发生​​的行”以查看是否对于简单的编码投资,结果足够满足您的需求?可能已经够了?

否则,你可以去看一些句子:所以不要在线上分割,而是在换行符,句号,逗号,间隔出的连字符等。然后显示包含搜索项的片段。你可以将每个匹配的句子分成“...”或其他东西。

如果您得到很多这些作品,您可以尝试优先处理这些作品,按降序排列优先顺序,并仅显示其中的第一个n。并且/或者将搜索条件和搜索项周围的几个单词剪下来。

只是一些非正式的想法,可能会让你开始?

2

如果您正在寻找比'行前/行后'方式更有趣的事情,则总结员可能会这样做。

这里有一个朴素基于贝叶斯系统:http://classifier4j.sourceforge.net/

贝叶斯是许多垃圾邮件过滤器所使用的统计系统 - 我研究贝叶斯summarizers几年前,发现他们做总结文本的一个不错的工作,如只要有相当数量的文本需要处理。尽管如此,我还没有尝试过上述库,所以你的里程可能会有所不同。

0

专注于内容的开始。想想你访问博客时的样子。开始部分告诉你文章是否在正确的方向。所以在你的算法中,反映这一点是有意义的。

检查标题(H1,H2等)中搜索词的出现并给予它们更多的优先权。

这应该让你开始。