Archive for 十月, 2006



作者: 车东 Email: chedongATbigfoot.com/chedongATchedong.com 写于:2002/08 最后更新: 09/09/2006 17:09:05 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 http://www.chedong.com/tech/lucene.html 关键词:Lucene java full-text search engine Chinese word segment  内容摘要: Lucene是一个基于Java的全文索引工具包。 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史 全文检索的实现:Luene全文索引和数据库索引的比较 中文切分词机制简介:基于词库和自动切分词算法的比较 具体的安装和使用简介:系统结构介绍和演示 Hacking Lucene:简化的查询分析器,删除的实现,定制的排序,应用接口的扩展 从Lucene我们还可以学到什么 基于Java的全文索引/检索引擎——Lucene Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。 Lucene的作者:Lucene的贡献者Doug Cutting是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎(Apple的Copland操作系统的成就之一)的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些INTERNET底层架构的研究。他贡献出的Lucene的目标是为各种中小型应用程序加入全文检索功能。 Lucene的发展历程:早先发布在作者自己的www.lucene.com,后来发布在SourceForge,2001年年底成为APACHE基金会jakarta的一个子项目:http://jakarta.apache.org/lucene/ 已经有很多Java项目都使用了Lucene作为其后台的全文索引引擎,比较著名的有: Jive:WEB论坛系统; Eyebrows:邮件列表HTML归档/浏览/查询系统,本文的主要参考文档“TheLucene search engine: Powerful, flexible, and free”作者就是EyeBrows系统的主要开发者之一,而EyeBrows已经成为目前APACHE项目的主要邮件列表归档系统。 Cocoon:基于XML的web发布框架,全文检索部分使用了Lucene Eclipse:基于Java的开放开发平台,帮助部分的全文索引使用了Lucene 对于中文用户来说,最关心的问题是其是否支持中文的全文检索。但通过后面对于Lucene的结构的介绍,你会了解到由于Lucene良好架构设计,对中文的支持只需对其语言词法分析接口进行扩展就能实现对中文检索的支持。 全文检索的实现机制 Lucene的API接口设计的比较通用,输入输出结构都很像数据库的表==>记录==>字段,所以很多传统的应用的文件、数据库等都可以比较方便的映射到Lucene的存储结构/接口中。总体上看:可以先把Lucene当成一个支持全文索引的数据库系统。 比较一下Lucene和数据库: Lucene 数据库 索引数据源:doc(field1,field2…) doc(field1,field2…) \ indexer / _____________ | Lucene [...]

前几天读到google研究员吴军的数学之美系列篇,颇有感触。而恰好自己前段时间做了个基于统计语言模型的中文切分系统的课程项目,于是乎,帖出来与大家共同学习。 分词技术在搜索引擎,信息提取,机器翻译等领域的重要地位与应用就不敖述了。步入正题:)   <!–[if !supportLists]–>一、  <!–[endif]–>项目概述   本切分系统的统计语料是用我们学校自己开放的那部分,大家可以在 这里 下载,中文字符约184万,当然这都是已切分好了的,可以用此建立一个比较小的语料库。本系统我主要分下面四个步骤完成: <!–[if !supportLists]–>1、  <!–[endif]–>语料预处理 <!–[if !supportLists]–>2、  <!–[endif]–>建立 2-gram(统计二元模型) <!–[if !supportLists]–>3、  <!–[endif]–>实现全切分 <!–[if !supportLists]–>4、  <!–[endif]–>评估测试 下面我分别对这四个方面一一道来。   <!–[if !supportLists]–>1、  <!–[endif]–>语料预处理     下载的已切分的语料都是形如“19980131-04-012-001/m  现实/n  的/u  顿悟/vn  却/d  被/p  描/v  出/v  形/Ng  来/v  。/w ” ,有的前面还保留了日期编号,因为这些切分语料的来源是人民日报。预处理主要是按标点符号分句,句子简单定义为( 。?! : ;)这五种标点符号结尾的词串,句子首尾分别添加<BOS>和<EOS>这两个表示句子开始和结束的标记,这在2-gram建模时要用的,后面会提到。处理过程中,忽略词类信息和前面的日期信息,因为我这个切分系统不考虑词类标注。如前面这句预处理后应该为下面形式 “<BOS>现实 的 顿悟 却 被 描 出 形 来 [...]

<?php /*  *创建于 : 2006-9-24  *作者   :qk31(qk31cn@gmail.com)  *功能   :对于date函数的封装  *调用 :  require_once(‘class_date.php’);    $dateClass=new dateClass();    $result=$dateClass->setCompareDate(’1999-09-09 00:00:00′);  */    class dateClass  {     var $date_now=””;   var $date_compare=””;      function dateClass()   {    $this->date_now=date(“Y-m-d H:i:s”);   }     function setCompareDate($compareDate)   {    $this->date_compare=$compareDate;   } /*  * 函数:compareDay()  * 作用:比较两个日期相差天数  * */     function compareDay()   {    $date_now=explode(“-”,$this->date_now);    $date_compare=explode(“-”,$this->date_compare);    $temp=mktime(0,0,0,$date_now[1],$date_now[2],$date_now[0]);    $temp_dst=mktime(0,0,0,$date_compare[1],$date_compare[2],$date_compare[0]);    $compareDate=round(($temp_dst-$temp)/3600/24);    return $compareDate;      } [...]

<?php /* 作者: qk31 作用:数据库数据生成xml文件进行简单的封装 */ class xmlCreate { var $msg; var $encode; var $sumMsg; function xmlCreate($encode,$array,$sum) { $this->setXmlHeader($encode);//设置编码 $this->setSumMsg($sum); //设置记录总数 $this->setMsg($array); //设置留言信息处理 } /*设定xml的编码和头部*/ function setXmlHeader($encode) { header(“Content-Type:text/html;charset=$encode”); header(“Content-type: text/xml”); $this->msg.=”<?xml version=\”1.0\” encoding=\”$encode\”?>”; } /*设定生成xml文件*/ function setMsg($array) { $this->msg.=”<main>”; $this->msg.=”<nums>”.$this->sumMsg.”</nums>”; $this->xmlAddTag($array); $this->msg.=”</main>”; } /*为数据库字段添加xml标签*/ function xmlAddTag($array) { $i=1; foreach ($array as $row) { $this->msg.=”<row [...]


About this blog

QK31欢迎你的到来.

Photostream

search_extends

 

2006年十月
« 八   十一 »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

23
Unique
Visitors
Powered By Google Analytics

分类目录

标签云