偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

手把手教會(huì)你使用Python進(jìn)行jieba分詞

開發(fā) 后端
jieba這款分詞工具,總體來(lái)說(shuō)還是挺厲害的,我們可以用它來(lái)獲取并過(guò)濾許多對(duì)于我們來(lái)說(shuō)比較核心的東西,它就等于數(shù)據(jù)分析中的一塊敲門磚,當(dāng)然它只是其中的一塊而已。

[[405821]]

前言

大家好,我是黃偉。上周我們分享了詞云,手把手教你使用Python打造絢麗的詞云圖,這次我們來(lái)看看分詞。我們從之前學(xué)習(xí)過(guò)的wordcloud可以得知它只能進(jìn)行英文分詞,中文暫不支持,這也正是它美中不足的地方,但是有個(gè)模塊正好彌補(bǔ)了這一點(diǎn),它就是----jieba,中文名結(jié)巴,沒錯(cuò),你沒聽錯(cuò)也沒看錯(cuò),就是結(jié)巴。

一、jieba的使用

1.安裝

jieba的安裝不管在哪個(gè)地方安裝都是一個(gè)老大難的問(wèn)題,這也真是讓小編頭痛欲裂,幸好小編昨天下好了(花了一天,不好意思說(shuō)出口)。。

下載好后,我們解壓它,在文件主目錄中按住shift鍵然后右擊選擇‘在此處打開命令窗口’,然后輸入命令:

 

  1. python setup.py install 

安裝即可,可以看到安裝的版本信息:

2.jieba的分詞模式

一、精確模式

它可以將結(jié)果十分精確分開,不存在多余的詞。

常用函數(shù):lcut(str) 、 cut(str)

比如我隨便找一段話進(jìn)行拆分:

 

  1. import jieba 
  2. aa=jieba.cut('任性的90后boy'

這樣我們就得到了aa這樣一個(gè)生成器序列,然后我們將它遍歷即可得到最終結(jié)果:

如果不想讓它換行顯示,想讓它在一行顯示并且能看到效果的話,可以這樣做:

很顯然,我的關(guān)鍵字太少,導(dǎo)致它的效果不是很明顯,下面增加關(guān)鍵字:

經(jīng)過(guò)這次的修改,是不是就清楚多了了。

二、全模式

它可以將結(jié)果全部展現(xiàn),也就是一段話可以拆分進(jìn)行組合的可能它都給列舉出來(lái)了,不信可以來(lái)看看

常用函數(shù):

 

  1. lcut(str,cut_all=True) 、 cut(str,cut_all=True

還是來(lái)看下它的妙處:

可以看到,它將這段話中所有可能的組合都列舉出來(lái)了,但是有些組合顯然不是我們想要的。

三、搜索引擎模式

將結(jié)果精確分開,對(duì)比較長(zhǎng)的詞進(jìn)行二次切分。

 

  1. lcut_for_search(str) 、cut_for_search(str) 

它的妙處在于它可以將全模式的所有可能再次進(jìn)行一個(gè)重組,下面來(lái)看下:

這樣就可以看到我們想要的結(jié)果了,所以說(shuō)這種模式十分適合搜索引擎搜索查找功能。

我們還可以使用列表的count方法統(tǒng)計(jì)出分詞中某個(gè)詞出現(xiàn)的頻率:

 

  1. print(ab.count('武漢')) #這樣的話就是1 

通過(guò)對(duì)上文的了解,相信大家對(duì)于lcut 和cut的區(qū)別還有點(diǎn)陌生,其實(shí)lcut和cut都能達(dá)到中文分詞的效果,只是不同的是lcut返回的結(jié)果是列表,而cut返回的是生成器罷了。

3.jieba的其它應(yīng)用

1)、添加新詞

它是將本身存在于文本中的詞進(jìn)行一個(gè)重組,讓它成為一個(gè)個(gè)體,使之更為形象而設(shè)立的:

可以看到,它現(xiàn)在就可以將我設(shè)置的兩個(gè)詞連貫起來(lái),這對(duì)于名字分詞是很有幫助的,有時(shí)候分詞會(huì)將三個(gè)字甚至是多個(gè)字的人名劃分開來(lái),這個(gè)時(shí)候我們就需要用到添加新詞了。當(dāng)然,如果你添加了文本中沒有的詞,那是沒有任何效果,可以看到:

這個(gè)自己定義的是無(wú)法顯示在這上面的,jieba添加新詞只會(huì)添加文本里有的詞,如果想添加其它詞,我們得用到字典,添加屬于自己的字典。

2)、添加字典

jieba可以添加屬于自己的字典,用來(lái)切分查找關(guān)鍵詞。這樣就可以有效縮小查找范圍,從而使得匹配完成度更高,時(shí)間更短。我們可以使用load_userdict函數(shù)來(lái)讀取自定義詞典,它需要傳入一個(gè)文件名,格式如下:

  1. #文件一行只可寫三項(xiàng)參數(shù),分別為詞語(yǔ)、詞頻(可省略)、詞性(可省略)空格隔開,順序不可顛倒 
  2. jieba.load_userdict(file) 

這樣就可以讀取到該文件中的所有文本,然后我們讓它去匹配我們要進(jìn)行分詞的文本,然后利用三大模式中的一種就可以精確匹配到要查找的內(nèi)容。

可以看到,我們成功匹配到了以文件字典為結(jié)構(gòu)體的內(nèi)容,這樣我們就可以更加精確的匹配到結(jié)果而不至于添字掉字。

3)、刪除新詞

有添加肯定就有刪除,那么刪除新詞是怎么一回事呢?如果我們對(duì)自己所添加的新詞不滿意,可以直接刪除,這樣就可以。

可以看到,分詞結(jié)果又回到了原來(lái)的形式,不過(guò)由于我只刪除了一個(gè),所以另一個(gè)保留,依然是‘湖北武漢’。

4)、處理停用詞

在有時(shí)候我們處理大篇幅文章時(shí),可能用不到每個(gè)詞,需要將一些詞過(guò)濾掉,這個(gè)時(shí)候我們需要處理掉這些詞,比如我們比較熟悉的‘的’ ‘了’、 ‘哈哈’ 什么的,這些都是可有可無(wú)的詞,下面我們來(lái)學(xué)習(xí)下如何去除:

可以看到,我們成功去除了我們不需要的詞:‘的’,‘了’,‘哈哈’,那么這到底是個(gè)什么騷操作呢?哦,其實(shí)很簡(jiǎn)單,就是將這些需要摒棄的詞添加到列表中,然后我們遍歷需要分詞的文本,然后進(jìn)行判讀,如果遍歷的文本中的某一項(xiàng)存在于列表中,我們便棄用它,然后將其它不包含的文本添加到字符串,這樣生成的字符串就是最終的結(jié)果了。

5)、權(quán)重分析

很多時(shí)候我們需要將關(guān)鍵詞以出現(xiàn)的次數(shù)頻率來(lái)排列,這個(gè)時(shí)候就需要進(jìn)行權(quán)重分析了,這里提供了一個(gè)函數(shù)可以很方便我們進(jìn)行分析,

可以看到它將字符串中出現(xiàn)頻率最高的幾個(gè)詞按順序排列了出來(lái),如果你想打印出這幾個(gè)詞的頻率的話,只需添加一個(gè)withWeight參數(shù)即可:

那么這些參數(shù)是什么意思呢?哦,原來(lái)topK就是指你想輸出多少個(gè)詞,withWeight指輸出的詞的詞頻。

6)、調(diào)節(jié)單個(gè)詞語(yǔ)的詞頻

在分詞過(guò)程中,我們可以將某個(gè)詞顯示進(jìn)行劃分。不過(guò),詞頻在使用 HMM 新詞發(fā)現(xiàn)功能時(shí)可能無(wú)效,需要將它設(shè)置為False。

 

  1. aa=jieba.lcut('我再也回不到童年美好的時(shí)光了,哈哈,想想都覺得傷心了',HMM=False) #為調(diào)節(jié)詞頻做準(zhǔn)備 
  2. print('/'.join(aa)) 
  3. jieba.suggest_freq(('美','好'),tune=True)#加上tune參數(shù)表示可以劃分 
  4. aa=jieba.lcut('我再也回不到童年美好的時(shí)光了,哈哈,想想都覺得傷心了',HMM=False
  5. print('/'.join(aa)) #生成新詞頻 

 

可以看到它將美和好分開了。

7)、查看文本內(nèi)詞語(yǔ)的開始和結(jié)束位置

有時(shí)候我們?yōu)榱说玫侥硞€(gè)詞的準(zhǔn)確位置以及分布情況我們可以使用函數(shù)tokenize()來(lái)定位。

8)、修改字典路徑

如果你覺得當(dāng)前使用字典無(wú)法滿足要求,你可以重新設(shè)置字典,剛才我們介紹了讀取字典、添加字典、刪除字典的方法,現(xiàn)在我們來(lái)說(shuō)一種重新設(shè)置字典的方法,它就是:jieba.set_dictionary(file),里面還是加的文件名,但是你在重新設(shè)置前必須要初始化jieba,不然可能設(shè)置失誤,方法如下:

 

  1. import jieba 
  2. jieba.initialize() #初始化jeiba 
  3. jieba.set_dictionary('OSI.txt') #設(shè)置字典 

四、總結(jié)

jieba這款分詞工具,總體來(lái)說(shuō)還是挺厲害的,我們可以用它來(lái)獲取并過(guò)濾許多對(duì)于我們來(lái)說(shuō)比較核心的東西,它就等于數(shù)據(jù)分析中的一塊敲門磚,當(dāng)然它只是其中的一塊而已,哈哈哈。

 

責(zé)任編輯:姜華 來(lái)源: Python爬蟲與數(shù)據(jù)挖掘
相關(guān)推薦

2009-12-11 09:04:10

Windows搭建Li

2009-12-21 11:36:24

Linux啟動(dòng)加密

2009-10-22 15:23:32

VB.NET函數(shù)

2021-12-09 10:24:47

Javascript 高階函數(shù)前端

2010-07-30 10:41:23

DB2打補(bǔ)丁

2020-12-13 11:38:09

Go語(yǔ)言clac包

2020-10-26 15:09:35

Python爬蟲網(wǎng)頁(yè)數(shù)據(jù)

2022-10-30 10:31:42

i2ccpuftrace

2025-05-07 00:31:30

2021-07-14 09:00:00

JavaFX開發(fā)應(yīng)用

2023-03-29 10:02:36

2021-07-01 09:31:50

MySQL SQL 語(yǔ)句數(shù)據(jù)庫(kù)

2022-12-07 08:42:35

2009-08-28 17:00:50

C# for

2025-04-01 01:35:00

NodeMySQL數(shù)據(jù)庫(kù)

2020-11-10 09:00:00

JavaMule ESB開發(fā)

2021-08-02 07:35:19

Nacos配置中心namespace

2020-12-08 10:32:15

Python郵件tcp

2020-08-12 09:07:53

Python開發(fā)爬蟲

2021-01-20 10:18:48

MySQL服務(wù)器配置
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)