結巴分詞是當前效果較好的一種中文分詞器,支援中文簡體、中文繁體分詞,同時還支援自定義詞庫。
結巴分詞支援三種分詞模式:精確模式、全模式和搜尋引擎模式。
結巴分詞自帶乙個詞典,內含20000多條詞,及詞條出現的次數與詞性。結巴分詞用到的演算法有基於trie樹的詞圖遍歷,會生成乙個dag圖,該圖是由句子中所有漢字的所有可能組合決定,採用動態規劃(dp)查詢概率最大的路徑,從而找出基於詞頻的最大切分組合,而對於結巴分詞詞典中未記錄的詞,其使用了基於漢字成詞能力的hmm模型,以及viterbi演算法。python結巴分詞安裝
pip install jieba
結巴分詞有三種模式,具體內容在上文已有介紹。本系統分詞採用的是精確模式,使用的是基於python的jieba模組來實現。
停用詞(stop words)是指在資訊檢索中,在自然語言處理之前或之後被自動過濾的字或詞,目的是為了節省記憶體空間並提高搜尋效率。停用詞表是人工構造的,本系統使用的是哈工大停用詞表。
結巴分詞及去停用詞核心**如下:
import jieba
#分詞def stripdata(test):
# jieba 預設啟用了hmm(隱馬爾科夫模型)進行中文分詞
seg_list = jieba.cut(test) # 分詞
#獲取字典,去除停用詞
line = "/".join(seg_list)
word = stripword(line)
#print(line)
#列出關鍵字
print("\n關鍵字:\n"+word)
#停用詞分析
def stripword(seg):
keyword = open('key_word.txt', 'w+', encoding='utf-8')
print("去停用詞:\n")
wordlist =
#獲取停用詞表
stop = open('stopword.txt', 'r+', encoding='utf-8')
stopword = stop.read().split("\n")
#遍歷分詞表
for key in seg.split('/'):
#print(key)
#去除停用詞,去除單字,去除重複詞
if not(key.strip() in stopword) and (len(key.strip()) > 1) and not(key.strip() in wordlist) :
print(key)
keyword.write(key+"\n")
#停用詞去除end
stop.close()
keyword.close()
return '/'.join(wordlist)
def creat():
rawdata = open('raw.txt','r+')
text = rawdata.read()
#呼叫分詞
stripdata(text)
#end
rawdata.close()
if __name__ == '__main__' :
creat()
分詞效果 python結巴分詞
中文分詞是中文文字處理的乙個基礎性工作,結巴分詞利用進行中文分詞。其基本實現原理有三點 基於trie樹結構實現高效的詞圖掃瞄,生成句子中漢字所有可能成詞情況所構成的有向無環圖 dag 採用了動態規劃查詢最大概率路徑,找出基於詞頻的最大切分組合 對於未登入詞,採用了基於漢字成詞能力的hmm模型,使用了...
結巴分詞jieba
全模式text 我來到北京清華大學 seg list jieba.cut text,cut all true print u 全模式 join seg list 精確模式 seg list jieba.cut text,cut all false print u 精確模式 join seg list...
python中文分詞 結巴分詞
中文分詞是中文文字處理的乙個基礎性工作,結巴分詞利用進行中文分詞。其基本實現原理有三點 基於trie樹結構實現高效的詞圖掃瞄,生成句子中漢字所有可能成詞情況所構成的有向無環圖 dag 採用了動態規劃查詢最大概率路徑,找出基於詞頻的最大切分組合 對於未登入詞,採用了基於漢字成詞能力的hmm模型,使用了...