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

python Jieba分詞處理詳解【模式,詞庫的添加、刪除,自定義詞庫,失敗處理等】

 更新時間:2023年07月14日 08:46:07   作者:專注算法的馬里奧學(xué)長  
這篇文章主要介紹了python Jieba分詞處理,結(jié)合實(shí)例形式詳細(xì)分析了python 使用jieba分詞的模式,詞庫的添加、刪除,自定義詞庫,失敗處理等相關(guān)操作技巧,需要的朋友可以參考下

Jieba(結(jié)巴)是一個中文分詞第三方庫,它可以幫助我們將一段中文文本分成一個個獨(dú)立的詞語。Jieba具有以下特點(diǎn):

  1. 簡單易用:Jieba提供了簡潔的API接口,易于使用和擴(kuò)展??梢钥焖俚貙?shí)現(xiàn)中文分詞功能。
  2. 高效準(zhǔn)確:Jieba采用了基于前綴詞典和動態(tài)規(guī)劃算法的分詞方法,能夠高效準(zhǔn)確地處理各種中文文本。
  3. 支持多種分詞模式:Jieba提供了三種分詞模式:精確模式、全模式和搜索引擎模式,可以根據(jù)不同的應(yīng)用場景選擇合適的模式。
  4. 支持用戶自定義詞典:Jieba允許用戶自定義詞典,可以根據(jù)實(shí)際需要添加新的詞語或調(diào)整已有詞語的詞頻和詞性等信息。
  5. 支持并發(fā)分詞:Jieba采用多進(jìn)程和協(xié)程的方式實(shí)現(xiàn)并發(fā)分詞,可以提高分詞速度和效率。

除了中文分詞功能之外,Jieba還提供了關(guān)鍵詞提取、詞性標(biāo)注、繁體轉(zhuǎn)簡體、詞語拼音轉(zhuǎn)換等功能??梢詽M足不同的中文文本處理需求。image.png

1 Jieba的搜索模式

1.1 全模式

全模式會將需要分詞的文本中所有可能的詞語都進(jìn)行匹配,因此會產(chǎn)生大量的冗余詞語。使用Jieba的全模式,比如我們希望把美國數(shù)據(jù)倉庫巨頭發(fā)布開源模型,公開挑戰(zhàn)ChatGPT這句話進(jìn)行分詞:

import jieba    
text = '美國數(shù)據(jù)倉庫巨頭發(fā)布開源模型,公開挑戰(zhàn)ChatGPT'  
seg_list = jieba.cut(text, cut_all=True)  
print("/".join(seg_list))

在上述代碼中,cut_all=True指定了使用全模式進(jìn)行分詞,"/".join(seg_list)會將分詞結(jié)果以斜杠分隔輸出。這段的輸出結(jié)果為:image.png

可以看到分詞結(jié)果中,數(shù)據(jù)倉庫被分為了數(shù)據(jù)、倉庫、數(shù)據(jù)倉庫三個獨(dú)立的詞語,因此會產(chǎn)生大量的冗余詞語。全模式適合于對文本中所有可能的詞語進(jìn)行匹配的場景,例如搜索引擎的索引處理、關(guān)鍵詞提取等。

1.2 精確模式

精確模式會將需要分詞的文本中可能存在的詞語都進(jìn)行匹配,但不會產(chǎn)生冗余詞語。使用Jieba的精確模式,可以通過以下方式實(shí)現(xiàn):

import jieba    
text = '美國數(shù)據(jù)倉庫巨頭發(fā)布開源模型,公開挑戰(zhàn)ChatGPT'  
seg_list = jieba.cut(text, cut_all=False)  
print("/".join(seg_list))

在上述代碼中,cut_all=False指定了使用精確模式進(jìn)行分詞。這段的輸出結(jié)果為:image.png

可以看到,在精確模式下,Jieba會將數(shù)據(jù)倉庫作為一個詞語進(jìn)行匹配,不會產(chǎn)生冗余詞語。精確模式適合于對文本中存在的詞語進(jìn)行匹配的場景,例如文本分類、情感分析等。精確模式不會產(chǎn)生冗余詞語,因此可以得到準(zhǔn)確的分詞結(jié)果。

1.3 搜索引擎模式

搜索引擎模式使用了基于前綴匹配算法的正向最大匹配(FMM)和逆向最大匹配(RMM)算法,會對需要分詞的文本進(jìn)行分詞,并且盡可能多地匹配分詞結(jié)果。因此,在分詞時,搜索引擎模式會優(yōu)先匹配較長的詞語。使用Jieba的搜索引擎模式,可以通過以下方式實(shí)現(xiàn):

import jieba   
text = '美國數(shù)據(jù)倉庫巨頭發(fā)布開源模型,公開挑戰(zhàn)ChatGPT'  
seg_list = jieba.cut_for_search(text)  
print("/".join(seg_list))

這段函數(shù)的輸出結(jié)果為;

image.png

由于我們的實(shí)例文本過段,在這里的結(jié)果與全模式的分詞結(jié)果并未表現(xiàn)出區(qū)別。搜索引擎模式適合于對長文本進(jìn)行分詞的場景,例如自然語言處理、信息檢索等。搜索引擎模式使用了基于前綴匹配算法的正向最大匹配(FMM)和逆向最大匹配(RMM)算法,可以盡可能多地匹配分詞結(jié)果,但可能會對一些新詞造成誤判,需要進(jìn)行進(jìn)一步的處理和校對。

1.4 分詞結(jié)果的形式選擇

正常情況下,分詞結(jié)果將會以生成器的形式保存,這意味著,當(dāng)我們像上面一樣將分詞結(jié)果全部打印之后,這個生成器就不能二次使用了。image.png

如果希望以列表的形式報錯結(jié)果??梢詫⑸善鬓D(zhuǎn)為list格式:

seg_list = jieba.cut(text)  
print(type(seg_list))  
seg_list = list(seg_list)  
print(type(seg_list))

image.png

也可以直接指定函數(shù)的返回為list,此時我們需要使用函數(shù)lcut

seg_list = jieba.lcut(text)  
print(type(seg_list))

image.png

2 詞庫的添加與刪除

在Jieba中,詞庫是指用于分詞的詞典,Jieba提供了內(nèi)置的詞典和用戶自定義的詞典。用戶可以通過添加或刪除詞語來定制自己的詞典。

2.1 添加單個詞語

在Jieba中,可以通過調(diào)用add_word(word, freq=None, tag=None)方法來向詞庫中添加單個詞語。其中,word為需要添加的詞語,freq為該詞語的詞頻,tag為該詞語的詞性。例如,假設(shè)需要將詞語開源模型添加到Jieba的詞庫中,可以通過如下代碼實(shí)現(xiàn):

import jieba  
text = '美國數(shù)據(jù)倉庫巨頭發(fā)布開源模型,公開挑戰(zhàn)ChatGPT'  
jieba.add_word("開源模型")  
seg_list = jieba.cut(text)  
print('/'.join(seg_list))

此時,開源模型就被分為一個詞了:image.png

2.2 添加自定義詞典

當(dāng)需要添加的詞過多時,建議使用添加詞典的方式。自定義詞典可以包含用戶自己添加的詞語及其詞頻和詞性等信息。添加自定義詞典的方法如下:

  1. 創(chuàng)建一個文本文件,例如userdict.txt,用于存儲自定義詞典。每行格式為:詞語 詞頻 詞性。
  2. 將需要添加的詞語及其詞頻和詞性等信息寫入到userdict.txt中,每個詞語一行。
  3. 調(diào)用Jieba的load_userdict()方法加載自定義詞典文件。詞典示例如下:
開源模型 10 n 
深度學(xué)習(xí) 8 n

其中,108為詞語的詞頻,n為詞語的詞性。之后調(diào)用詞典即可。

jieba.load_userdict("userdict.txt")

詞典加入之后,再次進(jìn)行分詞,詞典中的內(nèi)容就可以被分出來了。

2.3 詞庫的刪除

在Jieba中,可以通過調(diào)用del_word(word)方法來刪除詞庫中的單個詞語。其中,word為需要刪除的詞語。剛剛我們在詞典中添加了開源模型這個詞,接下來我們將其刪除:

jieba.del_word("開源模型")
seg_list = jieba.cut(text)  
print('/'.join(seg_list))

image.png

此時開源和模型就又變?yōu)閮蓚€詞了。

2.4 添加詞庫失效的情況

如果想要添加的詞包含標(biāo)點(diǎn)符號,則這個添加操作會失效(無論是添加單個的詞語還是使用自定義字典),比如:

import jieba  
text = '美國數(shù)據(jù)倉庫巨頭發(fā)布<開源模型>,公開挑戰(zhàn)ChatGPT'  
jieba.add_word("<開源模型>")  
seg_list = jieba.cut(text)  
print('/'.join(seg_list))

這段代碼希望將<開源模型>分為一個詞,然而jieba默認(rèn)標(biāo)點(diǎn)符號會被單獨(dú)分割,因此這個添加詞庫的操作會失效,不但<開源模型>不能被分出來,開源模型也不能被分出來。image.png

因此,在添加詞庫時要避免這種情況的出現(xiàn)。

python 結(jié)巴分詞具體下載與使用方法可參考github相關(guān)說明:

https://github.com/livemirror/jieba

相關(guān)文章

  • 使用Python分析數(shù)據(jù)并進(jìn)行搜索引擎優(yōu)化的操作步驟

    使用Python分析數(shù)據(jù)并進(jìn)行搜索引擎優(yōu)化的操作步驟

    在互聯(lián)網(wǎng)時代,網(wǎng)站數(shù)據(jù)是一種寶貴的資源,可以用來分析用戶行為、市場趨勢、競爭對手策略等,本文將介紹如何使用Python爬取網(wǎng)站數(shù)據(jù),并進(jìn)行搜索引擎優(yōu)化,,需要的朋友可以參考下
    2023-08-08
  • Python 的描述符 descriptor詳解

    Python 的描述符 descriptor詳解

    Python中包含了許多內(nèi)建的語言特性,它們使得代碼簡潔且易于理解。這些特性包括列表/集合/字典推導(dǎo)式,屬性(property)、以及裝飾器(decorator)。對于大部分特性來說,這些“中級”的語言特性有著完善的文檔,并且易于學(xué)習(xí)。但是這里有個例外,那就是描述符。
    2016-02-02
  • 關(guān)于Pytorch MaxUnpool2d中size操作方式

    關(guān)于Pytorch MaxUnpool2d中size操作方式

    今天小編就為大家分享一篇關(guān)于Pytorch MaxUnpool2d中size操作方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 教你用 Python 發(fā)送告警通知到微信的操作過程

    教你用 Python 發(fā)送告警通知到微信的操作過程

    大家都知道常見的告警方式有:郵件,電話,短信,微信,今天通過本文給大家介紹下Python 發(fā)送告警通知到微信的操作過程,感興趣的朋友一起看看吧
    2022-01-01
  • keras實(shí)現(xiàn)VGG16 CIFAR10數(shù)據(jù)集方式

    keras實(shí)現(xiàn)VGG16 CIFAR10數(shù)據(jù)集方式

    這篇文章主要介紹了keras實(shí)現(xiàn)VGG16 CIFAR10數(shù)據(jù)集方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python數(shù)據(jù)處理和數(shù)據(jù)清洗的示例詳解

    python數(shù)據(jù)處理和數(shù)據(jù)清洗的示例詳解

    數(shù)據(jù)清洗是指發(fā)現(xiàn)并糾正數(shù)據(jù)文件中可識別的錯誤的最后一道程序,包括檢查數(shù)據(jù)一致性,處理無效值和缺失值等,數(shù)據(jù)清洗與處理的目的是提高數(shù)據(jù)的質(zhì)量,提高實(shí)驗(yàn)結(jié)果的可靠度,本文給大家介紹了python數(shù)據(jù)處理和數(shù)據(jù)清洗的示例,需要的朋友可以參考下
    2024-08-08
  • pygame實(shí)現(xiàn)簡單五子棋游戲

    pygame實(shí)現(xiàn)簡單五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了pygame實(shí)現(xiàn)簡單五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下<BR>
    2022-01-01
  • Python使用concurrent.futures模塊實(shí)現(xiàn)多進(jìn)程多線程編程

    Python使用concurrent.futures模塊實(shí)現(xiàn)多進(jìn)程多線程編程

    Python的concurrent.futures模塊可以很方便的實(shí)現(xiàn)多進(jìn)程、多線程運(yùn)行,減少了多進(jìn)程帶來的的同步和共享數(shù)據(jù)問題,下面就跟隨小編一起了解一下concurrent.futures模塊的具體使用吧
    2023-12-12
  • Python連接SQLite數(shù)據(jù)庫操作實(shí)戰(zhàn)指南從入門到精通

    Python連接SQLite數(shù)據(jù)庫操作實(shí)戰(zhàn)指南從入門到精通

    在Python中使用SQLite進(jìn)行數(shù)據(jù)庫操作時,我們將深入研究SQLite數(shù)據(jù)庫的創(chuàng)建、表格管理、數(shù)據(jù)插入、查詢、更新和刪除等關(guān)鍵主題,幫助你全面了解如何使用SQLite進(jìn)行數(shù)據(jù)庫操作
    2023-11-11
  • python遞歸打印某個目錄的內(nèi)容(實(shí)例講解)

    python遞歸打印某個目錄的內(nèi)容(實(shí)例講解)

    下面小編就為大家?guī)硪黄猵ython遞歸打印某個目錄的內(nèi)容(實(shí)例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08

最新評論

岳阳市| 舞钢市| 佛坪县| 嘉鱼县| 承德县| 波密县| 新绛县| 若羌县| 武宣县| 同江市| 巴中市| 棋牌| 临清市| 牙克石市| 尉氏县| 恩平市| 湖南省| 大足县| 雅安市| 香港| 望江县| 邳州市| 宁乡县| 增城市| 绵阳市| 梅河口市| 淳安县| 临海市| 油尖旺区| 巴青县| 万载县| 河北省| 阳新县| 井陉县| 招远市| 绥阳县| 喀喇沁旗| 双峰县| 应用必备| 麻江县| 科技|