色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python jieba庫(kù)的基本使用

瀏覽:3日期:2022-06-26 10:53:55
一、jieba庫(kù)概述

jieba是優(yōu)秀的中文分詞第三方庫(kù)

中文文本需要通過(guò)分詞獲得單個(gè)的詞語(yǔ) jieba是優(yōu)秀的中文分詞第三方庫(kù),需要額外安裝 jieba庫(kù)提供三種分詞模式,最簡(jiǎn)單只需要掌握一個(gè)函數(shù) 二、jieba庫(kù)安裝

pip install jieba三、jieba分詞的原理

jieba分詞依靠中文詞庫(kù)

利用一個(gè)中文詞庫(kù),確定漢字之間的關(guān)聯(lián)概率 漢字間概率大的組成詞組,形成分詞結(jié)果 四、jieba分詞的3種模式 精確模式:把文本精確地切分開(kāi),不存在冗余單詞(最常用) 全模式:把文本中所有可能的詞語(yǔ)都掃描出來(lái),有冗余 搜索引擎模式:在精確模式的基礎(chǔ)上,對(duì)長(zhǎng)詞再次切分 五、jieba庫(kù)常用函數(shù)

函數(shù) 描述 jieba.lcut(s) 精確模式,返回一個(gè)列表類型的分詞結(jié)果 jieba.lcut(s,cut_all=True) 全模式,返回一個(gè)列表類型的分詞結(jié)果,存在冗余 jieba.lcut_for_search(s) 搜索引擎模式,返回一個(gè)列表類型的分詞結(jié)果,存在冗余 jieba.lcut(s) 精確模式,返回一個(gè)列表類型的分詞結(jié)果 jieba.add_word(s) 向分詞詞典增加新詞w

例子:

>>> jieba.lcut('中國(guó)是一個(gè)偉大的國(guó)家')[’中國(guó)’, ’是’, ’一個(gè)’, ’偉大’, ’的’, ’國(guó)家’]>>> jieba.lcut('中國(guó)是一個(gè)偉大的國(guó)家', cut_all=True)[’中國(guó)’, ’國(guó)是’, ’一個(gè)’, ’偉大’, ’的’, ’國(guó)家’]>>> jieba.lcut_for_search('中華人民共和國(guó)是偉大的')[’中華’, ’華人’, ’人民’, ’共和’, ’共和國(guó)’, ’中華人民共和國(guó)’, ’是’, ’偉大’, ’的’]六、文本詞頻示例

問(wèn)題分析

英文文本: Hamlet 分析詞頻

https://python123.io/resources/pye/hamlet.txt

中文文本: 《三國(guó)演義》 分析人物

https://python123.io/resources/pye/threekingdoms.txt

代碼如下:

def getText(): # 打開(kāi) hamlet.txt 這個(gè)文件 txt = open('hamlet.txt', 'r').read() # 避免大小寫對(duì)詞頻統(tǒng)計(jì)的干擾,將所有單詞轉(zhuǎn)換為小寫 txt = txt.lower() # 將文中出現(xiàn)的所有特殊字符替換為空格 for ch in ’|'#$%^&*()_+-=`~{}[];:<>?/’: txt = txt.replace(ch, ' ') # 返回一個(gè)所以后單詞都是小寫的,單詞間以空格間隔的文本 return txthamletTxt = getText()# split() 默認(rèn)使用空格作為分隔符words = hamletTxt.split()counts = {}for word in words: counts[word] = counts.get(word,0) + 1items = list(counts.items())items.sort(key=lambda x:x[1], reverse=True)for i in range(10): word, count = items[i] print('{0:<10}{1:>5}'.format(word,count))

上面代碼中的

items.sort(key=lambda x:x[1], reverse=True)

是根據(jù)單詞出現(xiàn)的次數(shù)進(jìn)行排序,其中使用了 lambda 函數(shù)。更多解釋請(qǐng)看:https://www.runoob.com/python/att-list-sort.html

下面使用 jieba 庫(kù)來(lái)統(tǒng)計(jì)《三國(guó)演義》中任務(wù)出場(chǎng)的次數(shù):

import jiebatxt = open('threekingdoms.txt','r',encoding='utf-8').read()words = jieba.lcut(txt)counts = {}for word in words: if len(word) == 1: continue else: counts[word] = counts.get(word, 0) + 1items = list(counts.items())items.sort(key=lambda x:x[1], reverse=True)for i in range(15): word, count = items[i] print('{0:<10}{1:>5}'.format(word,count))

運(yùn)行結(jié)果:

曹操 953孔明 836將軍 772卻說(shuō) 656玄德 585關(guān)公 510丞相 491二人 469不可 440荊州 425玄德曰 390孔明曰 390不能 384如此 378張飛 358

我們可以看到得出的結(jié)果與我們想象的有些差異,比如

“卻說(shuō)”、“二人”等與人名無(wú)關(guān) “諸葛亮”、“孔明”都是同一個(gè)人 “孔明”和“孔明曰”分詞不符合我們的需求

所以我們需要對(duì)上面代碼進(jìn)行優(yōu)化,在詞頻統(tǒng)計(jì)的基礎(chǔ)上,面向問(wèn)題改造我們的程序。

下面是《三國(guó)演義》人物數(shù)量統(tǒng)計(jì)代碼的升級(jí)版,升級(jí)版中對(duì)于某些確定不是人名的詞,即使做了詞頻統(tǒng)計(jì),也要將它刪除掉。使用寄一個(gè)集合excludes來(lái)接收一些確定不是人名但是又排序比較靠前的單詞列進(jìn)去。

import jiebatxt = open('threekingdoms.txt','r',encoding='utf-8').read()excludes = {'將軍','卻說(shuō)','荊州','二人','不可','不能','如此'}words = jieba.lcut(txt)counts = {}for word in words: if len(word) == 1: continue elif word == '諸葛亮' or word == '孔明曰': rword == '孔明' elif word == '關(guān)公' or word == '云長(zhǎng)': rword == '關(guān)羽' elif word == '玄德' or word == '玄德曰': rword == '劉備' elif word == '孟德' or word == '丞相': rword == '曹操' else: rword = word counts[rword] = counts.get(rword, 0) + 1items = list(counts.items())items.sort(key=lambda x:x[1], reverse=True)for i in range(15): word, count = items[i] print('{0:<10}{1:>5}'.format(word,count))

運(yùn)行結(jié)果:

曹操 963孔明 847張飛 366商議 359如何 352主公 340軍士 320呂布 303左右 298軍馬 297趙云 283劉備 282引兵 279次日 278大喜 274

可以看出還是有像“商議”、“如何”等不是人物的詞出現(xiàn)在統(tǒng)計(jì)結(jié)果,我們將這些詞加入到 excludes 中,多次運(yùn)行程序后最后得到《三國(guó)演義》任務(wù)出場(chǎng)順序前20:

七、文本詞頻統(tǒng)計(jì)問(wèn)題舉一反三

應(yīng)用問(wèn)題擴(kuò)展

《紅樓夢(mèng)》、《西游記》、《水滸傳》...等名著都可以統(tǒng)計(jì)它的任務(wù)出場(chǎng)次數(shù) 政府工作報(bào)告、科研論文、新聞報(bào)道...中出現(xiàn)的大量的詞頻進(jìn)行分析,進(jìn)而找到每篇文章的重點(diǎn)內(nèi)容 進(jìn)一步,對(duì)文本的詞語(yǔ)或詞匯繪制成詞云,使其展示的效果更加直觀

以上內(nèi)容資料均來(lái)源于中國(guó)大學(xué)MOOC網(wǎng)-北京理工大學(xué)Python語(yǔ)言程序設(shè)計(jì)課程課程地址:https://www.icourse163.org/course/BIT-268001

以上就是python jieba庫(kù)的基本使用的詳細(xì)內(nèi)容,更多關(guān)于python jieba庫(kù)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 欧美精品久久一区二区三区 | 一级毛片免费视频网站 | 不卡午夜视频 | 黄色一级片a | 国产综合亚洲专区在线 | 欧美在线观看一区 | 日韩一级| 91精品国产爱久久久久 | 九九精品免费观看在线 | 成人精品一区二区www | 高清国产亚洲va精品 | 国产成人综合高清在线观看 | 免费视频久久看 | 69性欧美| 在线播放精品 | 国产免费一区二区三区在线观看 | 伊人365影院 | 久久一区二区精品 | 草免费视频 | 中文字幕视频网站 | 亚洲午夜精品 | 亚洲精品在线网站 | 日韩第一视频 | 国产裸体美女视频全黄 | 另类欧美日韩 | 日本一级在线播放线观看视频 | 成人日韩在线观看 | 91成年人免费视频 | 久久久黄色片 | 波多野结衣在线观看3人 | 欧美一级毛片高清免费观看 | 久久亚洲成a人片 | 亚洲国产精品久久久久秋霞不卡 | 日韩在线手机看片免费看 | 亚洲国产另类久久久精品小说 | 亚洲一区免费视频 | 男女免费观看在线爽爽爽视频 | 国产精品久久国产精品99 | 欧美日韩亚洲精品一区 | 狠狠色丁香九九婷婷综合五月 | 精品99视频|