浏览 848 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-06-02
最简单的方式就是直接取出文章中的前N个字符作为摘要,但是这要对于高亮显示检索关键字又出现问题了,有时可能摘要中根本就不包含检索关键字,让用户以为检索结果的偏差很大,不准确。
研究一下Google,他似乎是先查看文章中是否出现过检索关键字,如果出现,直接从文章开始查找,找到最近的关键字所在处,从这个地方开始作为摘要,即使在文章最后出现很多检索关键字,他也不给予高亮显示,这种情况他也可能将标题作为摘要的开始;如果全文都没有出现过关键字,而只有标题出现过检索关键字,他就直接将标题作为摘要的开始部分,而后面直接从文章的正文开始取出一定字数作为摘要的另一部分。 关于提取摘要的方法,有没有更好一点的,谢谢。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-05-27
好像没有机器能自动生成你所指的“摘要”。
google也是进行全文检索,匹配到结果的。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-06-03
问个问题 怎么处理这个高亮显示的丫?
|
|
| 返回顶楼 | |
|
最后更新时间:2008-06-05
做和索引时一样的分词,在分词后的结果中找到匹配的项,然后高亮,然后合并周围的词成句子, 呵呵
|
|
| 返回顶楼 | |
|
最后更新时间:2008-06-05
Lucene的sandbox中有一个叫highlighter的子项目,可以设置Fragment等信息来做高亮显示.
|
|
| 返回顶楼 | |
|
最后更新时间:2008-06-06
你留意下baidu怎么做得,,,我是在其他地方看到的,,蛮好的
|
|
| 返回顶楼 | |
|
最后更新时间: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); |
|
| 返回顶楼 | |
|
最后更新时间:2008-06-18
有这样一种想法:
在建立索引的时候,统计每个Term在对应的Document中出现的频率,然后取得出现频率最高的那一段(比如取得200个字符),存储这个段的起始位置,在检索的时候,直接定位到这个位置,从而生成摘要。 这和Google的动态摘要有什么不同呢? 这种想法是否会使得索引的维护更加复杂呢? |
|
| 返回顶楼 | |





