本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7591217
建立时间:2006年5月29日




[Apache(jakarta)]向Lucene增加中文分词功能 
软件技术

lhwork 发表于 2006/12/14 11:41:14

一、分词功能介绍 分词模块对于搜索的重要性不言而喻。例如,没有分词时,搜索“和服”会出现“产品和服务”,搜索“海尔”会出现“海尔德”,搜索“华为”会出现“清华为何”。所以有必要给文本增加词的边界信息以提高检索精确度。        猎兔全球首家推出支持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条是相关的。


阅读全文(3801) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.379 second(s), page refreshed 144768862 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号