Python-jieba分词学习及应用
生活随笔
收集整理的這篇文章主要介紹了
Python-jieba分词学习及应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 基礎
- 添加自定義詞典
- 實戰
基礎
輸出:
【全模式】: 我/ 來到/ 北京/ 清華/ 清華大學/ 華大/ 大學
【精確模式】: 我/ 來到/ 北京/ 清華大學
【新詞識別】:他, 來到, 了, 網易, 杭研, 大廈 (此處,“杭研”并沒有在詞典中,但是也被Viterbi算法識別出來了)
【搜索引擎模式】: 小明, 碩士, 畢業, 于, 中國, 科學, 學院, 科學院, 中國科學院, 計算, 計算所, 后, 在, 日本, 京都, 大學, 日本京都大學, 深造
添加自定義詞典
載入詞典,開發者可以指定自己自定義的詞典,以便包含 jieba 詞庫里沒有的詞。雖然 jieba 有新詞識別能力,但是自行添加新詞可以保證更高的正確率
用法: jieba.load_userdict(file_name) # file_name 為文件類對象或自定義詞典的路徑
詞典格式和 dict.txt 一樣,一個詞占一行;每一行分三部分:詞語、詞頻(可省略)、詞性(可省略),用空格隔開,順序不可顛倒。file_name 若為路徑或二進制方式打開的文件,則文件必須為 UTF-8 編碼。
詞頻省略時使用自動計算的能保證分出該詞的詞頻。
如:
參考鏈接:python使用結巴中文分詞以及訓練自己的分詞詞典
Python 中文 文本分析 實戰:jieba分詞+自定義詞典補充+停用詞詞庫補充+詞頻統計
【python】結巴中文分詞生成詞云圖
實戰
from collections import Counter import jieba jieba.load_userdict('userdict.txt')# 創建停用詞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: #讀入已經去除停用詞的文件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# 數據獲取 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"))--這是詞云的背景圖形狀# 數據清洗 # 屏蔽45 # STOPWORDS.add('45')font=r'C:\Windows\Fonts\simhei.ttf'---(必須引用字體不然代碼會報錯) sep_list=jieba.lcut_for_search(text,)---(結巴有三種方式,全模式、精確模式、搜索引擎模式見鏈接3) sep_list=" ".join(sep_list) wc=WordCloud(scale=4,#調整圖片大小---(如果設置太小圖會很模糊)font_path=font,#使用的字體庫max_words=200, # 詞云顯示的最大詞數margin=2,#字體之間的間距mask=mask,#背景圖片background_color='white', #背景顏色max_font_size=200,# min_font_size=1,# stopwords=STOPWORDS, #屏蔽的內容collocations=False, #避免重復單詞width=1600,height=1200 #圖像寬高,字間距 )wc.generate(sep_list) #制作詞云 wc.to_file('詞云.jpg') #保存到當地文件# 圖片展示 plt.figure(dpi=100) #通過這里可以放大或縮小 plt.imshow(wc,interpolation='catrom') plt.axis('off') plt.show()#2、詞頻統計并返回權重 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權重最大的關鍵詞,默認值為20# withWeight為是否一并返回關鍵詞權重值,默認值為False# allowPOS僅包括指定詞性的詞,默認值為空,即不篩選print('%s %s' % (keyword, weight))總結
以上是生活随笔為你收集整理的Python-jieba分词学习及应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用户画像系统
- 下一篇: java jvm目录,JVM(Java虚