天天看點

分詞工具介紹與簡單執行個體目錄

目錄

  • 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或者文本内容:

分詞工具介紹與簡單執行個體目錄

點選開始分析:

分詞标注:

分詞工具介紹與簡單執行個體目錄

實體抽取:

分詞工具介紹與簡單執行個體目錄

詞頻統計:

分詞工具介紹與簡單執行個體目錄

文本分類:

分詞工具介紹與簡單執行個體目錄

情感分析:

分詞工具介紹與簡單執行個體目錄

關鍵詞提取:

分詞工具介紹與簡單執行個體目錄

IK Analyzer

  1. IKAnalyzer 是一個開源的,基于java語言開發的輕量級的中文分詞工具包。從2006年12月推出1.0版開始,IKAnalyzer已經推出 了3個大版本。最初,它是以開源項目Luence為應用主體的,結合詞典分詞和文法分析算法的中文分詞元件。新版本的IKAnalyzer3.0則發展為 面向Java的公用分詞元件,獨立于Lucene項目,同時提供了對Lucene的預設優化實作。
  2. 采用了特有的“正向疊代最細粒度切分算法“,具有60萬字/秒的高速處理能力。
  3. 采用了多子處理器分析模式,支援:英文字母(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簡單執行個體:

  1. jieba是Python的一個分詞庫。首先要進行安裝,鍵盤Windows+R —>輸入cmd–>pip install jieba即可。
  2. 安裝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