目錄
- ICTCLAS
- IK Analyzer
- Paoding
- MMSEG4J
- Jieba
- 相關連結
ICTCLAS
1.主要功能包括中文分詞;詞性标注;命名實體識别;新詞識别;同時支援使用者詞典;
2.ICTCLAS3.0分詞速度單機996KB/s,分詞精度98.45%,API不超過200KB,各種詞典資料壓縮後不到3M,是目前世界上最好的漢語詞法分析器。
系統平台:Windows
開發語言:C/C++、Java、C#
使用方式:dll調用
示範網址:http://ictclas.org/test.html
開源官網:http://ictclas.org
ICTCLAS的簡單應用
用ICTCLAS進行分詞比較簡單,我們可以直接在其官網中進行操作。以分析金庸的射雕英雄傳第十章為例
輸入要分析的url或者文本内容:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiADNyEzLcd3LcJzLcJzdllmVldWYtl2Q3UCcpJHdz9CX05WZpJ3bt8Gd1F2LcJjcn9WTldWYtl2Pn5GcuYTMhBTOzUzMhFTYlJWM2ATL4MTN4UDO18CXzV2Zh1WafRWYvxGc19CXvlmL1h2cuFWaq5ycldWYtlWLkF2bsBXdvw1LcpDc0RHaiojIsJye.png)
點選開始分析:
分詞标注:
實體抽取:
詞頻統計:
文本分類:
情感分析:
關鍵詞提取:
IK Analyzer
- IKAnalyzer 是一個開源的,基于java語言開發的輕量級的中文分詞工具包。從2006年12月推出1.0版開始,IKAnalyzer已經推出 了3個大版本。最初,它是以開源項目Luence為應用主體的,結合詞典分詞和文法分析算法的中文分詞元件。新版本的IKAnalyzer3.0則發展為 面向Java的公用分詞元件,獨立于Lucene項目,同時提供了對Lucene的預設優化實作。
- 采用了特有的“正向疊代最細粒度切分算法“,具有60萬字/秒的高速處理能力。
-
采用了多子處理器分析模式,支援:英文字母(IP位址、Email、URL)、數字(日期,常用中文數量詞,羅馬數字,科學計數法),中文詞彙(姓名、地名處理)等分詞處理。優化的詞典存儲,更小的記憶體占用。
4.支援使用者詞典擴充定義,針對Lucene全文檢索優化的查詢分析器IKQueryParser(作者吐血推薦);采用歧義分析算法優化查詢關鍵字的搜尋排列組合,能極大的提高Lucene檢索的命中率。
Paoding
1.Paoding(庖丁解牛分詞)基于Java的開源中文分詞元件,提供lucene和solr 接口,具有極 高效率和 高擴充性。引入隐喻,采用完全的面向對象設計,構思先進。
2.高效率:在PIII 1G記憶體個人機器上,1秒可準确分詞 100萬漢字。
3.采用基于 不限制個數的詞典檔案對文章進行有效切分,使能夠将對詞彙分類定義。
4.能夠對未知的詞彙進行合了解析。
5.僅支援Java語言。
下面舉個paoding的小用例:
- 首先,下載下傳paoding壓縮包:,直接解壓縮。我放在F:\lucene\paoding目錄下。
-
接着配置paoding環境。
計算機->屬性->進階->環境變量->建立一個環境變量,命名為PAODING_DIC_HOME,值設定為F:\lucene\paoding\dic\(你的安裝目錄\dic\)
- 接下來打開指令提示框,定位到我們paoding目錄下後,windows輸入analyzer.bat,linux系統輸analyzer.sh
- 之後就可以進行分詞操作,直接輸入或者粘貼要進行分詞的語句,以分号結束
鍵入:e或:q退出會話 (包括:符号)
鍵入:?顯示幫助(包括:符号) 。
- 對這一句話”Paoding(庖丁解牛分詞)基于Java的開源中文分詞元件,提供lucene和solr 接口,具有極 高效率和 高擴充性。”進行分詞:
-
從圖中可以看出進行了分詞,分了22個,耗時15ms。
analyzer.bat允許對指定的檔案進行分詞體驗。檔案以路徑名給出可以使絕對位址、相對目前目錄的位址,或以classpath:為字首的類路徑位址。
MMSEG4J
MMSEG4J基于Java的開源中文分詞元件,提供lucene和solr 接口:
1.mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法實作的中文分詞器,并實作 lucene 的 analyzer 和 solr 的TokenizerFactory 以友善在Lucene和Solr中使用。
2.MMSeg 算法有兩種分詞方法:Simple和Complex,都是基于正向最大比對。Complex 加了四個規則過慮。官方說:詞語的正确識别率達到了 98.41%。mmseg4j 已經實作了這兩種分詞算法。
Jieba
特點:
支援三種分詞模式:
1.精确模式,試圖将句子最精确地切開,适合文本分析;
2.全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義;
3.搜尋引擎模式,在精确模式的基礎上,對長詞再次切分,提高召回率,适合用于搜尋引擎分詞。
算法:
1.基于字首詞典實作高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構成的有向無環圖 (DAG)
2.采用了動态規劃查找最大機率路徑, 找出基于詞頻的最大切分組合
3.對于未登入詞,采用了基于漢字成詞能力的 HMM 模型,使用了 Viterbi 算法
jieba簡單執行個體:
- jieba是Python的一個分詞庫。首先要進行安裝,鍵盤Windows+R —>輸入cmd–>pip install jieba即可。
- 安裝Anaconda。
安裝完成之後鍵盤Windows+R —>輸入cmd–>jupyter notebook即可打開jupyter notebook頁面
3.編寫要分詞的文檔test.txt
4.直接拖入文檔到jupyter notebook首頁,upload
5.建立python文檔new->python
進入頁面:
6.輸入代碼:
import jieba #導入jieba
with open('test.txt','r')as f: #打開所需分詞文本text.txt
for line in f:
seg=jieba.cut(line.strip(),cut_all = False) #jieba分詞
print('/'.join(seg))
按下Ctrl+Enter,得到如下分詞結果:
7.上面我們就完成了一個簡單的分詞。我們還可以進一步進行詞頻統計。按下Shift+Enter,繼續編寫如下代碼:
from collections import Counter
total = []
with open('test.txt','r')as f:
for line in f:
seg_list = jieba.lcut(line.strip(),cut_all = False) # jieba.lcut 可以直接輸出清單。
for word in seg_list:
total.append(word)
c=Counter(total) #這裡一定要頂格寫,否則就進入到上面的for循環裡面,出錯。
for item in c.most_common(): #數字5表示提取前5個高頻詞,可根據需要更改。
print (item[],item[])
輸出結果如下
相關連結
http://ictclas.nlpir.org/
http://baike.so.com/doc/9553551-9898246.html
http://blog.csdn.net/liujihaozhy/article/details/39496745
http://blog.csdn.net/u013070853/article/details/48715183
http://www.oschina.net/question/tag/mmseg4j?show=time
http://baike.so.com/doc/2651801-2800213.html
https://github.com/fxsjy/jieba
http://blog.csdn.net/lengyuhong/article/details/5993316