jcseg

jcseg

jcseg是使用Java開發的一個開源的中文分詞器,使用流行的mmseg算法實現。是一款獨立的分詞組件,不是針對lucene而開發,但是提供了最新版本的lucene和solr分詞接口。

基本介紹

  • 中文名:jcseg
  • 授權協定:Apache
  • 開發語言:Java
  • 系統要求:跨平台
功能特色,分詞速度,分詞測試,配置信息,版本信息,

功能特色

1。mmseg四種過濾算法,分詞準確率達到了98.41%。
2。支持自定義詞庫。在jcseg源碼中的lexicon資料夾下,可以隨便添加/刪除/更改詞庫和詞庫內容,並且對詞庫進行了分類。
3。同義詞匹配+分詞拼音追加.詞庫整合了《現代漢語詞典》和cc-cedict辭典中的詞條,並且依據cc-cedict詞典為詞條標上了拼音,依據《中華同義詞詞典》為詞條標上了同義詞(尚未完成)。更改jcseg.properties配置文檔可以在分詞的時候加入拼音和同義詞到分詞結果中。
4。中文數字和中文分數識別,例如:"一百五十個人都來了,四十分之一的人。"中的"一百五十"和"四十分之一"。並且jcseg會自動將其轉換為阿拉伯數字加入到分詞結果中。如:150, 1/40。
5。支持中英混合詞和英中混合詞的識別。例如:B超, x射線, 卡拉ok, 奇都ktv。
6。更好的英文支持,電子郵件,網址,小數,分數,百分數,字母和標點組合詞(例如C++, c#)的識別。
7。支持阿拉伯/中文數字基本單字單位的識別,例如2012年,五折,並且jcseg會將其轉換為“5折”加入分詞結果中。
8。自動圓角/半角,大小寫轉換。
9。特殊字母識別:例如:Ⅰ,Ⅱ
10。特殊數字識別:例如:①,⑩
11。配對標點內容提取:例如:最好的Java書《java編程思想》,‘暢想杯黑客技術大賽’,被,‘,“,『標點標記的內容。
12。智慧型中文人名識別。中文人名識別正確率達94%以上。(可以維護lex-lname.lex,lex-dname-1.lex,lex-dname-2.lex來提高準確率)。
13。自動中英文停止詞過濾功能(需要在jcseg.properties中開啟該選項,lex-stopwords.lex為停止詞詞庫)。
14。詞庫更新自動載入功能, 開啟一個守護執行緒隨時檢測詞庫的更新並且載入.

分詞速度

測試環境:2.8GHZ/2G/Ubuntu
Simple 模式: 1366058字/秒 3774.5KB/秒
Complex 模式: 479338字/秒 1324.4KB/秒

分詞測試

運行如下命令來測試jcseg分詞:
java -jar jcseg-core-{version}.jar即可( {version改為對應的版本號})。
jcseg lucene分詞:
//導入jcseg-core-{version}.jar
//import com.webssky.jcseg.core.Config類
/*
1.Config.COMPLEX_MODE為複雜模式:
特點:四種過濾算法,中英混合詞識別,中文姓名,姓氏暱稱識別,
數字單位識別,特殊數字和字母識別。
*/
//1.7.0以上版本支持,請到download中下載最新版jcseg。
Config.APPEND_CJK_PINYIN =true; //分詞結果中加入拼音,需要配置jcseg.loadpinyin = 1
Config.APPEND_CJK_SYN =true; //分詞結果中加入同義詞,需要配置jcsg.loadsyn = 1
/*
2.Config.SIMPLE_MODE為簡易模式
特點:只使用了最大化過濾算法,其他的同複雜模式。
*/
Analyzer analyzer =newJcsegAnalyzer(Config.COMPLEX_MODE);

配置信息

jcseg的另一個特點是提供了jcseg.properties配置文檔,裡面的選項幾乎可以配置分詞中的常用選項,基於此你可以打造適合自己的分詞套用,jcseg配置文檔說明如下:
jcseg.loadpos=0 #載入詞庫時是否載入詞條的詞性。
jcseg.loadpinyin=0 #載入詞庫時是否載入詞條的拼音(1.7.0後)。
jcseg.loadsyn=1 #載入詞庫時是否載入詞條的同義詞。
jcseg.icnname=1 #-開啟中文人名識別(1.7.0後)。
lexicon.prefix=lex #-詞庫檔案前綴。
jcseg.cnmaxlnadron=1 #-姓氏修飾詞長度,例如:老陳 中的“陳”。
lexicon.suffix=lex #-詞庫檔案後綴。
jcseg.mixcnlen=2 #-中英混合詞最大中文詞數,例如:A計畫 A後面有兩個字“計畫”。
jcseg.nsthreshold=1000000 #-姓名成詞歧義闋值。
lexicon.dir=lexicon #-詞庫目錄,和以下的path加起來為jcseg詞庫絕對路徑
lexicon.path=jar.dir #-詞庫存放路徑(jar.dir為默認路徑)。
jcseg.maxlen=5 #-正向最大化匹配數目(建議位於4-7之間)。
jcseg.pptmaxlen=15 #最大的配對標點內容長度。

版本信息

jcseg目前最高版本:1.8.8。
新版本提供的功能:
1。去除了英文無用標點的切分。
2。新加入字母和標點組合詞的識別,例如:c++, g++, c#等等。
(為此jcseg新加入了一個詞庫 lex-en-pun.lex,專門用於存放該類詞條。)
3。加入中文數字單字單位的識別,例如:五折,十年……,並且jcseg會自動將其轉換成阿拉伯數字和單位的組合加入到分詞結果中,例如上述會轉換為:5折,10年 。
4。為了統一和方便,將英文的切分結果全部轉換了為小寫,並且lex-mixed.lex中英混合詞中的英文字母全部變成了小寫,並且最佳化了英文識別代碼。

相關詞條

熱門詞條

聯絡我們