Python-jieba分词学习及应用
文章目錄
- 基礎(chǔ)
- 添加自定義詞典
- 實戰(zhàn)
基礎(chǔ)
輸出:
【全模式】: 我/ 來到/ 北京/ 清華/ 清華大學(xué)/ 華大/ 大學(xué)
【精確模式】: 我/ 來到/ 北京/ 清華大學(xué)
【新詞識別】:他, 來到, 了, 網(wǎng)易, 杭研, 大廈 (此處,“杭研”并沒有在詞典中,但是也被Viterbi算法識別出來了)
【搜索引擎模式】: 小明, 碩士, 畢業(yè), 于, 中國, 科學(xué), 學(xué)院, 科學(xué)院, 中國科學(xué)院, 計算, 計算所, 后, 在, 日本, 京都, 大學(xué), 日本京都大學(xué), 深造
添加自定義詞典
載入詞典,開發(fā)者可以指定自己自定義的詞典,以便包含 jieba 詞庫里沒有的詞。雖然 jieba 有新詞識別能力,但是自行添加新詞可以保證更高的正確率
用法: jieba.load_userdict(file_name) # file_name 為文件類對象或自定義詞典的路徑
詞典格式和 dict.txt 一樣,一個詞占一行;每一行分三部分:詞語、詞頻(可省略)、詞性(可省略),用空格隔開,順序不可顛倒。file_name 若為路徑或二進制方式打開的文件,則文件必須為 UTF-8 編碼。
詞頻省略時使用自動計算的能保證分出該詞的詞頻。
如:
參考鏈接:python使用結(jié)巴中文分詞以及訓(xùn)練自己的分詞詞典
Python 中文 文本分析 實戰(zhàn):jieba分詞+自定義詞典補充+停用詞詞庫補充+詞頻統(tǒng)計
【python】結(jié)巴中文分詞生成詞云圖
實戰(zhàn)
from collections import Counter import jieba jieba.load_userdict('userdict.txt')# 創(chuàng)建停用詞list def stopwordslist(filepath):stopwords = [line.strip() for line in open(filepath, 'r').readlines()]return stopwords# 對句子進行分詞 def seg_sentence(sentence):sentence_seged = jieba.cut(sentence.strip())stopwords = stopwordslist('G:\\哈工大停用詞表.txt') # 這里加載停用詞的路徑outstr = ''for word in sentence_seged:if word not in stopwords:if word != '\t':outstr += wordoutstr += " "return outstrinputs = open('hebing_wenben\\wenben.txt', 'r') #加載要處理的文件的路徑 outputs = open('output.txt', 'w') #加載處理后的文件路徑 for line in inputs:line_seg = seg_sentence(line) # 這里的返回值是字符串outputs.write(line_seg) outputs.close() inputs.close() # WordCount with open('output.txt', 'r') as fr: #讀入已經(jīng)去除停用詞的文件data = jieba.cut(fr.read()) data = dict(Counter(data))with open('cipin.txt', 'w') as fw: #讀入存儲wordcount的文件路徑for k, v in data.items():fw.write('%s,%d\n' % (k, v)) #1、生成詞云圖 from wordcloud import WordCloud import matplotlib.pyplot as pltimport numpy as np from PIL import Imageimport jieba# 數(shù)據(jù)獲取 with open("C:\hhh.txt",'r', encoding='gbk')as f:text=f.read()# with open('dream is possible.txt','r',encoding='gbk')as f: # text=f.read() #圖片獲取 mask=np.array(Image.open("C:\heart.png"))--這是詞云的背景圖形狀# 數(shù)據(jù)清洗 # 屏蔽45 # STOPWORDS.add('45')font=r'C:\Windows\Fonts\simhei.ttf'---(必須引用字體不然代碼會報錯) sep_list=jieba.lcut_for_search(text,)---(結(jié)巴有三種方式,全模式、精確模式、搜索引擎模式見鏈接3) sep_list=" ".join(sep_list) wc=WordCloud(scale=4,#調(diào)整圖片大小---(如果設(shè)置太小圖會很模糊)font_path=font,#使用的字體庫max_words=200, # 詞云顯示的最大詞數(shù)margin=2,#字體之間的間距mask=mask,#背景圖片background_color='white', #背景顏色max_font_size=200,# min_font_size=1,# stopwords=STOPWORDS, #屏蔽的內(nèi)容collocations=False, #避免重復(fù)單詞width=1600,height=1200 #圖像寬高,字間距 )wc.generate(sep_list) #制作詞云 wc.to_file('詞云.jpg') #保存到當?shù)匚募?/span># 圖片展示 plt.figure(dpi=100) #通過這里可以放大或縮小 plt.imshow(wc,interpolation='catrom') plt.axis('off') plt.show()#2、詞頻統(tǒng)計并返回權(quán)重 from jieba.analyse import * data = open("C:\hhh.txt",'r', encoding='gbk').read()#讀取文件 for keyword, weight in extract_tags(data, topK=30,withWeight=True,allowPOS=()):#topK為返回幾個TF/IDF權(quán)重最大的關(guān)鍵詞,默認值為20# withWeight為是否一并返回關(guān)鍵詞權(quán)重值,默認值為False# allowPOS僅包括指定詞性的詞,默認值為空,即不篩選print('%s %s' % (keyword, weight))總結(jié)
以上是生活随笔為你收集整理的Python-jieba分词学习及应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用户画像系统
- 下一篇: python数据抓取技术与实战训练_师傅