英文分詞的第三方庫nltk不錯,中文分詞工具也有很多(盤古分詞、yaha分詞、jieba分詞等)。但是從載入自定義字典、多執行緒、自動匹配新詞等方面來看。請隨意**表演使用pip包傻瓜安裝:大jieba確實是中文分詞中的戰鬥機。
py -3 -m pip install jieba
/pip install jiba
(windows下推薦第一種,可以分別安裝python2和3對應jieba)
3種模式
精確模式:試圖將句子最精確地切開,適合文字分析
全模式:把句子中所有的可以成詞的詞語都掃瞄出來(速度快)
搜尋引擎模式:在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞
實現方式
精確模式:jieba.cut(sen)
全模式:jieba.cut(sen,cut_all=true)
搜尋引擎模式:jieba.cut_for_search(sen)
import jieba
sen = "我愛深圳大學"
sen_list = jieba.cut(sen)
sen_list_all = jieba.cut(sen,cut_all=true)
sen_list_search = jieba.cut_for_search(sen)
for i in sen_list:
print(i,end=" ")
print()
for i in sen_list_all:
print(i,end=" ")
print()
for i in sen_list_search:
print(i,end=" ")
print()
結果:附截圖
建立方式
載入字典
jieba.load_userdict(txtfile)
調整字典
新增詞:jieba.add_word(word,freq=none,tag=none)
刪除詞:jieba.del_word(word)
import jieba
sen = "膠州市市長江大橋"
sen_list = jieba.cut(sen)
for i in sen_list:
print(i,end=" ")
print()
膠州市 市 長江大橋
jieba.add_word('江大橋',freq=20000)
sen_list = jieba.cut(sen)
for i in sen_list:
print(i,end=" ")
print()
結果附截圖
之前發現,詞典不是一次性載入的,說明它採用的是延遲載入。即:當遇到應用的時候才會載入。有點類似於python高階特性中的yield
(節省記憶體)
效果圖如下:
jieba.analyse.extract_tags(sentence,topk=20)
:返回topk個tf/idf權重最大的詞語
import jieba.analyse
sen_ana = jieba.analyse.extract_tags(sen,3)
for i in sen_ana:
print(i)
江大橋
膠州市市長
jieba.posseg.cut(sen)
:返回的每個迭代物件有兩個屬性-> word 詞語 + flag 詞性
import jieba.posseg
words = jieba.posseg.cut(sen)
for word in words:
print(word.flag," ",word.word)
ns 膠州市
n 市長
x 江大橋
jieba.tokenize(sen,mode)
:mode可以設定為search,開啟搜尋模式
index= jieba.tokenize(sen)
for i in index:
print(i[0],"from",i[1],"to",i[2])
膠州市 from 0 to 3
市長 from 3 to 5
江大橋 from 5 to 8
基於trie樹結構實現高效的詞圖掃瞄,生成句子中漢字所有可能成詞情況所構成的有向無環圖(dag)
採用了動態規劃查詢最大概率路徑, 找出基於詞頻的最大切分組合
對於未登入詞,採用了基於漢字成詞能力的hmm模型,使用了viterbi演算法。
參考文獻
中文分詞中的戰鬥機
英文分詞的第三方庫nltk不錯,中文分詞工具也有很多 盤古分詞 yaha分詞 jieba分詞等 但是從載入自定義字典 多執行緒 自動匹配新詞等方面來看。大jieba確實是中文分詞中的戰鬥機。請隨意 表演使用pip包傻瓜安裝 py 3 m pip install jieba pip install j...
飛機中的戰鬥機
網管員必讀 系列從書第2版再出新 網管員必讀 超級網管經驗談 第2版 該書第一版是暢銷 網管員必讀 系列叢書中業績最好的一本,受到了無數讀者的充分肯定和高度認可!該書第一版獲得了多項榮譽 具體參見我的另一篇博文 url 第二版相對第一版來說,內容更加豐富,篇幅由原來的640頁增加到了700頁,去掉了...
JS中的戰鬥機
好久沒寫部落格了!也不知道為什麼,最近想用js做個遊戲的衝動。先來看下截圖吧!這個遊戲的內容很簡單,玩家可以通過w a s d控制飛機的方向,按j可以發射子彈,然後不要被其他 撞到即可。由於遊戲的來自一些手機遊戲,並且是東拼西湊來的,所以畫面比較小。這個遊戲我用的是ext的基礎上做的,其實可以不用,...