全文检索系统概述

打造高效全文检索系统:Python全文检索框架实例 随着信息爆炸时代的到来,大量的文本数据需要被有效地组织、存储和检索。全文检索作为一种常用的技术手段,可以快速地从大规模的文本数据中找到所需信息。本文将介绍如何使用Python构建一个高效的全文检索系统,并提供相应的源代码示例。全文检索系统的基本原理是将文本数据分词,并构建倒排索引。倒排索引是一种数据结构,它将每个词映射到包含该词的文档的列表中。通过倒排索引,可以快速定位包含特定关键词的文档,从而实现快速检索。 阅读详情
1、全文检索系统的基本内容

  全文检索系统是指可以对资料源的全部文本内容进行检索的系统。这涉及到资料源文本内容的提取和建索引、检索条件分析、索引匹配、匹配结果排序输出四个步骤,其中的难点在于保证检索结果的相关性,即系统查出来的条目确实符合查询条件的意思。很显然,正确理解用户输入的检索条件是前提条件,而“理解”依次要经历词法、语法和语义分析三个阶段。

  词法分析是为了从连续的输入串中分辨出基本的语言单位,通常称做分词。对于英文来说,单词与单词之间都有明确的分隔符,分词简单而直接,而对于中文来说,没有明确的词语分隔标记,确定哪几个字是一个词就比较麻烦了。目前中文分词有两种常用做法:固定长度切分(N-Gram) 或者基于字典比较。固定长度切分操作简单,把一串文字按照固定长度依次切成词,比如固定长度为2,那么“全文检索”就能分出“全文/文检/检索”三个词。基于字典比较法相对准确,系统内有一个记录有全部词语及其出现频率的字典,分词时按照某种策略依次取输入串的片断来查字典以确定它是不是一个词,进一步还可以利用词性等参数来进一步提高分析的准确性。

  固定长度切分法的最终检索结果并不象想象中的那么差,目前还是主要的实用算法。

  对于自然语言的语法和语义分析目前离实用还有点距离。

  2、全文检索产品

  目前比较流行的全文检索产品有:

  2.1 Apache Nutch/Lucene : http://lucene.apache.org

  作者:Doug Cutting cutting@apache.org

  版权协议:Apache License

  Doug Cutting 在全文检索领域有多年的研究和实践经验,他的部份论文和专利可见 http://lucene.sourceforge.net/publications.html

  Lucene是一个全文检索引擎,很好的实现前面提到的四个步骤所需功能,但是还不是一个完整的产品,并不提供索引管理界面、资料源的解析组件等。 Lucene已经开发多年,并在继续发展中。

  Nutch是一个全文检索产品,其核心部份还是Lucene,但提供了各种文件格式的分析器等大量外围功能。Nutch项目从Apache孵化器出来时间不长,其稳定性还有待观察。

  Lucene把分词的处理逻辑封装成一个对象,称为Analyzer,早期的Lucene中没有带中文分词的实现,目前在官方代码库里已经有两个可处理中文的分词对象,分别是:

  org.apache.lucene.analysis.cn.ChineseAnalyzer 和 org.apache.lucene.analysis.cjk.CJKAnalyzer。两者的区别在于,ChineseAnalyzer会将每个汉字分成一个词(si-gram),而CJKAnalyzer会将每两个相连的字分成一个词(bi-gram),前者是由大富翁论坛的创始人yysun(http://www.delphibbs.com/)开发的,后者作者是che dong(叫这个名字的人似乎不少,不确定是哪个)。1.4以后的版本里,StandardAnalyzer也能正确处理双字节字符了,实际效果也是单字切分。

  代码见:http://svn.apache.org/viewvc/lucene/java/trunk/contrib/analyzers/src/java/org/apache/lucene/analysis/

  基于词典的分词也有一些可供利用的资源,比如Erik Peterson的http://www.mandarintools.com/segmenter.html 、中科院计算所的ICTCLAS http://www.nlp.org.cn/project/project.php?proj_id=6 等。

  Lucene本身是用JAVA语言写的,现在有官方在 Lucene4C 支持c/c++,也有.Net(C#语言)实现的称为dotLucene或者Lucene.net(http://www.dotlucene.net/)

  2.2 Open Full Text Search engine http://openfts.sourceforge.net/

  作者:XWare http://www.astronet.ru/xware/

  版权协议:GPL V2

  这是一个基于PostgreSQL GIST特性的引擎,本身用perl/tcl实现,也提供python接口。

  2.3 商业产品

  ICTCLAS http://www.nlp.org.cn/project/project.php?proj_id=6

  海量 http://www.hylanda.com/

  TRS http://www.trs.com.cn/

  dtSearch http://www.dtsearch.com/

  FindinSite http://www.phdcc.com/fis/

 
基于lucene全文检索系统 基于struts2的全文检索系统,实现了文件上传和下载,并实现对上传的文件进行检索。 立即下载

相关推荐

lucene 全文检索系统 java源码 (信息检索技术)

lucene文档检索系统,java源码,可执行程序,支持pdf,doc,xls,ppt,html,txt。

全文检索系统

全文检索系统 什么是全文检索?答:在当前站点中的所有数据都将会被当做搜索的目标,通过一个关键字,可以把处于不同位置的相关数据都检索出来,以列表的方式进行显示。 普通情况下,根据关键字查询数据库,用模糊查询的方式:select * from ajia_item where title like ‘%电脑%’ ;这种模糊查询效率极低。 如果数据量非常大,需要提高查询效率,可以为title字段添加索引(...

lz1170063911的博客 1388

最新全文检索系统开源lucene资料大全(pdf格式)

最新全文检索系统开源lucene资料大全 pdf格式

全文检索系统技术架构及流程说明

技术架构图 索引的创建 根据文件来源,分为hadoop数据和oarcle数据两类。 (1) hadoop数据 在线网盘的文本文件和非文本文件都保存在hadoop的hdfs或hbase数据表中,推荐系统的网页文件也保存在hbase表中。这些文件通过tika、Jsoup等文本提取或文本解析工具将文件名、文本内容、网页文字内容等可索引数据解析出来保存在hbase表的对应字段中,然后通过ES-...

影子的博客 3622

Elasticsearch全文检索系统实现深入详解

题记学习ES的童鞋,都有一个开发一个类似百度的搜索引擎的想法。当然功能不一定是百度、360、谷歌传统的搜索引擎那么强大。但是,能实现基本的全文检索、指定类型的检索、评分高低优先级排序等等。那么问题来了,该如何实现?需要什么技术呢?1、效果图注:这张图是从网上down的,我已经实现了上述功能。 (不能截图,原因:你懂的!)2、前后端交互2.1 Elasticsearch服务端作为检索引擎,数据是

铭毅天下Elasticsearch 1万+

16款开源的全文搜索引擎

全文搜索引擎就是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户。许可证:Apache-2.0开发语言:JavaApache Lucene 是完全用 Java 编写的高性能、功能齐全的全文检索引擎架构,提供了完整的查询引擎和索引引擎、部分文本分析引擎。目的是为软件开发人员提供一个简单易用的工具包,以方便地在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。许可证:Apache-2.0。

Spontaneous_0的博客 5646

2011年底总结

这一年,负责了操作票、防误操作、配电保供电的V3.0的分析工作。到广州感受了一下与客户现场的压力。也觉得怎么把一问题委婉地表达给对方,让客户接受你的意见。怎样引导客户使用我们开发的系统。也能从客户的角度去思考他们提出的需求。只有彻底了解用户的需求才能保证我们的系统是他们想要的系统,是一个实用,好用的系统。 这一年,负责了操作票、防误操作、两票统计V2.0维护的分析设计工作。分析设计方案清楚,思路

registerluo的专栏 564

2011年底面试经历

2011年快要结束了,作为一个广州拓胜计算机服务有限公司201107班的一名学员,我在2011年12月8号毕业了。面试了好几家(实际上,我们在11月23号就开始了第一家的面试),写点面试心得。到今天为止,拿到的offer有软通动力,村村通,深圳赛意,好易,必视谷,逸飞。觉得深圳赛易的面试题是最新颖的(六个人组成一个团队,讨论出一个电梯优化方案,然后汇报给他们---...

weixin_34233679的博客 168

年底总结:2011年互联网的那些事

  1. 下一代互联网产业目标确定   2011年12月23日,×××召开常务会议,研究部署加快发展我国下一代互联网产业。会议决定,2013年年底前,开展国际互联网协议第6版网络(即IPv6)小规模商用试点,形成成熟的商业模式和技术演进路线。   2. CSDN天涯网等用户信息泄露   2011年12月21日,有“***”***国内知名程序员网站CSD...

weixin_34061042的博客 154

2011年底充电计划

2011年底充电计划 C/C++ 数据库 网络 Linux 等等

孟源的专栏 1405

中文检索系统

开发环境 vs2010 +server2008 R2 实现功能:管理员及用户登陆注册,文档上传,用户管理,文献管理,在线预览pdf文档,文献综合检索、字母检索、类别检索等。

晒晒2010年底写的2011年度计划

2011年度计划 1.       三四月份给妹妹们一人一台笔记本,大学生活,必须的。(2011-3 月份实现) 2.       四月份回家一趟,给南阳爸买一辆捷安特自行车,南阳妈置办一部手机,叶县爸妈留些生活费。(2011-4 月份实现,手机由培培在2011-11 月份实现) 3.       六月份之前实现叶县爸妈换车的愿望,计划是B70或者帝豪EC7。(2011-12月份实现,更新换

阳光灿烂的日子 1266

igQuery是Google于2011年底正式推出的一项Web服务

igQuery是Google于2011年底正式推出的一项Web服务,通过该服务,开发者可以使用Google的架构来运行SQL语句对超大型的数据库进行操作。即BigQuery可以对开发者上传的超大型数据进行直接交互式分析,开发者无需投资建立自己的数据中心。  今天,谷歌升级了BigQuery,带来了更强大的功能,比如更大的查询范围、新的数据类型、更灵活的表结构、更好的分析工具等。具体如下。

不再想当菜鸟了 812

中电信总工:我国将在2011年底出现IP地址短缺

由于互联网的快速发展,目前全球的IPv4地址还剩下不到10%,即4亿个,按照每年2亿的地址消耗速度,已经只能再支撑不到2年的时间。事实 上,IANA已经宣布对于IPv4地址的分配大约在2010年底结束,APNIC的地址分配大约在2012年3月乃至2011年底结束。我国2009年底 拥有IPv4地址2.32亿个,年增长率27%。 中国电信是世界地址消耗大户,根据自己的现有...

weixin_34259232的博客 306

ICTCLAS2011免费发布

ICTCLAS2011免费发布 http://hi.baidu.com/drkevinzhang/blog/item/149e29f8ace33e046c22eb45.html请注意,最新版本的下载地址为【注意,需要点击该链接打开页面之后,再行下载】:http:/...

125
上一篇: 搜索引擎翻页导航条页码计算方法
下一篇: 解析搜索引擎检索式的构建
idea888
博客等级 码龄20年 1粉丝 21原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值