登山之道
C++博客
::
首頁
::
新隨筆
:: :: ::
管理
Lucene入門級(jí)筆記五 -- 分詞器,使用中文分詞器,擴(kuò)展詞庫,停用詞
Posted on 2011-04-17 19:25
Kevin_Zhang
閱讀(3482)
評(píng)論(1)
編輯
收藏
引用
所屬分類:
搜索引擎
1
. 常見的中文分詞器有:極易分詞的(MMAnalyzer) 、
"
庖丁分詞
"
分詞器(PaodingAnalzyer)、IKAnalyzer 等等。其中 MMAnalyzer 和 PaodingAnalzyer 不支持 lucene3.0及以后版本。
使用方式都類似,在構(gòu)建分詞器時(shí)
Analyzer analyzer
=
new
[My]Analyzer();
2
. 這里只示例 IKAnalyzer,目前只有它支持Lucene3.
0
以后的版本。
首先需要導(dǎo)入 IKAnalyzer3.
2
.0Stable.jar 包
3
. 示例代碼
view plaincopy to clipboardprint
?
public
class
AnalyzerTest
{
@Test
public
void
test()
throws
Exception
{
String text
=
"
An IndexWriter creates and maintains an index.
"
;
/**/
/*
標(biāo)準(zhǔn)分詞器:單子分詞
*/
Analyzer analyzer
=
new
StandardAnalyzer(Version.LUCENE_30);
testAnalyzer(analyzer, text);
String text2
=
"
測試中文環(huán)境下的信息檢索
"
;
testAnalyzer(
new
IKAnalyzer(), text2);
//
使用IKAnalyzer,詞庫分詞
}
/** */
/**
* 使用指定的分詞器對(duì)指定的文本進(jìn)行分詞,并打印結(jié)果
*
*
@param
analyzer
*
@param
text
*
@throws
Exception
*/
private
void
testAnalyzer(Analyzer analyzer, String text)
throws
Exception
{
System.out.println(
"
當(dāng)前使用的分詞器:
"
+
analyzer.getClass());
TokenStream tokenStream
=
analyzer.tokenStream(
"
content
"
,
new
StringReader(text));
tokenStream.addAttribute(TermAttribute.
class
);
while
(tokenStream.incrementToken())
{
TermAttribute termAttribute
=
tokenStream.getAttribute(TermAttribute.
class
);
System.out.println(termAttribute.term());
}
}
}
public
class
AnalyzerTest
{
@Test
public
void
test()
throws
Exception
{
String text
=
"
An IndexWriter creates and maintains an index.
"
;
/**/
/*
標(biāo)準(zhǔn)分詞器:單子分詞
*/
Analyzer analyzer
=
new
StandardAnalyzer(Version.LUCENE_30);
testAnalyzer(analyzer, text);
String text2
=
"
測試中文環(huán)境下的信息檢索
"
;
testAnalyzer(
new
IKAnalyzer(), text2);
//
使用IKAnalyzer,詞庫分詞
}
/** */
/**
* 使用指定的分詞器對(duì)指定的文本進(jìn)行分詞,并打印結(jié)果
*
*
@param
analyzer
*
@param
text
*
@throws
Exception
*/
private
void
testAnalyzer(Analyzer analyzer, String text)
throws
Exception
{
System.out.println(
"
當(dāng)前使用的分詞器:
"
+
analyzer.getClass());
TokenStream tokenStream
=
analyzer.tokenStream(
"
content
"
,
new
StringReader(text));
tokenStream.addAttribute(TermAttribute.
class
);
while
(tokenStream.incrementToken())
{
TermAttribute termAttribute
=
tokenStream.getAttribute(TermAttribute.
class
);
System.out.println(termAttribute.term());
}
}
}
3
. 如何擴(kuò)展詞庫:很多情況下,我們可能需要定制自己的詞庫,例如 XXX 公司,我們希望這能被分詞器識(shí)別,并拆分成一個(gè)詞。
IKAnalyzer 可以很方便的實(shí)現(xiàn)我們的這種需求。
新建 IKAnalyzer.cfg.xml
view plaincopy to clipboardprint
?
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
<!
DOCTYPE properties SYSTEM
"
http://java.sun.com/dtd/properties.dtd
"
>
<
properties
>
<!--
1
,文件要是 UTF
-
8
編碼。
2
,一行寫一個(gè)詞
-->
<!--
用戶可以在這里配置自己的擴(kuò)展字典
-->
<
entry key
=
"
ext_dict
"
>/
mydict.dic
</
entry
>
</
properties
>
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
<!
DOCTYPE properties SYSTEM
"
http://java.sun.com/dtd/properties.dtd
"
>
<
properties
>
<!--
1
,文件要是 UTF
-
8
編碼。
2
,一行寫一個(gè)詞
-->
<!--
用戶可以在這里配置自己的擴(kuò)展字典
-->
<
entry key
=
"
ext_dict
"
>/
mydict.dic
</
entry
>
</
properties
>
解析:
<
entry key
=
"
ext_dict
"
>/
mydict.dic
</
entry
>
擴(kuò)展了一個(gè)自己的詞典,名字叫 mydict.dic
因此我們要建一個(gè)文本文件,名為:mydict.dic (此處使用的 .dic 并非必須)
在這個(gè)文本文件里寫入:
北京XXXX科技有限公司
這樣就添加了一個(gè)詞匯。
如果要添加多個(gè),則新起一行:
詞匯一
詞匯二
詞匯三
需要注意的是,這個(gè)文件一定要使用 UTF
-
8編碼
4
. 停用詞:
有些詞在文本中出現(xiàn)的頻率非常高,但是對(duì)文本所攜帶的信息基本不產(chǎn)生影響,例如英文的
"
a、an、the、of
"
,或中文的
"
的、了、著
"
,以及各種標(biāo)點(diǎn)符號(hào)等,這樣的詞稱為停用詞(stop word)。
文本經(jīng)過分詞之后,停用詞通常被過濾掉,不會(huì)被進(jìn)行索引。在檢索的時(shí)候,用戶的查詢中如果含有停用詞,檢索系統(tǒng)也會(huì)將其過濾掉(因?yàn)橛脩糨斎氲牟樵冏址惨M(jìn)行分詞處理)。
排除停用詞可以加快建立索引的速度,減小索引庫文件的大小。
IKAnalyzer 中自定義停用詞也非常方便,和配置
"
擴(kuò)展詞庫
"
操作類型,只需要在 IKAnalyzer.cfg.xml 加入如下配置:
<
entry key
=
"
ext_stopwords
"
>/
ext_stopword.dic
</
entry
>
同樣這個(gè)配置也指向了一個(gè)文本文件
/
ext_stopword.dic (后綴名任意),格式如下:
也
了
仍
從
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http:
//
blog.csdn.net/wenlin56/archive/2010/12/13/6074124.aspx
Feedback
#
re: Lucene入門級(jí)筆記五 -- 分詞器,使用中文分詞器,擴(kuò)展詞庫,停用詞
回復(fù)
更多評(píng)論
2016-07-05 20:08 by
回家看回家看
54544554
刷新評(píng)論列表
只有注冊用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
Lucene入門級(jí)筆記五 -- 分詞器,使用中文分詞器,擴(kuò)展詞庫,停用詞
網(wǎng)頁解析開源項(xiàng)目
一個(gè) Java 搜索引擎的實(shí)現(xiàn),第 2 部分: 網(wǎng)頁預(yù)處理
一個(gè) Java 搜索引擎的實(shí)現(xiàn),第 1 部分: 網(wǎng)絡(luò)爬蟲
java 下載網(wǎng)頁
Apache+php+mysql在XP下搭配詳解
MonoDevelop
heritrix1.14.4
tomcatPlugin下載地址
Heritrix-1.14.1怎么配置?
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © Kevin_Zhang
日歷
<
2025年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
隨筆分類
數(shù)據(jù)庫(1)
ACM基礎(chǔ)知識(shí)(9)
ARM(2)
C/C++(12)
DOS(1)
Google Map API
Heritrix(1)
IT News(22)
JAVA(3)
Jsp
Linux(9)
Lucene(1)
PHP(6)
Python
Tree
Trie樹(1)
博弈
動(dòng)態(tài)規(guī)劃(1)
回溯
匯編
計(jì)算幾何(1)
模擬(4)
排序(2)
嵌入式
數(shù)據(jù)結(jié)構(gòu)(2)
數(shù)論(2)
數(shù)學(xué)(3)
搜索(2)
搜索引擎(12)
隨機(jī)數(shù)
貪心(1)
圖論(1)
圖形學(xué)(1)
萬花筒(22)
網(wǎng)絡(luò)流
硬件(1)
隨筆檔案
2011年6月 (5)
2011年5月 (22)
2011年4月 (24)
2010年12月 (1)
2010年11月 (13)
2010年10月 (7)
2010年9月 (14)
2010年8月 (52)
2010年7月 (9)
文章分類
ACM題目分類(13)
C
C#
C++
DP動(dòng)態(tài)規(guī)劃
JAVA
LUNIX
Python
博弈
計(jì)算幾何
模擬
數(shù)論(1)
搜索(1)
貪心
圖論
文章檔案
2010年8月 (4)
2010年7月 (22)
程序的靈魂--算法
沙場秋點(diǎn)兵,壯士凱歌還
北大POJ
他山之石,可以攻玉
圍觀強(qiáng)人
搜索
最新評(píng)論
1.?re: Lucene入門級(jí)筆記五 -- 分詞器,使用中文分詞器,擴(kuò)展詞庫,停用詞
54544554
--回家看回家看
2.?re: 水
評(píng)論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--Jason Huang
3.?re: 10項(xiàng)技能讓前端開發(fā)者價(jià)值百萬!
評(píng)論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--BURKERosie25
4.?re: (轉(zhuǎn)載)ACM經(jīng)歷總結(jié)[未登錄]
謝謝
--xingyezhi
5.?re: 世界頭號(hào)營銷大師們的營銷素質(zhì)
大道至簡,殊途同歸,值得借鑒。
--Kevin_Zhang
閱讀排行榜
1.?Java動(dòng)態(tài)數(shù)組的用法詳解(12194)
2.? Lucene入門級(jí)筆記五 -- 分詞器,使用中文分詞器,擴(kuò)展詞庫,停用詞(3482)
3.?用scanf輸入字符串空格不識(shí)別??(2075)
4.?php java交互 php/java bridge (1931)
5.?設(shè)置MFC坐標(biāo)系(1793)
91精品国产91久久久久福利
|
亚洲国产成人久久综合一
|
中文精品久久久久国产网址
|
久久亚洲AV成人无码电影
|
亚洲国产成人精品女人久久久
|
久久人人爽人人爽人人片AV东京热
|
99国产精品久久久久久久成人热
|
综合人妻久久一区二区精品
|
九九精品久久久久久噜噜
|
久久人人爽人人澡人人高潮AV
|
免费一级做a爰片久久毛片潮
|
久久综合狠狠综合久久97色
|
精品免费久久久久国产一区
|
国产精品成人久久久久三级午夜电影
|
欧美亚洲国产精品久久蜜芽
|
日本一区精品久久久久影院
|
亚洲国产成人久久综合碰碰动漫3d
|
香蕉久久夜色精品国产小说
|
久久www免费人成精品香蕉
|
久久久久国产一区二区三区
|
亚洲一区精品伊人久久伊人
|
亚洲欧美成人久久综合中文网
|
久久午夜福利电影
|
久久只这里是精品66
|
性做久久久久久久
|
久久国产高清字幕中文
|
国产精品99久久久久久猫咪
|
无码8090精品久久一区
|
无码人妻精品一区二区三区久久久
|
嫩草伊人久久精品少妇AV
|
精品999久久久久久中文字幕
|
久久精品一区二区影院
|
2021国内精品久久久久久影院
|
人妻丰满AV无码久久不卡
|
婷婷综合久久狠狠色99h
|
合区精品久久久中文字幕一区
|
久久精品国产亚洲av高清漫画
|
久久最近最新中文字幕大全
|
伊人久久大香线蕉AV一区二区
|
国产精品禁18久久久夂久
|
一本久久综合亚洲鲁鲁五月天
|