“結巴”分詞:做最好的Python分片語件
中文分詞是中文文字處理的一個基礎性工作,然而長久以來,在Python程式設計領域,一直缺少高準確率、高效率的分片語件。結巴分詞正是為了滿足這一需求。
線上演示:http://209.222.69.242:9000/
特性:
支援兩種分詞模式:
預設模式,試圖將句子最精確地切開,適合文字分析;
全模式,把句子中所有的可以成詞的詞語都掃描出來,適合搜尋引擎。
用法:
全自動安裝:easy_install jieba
半自動安裝:先下載http://pypi.python.org/pypi/jieba/ ,解壓後執行python setup.py install
手動安裝:將jieba目錄放置於當前目錄或者site-packages目錄,通過import jieba 來引用 (第一次import時需要構建Trie樹,需要幾秒時間)
演算法:
基於Trie樹結構實現高效的詞圖掃描,生成句子中漢字構成的有向無環圖(DAG)
採用了記憶化搜尋實現最大概率路徑的計算, 找出基於詞頻的最大切分組合
對於未登入詞,採用了基於漢字位置概率的模型,使用了Viterbi演算法
介面:
元件只提供jieba.cut 方法用於分詞
cut方法接受兩個輸入引數:
1) 第一個引數為需要分詞的字串
2) cut_all引數用來控制分詞模式
待分詞的字串可以是gbk字串、utf-8字串或者unicode
jieba.cut返回的結構是一個可迭代的generator,可以使用for迴圈來獲得分詞後得到的每一個詞語(unicode),也可以用list(jieba.cut(...))轉化為list
程式碼示例:
Python程式碼
import jieba
seg_list = jieba.cut("我來到北京清華大學",cut_all=True)
print "Full Mode:", "/ ".join(seg_list) #全模式
seg_list = jieba.cut("我來到北京清華大學",cut_all=False)
print "Default Mode:", "/ ".join(seg_list) #預設模式
seg_list = jieba.cut("他來到了網易杭研大廈")
print ", ".join(seg_list) 輸出:
程式碼
Full Mode: 我/ 來/ 來到/ 到/ 北/ 北京/ 京/ 清/ 清華/ 清華大學/ 華/ 華大/ 大/ 大學/ 學
Default Mode: 我/ 來到/ 北京/ 清華大學
他, 來到, 了, 網易, 杭研, 大廈 (此處,“杭研”並沒有在詞典中,但是也被Viterbi演算法識別出來了)
效能:
1.5 MB / Second in Full Mode
350 KB / Second in Default Mode
Test Env: Intel(R) Core(TM) i7-2600 CPU @ 3.4GHz;《圍城》.txt
線上演示:http://209.222.69.242:9000/
特性:
支援兩種分詞模式:
預設模式,試圖將句子最精確地切開,適合文字分析;
全模式,把句子中所有的可以成詞的詞語都掃描出來,適合搜尋引擎。
用法:
全自動安裝:easy_install jieba
半自動安裝:先下載http://pypi.python.org/pypi/jieba/ ,解壓後執行python setup.py install
手動安裝:將jieba目錄放置於當前目錄或者site-packages目錄,通過import jieba 來引用 (第一次import時需要構建Trie樹,需要幾秒時間)
演算法:
基於Trie樹結構實現高效的詞圖掃描,生成句子中漢字構成的有向無環圖(DAG)
採用了記憶化搜尋實現最大概率路徑的計算, 找出基於詞頻的最大切分組合
對於未登入詞,採用了基於漢字位置概率的模型,使用了Viterbi演算法
介面:
元件只提供jieba.cut 方法用於分詞
cut方法接受兩個輸入引數:
1) 第一個引數為需要分詞的字串
2) cut_all引數用來控制分詞模式
待分詞的字串可以是gbk字串、utf-8字串或者unicode
jieba.cut返回的結構是一個可迭代的generator,可以使用for迴圈來獲得分詞後得到的每一個詞語(unicode),也可以用list(jieba.cut(...))轉化為list
程式碼示例:
Python程式碼
CODE:
#encoding=utf-8import jieba
seg_list = jieba.cut("我來到北京清華大學",cut_all=True)
print "Full Mode:", "/ ".join(seg_list) #全模式
seg_list = jieba.cut("我來到北京清華大學",cut_all=False)
print "Default Mode:", "/ ".join(seg_list) #預設模式
seg_list = jieba.cut("他來到了網易杭研大廈")
print ", ".join(seg_list) 輸出:
程式碼
Full Mode: 我/ 來/ 來到/ 到/ 北/ 北京/ 京/ 清/ 清華/ 清華大學/ 華/ 華大/ 大/ 大學/ 學
Default Mode: 我/ 來到/ 北京/ 清華大學
他, 來到, 了, 網易, 杭研, 大廈 (此處,“杭研”並沒有在詞典中,但是也被Viterbi演算法識別出來了)
效能:
1.5 MB / Second in Full Mode
350 KB / Second in Default Mode
Test Env: Intel(R) Core(TM) i7-2600 CPU @ 3.4GHz;《圍城》.txt
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/301743/viewspace-745872/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python中的結巴分詞初探Python分詞
- Java中文分片語件 - word分詞(skycto JEEditor)Java分詞
- python呼叫jieba(結巴)分詞 加入自定義詞典和去停用詞功能PythonJieba分詞
- iOS中文近似度的演算法及中文分詞(結巴分詞)的整合iOS演算法中文分詞
- 使用cjieba(結巴分詞庫)實現php擴充套件中文分詞JiebaPHP套件中文分詞
- Simple: SQLite3 中文結巴分詞外掛SQLite分詞
- lucene中文分片語件(詞典全切分演算法)下載演算法
- 北大開源了中文分詞工具包:準確率遠超THULAC、結巴分詞!中文分詞
- 北大開源全新中文分詞工具包:準確率遠超THULAC、結巴分詞中文分詞
- 如何用Python做中文分詞?Python中文分詞
- 使用cjieba(結巴分詞庫)實現php擴充套件中文分詞-支援php5, php7JiebaPHP套件中文分詞
- 使用python進行漢語分詞Python分詞
- [Python] 基於 jieba 的中文分詞總結PythonJieba中文分詞
- 親手做的詞向量分佈圖
- 自然語言處理中的分詞問題總結自然語言處理分詞
- 中文分詞研究難點-詞語劃分和語言規範中文分詞
- Python分詞模組推薦:jieba中文分詞PythonJieba中文分詞
- 如何用Python做詞雲?Python
- python分詞和生成詞雲圖Python分詞
- 分享一個免費的 Lucene中文分片語件V1.2.2
- 【Python】jieba分詞模組PythonJieba分詞
- 引言:分詞與語法解析分詞
- 中文分詞原理及常用Python中文分詞庫介紹中文分詞Python
- Python 自然語言處理(基於jieba分詞和NLTK)Python自然語言處理Jieba分詞
- 大資料語義分析:靈玖中文分詞的分詞處理大資料中文分詞
- python 中文分詞包 jiebaPython中文分詞Jieba
- python jieba庫,句子分詞PythonJieba分詞
- 中文分詞的探索,CRF(條件隨機場)和HMM(隱馬爾可夫模型)用於分詞的對比,以及中文分詞的評估中文分詞CRF條件隨機場HMM隱馬爾可夫模型
- Python:Python 中 jieba 庫的使用(中文分詞)PythonJieba中文分詞
- 文字挖掘之語料庫、分詞、詞頻統計分詞
- 1.分詞與語法解析分詞
- 自然語言處理:分詞方法自然語言處理分詞
- Python自然語言處理實戰(3):中文分詞技術Python自然語言處理中文分詞
- Python 英語單詞本Python
- Java、Python到底誰是最好的程式語言?JavaPython
- Python文字處理NLP:分詞與詞雲圖Python分詞
- HanLP分詞工具中的ViterbiSegment分詞流程HanLP分詞Viterbi
- 替代SQL語句WHERE條件中OR關鍵詞SQL