`

搜藏: Lucene中英分词例子

阅读更多

一、分词功能介绍

分词模块对于搜索的重要性不言而喻。例如,没有分词时,搜索“和服”会出现“产品和服务”,搜索“海尔”会出现“海尔德”,搜索“华为”会出现“清华为何”。所以有必要给文本增加词的边界信息以提高检索精确度。

       猎兔全球首家推出支持Lucene的准确可用的中文分词模块。

 

二、执行方法

 

       可以在命令行执行分词测试:

 

>java "-Ddic.dir=D:/lg/work/SSeg/Dic" -classpath D:\JAVA\lib\lucene-1.4.jar;D:\JAVA\lib\seg.jar test.seg.result.CnTokenizer

 

       其中系统参数dic.dir指定数据文件路径,如:

"-Ddic.dir=D:/lg/work/SSeg/Dic"

 

       或者编写一个用于测试的Jsp页面。

 

三、调用接口

 

seg.result.CnTokenizer,该类继承org.apache.lucene.analysis.Tokenizer

 

一个简单的使用例子是:

 

import java.io.Reader;

import java.util.Set;

 

import org.apache.lucene.analysis.Analyzer;

import org.apache.lucene.analysis.LowerCaseFilter;

import org.apache.lucene.analysis.StopFilter;

import org.apache.lucene.analysis.TokenStream;

 

/**

 * @author luogang

 *

 */

public class CnAnalyzer extends Analyzer {

       //~ Static fields/initializers ---------------------------------------------

 

       /**

        * An array containing some Chinese words that are not usually

        * useful for searching.

        */

       private static String[] stopWords = {

              "www","","","","","",

              "","","","","","",

              "","","","","","",

              ""};

 

       //~ Instance fields --------------------------------------------------------

 

       /** stop word list */

       private Set stopSet;

 

       //~ Constructors -----------------------------------------------------------

 

       /**

        * Builds an analyzer which removes words in STOP_WORDS.

        */

       public CnAnalyzer() {

              stopSet = StopFilter.makeStopSet(stopWords);

       }

 

       /**

        * Builds an analyzer which removes words in the provided array.

        *

        * @param stopWords stop word array

        */

       public CnAnalyzer(String[] stopWords) {

              stopSet = StopFilter.makeStopSet(stopWords);

       }

 

       //~ Methods ----------------------------------------------------------------

 

       /**

        * get token stream from input

        *

        * @param fieldName lucene field name

        * @param reader input reader

        *

        * @return TokenStream

        */

       public final TokenStream tokenStream(String fieldName, Reader reader) {

              TokenStream result = new CnTokenizer(reader);

              return new StopFilter(result, stopSet);

       }

      

}

 

四、输出结果介绍

输出结果中的词性标注代码说明如下:

代码

名称

帮助记忆的诠释

Ag

形语素

形容词性语素。形容词代码为a,语素代码g前面置以A

a

形容词

取英语形容词adjective的第1个字母。

ad

副形词

直接作状语的形容词。形容词代码a和副词代码d并在一起。

an

名形词

具有名词功能的形容词。形容词代码a和名词代码n并在一起。

b

区别词

取汉字“别”的声母。

c

连词

取英语连词conjunction的第1个字母。

Dg

副语素

副词性语素。副词代码为d,语素代码g前面置以D

d

副词

adverb的第2个字母,因其第1个字母已用于形容词。

e

叹词

取英语叹词exclamation的第1个字母。

f

 

方位词

取汉字“方”

g

 

语素

 

绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。

h

 

前接成分 

取英语head的第1个字母。

i

 

成语

取英语成语idiom的第1个字母。

j

 

简称略语 

取汉字“简”的声母。

k

 

后接成分

 

l

习用语 

习用语尚未成为成语,有点“临时性”,取“临”的声母。

m

 

数词 

取英语numeral的第3个字母,nu已有他用。

Ng 

名语素 

名词性语素。名词代码为n,语素代码g前面置以N

n

 

名词

取英语名词noun的第1个字母。

nr 

人名

名词代码n和“人(ren)”的声母并在一起。

ns

 

地名

名词代码n和处所词代码s并在一起。

nt

 

机构团体

“团”的声母为t,名词代码nt并在一起。

nz 

其他专名 

“专”的声母的第1个字母为z,名词代码nz并在一起。

o

 

拟声词 

取英语拟声词onomatopoeia的第1个字母。

p

介词

取英语介词prepositional的第1个字母。

q

 

量词

 

取英语quantity的第1个字母。

r 

代词 

取英语代词pronoun的第2个字母,p已用于介词。

s 

处所词 

取英语space的第1个字母。

Tg

时语素 

时间词性语素。时间词代码为t,在语素的代码g前面置以T

t

时间词 

取英语time的第1个字母。

u

助词 

取英语助词auxiliary

Vg

 

动语素 

动词性语素。动词代码为v。在语素的代码g前面置以V

v

 

动词

取英语动词verb的第一个字母。

vd

副动词

直接作状语的动词。动词和副词的代码并在一起。

vn 

名动词 

指具有名词功能的动词。动词和名词的代码并在一起。

w

标点符号

 

x 

非语素字 

非语素字只是一个符号,字母x通常用于代表未知数、符号。

y

 

语气词 

取汉字“语”的声母。

z 

状态词 

取汉字“状”的声母的前一个字母。

 

五、分词效果

搜索“美的”,我们的结果是前22条全部是与“美的”品牌相关的新闻,百度的结果是前4条是相关的,中搜的结果是前10条中有4条是相关的。

分享到:
评论

相关推荐

    lucene-core-7.7.0-API文档-中文版.zip

    Maven坐标:org.apache.lucene:lucene-core:7.7.0; 标签:apache、lucene、core、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档...

    lucene中文分词工具包

    Lucene是一个高性能、全文检索库,而“lucene中文分词工具包”则为Lucene提供了一个专门针对中文分词的解决方案。这个工具包的核心是IKAnalyzer,它是一个开源且基于Java语言开发的轻量级中文分词工具,旨在提升中文...

    Lucene中文分词器包

    来自“猎图网 www.richmap.cn”基于IKAnalyzer分词算法的准商业化Lucene中文分词器。 1. 正向全切分算法,42万汉字字符/每秒的处理能力(IBM ThinkPad 酷睿I 1.6G 1G内存 WinXP) 2. 对数量词、地名、路名的...

    解密搜索引擎技术实战:Lucene in java(第2版)源码 dvd ppt

    《解密搜索引擎技术实战:Lucene in java(第2版)源码 dvd ppt》是一部深入探讨搜索引擎技术的著作,特别关注于使用Java实现的开源全文搜索引擎库——Lucene。本书结合了理论与实践,旨在帮助读者理解搜索引擎的...

    lucene.NET 中文分词

    **Lucene.NET 中文分词技术详解** Lucene.NET 是一个高性能、全文检索库,它是Apache Lucene项目在.NET平台上的实现。作为一个开源的搜索引擎框架,Lucene.NET为开发者提供了强大的文本搜索功能。而在处理中文文档...

    Lucene中文分词器组件

    2. **配置与初始化**:根据项目需求,配置分词器的参数,如自定义词典、分词模式等,然后在Lucene的Analyzer中实例化该分词器。 3. **索引建立**:在创建索引时,使用配置好的分词器对中文文本进行分词,生成分词后...

    lucene中文分词器(paoding解牛)

    《Lucene中文分词器——Paoding解牛详解》 在中文信息检索领域,分词是至关重要的一环,它能够将连续的汉字序列切割成具有独立意义的词语,为后续的索引和查询提供基础。Lucene作为Java最著名的全文搜索引擎库,其...

    lucene-join-7.2.1-API文档-中英对照版.zip

    Maven坐标:org.apache.lucene:lucene-join:7.2.1; 标签:apache、lucene、join、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,...

    Lucene-Demo.rar Lucene分词的demo

    在这个例子中,`pom.xml`列出了Lucene库作为项目的依赖,确保在编译和运行时能够正确加载所需的分词器和其他Lucene组件。 在实际使用Lucene进行分词时,首先需要了解其核心概念,如文档、字段、术语(tokens)和...

    Lucene3.0分词系统.doc

    Lucene3.0分词系统的核心在于理解和应用其分词原理,无论是对于英文还是中文文本,这一过程都是构建高效搜索引擎的基础。以下是对Lucene3.0分词系统中涉及的关键知识点的深入解析。 ### 英文分词原理 英文分词相较...

    lucene-queryparser-7.3.1-API文档-中英对照版.zip

    Maven坐标:org.apache.lucene:lucene-queryparser:7.3.1; 标签:apache、lucene、queryparser、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。...

    lucene-analyzers-smartcn-7.7.0-API文档-中英对照版.zip

    Maven坐标:org.apache.lucene:lucene-analyzers-smartcn:7.7.0; 标签:apache、lucene、analyzers、smartcn、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可...

    lucene-spatial3d-7.3.1-API文档-中英对照版.zip

    Maven坐标:org.apache.lucene:lucene-spatial3d:7.3.1; 标签:apache、lucene、spatial3d、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...

    lucene-backward-codecs-7.3.1-API文档-中英对照版.zip

    Maven坐标:org.apache.lucene:lucene-backward-codecs:7.3.1; 标签:apache、lucene、backward、codecs、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览...

    lucene-spatial-extras-7.3.1-API文档-中英对照版.zip

    Maven坐标:org.apache.lucene:lucene-spatial-extras:7.3.1; 标签:apache、lucene、spatial、extras、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览...

    lucene-core-6.6.0-API文档-中英对照版.zip

    Maven坐标:org.apache.lucene:lucene-core:6.6.0; 标签:core、apache、lucene、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...

    lucene-spatial-extras-7.2.1-API文档-中英对照版.zip

    Maven坐标:org.apache.lucene:lucene-spatial-extras:7.2.1; 标签:apache、lucene、spatial、extras、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览...

    lucene-queryparser-6.6.0-API文档-中英对照版.zip

    Maven坐标:org.apache.lucene:lucene-queryparser:6.6.0; 标签:queryparser、apache、lucene、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览...

    lucene-spatial3d-6.6.0-API文档-中英对照版.zip

    Maven坐标:org.apache.lucene:lucene-spatial3d:6.6.0; 标签:spatial3d、apache、lucene、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档...

    lucene-spatial-6.6.0-API文档-中英对照版.zip

    Maven坐标:org.apache.lucene:lucene-spatial:6.6.0; 标签:apache、lucene、spatial、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...

Global site tag (gtag.js) - Google Analytics