中文分詞項目總結

1)ICTCLAS

最早的中文開源分詞項目之一,由中科院計算所的張華平、劉群所開發,采用C/C++編寫,算法基于《基于多層隱馬模型的漢語詞法分析研究》。其中開

源版本為FreeICTCLAS,最新API調用版本為NLPIR/ICTCLAS2014分詞系統(NLPIR分詞系統前身為2000年發布的

ICTCLAS詞法分析系統,從2009年開始,為了和以前工作進行大的區隔,并推廣NLPIR自然語言處理與信息檢索共享平臺,調整命名為NLPIR分

詞系統)

FreeICTCLAS源代碼地址為:

https://github.com/hecor/ICTCLAS-2009-free

https://github.com/pierrchen/ictclas_plus (ICTCLAS Version 1.0 for Linux)

http://download.csdn.net/detail/shinezlee/1535796

http://www.codeforge.cn/article/106151

NLPIR/ICTCLAS2014 API下載地址為:

http://ictclas.nlpir.org/downloads

其他版本:

(a) 在FreeICTCLAS基礎上,由呂震宇老師根據開源版C++改寫成的C#版。

下載地址為:

https://github.com/smartbooks/SharpICTCLAS (原版)

https://github.com/geekfivestart/SharpICTCLAS (支持多線程版)

(b) 對ICTCLAS分詞系統代碼及SharpICTCLAS代碼理解可參考:

http://www.cnblogs.com/zhenyulu/articles/653254.html

http://sewm.pku.edu.cn/QA/reference/ICTCLAS/FreeICTCLAS/codes.html

(c) ictclas4j中文分詞系統是sinboy在FreeICTCLAS的基礎上完成的一個java開源分詞項目,簡化了原分詞程序的復雜度。

下載地址為:

http://sourceforge.net/projects/ictclas4j/

https://code.google.com/p/ictclas4j/

(d) ICTCLAS Python調用

Python下調用NLPIR(ICTCLAS2013)可參考:

http://ictclas.nlpir.org/newsDetail?DocId=382

Python wrapper for ICTCLAS 2015 可參考:

https://github.com/haobibo/ICTCLAS_Python_Wrapper

https://github.com/tsroten/pynlpir (一個外國小哥搞得,還有文檔介紹http://pynlpir.rtfd.org)

2)MMSEG

采用Chih-Hao Tsai的MMSEG算法(A Word Identification System for Mandarin Chinese Text Based on Two Variants of the Maximum Matching Algorithm)。MMSeg 算法有兩種分詞方法:Simple(only forward maximum matching)和Complex(three-word chunk maximum matching and 3 additional rules to solve ambiguities),都是基于正向最大匹配,Complex 加了四個規則過慮。

源代碼下載地址為:

http://technology.chtsai.org/mmseg/

注:

(a) LibMMSeg 是Coreseek.com為Sphinx全文搜索引擎設計的中文分詞軟件包,其在GPL協議下發行的中文分詞法,也是采用Chih-Hao Tsai的MMSEG算法。LibMMSeg 采用C++開發,同時支持Linux平臺和Windows平臺。

源代碼下載地址為:

http://www.coreseek.cn/opensource/mmseg/

(b) friso是使用c語言開發的一個中文分詞器,使用流行的mmseg算法實現。支持對UTF-8/GBK編碼的切分,綁定了php擴展和sphinx token插件

三種切分模式:(1).簡易模式:FMM算法 (2).復雜模式-MMSEG四種過濾算法 (3)檢測模式:只返回詞庫中已有的詞條

源代碼下載地址為:

https://code.google.com/p/friso/

http://git.oschina.net/lionsoul/friso

(c) MMSEG4J 是基于MMSeg 算法的Java開源中文分詞組件,提供lucene和solr 接口

源代碼下載地址為:

https://code.google.com/p/mmseg4j/

(d) RMMSeg is written in pure Ruby. RMMSegis an implementation of MMSEG word segmentation algorithm. It is based on two variants of maximum matching algorithms.

源代碼下載地址為:

http://rmmseg.rubyforge.org/

(e) rmmseg-cpp is a re-written of the original RMMSeggem in C++, the core part is written in C++ independent of Ruby. It ismuch faster and cosumes much less memory than RMMSeg. The interface of rmmseg-cpp is almost identical to RMMSeg.

源代碼下載地址為:

http://rmmseg-cpp.rubyforge.org/

https://github.com/pluskid/rmmseg-cpp/

(f) pymmseg-cpp is a Python interface to rmmseg-cpp.

源代碼下載地址為:

https://github.com/pluskid/pymmseg-cpp/

https://code.google.com/p/pymmseg-cpp/

3)IKAnalyzer

IKAnalyzer是一個開源基于java語言開發的輕量級的中文分詞工具包。從2006年12月推出1.0版開始,IKAnalyzer已經推出 了3個大版本。最初,它是以開源項目Luence為應用主體的,結合詞典分詞和文法分析算法的中文分詞組件。新版本IKAnalyzer3.0采用了特有的“正向迭代最細粒度切分算法“,已發展為面向Java的公用分詞組件,獨立于Lucene項目,同時提供了對Lucene的默認優化實現。

源代碼下載地址為:

https://code.google.com/p/ik-analyzer/

https://github.com/yozhao/IKAnalyzer

4)FNLP(FudanNLP)

FudanNLP主要是為中文自然語言處理而開發的工具包(現已更名為FNLP),功能包含信息檢索(文本分類、新聞聚類),中文處理(中文分詞、詞性標注、實體名識別、關鍵詞抽取、依存句法分析 時間短語識別),結構化學習(在線學習、層次分類、聚類)。從功能的角度而言,FNLP與著名的Python自然語言處理工具包NLTK較為類似,但后者對中文處理的能力較差。FNLP采用Java編寫,可輕松運行在各種不同的平臺之上。

源代碼下載地址為:

https://github.com/xpqiu/fnlp/

5)NiuParser

中文句法語義分析系統NiuParser支持中文句子級的自動分詞、詞性標注、命名實體識別、組塊識別、成分句法分析、依存句法分析和語義角色標注七大語言分析技術。所有代碼采用C++語言開發,不包含任何其它開源代碼。NiuParser系統可以免費用于研究目的,但商業用途需獲得商業授權許可。

源代碼下載地址為:

http://www.niuparser.com/index.en.html

6) LTP

語言技術平臺(Language Technology Platform,LTP)是提供包括中文分詞、詞性標注、命名實體識別、依存句法分析、語義角色標注等豐富、 高效、精準的自然語言處理技術。LTP制定了基于XML的語言處理結果表示,并在此基礎上提供了一整套自底向上的豐富而且高效的中文語言處理模塊(包括詞法、句法、語義等6項中文處理核心技術),以及基于動態鏈接庫(Dynamic Link Library, DLL)的應用程序接口、可視化工具,并且能夠以網絡服務(Web Service)的形式進行使用。

源代碼下載地址為:

https://github.com/HIT-SCIR/ltp

注:

(a) LTP的分詞模塊(LTP-CWS)基于結構化感知器(Structured

Perceptron)算法構建,支持用戶自定義詞典,適應不同用戶的需求;另外還新增了個性化(增量式)訓練功能,用戶可以根據自己的實際需求,如對新

領域的文本進行分詞等,自行標注少量句子的分詞結果(比如對LTP分詞結果的修正),LTP分詞模塊可以重新訓練一個更好應對新領域的分詞器,進一步提高

新領域上分詞的準確率。

源代碼下載地址為:

https://github.com/HIT-SCIR/ltp-cws

(b) pyltp是LTP的Python封裝

源代碼下載地址為:

https://github.com/HIT-SCIR/pyltp

7)Ansj中文分詞

基于google語義模型+條件隨機場模型的中文分詞的java實現,實現了.中文分詞. 中文姓名識別 . 用戶自定義詞典。Ansj是基于ictclas工具的java實現,基本上重寫了所有的數據結構和算法。使用開源版的ictclas詞典.并且進行了部分的人工優化。

源代碼下載地址為:

https://github.com/NLPchina/ansj_seg

8) jieba中文分詞

jieba"結巴"分詞為Python 中文分詞組件,支持三種分詞模式:(a)精確模式,試圖將句子最精確地切開,適合文本分析;(b)全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義;(c)搜索引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用于搜索引擎分詞。另外jieba分詞支持繁體分詞和自定義詞典。

算法主要包括:基于Trie樹結構實現高效的詞圖掃描,生成句子中漢字構成的有向無環圖(DAG);采用了記憶化搜索實現最大概率路徑的計算, 找出基于詞頻的最大切分組合;對于未登錄詞,采用了基于漢字位置概率的模型,使用了Viterbi算法。

源代碼下載地址為:

https://github.com/fxsjy/jieba

注:

(a)模型數據生成,參見:

https://github.com/fxsjy/jieba/issues/7

(b)CppJieba是"結巴"中文分詞的C++版本,代碼細節詳見:

https://github.com/yanyiwu/cppjieba

(c) cppjiebapy is a wrap for cppjieba by swig. 若想使用python來調用cppjieba,可查閱:

https://github.com/jannson/cppjiebapy

(d) jieba分詞學習筆記,參見:

http://segmentfault.com/a/1190000004061791

9)HanLP

HanLP是由一系列模型與算法組成的Java漢語言處理工具包,提供中文分詞、詞性標注、命名實體識別、依存句法分析、關鍵詞提取、自動摘要、短語提取、拼音、簡繁轉換等完備的功能。CRFSegment支持自定義詞典,自定義詞典的優先級高于核心詞典。

源代碼下載地址為:

http://hanlp.linrunsoft.com/

https://github.com/hankcs/HanLP

10)BosonNLP

BosonNLP是一家初創公司提供的API SDK調用接口。功能包括:Tokenization and part of speech

tagging, named-entity recognition, tokenization and compute word weight,

automatic detection of opinions embodied in text, work out the

grammatical structure of sentences, categorization

the given articles, Get relative words.

API下載地址為:

https://github.com/liwenzhu/bosonnlp

11)Pullword在線抽詞

Pullword是永久免費的基于深度學習的中文在線抽詞

API調用Pullword,包含python,R等語言,參見:

http://api.pullword.com/

12)sogo在線分詞

sogo在線分詞采用了基于漢字標注的分詞方法,主要使用了線性鏈鏈CRF(Linear-chain CRF)模型。詞性標注模塊主要基于結構化線性模型(Structured Linear Model)

在線使用地址為:

http://www.sogou.com/labs/webservice/

13)THULAC

THULAC(THU Lexical Analyzer for Chinese)是清華開源的一套中文詞法分析工具包,主要包括中文分詞和詞性標注功能。該工具包使用了基于詞圖(word lattice)的重排序算法(re-ranking method).

源代碼下載地址為:

http://thulac.thunlp.org

最后的彩蛋:

(1) CRF分詞訓練工具:

CRFsuite (http://www.chokkan.org/software/crfsuite/)

CRF++ ?(http://taku910.github.io/crfpp/)

wapiti (https://github.com/Jekub/Wapiti) or (https://wapiti.limsi.fr/)

chinesesegmentor (https://github.com/fancyerii/chinesesegmentor) or ?(http://fancyerii.github.io/sgdcrf/index.html)

CRF decoder 包含CRF++軟件包中分詞解碼器部分,簡化了CRF++復雜代碼結構,清除了分詞解碼器不需要的代碼,大大提高了分詞解碼器的可讀性和可懂度。 下載地址:http://sourceforge.net/projects/crfdecoder/

(2) 中文分詞器分詞效果評估對比,參見:

https://github.com/ysc/cws_evaluation

(3)中文詞典開源項目(CC-CEDICT)

一份以漢語拼音為中文輔助的漢英辭典,可用于中文分詞使用,而且不存在版權問題。Chrome中文版就是使用的這個詞典進行中文分詞的。

數據及文檔下載地址為:

http://www.mdbg.net/chindict/chindict.php?page=cedict

http://cc-cedict.org/wiki/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容