一、分词功能介绍
分词模块对于搜索的重要性不言而喻。例如,没有分词时,搜索“和服”会出现“产品和服务”,搜索“海尔”会出现“海尔德”,搜索“华为”会出现“清华为何”。所以有必要给文本增加词的边界信息以提高检索精确度。
猎兔全球首家推出支持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个字母,n,u已有他用。
|
Ng
|
名语素
|
名词性语素。名词代码为n,语素代码g前面置以N。
|
n
|
名词
|
取英语名词noun的第1个字母。
|
nr
|
人名
|
名词代码n和“人(ren)”的声母并在一起。
|
ns
|
地名
|
名词代码n和处所词代码s并在一起。
|
nt
|
机构团体
|
“团”的声母为t,名词代码n和t并在一起。
|
nz
|
其他专名
|
“专”的声母的第1个字母为z,名词代码n和z并在一起。
|
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条是相关的。
分享到:
相关推荐
Maven坐标:org.apache.lucene:lucene-core:7.7.0; 标签:apache、lucene、core、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档...
Lucene是一个高性能、全文检索库,而“lucene中文分词工具包”则为Lucene提供了一个专门针对中文分词的解决方案。这个工具包的核心是IKAnalyzer,它是一个开源且基于Java语言开发的轻量级中文分词工具,旨在提升中文...
来自“猎图网 www.richmap.cn”基于IKAnalyzer分词算法的准商业化Lucene中文分词器。 1. 正向全切分算法,42万汉字字符/每秒的处理能力(IBM ThinkPad 酷睿I 1.6G 1G内存 WinXP) 2. 对数量词、地名、路名的...
《解密搜索引擎技术实战:Lucene in java(第2版)源码 dvd ppt》是一部深入探讨搜索引擎技术的著作,特别关注于使用Java实现的开源全文搜索引擎库——Lucene。本书结合了理论与实践,旨在帮助读者理解搜索引擎的...
**Lucene.NET 中文分词技术详解** Lucene.NET 是一个高性能、全文检索库,它是Apache Lucene项目在.NET平台上的实现。作为一个开源的搜索引擎框架,Lucene.NET为开发者提供了强大的文本搜索功能。而在处理中文文档...
2. **配置与初始化**:根据项目需求,配置分词器的参数,如自定义词典、分词模式等,然后在Lucene的Analyzer中实例化该分词器。 3. **索引建立**:在创建索引时,使用配置好的分词器对中文文本进行分词,生成分词后...
《Lucene中文分词器——Paoding解牛详解》 在中文信息检索领域,分词是至关重要的一环,它能够将连续的汉字序列切割成具有独立意义的词语,为后续的索引和查询提供基础。Lucene作为Java最著名的全文搜索引擎库,其...
Maven坐标:org.apache.lucene:lucene-join:7.2.1; 标签:apache、lucene、join、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,...
在这个例子中,`pom.xml`列出了Lucene库作为项目的依赖,确保在编译和运行时能够正确加载所需的分词器和其他Lucene组件。 在实际使用Lucene进行分词时,首先需要了解其核心概念,如文档、字段、术语(tokens)和...
Lucene3.0分词系统的核心在于理解和应用其分词原理,无论是对于英文还是中文文本,这一过程都是构建高效搜索引擎的基础。以下是对Lucene3.0分词系统中涉及的关键知识点的深入解析。 ### 英文分词原理 英文分词相较...
Maven坐标:org.apache.lucene:lucene-queryparser:7.3.1; 标签:apache、lucene、queryparser、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。...
Maven坐标:org.apache.lucene:lucene-analyzers-smartcn:7.7.0; 标签:apache、lucene、analyzers、smartcn、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可...
Maven坐标:org.apache.lucene:lucene-spatial3d:7.3.1; 标签:apache、lucene、spatial3d、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...
Maven坐标:org.apache.lucene:lucene-backward-codecs:7.3.1; 标签:apache、lucene、backward、codecs、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览...
Maven坐标:org.apache.lucene:lucene-spatial-extras:7.3.1; 标签:apache、lucene、spatial、extras、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览...
Maven坐标:org.apache.lucene:lucene-core:6.6.0; 标签:core、apache、lucene、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...
Maven坐标:org.apache.lucene:lucene-spatial-extras:7.2.1; 标签:apache、lucene、spatial、extras、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览...
Maven坐标:org.apache.lucene:lucene-queryparser:6.6.0; 标签:queryparser、apache、lucene、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览...
Maven坐标:org.apache.lucene:lucene-spatial3d:6.6.0; 标签:spatial3d、apache、lucene、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档...
Maven坐标:org.apache.lucene:lucene-spatial:6.6.0; 标签:apache、lucene、spatial、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...