论坛首页 Java版 企业应用

提取Lucene检索结果中某个记录对应的文章的摘要

浏览 848 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2008-06-02
最简单的方式就是直接取出文章中的前N个字符作为摘要,但是这要对于高亮显示检索关键字又出现问题了,有时可能摘要中根本就不包含检索关键字,让用户以为检索结果的偏差很大,不准确。

研究一下Google,他似乎是先查看文章中是否出现过检索关键字,如果出现,直接从文章开始查找,找到最近的关键字所在处,从这个地方开始作为摘要,即使在文章最后出现很多检索关键字,他也不给予高亮显示,这种情况他也可能将标题作为摘要的开始;如果全文都没有出现过关键字,而只有标题出现过检索关键字,他就直接将标题作为摘要的开始部分,而后面直接从文章的正文开始取出一定字数作为摘要的另一部分。

关于提取摘要的方法,有没有更好一点的,谢谢。
   
最后更新时间:2008-05-27
好像没有机器能自动生成你所指的“摘要”。

google也是进行全文检索,匹配到结果的。
   
0 请登录后投票
最后更新时间:2008-06-03
问个问题 怎么处理这个高亮显示的丫?
   
0 请登录后投票
最后更新时间:2008-06-05
做和索引时一样的分词,在分词后的结果中找到匹配的项,然后高亮,然后合并周围的词成句子, 呵呵
   
0 请登录后投票
最后更新时间:2008-06-05
Lucene的sandbox中有一个叫highlighter的子项目,可以设置Fragment等信息来做高亮显示.
   
0 请登录后投票
最后更新时间:2008-06-06
你留意下baidu怎么做得,,,我是在其他地方看到的,,蛮好的
   
0 请登录后投票
最后更新时间:2008-06-07
给你一段Lucene Highlight的代码
QueryParser queryParser = new QueryParser(FIELD_NAME,
                    new MMAnalyzer());
            Query query = queryParser.parse(queryStr);

            SimpleHTMLFormatter formatter = new SimpleHTMLFormatter(PRE_TAG,
                    POST_TAG);
            QueryScorer scorer = new QueryScorer(query);
            Highlighter highlighter = new Highlighter(formatter, scorer);
            Fragmenter fragmenter = new SimpleFragmenter(40);
            highlighter.setTextFragmenter(fragmenter);
            TokenStream tokenStream = new MMAnalyzer().tokenStream(FIELD_NAME,
                    new StringReader(content));
            result = highlighter.getBestFragment(tokenStream, content);
   
0 请登录后投票
最后更新时间:2008-06-18
有这样一种想法:
在建立索引的时候,统计每个Term在对应的Document中出现的频率,然后取得出现频率最高的那一段(比如取得200个字符),存储这个段的起始位置,在检索的时候,直接定位到这个位置,从而生成摘要。
这和Google的动态摘要有什么不同呢?
这种想法是否会使得索引的维护更加复杂呢?
   
0 请登录后投票
论坛首页 Java版 企业应用

跳转论坛:
JavaEye推荐