婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python jieba庫的基本使用

python jieba庫的基本使用

熱門標簽:400電話 申請 條件 南京crm外呼系統排名 crm電銷機器人 賓館能在百度地圖標注嗎 電銷機器人 金倫通信 鄭州智能外呼系統中心 汕頭電商外呼系統供應商 云南地圖標注 北京外呼電銷機器人招商

一、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 txt

hamletTxt = getText()
# split() 默認使用空格作為分隔符
words = hamletTxt.split()
counts = {}
for word in words:
 counts[word] = counts.get(word,0) + 1
items = 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 jieba
txt = 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) + 1

items = 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 jieba
txt = 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) + 1

items = 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 jieba庫分詞模式實例用法
  • Python jieba庫用法及實例解析
  • Python基于jieba庫進行簡單分詞及詞云功能實現方法
  • Python中jieba庫的使用方法

標簽:錫林郭勒盟 梅州 文山 石家莊 西寧 懷化 浙江 昆明

巨人網絡通訊聲明:本文標題《python jieba庫的基本使用》,本文關鍵詞  python,jieba,庫,的,基本,使用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python jieba庫的基本使用》相關的同類信息!
  • 本頁收集關于python jieba庫的基本使用的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 湟源县| 襄垣县| 河间市| 安新县| 芮城县| 陈巴尔虎旗| 宾川县| 三江| 江门市| 星子县| 曲沃县| 凯里市| 民丰县| 五常市| 蓝田县| 巨鹿县| 滦南县| 淮安市| 保靖县| 青川县| 青铜峡市| 竹北市| 江口县| 嘉峪关市| 乾安县| 乐安县| 如东县| 芜湖市| 奎屯市| 临朐县| 观塘区| 兴仁县| 建昌县| 吉木萨尔县| 土默特右旗| 苍山县| 阿克苏市| 岳普湖县| 黄梅县| 松潘县| 德安县|