日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python-jieba分词学习及应用

發(fā)布時間:2024/7/5 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python-jieba分词学习及应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 基礎(chǔ)
  • 添加自定義詞典
  • 實戰(zhàn)

基礎(chǔ)

  • jieba.cut 方法接受三個輸入?yún)?shù): 需要分詞的字符串;cut_all 參數(shù)用來控制是否采用全模式;HMM 參數(shù)用來控制是否使用 HMM 模型
  • jieba.cut_for_search 方法接受兩個參數(shù):需要分詞的字符串;是否使用 HMM 模型。該方法適合用于搜索引擎構(gòu)建倒排索引的分詞,粒度比較細
  • 待分詞的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建議直接輸入 GBK 字符串,可能無法預(yù)料地錯誤解碼成 UTF-8
  • jieba.cut 以及 jieba.cut_for_search 返回的結(jié)構(gòu)都是一個可迭代的 generator,可以使用 for 循環(huán)來獲得分詞后得到的每一個詞語(unicode),或者用jieba.lcut 以及 jieba.lcut_for_search 直接返回 list
  • jieba.Tokenizer(dictionary=DEFAULT_DICT) 新建自定義分詞器,可用于同時使用不同詞典。jieba.dt 為默認分詞器,所有全局分詞相關(guān)函數(shù)都是該分詞器的映射。
  • # encoding=utf-8 import jiebaseg_list = jieba.cut("我來到北京清華大學(xué)", cut_all=True) print("Full Mode: " + "/ ".join(seg_list)) # 全模式seg_list = jieba.cut("我來到北京清華大學(xué)", cut_all=False) print("Default Mode: " + "/ ".join(seg_list)) # 精確模式seg_list = jieba.cut("他來到了網(wǎng)易杭研大廈") # 默認是精確模式 print(", ".join(seg_list))seg_list = jieba.cut_for_search("小明碩士畢業(yè)于中國科學(xué)院計算所,后在日本京都大學(xué)深造") # 搜索引擎模式 print(", ".join(seg_list))

    輸出:
    【全模式】: 我/ 來到/ 北京/ 清華/ 清華大學(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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。