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

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

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

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

介紹

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

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

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

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

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

jieba是python的一個中文分詞庫,下面介紹它的使用方法。

安裝

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

功能

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

分詞

jieba常用的三種模式:

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

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

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

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

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

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

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

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

三種分詞模式的比較:

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

自定義詞典

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

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

詞典格式如下:

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

下面使用一個例子說明一下:

自定義字典 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']

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

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

關(guān)鍵詞提取

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

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

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

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

也可以使用 jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 實例,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)
# ['玄德', '程遠志', '張角', '云長', '張飛', '黃巾', '封谞', '劉焉', '鄧茂', '鄒靖', '姓名', '招軍']
# 使用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), ('程遠志', 0.07787459004363208), ('張角', 0.0722532891360849),
# ('云長', 0.07048801593691037), ('張飛', 0.060972692853113214), ('黃巾', 0.058227157790330185),
# ('封谞', 0.0563904127495283), ('劉焉', 0.05470798376886792), ('鄧茂', 0.04917692565566038),
# ('鄒靖', 0.04427258239705188), ('姓名', 0.04219704283997642), ('招軍', 0.04182041076757075)]

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

詞性標(biāo)注

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

import jieba
import jieba.posseg as pseg
 
# 默認模式
seg_list = pseg.cut("今天哪里都沒去,在家里睡了一天")
for word, flag in seg_list:
    print(word + " " + flag)
   
"""
使用 jieba 默認模式的輸出結(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模式的詞性對照表如下:

補充:Python中文分詞庫——jieba的用法

.使用說明

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

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

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

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

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

  • jieba.lcut(s)

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

>>> import jieba
>>> jieba.lcut("中國是一個偉大的國家")
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.
['中國', '是', '一個', '偉大', '的', '國家']
  • jieba.lcut(s,cut_all=True)

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

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

jieba.lcut_for_search(s)

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

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

向分詞詞庫添加新詞w

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

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

相關(guān)文章

  • Java 實現(xiàn)貪吃蛇游戲的示例

    Java 實現(xiàn)貪吃蛇游戲的示例

    這篇文章主要介紹了Java 如何實現(xiàn)貪吃蛇游戲,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • JAVA SE包裝類和泛型詳細介紹及說明方法

    JAVA SE包裝類和泛型詳細介紹及說明方法

    這篇文章主要介紹了JAVA SE包裝類和泛型的相關(guān)資料,包括基本數(shù)據(jù)類型與包裝類的對應(yīng)關(guān)系,以及裝箱和拆箱的概念,并重點講解了自動裝箱和自動拆箱的機制,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-03-03
  • Spring?Cloud?Gateway遠程命令執(zhí)行漏洞分析(CVE-2022-22947)

    Spring?Cloud?Gateway遠程命令執(zhí)行漏洞分析(CVE-2022-22947)

    使用Spring Cloud Gateway的應(yīng)用程序在Actuator端點啟用、公開和不安全的情況下容易受到代碼注入的攻擊,攻擊者可以惡意創(chuàng)建允許在遠程主機上執(zhí)行任意遠程執(zhí)行的請求,這篇文章主要介紹了Spring?Cloud?Gateway遠程命令執(zhí)行漏洞(CVE-2022-22947),需要的朋友可以參考下
    2023-03-03
  • Java 異常的知識整理

    Java 異常的知識整理

    這篇文章主要介紹了Java 異常的知識整理的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Java Online Exam在線考試系統(tǒng)的實現(xiàn)

    Java Online Exam在線考試系統(tǒng)的實現(xiàn)

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+springboot+vue+jsp+mysql+maven實現(xiàn)Online Exam在線考試系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • 淺談Java中SimpleDateFormat 多線程不安全原因

    淺談Java中SimpleDateFormat 多線程不安全原因

    SimpleDateFormat是Java中用于日期時間格式化的一個類,本文主要介紹了淺談Java中SimpleDateFormat 多線程不安全原因,感興趣的可以了解一下
    2024-01-01
  • Java中Equals使用方法匯總

    Java中Equals使用方法匯總

    這篇文章主要采用問答的方式集中講解了Java中Equals的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Java設(shè)計模式常用的七大原則總結(jié)

    Java設(shè)計模式常用的七大原則總結(jié)

    今天給大家總結(jié)了Java設(shè)計模式的七大原則,主要有單一職責(zé)原則,接口隔離原則,依賴倒轉(zhuǎn)原則,里氏替換原則等,文中有非常詳細的介紹,需要的朋友可以參考下
    2021-06-06
  • 深入了解Java核心類庫--BigDecimal和System類

    深入了解Java核心類庫--BigDecimal和System類

    這篇文章主要為大家詳細介紹了javaBigDecimal和System類定義與使用的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能給你帶來幫助
    2021-07-07
  • Struts2+uploadify多文件上傳實例

    Struts2+uploadify多文件上傳實例

    這篇文章主要為大家詳細介紹了Struts2+uploadify多文件上傳實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08

最新評論

兰溪市| 宁晋县| 福鼎市| 特克斯县| 东山县| 肥乡县| 洪洞县| 东乌珠穆沁旗| 乐东| 宁化县| 纳雍县| 广安市| 噶尔县| 宁陕县| 吉木萨尔县| 虞城县| 平舆县| 枝江市| 都匀市| 衡山县| 福鼎市| 侯马市| 清镇市| 穆棱市| 永济市| 江安县| 通化县| 荣昌县| 桓台县| 磐安县| 布拖县| 营口市| 忻城县| 漳浦县| 铜川市| 南漳县| 那曲县| 塔河县| 衡山县| 华池县| 白山市|