亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python jieba庫的基本使用

瀏覽:11日期:2022-06-26 10:53:55
一、jieba庫概述

jieba是優秀的中文分詞第三方庫

中文文本需要通過分詞獲得單個的詞語 jieba是優秀的中文分詞第三方庫,需要額外安裝 jieba庫提供三種分詞模式,最簡單只需要掌握一個函數 二、jieba庫安裝

pip install jieba三、jieba分詞的原理

jieba分詞依靠中文詞庫

利用一個中文詞庫,確定漢字之間的關聯概率 漢字間概率大的組成詞組,形成分詞結果 四、jieba分詞的3種模式 精確模式:把文本精確地切分開,不存在冗余單詞(最常用) 全模式:把文本中所有可能的詞語都掃描出來,有冗余 搜索引擎模式:在精確模式的基礎上,對長詞再次切分 五、jieba庫常用函數

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

例子:

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

問題分析

英文文本: Hamlet 分析詞頻

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

中文文本: 《三國演義》 分析人物

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

代碼如下:

def getText(): # 打開 hamlet.txt 這個文件 txt = open('hamlet.txt', 'r').read() # 避免大小寫對詞頻統計的干擾,將所有單詞轉換為小寫 txt = txt.lower() # 將文中出現的所有特殊字符替換為空格 for ch in ’|'#$%^&*()_+-=`~{}[];:<>?/’: txt = txt.replace(ch, ' ') # 返回一個所以后單詞都是小寫的,單詞間以空格間隔的文本 return txthamletTxt = getText()# split() 默認使用空格作為分隔符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)

是根據單詞出現的次數進行排序,其中使用了 lambda 函數。更多解釋請看:https://www.runoob.com/python/att-list-sort.html

下面使用 jieba 庫來統計《三國演義》中任務出場的次數:

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))

運行結果:

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

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

“卻說”、“二人”等與人名無關 “諸葛亮”、“孔明”都是同一個人 “孔明”和“孔明曰”分詞不符合我們的需求

所以我們需要對上面代碼進行優化,在詞頻統計的基礎上,面向問題改造我們的程序。

下面是《三國演義》人物數量統計代碼的升級版,升級版中對于某些確定不是人名的詞,即使做了詞頻統計,也要將它刪除掉。使用寄一個集合excludes來接收一些確定不是人名但是又排序比較靠前的單詞列進去。

import jiebatxt = open('threekingdoms.txt','r',encoding='utf-8').read()excludes = {'將軍','卻說','荊州','二人','不可','不能','如此'}words = jieba.lcut(txt)counts = {}for word in words: if len(word) == 1: continue elif word == '諸葛亮' or word == '孔明曰': rword == '孔明' elif word == '關公' or word == '云長': rword == '關羽' 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))

運行結果:

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

可以看出還是有像“商議”、“如何”等不是人物的詞出現在統計結果,我們將這些詞加入到 excludes 中,多次運行程序后最后得到《三國演義》任務出場順序前20:

七、文本詞頻統計問題舉一反三

應用問題擴展

《紅樓夢》、《西游記》、《水滸傳》...等名著都可以統計它的任務出場次數 政府工作報告、科研論文、新聞報道...中出現的大量的詞頻進行分析,進而找到每篇文章的重點內容 進一步,對文本的詞語或詞匯繪制成詞云,使其展示的效果更加直觀

以上內容資料均來源于中國大學MOOC網-北京理工大學Python語言程序設計課程課程地址:https://www.icourse163.org/course/BIT-268001

以上就是python jieba庫的基本使用的詳細內容,更多關于python jieba庫的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 欧美精品一区二区在线观看 | 日韩欧美亚洲综合一区二区 | 日韩欧美一区二区久久黑人 | 欧美一级黄色片在线观看 | 小优视频在线观看网 | 日本护士xxxx黑人巨大 | 成人毛片18岁女人毛片免费看 | 亚洲麻豆精品果冻传媒 | 精品女同一区二区三区在线 | 美日韩精品| 日本一级特黄特色大片免费视频 | a毛片基地免费全部香蕉 | 亚洲国产成人精品一区91 | 日韩中文字幕精品免费一区 | 久久911| 欧美日韩在线成人 | 青青国产成人久久91网 | 91在线区啪国自产网页 | 寡妇影院首页亚洲图片 | 欧美一级亚洲一级 | 日日麻批免费视频 | 一本伊大人香蕉在线观看 | 在线观看日本三级 | 免费一级特黄特色大片在线观看看 | 特黄色| 青青草国产免费国产 | 欧美亚洲国产视频 | 国产色婷婷精品综合在线 | 亚洲精品字幕一区二区三区 | 免费在线观看小视频 | 看一级黄色大片 | 久久久综合网 | 本道久久综合88全国最大色 | 国产午夜免费一区二区三区 | 国产sss | 精品国产高清a毛片 | 5c5c5c精品视频在线观看 | 国产伦精品一区二区三区视频金莲 | 黑人艹| 上海麻豆文化传媒网站入口 | 黄网站色年片在线观看 |