内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

如何在python中使用jieba庫-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)如何在python中使用jieba庫,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

10年積累的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有麗水免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

python可以做什么

Python是一種編程語言,內(nèi)置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。

一、jieba庫概述

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

  • 中文文本需要通過分詞獲得單個(gè)的詞語

  • jieba是優(yōu)秀的中文分詞第三方庫,需要額外安裝

  • jieba庫提供三種分詞模式,最簡單只需要掌握一個(gè)函數(shù)


二、jieba庫安裝

pip install jieba

三、jieba分詞的原理

jieba分詞依靠中文詞庫

  • 利用一個(gè)中文詞庫,確定漢字之間的關(guān)聯(lián)概率

  • 漢字間概率大的組成詞組,形成分詞結(jié)果


四、jieba分詞的3種模式

  • 精確模式:把文本精確地切分開,不存在冗余單詞(最常用)

  • 全模式:把文本中所有可能的詞語都掃描出來,有冗余

  • 搜索引擎模式:在精確模式的基礎(chǔ)上,對(duì)長詞再次切分


五、jieba庫常用函數(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("中國是一個(gè)偉大的國家")
['中國', '是', '一個(gè)', '偉大', '的', '國家']

>>> jieba.lcut("中國是一個(gè)偉大的國家", cut_all=True)
['中國', '國是', '一個(gè)', '偉大', '的', '國家']

>>> jieba.lcut_for_search("中華人民共和國是偉大的")
['中華', '華人', '人民', '共和', '共和國', '中華人民共和國', '是', '偉大', '的']

六、文本詞頻示例

問題分析

  • 英文文本: Hamlet 分析詞頻


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

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


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

代碼如下:

def getText():
 # 打開 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 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ù)進(jìn)行排序,其中使用了 lambda 函數(shù)。更多解釋請(qǐng)看:
https://www.runoob.com/python/att-list-sort.html

下面使用 jieba 庫來統(tǒng)計(jì)《三國演義》中任務(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))

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

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

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

  • “卻說”、“二人”等與人名無關(guān)

  • “諸葛亮”、“孔明”都是同一個(gè)人

  • “孔明”和“孔明曰”分詞不符合我們的需求


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

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

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

運(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)行程序后最后得到《三國演義》任務(wù)出場順序前20:

關(guān)于如何在python中使用jieba庫就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

文章標(biāo)題:如何在python中使用jieba庫-創(chuàng)新互聯(lián)
文章URL:http://www.rwnh.cn/article20/esgco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、App設(shè)計(jì)、網(wǎng)站設(shè)計(jì)標(biāo)簽優(yōu)化、企業(yè)建站、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
金秀| 洪湖市| 日土县| 定日县| 凌海市| 吴忠市| 长垣县| 浪卡子县| 米泉市| 湾仔区| 宜丰县| 水城县| 阳东县| 吉林市| 林口县| 昌图县| 汉沽区| 吴忠市| 岚皋县| 拉孜县| 奉贤区| 余江县| 通州区| 六安市| 新竹县| 南开区| 广德县| 永川市| 洛扎县| 锡林浩特市| 洞口县| 蓬溪县| 茌平县| 荆州市| 娱乐| 安塞县| 长武县| 曲麻莱县| 虹口区| 南溪县| 万盛区|