欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中jieba庫(kù)(中文分詞庫(kù))使用安裝教程

 更新時(shí)間:2023年04月26日 09:49:37   作者:kaims  
這篇文章主要介紹了python中jieba庫(kù)(中文分詞庫(kù))使用安裝教程,jieba庫(kù)是通過(guò)中文詞庫(kù)的方式來(lái)識(shí)別分詞的。它首先利用一個(gè)中文詞庫(kù),通過(guò)詞庫(kù)計(jì)算漢字之間構(gòu)成詞語(yǔ)的關(guān)聯(lián)概率,所以通過(guò)計(jì)算漢字之間的概率,就可以形成分詞的結(jié)果,需要的朋友可以參考下

python中jieba庫(kù)(中文分詞庫(kù))使用安裝教程

介紹

jieba是優(yōu)秀的中文分詞第三方庫(kù)。由于中文文本之間每個(gè)漢字都是連續(xù)書寫的,我們需要通過(guò)特定的手段來(lái)獲得其中的每個(gè)單詞,這種手段就叫分詞。而jieba是Python計(jì)算生態(tài)中非常優(yōu)秀的中文分詞第三方庫(kù),需要通過(guò)安裝來(lái)使用它。

jieba庫(kù)提供了三種分詞模式,但實(shí)際上要達(dá)到分詞效果只要掌握一個(gè)函數(shù)就足夠了,非常的簡(jiǎn)單有效。

安裝第三方庫(kù)需要使用pip工具,在命令行下運(yùn)行安裝命令(不是IDLE)。注意:需要將Python目錄和其目錄下的Scripts目錄加到環(huán)境變量中。

使用命令pip install jieba安裝第三方庫(kù),安裝之后會(huì)提示successfully installed,告知是否安裝成功。

分詞原理:簡(jiǎn)單來(lái)說(shuō),jieba庫(kù)是通過(guò)中文詞庫(kù)的方式來(lái)識(shí)別分詞的。它首先利用一個(gè)中文詞庫(kù),通過(guò)詞庫(kù)計(jì)算漢字之間構(gòu)成詞語(yǔ)的關(guān)聯(lián)概率,所以通過(guò)計(jì)算漢字之間的概率,就可以形成分詞的結(jié)果。當(dāng)然,除了jieba自帶的中文詞庫(kù),用戶也可以向其中增加自定義的詞組,從而使jieba的分詞更接近某些具體領(lǐng)域的使用。

jieba是python的一個(gè)中文分詞庫(kù),下面介紹它的使用方法。

安裝

方式1:
pip install jieba
 
方式2:
先下載 http://pypi.python.org/pypi/jieba/
然后解壓,運(yùn)行 python setup.py install

功能

下面介紹下jieba的主要功能,具體信息可參考github文檔:https://github.com/fxsjy/jieba

分詞

jieba常用的三種模式:

  • 精確模式,試圖將句子最精確地切開,適合文本分析;
  • 全模式,把句子中所有的可以成詞的詞語(yǔ)都掃描出來(lái), 速度非常快,但是不能解決歧義;
  • 搜索引擎模式,在精確模式的基礎(chǔ)上,對(duì)長(zhǎng)詞再次切分,提高召回率,適合用于搜索引擎分詞。

可使用 jieba.cut 和 jieba.cut_for_search 方法進(jìn)行分詞,兩者所返回的結(jié)構(gòu)都是一個(gè)可迭代的 generator,可使用 for 循環(huán)來(lái)獲得分詞后得到的每一個(gè)詞語(yǔ)(unicode),或者直接使用 jieba.lcut 以及 jieba.lcut_for_search 返回 list。

jieba.Tokenizer(dictionary=DEFAULT_DICT) :使用該方法可以自定義分詞器,可以同時(shí)使用不同的詞典。jieba.dt 為默認(rèn)分詞器,所有全局分詞相關(guān)函數(shù)都是該分詞器的映射。

jieba.cut 和 jieba.lcut 可接受的參數(shù)如下:

  • 需要分詞的字符串(unicode 或 UTF-8 字符串、GBK 字符串)
  • cut_all:是否使用全模式,默認(rèn)值為 False
  • HMM:用來(lái)控制是否使用 HMM 模型,默認(rèn)值為 True

jieba.cut_for_search 和 jieba.lcut_for_search 接受 2 個(gè)參數(shù):

  • 需要分詞的字符串(unicode 或 UTF-8 字符串、GBK 字符串)
  • HMM:用來(lái)控制是否使用 HMM 模型,默認(rèn)值為 True

需要注意的是,盡量不要使用 GBK 字符串,可能無(wú)法預(yù)料地錯(cuò)誤解碼成 UTF-8。

三種分詞模式的比較:

# 全匹配
seg_list = jieba.cut("今天哪里都沒(méi)去,在家里睡了一天", cut_all=True)
print(list(seg_list))  # ['今天', '哪里', '都', '沒(méi)去', '', '', '在家', '家里', '睡', '了', '一天']
 
# 精確匹配 默認(rèn)模式
seg_list = jieba.cut("今天哪里都沒(méi)去,在家里睡了一天", cut_all=False)
print(list(seg_list))  # ['今天', '哪里', '都', '沒(méi)', '去', ',', '在', '家里', '睡', '了', '一天']
 
# 精確匹配
seg_list = jieba.cut_for_search("今天哪里都沒(méi)去,在家里睡了一天")
print(list(seg_list))  # ['今天', '哪里', '都', '沒(méi)', '去', ',', '在', '家里', '睡', '了', '一天']

自定義詞典

開發(fā)者可以指定自己自定義的詞典,以便包含 jieba 詞庫(kù)里沒(méi)有的詞。
用法: jieba.load_userdict(dict_path)

dict_path:為自定義詞典文件的路徑

詞典格式如下:

一個(gè)詞占一行;每一行分三部分:詞語(yǔ)、詞頻(可省略)、詞性(可省略),用空格隔開,順序不可顛倒。

下面使用一個(gè)例子說(shuō)明一下:

自定義字典 user_dict.txt:

大學(xué)課程
深度學(xué)習(xí)

下面比較下精確匹配、全匹配和使用自定義詞典的區(qū)別:

import jieba
 
 
test_sent = """
數(shù)學(xué)是一門基礎(chǔ)性的大學(xué)課程,深度學(xué)習(xí)是基于數(shù)學(xué)的,尤其是線性代數(shù)課程
"""
 
words = jieba.cut(test_sent)
print(list(words))
# ['\n', '數(shù)學(xué)', '是', '一門', '基礎(chǔ)性', '的', '大學(xué)', '課程', ',', '深度',
# '學(xué)習(xí)', '是', '基于', '數(shù)學(xué)', '的', ',', '尤其', '是', '線性代數(shù)', '課程', '\n']
 
words = jieba.cut(test_sent, cut_all=True)
print(list(words))
# ['\n', '數(shù)學(xué)', '是', '一門', '基礎(chǔ)', '基礎(chǔ)性', '的', '大學(xué)', '課程', '', '', '深度',
# '學(xué)習(xí)', '是', '基于', '數(shù)學(xué)', '的', '', '', '尤其', '是', '線性', '線性代數(shù)', '代數(shù)', '課程', '\n']
 
jieba.load_userdict("userdict.txt")
words = jieba.cut(test_sent)
print(list(words))
# ['\n', '數(shù)學(xué)', '是', '一門', '基礎(chǔ)性', '的', '大學(xué)課程', ',', '深度學(xué)習(xí)', '是',
# '基于', '數(shù)學(xué)', '的', ',', '尤其', '是', '線性代數(shù)', '課程', '\n']
 
jieba.add_word("尤其是")
jieba.add_word("線性代數(shù)課程")
 
words = jieba.cut(test_sent)
print(list(words))
# ['\n', '數(shù)學(xué)', '是', '一門', '基礎(chǔ)性', '的', '大學(xué)課程', ',', '深度學(xué)習(xí)', '是',
# '基于', '數(shù)學(xué)', '的', ',', '尤其是', '線性代數(shù)課程', '\n']

從上面的例子中可以看出,使用自定義詞典與使用默認(rèn)詞典的區(qū)別。

jieba.add_word():向自定義字典中添加詞語(yǔ)

關(guān)鍵詞提取

可以基于 TF-IDF 算法進(jìn)行關(guān)鍵詞提取,也可以基于TextRank 算法。 TF-IDF 算法與 elasticsearch 中使用的算法是一樣的。

使用 jieba.analyse.extract_tags() 函數(shù)進(jìn)行關(guān)鍵詞提取,其參數(shù)如下:

jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())

  • sentence 為待提取的文本
  • topK 為返回幾個(gè) TF/IDF 權(quán)重最大的關(guān)鍵詞,默認(rèn)值為 20
  • withWeight 為是否一并返回關(guān)鍵詞權(quán)重值,默認(rèn)值為 False
  • allowPOS 僅包括指定詞性的詞,默認(rèn)值為空,即不篩選
  • jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 實(shí)例,idf_path 為 IDF 頻率文件

也可以使用 jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 實(shí)例,idf_path 為 IDF 頻率文件。

基于 TF-IDF 算法和TextRank算法的關(guān)鍵詞抽?。?/p>

import jieba.analyse
 
file = "sanguo.txt"
topK = 12
content = open(file, 'rb').read()
 
# 使用tf-idf算法提取關(guān)鍵詞
tags = jieba.analyse.extract_tags(content, topK=topK)
print(tags)
# ['玄德', '程遠(yuǎn)志', '張角', '云長(zhǎng)', '張飛', '黃巾', '封谞', '劉焉', '鄧茂', '鄒靖', '姓名', '招軍']
# 使用textrank算法提取關(guān)鍵詞
tags2 = jieba.analyse.textrank(content, topK=topK)
 
# withWeight=True:將權(quán)重值一起返回
tags = jieba.analyse.extract_tags(content, topK=topK, withWeight=True)
print(tags)
# [('玄德', 0.1038549799467099), ('程遠(yuǎn)志', 0.07787459004363208), ('張角', 0.0722532891360849),
# ('云長(zhǎng)', 0.07048801593691037), ('張飛', 0.060972692853113214), ('黃巾', 0.058227157790330185),
# ('封谞', 0.0563904127495283), ('劉焉', 0.05470798376886792), ('鄧茂', 0.04917692565566038),
# ('鄒靖', 0.04427258239705188), ('姓名', 0.04219704283997642), ('招軍', 0.04182041076757075)]

上面的代碼是讀取文件,提取出現(xiàn)頻率最高的前12個(gè)詞。

詞性標(biāo)注

詞性標(biāo)注主要是標(biāo)記文本分詞后每個(gè)詞的詞性,使用例子如下:

import jieba
import jieba.posseg as pseg
 
# 默認(rèn)模式
seg_list = pseg.cut("今天哪里都沒(méi)去,在家里睡了一天")
for word, flag in seg_list:
    print(word + " " + flag)
   
"""
使用 jieba 默認(rèn)模式的輸出結(jié)果是:
我 r
Prefix dict has been built successfully.
今天 t
吃 v
早飯 n
了 ul
"""
 
# paddle 模式
words = pseg.cut("我今天吃早飯了",use_paddle=True)
"""
使用 paddle 模式的輸出結(jié)果是:
我 r
今天 TIME
吃 v
早飯 n
了 xc
"""

paddle模式的詞性對(duì)照表如下:

補(bǔ)充:Python中文分詞庫(kù)——jieba的用法

.使用說(shuō)明

jieba分詞有三種模式:精確模式、全模式和搜索引擎模式。

簡(jiǎn)單說(shuō),精確模式就是把一段文本精確的切分成若干個(gè)中文單詞,若干個(gè)中文單詞之間經(jīng)過(guò)組合就精確的還原為之前的文本,其中不存在冗余單詞。精確模式是最常用的分詞模式。

進(jìn)一步j(luò)ieba又提供了全模式,全模式是把一段中文文本中所有可能的詞語(yǔ)都掃描出來(lái),可能有一段文本它可以切分成不同的模式或者有不同的角度來(lái)切分變成不同的詞語(yǔ),那么jieba在全模式下把這樣的不同的組合都挖掘出來(lái),所以如果用全模式來(lái)進(jìn)行分詞,分詞的信息組合起來(lái)并不是精確的原有文本,會(huì)有很多的冗余。

而搜索引擎模式更加智能,它是在精確模式的基礎(chǔ)上對(duì)長(zhǎng)詞進(jìn)行再次切分,將長(zhǎng)的詞語(yǔ)變成更短的詞語(yǔ),進(jìn)而適合搜索引擎對(duì)短詞語(yǔ)的索引和搜索,在一些特定場(chǎng)合用的比較多。

jieba庫(kù)提供的常用函數(shù):

  • jieba.lcut(s)

精確模式,能夠?qū)σ粋€(gè)字符串精確地返回分詞結(jié)果,而分詞的結(jié)果使用列表形式來(lái)組織。例如:

>>> import jieba
>>> jieba.lcut("中國(guó)是一個(gè)偉大的國(guó)家")
Building prefix dict from the default dictionary ...
Dumping model to file cache C:\Users\ADMINI~1\AppData\Local\Temp\jieba.cache
Loading model cost 2.489 seconds.
Prefix dict has been built successfully.
['中國(guó)', '是', '一個(gè)', '偉大', '的', '國(guó)家']
  • jieba.lcut(s,cut_all=True)

全模式,能夠返回一個(gè)列表類型的分詞結(jié)果,但結(jié)果存在冗余。例如:

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

jieba.lcut_for_search(s)

搜索引擎模式,能夠返回一個(gè)列表類型的分詞結(jié)果,也存在冗余。例如:

>>> import jieba
>>> jieba.lcut_for_search("中華人民共和國(guó)是偉大的")
['中華', '華人', '人民', '共和', '共和國(guó)', '中華人民共和國(guó)', '是', '偉大', '的']
  • jieba.add_word(w)

向分詞詞庫(kù)添加新詞w

最重要的就是jieba.lcut(s)函數(shù),完成精確的中文分詞。

到此這篇關(guān)于python中jieba庫(kù)(中文分詞庫(kù))使用安裝教程的文章就介紹到這了,更多相關(guān)python中jieba庫(kù)使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java加密算法--MD5加密和哈希散列帶秘鑰加密算法源碼

    java加密算法--MD5加密和哈希散列帶秘鑰加密算法源碼

    這篇文章主要介紹了java加密算法--MD5加密和哈希散列帶秘鑰加密算法源碼的相關(guān)資料,這里附實(shí)例代碼,幫助到大家學(xué)習(xí)理解,需要的朋友可以參考下
    2016-11-11
  • Java設(shè)計(jì)模式之適配器模式的實(shí)現(xiàn)

    Java設(shè)計(jì)模式之適配器模式的實(shí)現(xiàn)

    這篇文章主要介紹了Java設(shè)計(jì)模式之適配器模式的實(shí)現(xiàn),適配器模式(Adapter Pattern)是作為兩個(gè)不兼容的接口之間的橋梁,這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它結(jié)合了兩個(gè)獨(dú)立接口的功能,需要的朋友可以參考下
    2023-11-11
  • Java中單例模式詳解

    Java中單例模式詳解

    這篇文章主要介紹了Java中單例模式詳解,單例模式包括了懶漢式單例、餓漢式單例、登記式單例三種,想要了解的朋友可以了解一下。
    2016-11-11
  • Java微信小程序oss圖片上傳的實(shí)現(xiàn)方法

    Java微信小程序oss圖片上傳的實(shí)現(xiàn)方法

    這篇文章主要介紹了Java微信小程序oss圖片上傳的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Java中xxl-job實(shí)現(xiàn)分片廣播任務(wù)的示例

    Java中xxl-job實(shí)現(xiàn)分片廣播任務(wù)的示例

    本文主要介紹了Java中xxl-job實(shí)現(xiàn)分片廣播任務(wù)的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 如何配置Eclipse實(shí)現(xiàn)定制登錄界面

    如何配置Eclipse實(shí)現(xiàn)定制登錄界面

    本文介紹了如何配置Eclipse實(shí)現(xiàn)定制登錄界面,每一步的講解都很細(xì)致,感興趣的小伙伴可以閱讀一下
    2015-07-07
  • Java字節(jié)流 從文件輸入輸出到文件過(guò)程解析

    Java字節(jié)流 從文件輸入輸出到文件過(guò)程解析

    這篇文章主要介紹了Java字節(jié)流 從文件輸入 輸出到文件過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 使用Springboot處理跨域的方式

    使用Springboot處理跨域的方式

    這篇文章主要介紹了使用Springboot處理跨域的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Spring Boot啟動(dòng)時(shí)調(diào)用自己的非web邏輯

    Spring Boot啟動(dòng)時(shí)調(diào)用自己的非web邏輯

    在spring Boot中,有些代碼是WEB功能,例如API等,但是有些邏輯是非WEB,啟動(dòng)時(shí)就要調(diào)用并持續(xù)運(yùn)行的,該如何加載自己的非WEB邏輯呢,下面通過(guò)實(shí)例代碼給大家講解,一起看看吧
    2017-07-07
  • HttpsURLConnection上傳文件流(實(shí)例講解)

    HttpsURLConnection上傳文件流(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇HttpsURLConnection上傳文件流(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07

最新評(píng)論