最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python jieba庫的基本使用

 更新時間:2021年03月05日 15:52:02   作者:貍帥  
這篇文章主要介紹了python jieba庫的基本使用,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下

一、jieba庫概述

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

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

二、jieba庫安裝

pip install jieba

三、jieba分詞的原理

jieba分詞依靠中文詞庫

  • 利用一個中文詞庫,確定漢字之間的關(guān)聯(lián)概率
  • 漢字間概率大的組成詞組,形成分詞結(jié)果

四、jieba分詞的3種模式

  • 精確模式:把文本精確地切分開,不存在冗余單詞(最常用)
  • 全模式:把文本中所有可能的詞語都掃描出來,有冗余
  • 搜索引擎模式:在精確模式的基礎(chǔ)上,對長詞再次切分

五、jieba庫常用函數(shù)

函數(shù) 描述
jieba.lcut(s) 精確模式,返回一個列表類型的分詞結(jié)果
jieba.lcut(s,cut_all=True) 全模式,返回一個列表類型的分詞結(jié)果,存在冗余
jieba.lcut_for_search(s) 搜索引擎模式,返回一個列表類型的分詞結(jié)果,存在冗余
jieba.lcut(s) 精確模式,返回一個列表類型的分詞結(jié)果
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()
 # 避免大小寫對詞頻統(tǒng)計的干擾,將所有單詞轉(zhuǎn)換為小寫
 txt = txt.lower()
 # 將文中出現(xiàn)的所有特殊字符替換為空格
 for ch in '|"#$%^&*()_+-=\\`~{}[];:<>?/':
 txt = txt.replace(ch, " ")
 # 返回一個所以后單詞都是小寫的,單詞間以空格間隔的文本
 return txt

hamletTxt = getText()
# split() 默認(rèn)使用空格作為分隔符
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)

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

下面使用 jieba 庫來統(tǒng)計《三國演義》中任務(wù)出場的次數(shù):

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

運行結(jié)果:

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

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

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

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

下面是《三國演義》人物數(shù)量統(tǒng)計代碼的升級版,升級版中對于某些確定不是人名的詞,即使做了詞頻統(tǒng)計,也要將它刪除掉。使用寄一個集合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 == "關(guān)公" or word == "云長":
 rword == "關(guān)羽"
 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))

運行結(jié)果:

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

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

七、文本詞頻統(tǒng)計問題舉一反三

應(yīng)用問題擴展

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

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

以上就是python jieba庫的基本使用的詳細(xì)內(nèi)容,更多關(guān)于python jieba庫的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python之lambda匿名函數(shù)及map和filter的用法

    Python之lambda匿名函數(shù)及map和filter的用法

    今天小編就為大家分享一篇關(guān)于Python之lambda匿名函數(shù)及map和filter的用法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 詳細(xì)介紹Python的鴨子類型

    詳細(xì)介紹Python的鴨子類型

    相信python的開發(fā)者對于python的鴨子類型比較熟悉,鴨子類型在維基百科中的準(zhǔn)確定義是‘是動態(tài)類型的一種風(fēng)格。在這種風(fēng)格中,一個對象有效的語義,不是由繼承自特定的類或?qū)崿F(xiàn)特定的接口,而是由"當(dāng)前方法和屬性的集合"決定’。所以這篇文章給大家python的鴨子類型。
    2016-09-09
  • python解決方案:WindowsError: [Error 2]

    python解決方案:WindowsError: [Error 2]

    使用Python的rename()函數(shù)重命名文件時出現(xiàn)問題,提示 WindowsError: [Error 2] 錯誤,需要的朋友可以參考下
    2016-08-08
  • 使用Python制作讀單詞視頻的實現(xiàn)代碼

    使用Python制作讀單詞視頻的實現(xiàn)代碼

    我們經(jīng)常在B站或其他視頻網(wǎng)站上看到那種逐條讀單詞的視頻,但他們的視頻多多少少和我們的預(yù)期都不太一致,然而,網(wǎng)上很難找到和自己需求符合的視頻,所以本文給大家介紹了使用Python制作讀單詞視頻的實現(xiàn),需要的朋友可以參考下
    2024-04-04
  • Django實現(xiàn)隨機圖形驗證碼的示例

    Django實現(xiàn)隨機圖形驗證碼的示例

    這篇文章主要介紹了Django實現(xiàn)隨機圖形驗證碼的示例,幫助大家更好的學(xué)習(xí)和使用django框架,感興趣的朋友可以了解下
    2020-10-10
  • 關(guān)于django 數(shù)據(jù)庫遷移(migrate)應(yīng)該知道的一些事

    關(guān)于django 數(shù)據(jù)庫遷移(migrate)應(yīng)該知道的一些事

    今天小編就為大家分享一篇關(guān)于django 數(shù)據(jù)庫遷移(migrate)應(yīng)該知道的一些事,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python實現(xiàn)24點小游戲

    Python實現(xiàn)24點小游戲

    這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)24點小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Python tornado隊列示例-一個并發(fā)web爬蟲代碼分享

    Python tornado隊列示例-一個并發(fā)web爬蟲代碼分享

    這篇文章主要介紹了Python tornado隊列示例-一個并發(fā)web爬蟲代碼分享,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Python中isnumeric()方法的使用簡介

    Python中isnumeric()方法的使用簡介

    這篇文章主要介紹了Python中isnumeric()方法的使用,isnumeric()方法的使用是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Python多線程中阻塞(join)與鎖(Lock)使用誤區(qū)解析

    Python多線程中阻塞(join)與鎖(Lock)使用誤區(qū)解析

    這篇文章主要為大家詳細(xì)介紹了Python多線程中阻塞join與鎖Lock的使用誤區(qū),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04

最新評論

乌什县| 丰都县| 奈曼旗| 莱芜市| 湟中县| 酒泉市| 阿拉善盟| 巍山| 唐海县| 江油市| 德清县| 千阳县| 济南市| 五家渠市| 余干县| 大同县| 天水市| 六安市| 上思县| 和顺县| 达拉特旗| 肥乡县| 周宁县| 六盘水市| 嵊泗县| 咸宁市| 伊吾县| 阿克| 长宁区| 西和县| 牟定县| 封开县| 招远市| 定襄县| 宝兴县| 南漳县| 屯留县| 尼玛县| 绍兴市| 定边县| 万源市|