Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 从全文搜索结果中提取少量相关的文本(就像谷歌那样)_Algorithm_Search_Full Text Search_Nlp_Data Mining - Fatal编程技术网

Algorithm 从全文搜索结果中提取少量相关的文本(就像谷歌那样)

Algorithm 从全文搜索结果中提取少量相关的文本(就像谷歌那样),algorithm,search,full-text-search,nlp,data-mining,Algorithm,Search,Full Text Search,Nlp,Data Mining,我在论坛数据库中实现了全文搜索,我想显示 搜索结果和谷歌一样。即使是很长的html页面,也只有两三个 搜索结果列表中显示的文本行。通常这些都是台词 其中包含一个搜索词 如何根据文本本身和搜索词提取几行文本的好算法是什么。我可以想到一些简单的方法,只需在搜索词出现在文本中之前使用一行文本,在搜索词出现在文本中之后使用一行文本,但这似乎太简单了 我想了解一些方向、想法和见解 谢谢。您是否尝试过代码中的“搜索词出现之前/之后的行”,以查看对于简单的编码投资,结果是否足以满足您的需要?可能已经足够了 否

我在论坛数据库中实现了全文搜索,我想显示 搜索结果和谷歌一样。即使是很长的html页面,也只有两三个 搜索结果列表中显示的文本行。通常这些都是台词 其中包含一个搜索词

如何根据文本本身和搜索词提取几行文本的好算法是什么。我可以想到一些简单的方法,只需在搜索词出现在文本中之前使用一行文本,在搜索词出现在文本中之后使用一行文本,但这似乎太简单了

我想了解一些方向、想法和见解

谢谢。

您是否尝试过代码中的“搜索词出现之前/之后的行”,以查看对于简单的编码投资,结果是否足以满足您的需要?可能已经足够了

否则,您可以选择句子片段:因此不要在行上拆分,而是在换行符、句号、逗号、分隔连字符等上拆分。然后显示包含搜索词的片段。你可以用“…”或别的什么把每个匹配的句子分开

如果你得到了很多这样的片段,你可以尝试对这些片段进行优先级排序,按优先级降序排序,只显示第一个
n
。和/或将片段缩减为搜索词和搜索词周围的几个词


仅仅是一些非正式的想法就可以让你开始吗?

如果你正在寻找比“行前/行后”更有趣的方法,总结员可能会帮你

这是一个基于朴素贝叶斯的系统:


Bayes是许多垃圾邮件过滤器使用的统计系统——几年前我研究了Bayes摘要器,发现只要有相当数量的文本需要处理,它们就可以很好地总结文本。不过,我实际上还没有尝试过上述库,因此您的里程数可能会有所不同。

请集中精力阅读内容的开头部分。想一想当你访问一个博客时你会看到什么。开头一段告诉你这篇文章的方向是否正确。因此,在您的算法中,反映这一点是有意义的

检查搜索词在标题(H1、H2等)中的出现情况,并给予它们更高的优先级


这应该可以让您开始了。

添加了自然语言处理(nlp)标签