JcsegJava 開(kāi)源中文分詞器

Jcseg 是什么?
Jcseg 是基于 mmseg 算法的一個(gè)輕量級(jí)開(kāi)源中文分詞器,同時(shí)集成了關(guān)鍵字提取,關(guān)鍵短語(yǔ)提取,關(guān)鍵句子提取和文章自動(dòng)摘要等功能,并且提供了最新版本的 lucene, solr, elasticsearch 的分詞接口。Jcseg 自帶了一個(gè) jcseg.properties 文件用于快速配置而得到適合不同場(chǎng)合的分詞應(yīng)用,例如:最大匹配詞長(zhǎng)、是否開(kāi)啟中文人名識(shí)別、是否追加拼音、是否追加同義詞等。
Jcseg 核心功能:
中文分詞:mmseg 算法 + Jcseg 獨(dú)創(chuàng)的優(yōu)化算法。
關(guān)鍵字提?。夯趖extRank算法。
關(guān)鍵短語(yǔ)提?。夯趖extRank算法。
關(guān)鍵句子提取:基于textRank算法。
文章自動(dòng)摘要:基于BM25+textRank算法。
自動(dòng)詞性標(biāo)注:目前只是基于詞庫(kù),效果不是很理想。
Restful api:嵌入 jetty 提供了一個(gè)絕對(duì)高性能的 server 模塊,包含全部功能的 http 接口,標(biāo)準(zhǔn)化 json 輸出格式,方便各種語(yǔ)言客戶端直接調(diào)用。
Jcseg 中文分詞:
四種切分模式:
簡(jiǎn)易模式:FMM 算法,適合速度要求場(chǎng)合
復(fù)雜模式:MMSEG 四種過(guò)濾算法,具有較高的歧義去除,分詞準(zhǔn)確率達(dá)到了98.41%
檢測(cè)模式:只返回詞庫(kù)中已有的詞條,很適合某些應(yīng)用場(chǎng)合
檢索模式:細(xì)粒度切分,專為檢索而生,除了中文處理外(不具備中文的人名,數(shù)字識(shí)別等智能功能)其他與復(fù)雜模式一致(英文,組合詞等)
分隔符模式:按照給定的字符切分詞條,默認(rèn)是空格,特定場(chǎng)合的應(yīng)用
NLP 模式:繼承自復(fù)雜模式,更改了數(shù)字,單位等詞條的組合方式,增加電子郵件,大陸手機(jī)號(hào)碼,網(wǎng)址,人名,地名,貨幣等以及無(wú)限種自定義實(shí)體的識(shí)別與返回
支持自定義詞庫(kù)。在 lexicon 文件夾下,可以隨便添加/刪除/更改詞庫(kù)和詞庫(kù)內(nèi)容,并且對(duì)詞庫(kù)進(jìn)行了分類。
支持詞庫(kù)多目錄加載,配置 lexicon.path 中使用';'隔開(kāi)多個(gè)詞庫(kù)目錄。
詞庫(kù)分為簡(jiǎn)體/繁體/簡(jiǎn)繁體混合詞庫(kù):可以專門(mén)適用于簡(jiǎn)體切分、繁體切分、簡(jiǎn)繁體混合切分,并且可以利用下面提到的同義詞實(shí)現(xiàn),簡(jiǎn)繁體的相互檢索,Jcseg 同時(shí)提供了詞庫(kù)兩個(gè)簡(jiǎn)單的詞庫(kù)管理工具來(lái)進(jìn)行簡(jiǎn)繁體的轉(zhuǎn)換和詞庫(kù)的合并。
中英文同義詞追加/同義詞匹配 + 中文詞條拼音追加。詞庫(kù)整合了《現(xiàn)代漢語(yǔ)詞典》和 cc-cedict 辭典中的詞條,并且依據(jù) cc-cedict 詞典為詞條標(biāo)上了拼音,依據(jù)《中華同義詞詞典》為詞條標(biāo)上了同義詞(尚未完成)。更改 jcseg.properties 配置文檔可以在分詞的時(shí)候加入拼音和同義詞到分詞結(jié)果中。
中文數(shù)字和中文分?jǐn)?shù)識(shí)別,例如:"一百五十個(gè)人都來(lái)了,四十分之一的人。"中的"一百五十"和"四十分之一"。并且 Jcseg 會(huì)自動(dòng)將其轉(zhuǎn)換為阿拉伯?dāng)?shù)字加入到分詞結(jié)果中。如:150, 1/40。
支持中英混合詞和英中混合詞的識(shí)別(維護(hù)詞庫(kù)可以識(shí)別任何一種組合)。例如:B超, x射線, 卡拉ok, 奇都ktv, 哆啦a夢(mèng)。
更好的英文支持,電子郵件,域名,小數(shù),分?jǐn)?shù),百分?jǐn)?shù),字母和標(biāo)點(diǎn)組合詞(例如C++, c#)的識(shí)別。
自定義切分保留標(biāo)點(diǎn)。例如: 保留 &,就可以識(shí)別 k&r 這種復(fù)雜詞條。
復(fù)雜英文切分結(jié)果的二次切分:可以保留原組合,同時(shí)可以避免復(fù)雜切分帶來(lái)的檢索命中率下降的情況,例如QQ2013會(huì)被切分成: qq2013/ qq/ 2013,[email protected]會(huì)被切分成:[email protected]/ chenxin/ 619315/ gmail/ com。
支持阿拉伯?dāng)?shù)字/小數(shù)/中文數(shù)字基本單字單位的識(shí)別,例如2012年,1.75米,38.6℃,五折,并且 Jcseg 會(huì)將其轉(zhuǎn)換為“5折”加入分詞結(jié)果中。
智能圓角半角, 英文大小寫(xiě)轉(zhuǎn)換。
特殊字母識(shí)別:例如:Ⅰ,Ⅱ;特殊數(shù)字識(shí)別:例如:①,⑩。
配對(duì)標(biāo)點(diǎn)內(nèi)容提取:例如:最好的 Java 書(shū)《java編程思想》,‘暢想杯黑客技術(shù)大賽’,被《,‘,“,『標(biāo)點(diǎn)標(biāo)記的內(nèi)容。(1.6.8版開(kāi)始支持)。
智能中文人名/外文翻譯人名識(shí)別。中文人名識(shí)別正確率達(dá) 94% 以上。(中文人名可以維護(hù) lex-lname.lex,lex-dname-1.lex,lex-dname-2.lex 來(lái)提高準(zhǔn)確率),(引入規(guī)則和詞性后會(huì)達(dá)到 98% 以上的識(shí)別正確率)。
自動(dòng)中英文停止詞過(guò)濾功能(需要在 jcseg.properties 中開(kāi)啟該選項(xiàng),lex-stopwords.lex 為停止詞詞庫(kù))。
詞庫(kù)更新自動(dòng)加載功能, 開(kāi)啟一個(gè)守護(hù)線程定時(shí)的檢測(cè)詞庫(kù)的更新并且加載。
自動(dòng)詞性標(biāo)注(目前基于詞庫(kù))。
自動(dòng)實(shí)體的識(shí)別,默認(rèn)支持:電子郵件,網(wǎng)址,大陸手機(jī)號(hào)碼,地名,人名,貨幣等;詞庫(kù)中可以自定義各種實(shí)體并且再切分中返回。
Jcseg 快速體驗(yàn):
終端測(cè)試:
cd 到 Jcseg 根目錄。
ant all(或者使用 maven 編譯)
運(yùn)行:java -jar jcseg-core-{version}.jar
你將看到如下的終端界面
在光標(biāo)處輸入文本開(kāi)始測(cè)試
+--------Jcseg chinese word tokenizer demo---------------+ |- @Author chenxin<[email protected]> | |- :seg_mode : switch to specified tokenizer mode. | |- (:complex,:simple,:search,:detect,:delimiter,:NLP) | |- :keywords : switch to keywords extract mode. | |- :keyphrase : switch to keyphrase extract mode. | |- :sentence : switch to sentence extract mode. | |- :summary : switch to summary extract mode. | |- :help : print this help menu. | |- :quit : to exit the program. | +--------------------------------------------------------+ jcseg~tokenizer:complex>>
測(cè)試樣板:
分詞文本
歧義和同義詞:研究生命起源,混合詞: 做B超檢查身體,x射線本質(zhì)是什么,今天去奇都ktv唱卡拉ok去,哆啦a夢(mèng)是一個(gè)動(dòng)漫中的主角,單位和全角: 2009年8月6日開(kāi)始大學(xué)之旅,岳陽(yáng)今天的氣溫為38.6℃, 也就是101.48℉, 中文數(shù)字/分?jǐn)?shù): 你分三十分之二, 小陳拿三十分之五,剩下的三十分之二十三全部是我的,那是一九九八年前的事了,四川麻辣燙很好吃,五四運(yùn)動(dòng)留下的五四精神。筆記本五折包郵虧本大甩賣。人名識(shí)別: 我是陳鑫,也是jcseg的作者,三國(guó)時(shí)期的諸葛亮是個(gè)天才,我們一起給劉翔加油,羅志高興奮極了因?yàn)槔蠀撬土怂慌_(tái)筆記本。外文名識(shí)別:冰島時(shí)間7月1日,正在當(dāng)?shù)嘏钠臏贰た唆斔雇ㄟ^(guò)發(fā)言人承認(rèn),他與第三任妻子凱蒂·赫爾墨斯(第一二任妻子分別為咪咪·羅杰斯、妮可·基德曼)的婚姻即將結(jié)束。配對(duì)標(biāo)點(diǎn): 本次『暢想杯』黑客技術(shù)大賽的得主為電信09-2BF的張三,獎(jiǎng)勵(lì)C++程序設(shè)計(jì)語(yǔ)言一書(shū)和【暢想網(wǎng)絡(luò)】的『PHP教程』一套。特殊字母: 【Ⅰ】(Ⅱ),英文數(shù)字: bug report [email protected] or visit http://code.google.com/p/jcseg, we all admire the hacker spirit!特殊數(shù)字: ① ⑩ ⑽ ㈩.
分詞結(jié)果:
歧義/n 和/o 同義詞/n :/w 研究/vn 琢磨/vn 研討/vn 鉆研/vn 生命/n 起源/n ,/w 混合詞 :/w 做/v b超/n 檢查/vn 身體/n ,/w x射線/n x光線/n 本質(zhì)/n 是/a 什么/n ,/w 今天/t 去/q 奇都ktv/nz 唱/n 卡拉ok/nz 去/q ,/w 哆啦a夢(mèng)/nz 是/a 一個(gè)/q 動(dòng)漫/n 中/q 的/u 主角/n ,/w 單位/n 和/o 全角/nz :/w 2009年/m 8月/m 6日/m 開(kāi)始/n 大學(xué)/n 之旅 ,/w 岳陽(yáng)/ns 今天/t 的/u 氣溫/n 為/u 38.6℃/m ,/w 也就是/v 101.48℉/m ,/w 中文/n 國(guó)語(yǔ)/n 數(shù)字/n //w 分?jǐn)?shù)/n :/w 你/r 分/h 三十分之二/m ,/w 小陳/nr 拿/nh 三十分之五/m ,/w 剩下/v 的/u 三十分之二十三/m 全部/a 是/a 我的/nt ,/w 那是/c 一九九八年/m 1998年/m 前/v 的/u 事/i 了/i ,/w 四川/ns 麻辣燙/n 很/m 好吃/v ,/w 五四運(yùn)動(dòng)/nz 留下/v 的/u 五四/m 54/m 精神/n 。/w 筆記本/n 五折/m 5折/m 包郵 虧本/v 大甩賣 甩賣 。/w 人名/n 識(shí)別/v :/w 我/r 是/a 陳鑫/nr ,/w 也/e 是/a jcseg/en 的/u 作者/n ,/w 三國(guó)/mq 時(shí)期/n 的/u 諸葛亮/nr 是個(gè) 天才/n ,/w 我們/r 一起/d 給/v 劉翔/nr 加油/v ,/w 羅志高/nr 興奮/v 極了/u 因?yàn)?c 老吳/nr 送了 他/r 一臺(tái) 筆記本/n 。/w 外文/n 名/j 識(shí)別/v :/w 冰島/ns 時(shí)間/n 7月/m 1日/m ,/w 正在/u 當(dāng)?shù)?s 拍片/vi 的/u 湯姆·克魯斯/nr 阿湯哥/nr 通過(guò)/v 發(fā)言人/n 承認(rèn)/v ,/w 他/r 與/u 第三/m 任/q 妻子/n 凱蒂·赫爾墨斯/nr (/w 第一/a 二/j 任/q 妻子/n 分別為 咪咪·羅杰斯/nr 、/w 妮可·基德曼/nr )/w 的/u 婚姻/n 即將/d 結(jié)束/v 。/w 配對(duì)/v 標(biāo)點(diǎn)/n :/w 本次/r 『/w 暢想杯/nz 』/w 黑客/n 技術(shù)/n 大賽/vn 的/u 得主/n 為/u 電信/nt 09/en -/w bf/en 2bf/en 的/u 張三/nr ,/w 獎(jiǎng)勵(lì)/vn c++/en 程序設(shè)計(jì)/gi 語(yǔ)言/n 一書(shū)/ns 和/o 【/w 暢想網(wǎng)絡(luò)/nz 】/w 的/u 『/w PHP教程/nz 』/w 一套/m 。/w 特殊/a 字母/n :/w 【/w Ⅰ/nz 】/w (/w Ⅱ/m )/w ,/w 英文/n 英語(yǔ)/n 數(shù)字/n :/w bug/en report/en chenxin/en 619315/en gmail/en com/en [email protected]/en or/en visit/en http/en :/w //w //w code/en google/en com/en code.google.com/en //w p/en //w jcseg/en ,/w we/en all/en admire/en appreciate/en like/en love/en enjoy/en the/en hacker/en spirit/en mind/en !/w 特殊/a 數(shù)字/n :/w ①/m ⑩/m ⑽/m ㈩/m ./w
