`
sealbird
  • 浏览: 586556 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

CLucene 中文分词

阅读更多
CLucene 中文分词
clucene是c++版的lucene,可从CLucene - a C++ search engine  http://sourceforge.net/projects/clucene/下载得到代码和最近研究信息。

我在看了《lucene in arction》一周之后,在7月中旬正式开始调研clucene,由于其中的中文不能再demo示例中检索得到,在网上收集clucene中文分词相关资料,发现主要有三个方面:

1、字符编码集问题:

项目设置:必须设置为Use Unicode Character Set。
因为使用ANSI时,汉字存在与其他语言编码重叠的问题,在分析文本时,很难判断一个char是否是半个汉字,或者是前半个汉字还是后半个汉字。同时,CLucene对UCS2编码能够提供支持,所以VC项目直接设置为Use Unicode Character Set。

对应的字节函数改变:\src\CLucene\util\Misc.cpp,line 76的Misc::_cpycharToWide函数
这个函数是CLucene中用来将char字符串转换为wchar_t字符串,但原有代码中的转化方式是不考虑编码,因此对汉字由ANSI到UCS2转换会失效,需要修改成使用windows API的MultiByteToWideChar函数

2、中文分词添加:

主要有2个方向:1)、 \src\CLucene\analysis\standard\StandardTokenizer.cpp
这个类实现了最基本的切分文本功能,包含英文分词、数字提取。虽然有包含CJK单字提取,但是不够完善。直接完善这里面的StandardTokenizer::ReadCJK处理中文函数;2)、添加一个新的 ChineseTokenizer.cpp处理中文分词问题;3)、中文分词方法:2分法,基于词典匹配法等,根据需要确定合适的方法,并不是越复杂越好。

我花了大约2周时间去跟踪clucene里面的索引建立和查询过程,最终只改了几行代码实现了简单的2分词法,实现了中文检索。

详细的网址信息:

http://hi.baidu.com/developer_chen/blog/item/8c4c62dfc5a3a7124954039c.html
http://hi.baidu.com/_1_1_1_1/blog/item/be1fe41f9fbf0f62f724e475.html
http://www.cnblogs.com/sunli
下面这篇文章非常好,阐述了系统架构和部分对象层次结构,有利于大家对lucene的深入理解,推荐给大家。

开放源代码的全文检索引擎Lucene
http://blog.csdn.net/heiyeshuwu/archive/2006/04/14/662805.aspx对于中文分词,实际上一般需求都比较简单,不需要太复杂,大家可随意尝试。对于大型 系统来说,毕竟速度是非常重要的。


cy163
关注 - 1
粉丝 - 3
关注博主0 0 0
(请您对文章做出评价)« 上一篇:下载 Clucene PPC RedHat 各种版本 http://www.cnblogs.com/cy163/archive/2008/06/05/1214672.html  的地址
» 下一篇:Clucene C++编码转换 http://www.cnblogs.com/cy163/archive/2008/06/05/1214736.html
分享到:
评论

相关推荐

    clucene中文处理

    总的来说,"clucene中文处理"是一个综合性的任务,它涵盖了中文分词、索引构建、查询解析、编码处理等多个技术领域。开发者需要对C++编程、自然语言处理、信息检索等领域有深入的理解,才能有效地实现和优化Clucene...

    CLucene

    1. **分词和分析**:CLucene内建了对文本的分词处理,支持多种语言的分词器。它提供了Tokenization(分词)和Analyzer(分析器)的概念,允许用户自定义文本处理流程,以适应不同语言和应用场景。 2. **索引构建**:...

    C++搜索引擎Clucene源码

    在Clucene的源码中,我们可以看到这些组件的具体实现,例如`TokenStream`接口定义了分词流的行为,`Analyzer`类负责整个分词过程,`IndexWriter`类处理索引的建立和更新,`IndexReader`用于读取索引,`QueryParser`...

    搜索引擎 CLucene 源代码

    4. **分词支持**:CLucene 内置了对多种语言的分词支持,可以处理英文、中文等不同语言的文本。 5. **索引和存储**:CLucene 可以创建倒排索引,将文本数据转化为可快速查询的结构。同时,它还提供了对原始数据的...

    C++搜索引擎 CLucene源码

    4. **文本分析**:CLucene支持多种语言的文本分析,包括分词、去除停用词、词干化等,这些预处理步骤对于提高搜索精度至关重要。 5. **倒排索引**:CLucene采用了倒排索引这一高效的数据结构,通过记录每个词在哪些...

    Clucene库以及自己封装好的Clucene方法库

    1. **建立索引**:Clucene允许开发者对大量文本数据进行索引,这个过程包括分词、建立倒排索引等步骤。分词是将文本拆分成独立的词语,倒排索引则是将每个词语对应的文档位置信息存储起来,以便于快速查找。 2. **...

    luceneDemo_pure1aa_DEMO_clucene_

    1. **索引创建**:DEMO首先会读取文本数据,使用Clucene的Analyzer进行分词,然后创建IndexWriter对象,将分词后的文档写入索引。 2. **索引优化**:创建索引后,可能需要进行优化操作,以提高检索效率。这通常通过...

    CLucene 最新源码

    1. **分词器(Tokenizer)**:CLucene提供了一系列的分词器,如StandardAnalyzer,用于将输入的文本分解成可搜索的关键词。分词器可以根据不同的语言进行定制,以适应各种文本处理需求。 2. **文档(Document)**:...

    CLucene源代码-Lucene的C++版本

    分析器负责分词、去除停用词、词形还原等任务,以确保索引的质量。CLucene和CLucene都支持自定义分析器,可以根据具体需求调整分析过程。 3. **文档(Document)**:在CLucene中,文档是信息的基本单元,可以包含多...

    clucene源码

    大名鼎鼎的clucene,是lucene的c++ 版; CLucene README ============== ------------------------------------------------------ CLucene is a C++ port of Lucene. It is a high-performance, full-featured ...

    lucene及分词工具说明

    ### Lucene及分词工具说明 #### 一、概述 Lucene是一款高性能的全文...通过以上内容,我们可以了解到如何使用CLucene支持中文处理以及如何利用分词工具进行中文文本的分词。这对于中文搜索引擎的开发具有重要的意义。

    clucene2.3.3.4源码 windows下vs2013工程

    《CLucene 2.3.3.4源码在Windows环境下使用Visual Studio 2013的工程实践》 CLucene是一款开源的全文搜索引擎库,它基于C++编写,为开发者提供了一种高效、可扩展的全文检索解决方案。在本文中,我们将详细探讨如何...

    clucene-0.9.10.tar

    1. 分词和分析:Clucene能够对输入的文本进行分词处理,去除停用词,进行词干化等,以便于建立有效的索引。 2. 倒排索引:这是Clucene的核心,它将每个单词映射到包含该词的文档列表,使得搜索操作可以在极短的时间...

    CLUCENE资料合集+代码源码

    这是我学CLUCENE时期整理出来的几个不错的资料,我觉得里面总有一款会适合你,而且你所需要知道的技术里面基本上都是涵盖的,所以可以当作教材或者参考手册使用。(里面有CLUCENE,可以用的)

    Clucene库以及自己封装的方法库(补充)——对应的头文件和.lib索引文件

    Clucene库是一个开源的全文搜索引擎库,它是Lucene的一个C++版本,旨在提供与Java Lucene相似的功能。在IT行业中,全文搜索引擎对于处理大量文本数据的检索和查询至关重要,尤其在内容管理和信息检索系统中应用广泛...

    搜索引擎开源代码Clucene-core-0.9.21

    1. **分词和索引**:Clucene使用了高效的分词算法,将文本分解成有意义的单词或短语(称为术语),并创建一个索引,使得可以快速查找包含特定术语的文档。 2. **倒排索引**:这是搜索引擎最核心的数据结构。Clucene...

    CLucene结构文档

    CLucene类结构文档 内嵌源代码及各类关系图

    clucene-core-2.3.3.4 cmake可生产vs2005工程

    标题"clucene-core-2.3.3.4 cmake可生产vs2005工程"指的是一个开源全文搜索引擎库Clucene的特定版本2.3.3.4,它已经配置为使用CMake构建系统,能够生成适用于Visual Studio 2005的工程文件。CMake是一个跨平台的开源...

    clucene-core-2.3.3.4

    《关于Clucene-core-2.3.3.4在Visual Studio 2005环境下的构建与修改》 Clucene-core-2.3.3.4是一款基于C++的全文搜索引擎库,它是Lucene的C++版本。Lucene是Java语言实现的一个全文检索库,而Clucene则为那些更...

Global site tag (gtag.js) - Google Analytics