- 浏览: 389585 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (215)
- ubuntu (27)
- 虚拟机 (13)
- 数据库 (29)
- JAVA (40)
- 搜索 (23)
- 开发工具 (2)
- 产品 (2)
- 工具 (1)
- 应用服务器 (5)
- linux (17)
- log (1)
- 多线程 (3)
- 异常 (1)
- shell (6)
- 12306 ;互联网 (1)
- 持续集成&Hudson (4)
- js (1)
- JAVA OR-Map (1)
- 漏洞 (1)
- svn (1)
- MAVEN (3)
- 架构 (1)
- windows (1)
- json (1)
- web (3)
- jenkins (2)
- iptables (2)
- JAVA ssh (0)
- 项目管理 (1)
- tomcat (1)
- 安全 (1)
- 数据库 mysql (1)
- 性能 (1)
最新评论
-
sbwfgihc:
怎么用的啊,
<转>mysql 树查询语句 -
panghaoyu:
实现一个智能提示功能需要ajax、数据库、jsp/php、算法 ...
<转>Solr Suggest实现搜索智能提示 -
songsove:
请问您qq多少
solr 对拼音搜索和拼音首字母搜索的支持 -
panghaoyu:
实现一个智能提示功能需要ajax、数据库、jsp/php、算法 ...
<转>Solr Suggest实现搜索智能提示 -
norain1988:
这样就可以实现相关搜索了吗
solr 百度相关搜索类似功能的实现
Paoding分词过程中词典是相关重要的一环,其特性主要有:
(1)多词典支持,词典功能区分;
(2)词典加载入内存使用,使用预加载和Lazy Mode模式;
(3)根据分词模式,对词典进行二次编译;
(4)词典变更侦测,当词典文件发生变化时,可以重新加载词典。
1.1 词典类型庖丁中有多种词典,每一种词典在分词过程中都不有同的意义。主要的词典及其功能如下:
(1)VocabularyDictionary:分词主要的词典,最后构建索引的索引项(term\dictionary);
(2)ConfucianFamilyNamesDictionary:中文姓氏词典,用于识别特殊词;
(3)NoiseCharactorsDictionary:停止单字词典,该词典中的词不用于构建索引项;
(4)NoiseWordsDictionary:停止词语词典,该词典中的词不用于构建索引项;
(5)UnitsDictionary:计量单位词典,该词典中的词主要是一些计量单位。
paoding将多个词典进行组合进行使用。
1.2 词典加载流程
1) PaodingAnalyzer初始化时需要构建Paoding对象;
2) 先由PaodingMaker的readUnCompiledDictionaries调用FileDictionaries;
3) 获取各种属性和词典编译类;
4) 读取未编译词典属性、编译词典(FileDictionaries的一些方法中才真正的加载了词项、CompiledFileDictionaries中调用读取词项);
5) 使用编译后的词典;
6) 为词典设置变更监听器。
1.3 词典文件格式词典文本一般为纯文本格式,notepad将文件保存为unitcode或utf-8时会在文件开头保存bom字符串,notepad根据是否有bom来识别该文件是否是utf-8编码存储的(详情参见 ref:http://www.w3.org/International/questions/qa-utf8-bom)。而庖丁字典需要将这个字符从词典中去掉。
词典内格式是一行一个词。
1.4 读取词典文件如果需要编译,那么读取词典文件是在词典编译前进行。如果不需要编译,则先不加载。
FileDictionaries的一些方法中才真正的加载了词项、CompiledFileDictionaries中调用读取词项。
词典文件读取采用了Lazy Mode,即需要的时候再加载。
1.5 词典编译
(1)根据系统参数配置,调用相应的词典编译类,共有两种一种是MostWordsModeDictionariesCompiler类,即最大词量分词方式,另一种是SortingDictionariesCompiler这个是按词的字顺编译的方式;
(2)判断(vocabularyDictionary)词典是否应该编译:检查文件夹中是否在这个文件:.compiled/xxx/.metadata,从中读取词典的元数据,如果编译类、摘要、版本相同,说明经过了编译,则不需要编译;其他情况都需要编译。
(3)最小切分分词词典编译:将词典中的每一个词当作一个可以被分词的字符串,如果该词还可以继续被完全分解为多个词,那么编译后不记录该词。程序分词某个词后将其首尾位置之间的位置都置为true,如果一个词的所有位置都为true那么说明该词能再被完全分解为多词,否则可作为独立词。
(4)SortingDictionariesCompiler其实就是按词在词典中的原序来进行编译,基本不再做其他处理。
(5)readCompliedDictionaries方法返回庖丁中的编译后的多种词典集合。
1.6 词典变更侦测
(1)变更侦测原理
在创建Paoding时初始化Dictionaries,然后启动Detector利用线程驻守,定期去检测;每一个字典都有一个快照,记录下当前快照,检测时将最新快照与当前快照比对,如果发现不同,那么说明有更新,则触发变更监听DiffListener。更新有三种情况:修改、删除、添加。发现更新后,监听器刷新词典,然后重新为各个Knife设置词典。
(2)快照原理
快照主要记录了如下信息:
// 此次快照版本,使用时间表示
private long version;
// 根地址,绝对地址,使用/作为目录分隔符
private String root;
// String为相对根的地址,使用/作为目录分隔符
private Map/*<String, InnerNode>*/ nodesMap = new HashMap/*<String, InnerNode>*/();
//内部节点
private InnerNode[] nodes;
//checksum of this snapshot
private String checksum;
快照刷新方法:获取当前时间作为version,根路径作为root,内部所有的文件作为nodes,然后<相对根的地址,node>作为nodesMap;
快照摘要:采用lazy mode获取快照摘要;
快照对比原理:对比version\root和新增、修改、删除的词典文件(而不是词典中的词)。
发表评论
-
百度GOOGLE的用户鼠标行为分析<转>
2012-08-29 09:37 1529转自:http://www.20ju.com/conte ... -
lucene 一些性能调优建议
2012-08-22 16:12 5580lucene 排序 Lucene默认按照相关度 ... -
<转>庖丁解牛分词之自定义词库[自定义词典]
2012-07-03 10:21 934原链接: http://hi.baidu.com/stone_ ... -
solr 百度相关搜索类似功能的实现
2012-06-27 16:26 5788这个功能的实现有几种不同的思路。 大概半个月前,我在网 ... -
solr 索引库同步数据库
2012-06-27 14:01 5667对于拼音和拼音首字母的支持,当你在搜商品的时候,如果想输 ... -
solr 对拼音搜索和拼音首字母搜索的支持
2012-06-27 13:52 9117对于拼音和拼音首字母的支持,当你在搜商品的时候,如果想输 ... -
<转>Solr Suggest实现搜索智能提示
2012-06-27 10:15 13967智能提示简介 搜索的智能提示目前是各大搜索的标配应用, ... -
IK的整个分词处理过程
2012-06-26 14:25 11599IK的整个分词处理过 ... -
Solr的检索运算符
2012-06-21 14:47 4252“:” 指定字段查指定值,如返回所有值*:*² “?” 表示 ... -
Solr 学习(5) —- Solr查询语法和参数
2012-06-21 14:25 11652、查询语法 solr的一些查询语法 ... -
Apache Solr schema.xml及solrconfig.xml文件中文注解
2012-06-21 10:55 1211一、字段配置(schema)schema.xml位于so ... -
<转>LUCENE3.0 自学吧 4 TermDocs
2012-06-07 22:13 1249利用TermDocs也是可以得到一些有用的结果。。。代码 ... -
<转>Lucene里经常被聊到的几个话题
2012-06-07 21:54 1279lvpei.cnblogs.com.自己总结的Lucen ... -
<转>浅谈文档索引普遍原理<笔记>
2012-06-07 21:49 1025--lvpei.cnblogs.com 搜索引擎普遍采 ... -
Lucene中Field类很重要
2012-06-07 21:46 8264org.apache.lucene.demo.Index ... -
Lucene架构简单分析
2012-06-06 15:30 1668Lucene简介Lucene 是一个基 ... -
<转>lucene3.0中Field.Index, Field.Store,Field.TermVector详解
2012-06-06 14:49 926lucene在doc.add(new Field(&quo ... -
<转>用于Lucene的各中文分词比较
2012-06-05 09:58 5620对几种中文分析器,从分词准确性和效率两方面进行比较。分析器依次 ... -
Lucene3参考资料
2012-06-05 09:46 1040http://wenku.baidu.com/view/706 ... -
lucene索引word/pdf/html/txt文件及检索(搜索引擎)
2012-06-04 14:59 993因为lucene索引的时候是 ...
相关推荐
《Lucene与Paoding分词在索引构建中的应用》 Lucene,作为一款开源的全文检索库,被广泛应用于各种信息检索系统中,而Paoding分词则是针对中文进行高效精准分词的工具,两者结合能显著提升中文文本检索的效率和准确...
由于庖丁官方目前提供可下载尚不支持Lucene 3.0以上版本。因此作者对paoding进行重新编译,使其与最新Lucene 3.0.1版本适用。 Latest paoding 3.0.1 for lucene 3.0.1 使用说明: 先下载2.0.4的版本(h t t p : / ...
可以从官方网站或者第三方资源站点下载paoding分词的最新版本,例如`paoding-analysis-2.0.4-alpha2.zip`和`Paoding分词.zip`。 3. **解压与配置** 解压缩下载的文件,将解压后的目录添加到你的项目类路径...
标题“Paoding中文分词”指的是一个专门用于处理中文文本的分词工具,名为“庖丁解牛中文分词”。在自然语言处理领域,分词是预处理的重要步骤,它将连续的汉字序列切分成有意义的词汇单元,便于后续的文本分析和...
在压缩包文件名称“paoding-analysis-2.0.0”中,“paoding”是庖丁分词的英文名称,“analysis”可能指的是其分析功能,尤其是中文文本分析。“2.0.0”表示这是该软件的第二个主要版本,版本号中的“0.0”可能表示...
"庖丁"是它的别名,来源于中国古代庖丁解牛的故事,寓意其在处理复杂中文文本时,能够如庖丁解牛般游刃有余,精准高效地进行分词。 中文分词是自然语言处理(NLP)中的关键步骤,因为中文没有明显的空格来区分单词...
5. `dic`: 这个目录可能包含了分词词典,词典是分词器的基础,包含了大量的词汇及其相关信息,用于识别和处理文本中的词汇。 6. `src` 和 `classes`: 这两个目录分别存放源代码和编译后的字节码文件,对于深入理解...
Paoding分词器是一款专为Lucene设计的高性能、高精度的中文分词组件,它在2.0.4-alpha2这个版本中,不仅提供了基础的分词功能,还引入了多种优化策略,使得在复杂语境下的分词效果更为精准。Paoding这个名字来源于...
"paoding-analysis-2.0.4-beta"是庖丁分词的一个特定版本,其中"2.0.4"代表该版本的主次版本号,"beta"则表示这是一个测试版,可能包含未解决的问题或功能不完善的地方,开发者通常会发布正式版之前先推出测试版,...
"庖丁解牛"分词器采用了先进的算法和技术来解决这个问题,包括基于词典的匹配、上下文信息分析以及统计学习方法等,使得它在处理中文文本时表现出了较高的准确性和效率。 "Lucene"是一个流行的开源全文搜索引擎库,...
庖丁(PaoDing)是一款专为Java平台设计的中文文本分词工具,它在中文文本处理领域具有较高的性能和准确性。分词是自然语言处理中的基础步骤,对于中文而言,由于没有明显的空格来区分单词,因此需要通过特定算法将...
Paoding's Knives 中文分词具有极 高效率 和 高扩展性 。引入隐喻,采用完全的面向对象设计,构思先进。 高效率:在PIII 1G内存个人机器上,1秒 可准确分词 100万 汉字。 采用基于 不限制个数 的词典文件对文章...
Paoding Analysis(也称为“庖丁分析”)是一款由李明开发的高性能Java分词系统,它旨在解决中文文本处理中的分词问题。Paoding Analysis的特点在于其高效率和自适应性,能够根据不同的应用场景进行定制化配置,满足...
1. Paoding(庖丁)分词器: Paoding是一款高性能的中文分词器,设计目标是提供简单易用、快速准确的分词服务。它采用了高效的正向最大匹配算法,并且支持自定义词典,可以灵活地处理新词汇。Paoding还提供了对UTF-...
1. **引入库**:首先,我们需要将`paoding_lucene3_0530.jar`文件添加到项目的类路径中,这个库包含了庖丁解牛分词器的实现。 2. **配置字典**:利用`dic`目录下的字典文件,可以定制化分词器的词典,以适应特定...
《庖丁分词:全文搜索的关键技术解析》 在信息技术高速发展的今天,全文搜索作为信息检索的重要手段,已经成为各类网站、应用不可或缺的功能。而庖丁分词,作为一款优秀的中文分词工具,对于全文搜索的效率和准确性...
本文的编写目的是为了帮助读者理解和掌握庖丁解牛分词算法的基本原理,以及其实现过程,从而能够应用到实际的自然语言处理项目中。 1.2 程序框架 庖丁解牛算法的程序框架包括预处理、分词策略、词典管理和后处理等...
Paoding Analysis(庖丁分析)是由中国开发者开发的一个高效、灵活且功能强大的中文分词工具,它专门为 Lucene 设计,提供了对中文文本的智能分词、词性标注和关键词提取等功能。在 "paoding-analysis3.0_for_lucene...
“庖丁分析”(Paoding Analysis),又称为“庖丁分词”,是由李明创建的一个开源项目,它在处理中文文本时,能精准地将句子拆分成一个个独立的词汇,这对于信息检索、文本挖掘、情感分析等应用场景至关重要。...