国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python——jieba優(yōu)秀的中文分詞庫(kù)(基礎(chǔ)知識(shí)+實(shí)例)

這篇具有很好參考價(jià)值的文章主要介紹了Python——jieba優(yōu)秀的中文分詞庫(kù)(基礎(chǔ)知識(shí)+實(shí)例)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Hello,World!

從去年開(kāi)始學(xué)習(xí)Python,在長(zhǎng)久的學(xué)習(xí)過(guò)程中,發(fā)現(xiàn)了許多有趣的知識(shí),不斷充實(shí)自己。今天我所寫(xiě)的內(nèi)容也是極具趣味性,關(guān)于優(yōu)秀的中文分詞庫(kù)——jieba庫(kù)。

??關(guān)于Jieba

? ?? ? ???什么是jieba?

1、jieba 是目前表現(xiàn)較為不錯(cuò)的 Python 中文分詞組件,它主要有以下特性:

  • 中文文本需要通過(guò)分詞獲得單個(gè)的詞語(yǔ)
  • jieba需要額外安裝
  • jieba庫(kù)提供三種分詞模式

2、jieba庫(kù)的分詞原理:利用一個(gè)中文詞庫(kù),確定漢字之間的關(guān)聯(lián)概率,漢字間概率大的組成詞組,形成分詞結(jié)果。除了分詞,用戶還可以添加自定義的詞組?!具@一點(diǎn)是很有趣的??!】

3、jieba庫(kù)支持四種分詞模式:精確模式、全模式、搜索引擎模式、paddle模式,并且支持繁體分詞,以及自定義詞典。具體介紹:

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

????????算法

  • 基于前綴詞典實(shí)現(xiàn)高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構(gòu)成的有向無(wú)環(huán)圖 (DAG)
  • 采用了動(dòng)態(tài)規(guī)劃查找最大概率路徑, 找出基于詞頻的最大切分組合
  • 對(duì)于未登錄詞,采用了基于漢字成詞能力的 HMM 模型,使用了 Viterbi 算法

正文來(lái)了?。?!

??一、安裝jieba庫(kù)

? ? ? ? ??1.? 此次內(nèi)容創(chuàng)作,我主要使用的軟件有Anaconda,Jupyter Notebook,Pycharm等,看過(guò)我之前文章的大佬們,相信對(duì)Anaconda都有一個(gè)簡(jiǎn)單的了解,這里就不一一敘述了,直接安裝??。

因?yàn)閖ieba庫(kù)不是Anaconda中自帶的,所以需要我們自己下載,首先進(jìn)入jieba庫(kù)官網(wǎng):jieba · PyPIhttps://pypi.org/project/jieba/#files

如下圖:

jieba,中文分詞,自然語(yǔ)言處理

?點(diǎn)擊官網(wǎng)中文件下載即可(如果下載速度比較慢,可以私聊我!??)

? ? ? ? ??2.? 將壓縮包解壓到anaconda的pkgs目錄。

? ? ? ? ??3.? 打開(kāi)anaconda prompt,切換目錄至比如我的D:/anaconda/pkgs/jieba-0.42,輸入cmd進(jìn)入命令行模式
執(zhí)行? python setup.py install? ?即可。

jieba,中文分詞,自然語(yǔ)言處理

? ? ? ? ??4.? 再次打開(kāi)jupyter notebook 測(cè)試

import jieba,正常。pycharm中 import jieba ,正常。由此,我們的第一步安裝完成!

pip install jieba

import jieba

???二、jieba庫(kù)的使用

? ? ? ? ??1.? 精確模式

????????將語(yǔ)句最精確的切分,不存在冗余數(shù)據(jù),適合做文本分析。

????????#精確模式

????????jieba.cut(text, cut_all=False)

????????案例分析:

????????精確模式分析是不存在冗余數(shù)據(jù)的,把完整的text文本按照中文詞庫(kù)的標(biāo)準(zhǔn)完成拆分。如圖所示:jieba,中文分詞,自然語(yǔ)言處理

import jieba
seg_list = jieba.cut("我來(lái)到北京清華大學(xué)", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))  # 精確模式

? ? ? ?? 2.? 全模式

????????將語(yǔ)句中所有可能是詞的詞語(yǔ)都切分出來(lái),速度很快,但是存在冗余數(shù)據(jù)。

????????#全模式

????????jieba.cut(text, cut_all=True)

????????案例分析:

????????全模式與精確模式的不同在于,全模式存在冗余數(shù)據(jù),是將存在可能的詞語(yǔ)全部切分出來(lái),從第一個(gè)字到最后一個(gè)字遍歷作為詞語(yǔ)第一個(gè)字。例如:以“吉”開(kāi)頭的詞語(yǔ)包括“吉林”,“吉林省”,以“長(zhǎng)”開(kāi)頭的名詞包括“長(zhǎng)春”“長(zhǎng)春市”等等。如圖所示:

jieba,中文分詞,自然語(yǔ)言處理

?不難看出,輸出的內(nèi)容存在冗余數(shù)據(jù)。

seg_list = jieba.cut("我來(lái)到吉林省長(zhǎng)春市高新技術(shù)產(chǎn)業(yè)開(kāi)發(fā)區(qū)光谷大街1188號(hào)", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))  # 全模式

? ? ? ?? 3、搜索引擎模式

????????在精確模式的基礎(chǔ)上,對(duì)長(zhǎng)詞再次進(jìn)行切分,提高召回率,適合用于搜索引擎分詞。

????????#搜索引擎模式

????????jieba.lcut_for_search(text)

????????案例分析:

????????搜索引擎模式是將精確模式中的長(zhǎng)詞,再次按照全模式切分。如圖所示:

jieba,中文分詞,自然語(yǔ)言處理

seg_list = jieba.cut_for_search("小明碩士畢業(yè)于中國(guó)科學(xué)院計(jì)算所,后在日本京都大學(xué)深造")  # 搜索引擎模式
print(", ".join(seg_list))

? ? ? ? ??4、Viterbi算法

jieba,中文分詞,自然語(yǔ)言處理

?此處,“杭研”并沒(méi)有在詞典中,但是也被Viterbi算法識(shí)別出來(lái)了。

? ? ? ? ??5、自定義詞典

????????在jieba自定義字典方面,目前我所了解到的常見(jiàn)的應(yīng)用環(huán)境是各網(wǎng)絡(luò)平臺(tái)對(duì)違禁詞的查詢搜索處理,以及網(wǎng)站也對(duì)用戶個(gè)人信息的處理,對(duì)購(gòu)物方面評(píng)價(jià)信息的處理等等。因此,我同樣也使用了jupyter notebook嘗試了自定義詞典的使用,text文本文件及運(yùn)行結(jié)果如下圖所示:

jieba,中文分詞,自然語(yǔ)言處理

?jieba,中文分詞,自然語(yǔ)言處理

//自定義詞典使用
import jieba
test_sent = "李小福是創(chuàng)新辦主任也是云計(jì)算方面的專(zhuān)家"
jieba.load_userdict("E://userdict.txt")
words = jieba.cut(test_sent)
print(list(words))

?????????可以看出,我的自定義詞典在運(yùn)行過(guò)程中,起到了具體的作用??上攵?,當(dāng)我們?cè)趯?duì)一篇文章進(jìn)行內(nèi)容的分析處理是,也是可以使用jieba庫(kù)的!可以通過(guò)用戶自定義詞典來(lái)增強(qiáng)歧義糾錯(cuò)能力!

部分文本解析語(yǔ)法:

def getext():
    fname=input("請(qǐng)輸入要打開(kāi)的文件路徑及名稱(chēng),以txt結(jié)尾:")
    fo=open(fname)      #打開(kāi)該文件,默認(rèn)是文本文件,文本文件其實(shí)就是一個(gè)字符串
    txt=fo.read()       #<文件名>.read()  默認(rèn)是讀取文件全部?jī)?nèi)容
    txt=txt.lower()     #將文本所有字母小寫(xiě)
    for ch in '!"#$%()*+<_>/:;<>=?@[\]\^_{}|~':
        txt=txt.replace(ch,'')       #將文本中含有的所有上述字符都變?yōu)榭崭?    return txt
hamlettxt=getext()
words=hamlettxt.split()      #默認(rèn)值,是將文本中單詞按照空格分成一個(gè)一個(gè)的單詞,并將結(jié)果保存成列表類(lèi)型
counts={}                    #定義一個(gè)空字典類(lèi)型,因?yàn)槲覀兿M麊卧~和該單詞出現(xiàn)的次數(shù)作為一個(gè)鍵值對(duì)
for word in words:           #遍歷words列表的每一個(gè)值
    counts[word]=counts.get(word,0)+1
items=list(counts.items())      #將該字典轉(zhuǎn)化成一個(gè)列表,其中的鍵值對(duì)是以元組的形式存在
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
    word,count=items[i]       #items[i] 是個(gè)元組,元組可以帶括號(hào),可以不帶括號(hào);賦值
    print("{:<10}{:>5}".format(word,count))

? ??三、 使用語(yǔ)法

? ? ? ? ? ? ? ? ??1.? 對(duì)詞組的基本操作

?????????添加

str = "你好呀,我叫李華!多多關(guān)照!"
jieba.add_word("你")
print(jieba.lcut(str))

? ? ? ? ?刪除

str = "你好呀,我叫李華!多多關(guān)照!"
jieba.del_word("李華")
print(jieba.lcut(str))

?????????調(diào)整詞出現(xiàn)的頻率

str = "你好呀,我叫李華!多多關(guān)照!"
jieba.suggest_freq(("李", "華"), True)
print(jieba.lcut(str))

? ? ? ? ? ? ? ??? 2.? 關(guān)鍵字提取

????????TFIDF算法

import jieba.analyse # 導(dǎo)包

jieba.analyse.extract_tags(sentence, topK=20, withWeight=False,
allowPOS=())
jieba.analyse.TFIDF(idf_path=None) # 創(chuàng)建一個(gè)新的 TFIDF 實(shí)例,idf_path是指指定 IDF 頻率文件的路徑

參數(shù):

  • sentence:要提取的文本
  • topK:返回多少個(gè)具有最高TF/IDF權(quán)重的關(guān)鍵字。默認(rèn)值為 20
  • withWeight:是否返回關(guān)鍵字的TF/IDF權(quán)重。默認(rèn)為假
  • allowPOS:過(guò)濾包含POS(詞性)的單詞??諢o(wú)過(guò)濾,可以選擇['ns', 'n', 'vn', 'v','nr']

????????TextRank算法

jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v')) # 有默認(rèn)詞性
jieba.analyse.TextRank() # 新建自定義 TextRank 實(shí)例

????????? ? ? ? ??3.? 詞性標(biāo)注

jieba.posseg.POSTokenizer(tokenizer=None)

新建自定義分詞器,tokenizer 參數(shù)可指定內(nèi)部使用的 jieba.Tokenizer 分詞器

jieba.posseg.dt 為默認(rèn)詞性標(biāo)注分詞器

import jieba.posseg
str = "你好呀,我叫李華!多多關(guān)照!"
pt = jieba.posseg.POSTokenizer()
print(pt.lcut(str)) # 得到 pair鍵值對(duì),使用遍歷取值
# print(jieba.posseg.cut(str)) # 作用一樣
for i, k in ps.lcut(str):
print(i, k)

? ? ? ? ? ? ? ? ??4.??Tokenize:返回詞語(yǔ)在原文的起止位置

  • 注意,輸入?yún)?shù)只接受 unicode

默認(rèn)模式

result = jieba.tokenize(u'永和服裝飾品有限公司')
for tk in result:
    print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))

jieba,中文分詞,自然語(yǔ)言處理

搜索模式

result = jieba.tokenize(u'永和服裝飾品有限公司', mode='search')
for tk in result:
    print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))

jieba,中文分詞,自然語(yǔ)言處理

?????????如上文所示,關(guān)于Pyhton中文分詞庫(kù)——jieba庫(kù)的介紹,暫時(shí)結(jié)束,如果后續(xù)學(xué)習(xí)到了新的內(nèi)容,會(huì)再次進(jìn)行介紹!各位大佬們,如果發(fā)現(xiàn)文章內(nèi)容錯(cuò)誤,希望可以指出,評(píng)論或私信都可??

部分內(nèi)容來(lái)源:GitHub - fxsjy/jieba: 結(jié)巴中文分詞文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-779074.html

到了這里,關(guān)于Python——jieba優(yōu)秀的中文分詞庫(kù)(基礎(chǔ)知識(shí)+實(shí)例)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 中文分詞庫(kù)jieba的三種模式介紹

    中文分詞庫(kù)jieba的三種模式介紹

    精準(zhǔn)模式 jieba.cut(test_text, cut_all=False): 試圖將句子最精確地分開(kāi),適合文本分析 全模式 jieba.cut(test_text, cut_all=True): 把句子中所有的可以成詞的詞語(yǔ)都掃描出來(lái),速度非???,但是不能解決歧義 搜索引擎模式 jieba.cut_for_search(test_text):在精確模式的基礎(chǔ)上,對(duì)長(zhǎng)詞再次切分,提

    2024年02月13日
    瀏覽(25)
  • 【一】頭歌平臺(tái)實(shí)驗(yàn)-基于jieba的中文分詞實(shí)戰(zhàn)

    【一】頭歌平臺(tái)實(shí)驗(yàn)-基于jieba的中文分詞實(shí)戰(zhàn)

    ? ? ? ?近年來(lái),隨著自然語(yǔ)言處理技術(shù)的日益成熟,開(kāi)源實(shí)現(xiàn)的分詞工具越來(lái)越多,如 Ansj 、盤(pán)古分詞等。Jieba 是目前最好的 Python 中文分詞組件。 本實(shí)訓(xùn)主要介紹 Jieba 模塊的使用,并通過(guò)示例與實(shí)戰(zhàn),幫助大家掌握使用 Jieba 的方法。 1、jieba的特點(diǎn) ????????分詞是自然

    2024年02月05日
    瀏覽(136)
  • 使用.NET Jieba.NET 的 PosSegmenter 實(shí)現(xiàn)中文分詞匹配

    使用.NET Jieba.NET 的 PosSegmenter 實(shí)現(xiàn)中文分詞匹配

    ? 目錄 引言 1. 什么是中文分詞 2. Jieba.NET簡(jiǎn)介 3. PosSegmenter介紹 4. 實(shí)現(xiàn)中文分詞匹配 4.1 安裝Jieba.NET庫(kù) 4.2 創(chuàng)建PosSegmenter實(shí)例 4.3 分詞和詞性標(biāo)注 4.4 中文分詞匹配 5. 總結(jié) ? ????????在自然語(yǔ)言處理領(lǐng)域,中文分詞是一個(gè)重要且基礎(chǔ)的任務(wù)。中文文本通常沒(méi)有像英文那樣的

    2024年02月11日
    瀏覽(25)
  • es自定義分詞器支持?jǐn)?shù)字字母分詞,中文分詞器jieba支持添加禁用詞和擴(kuò)展詞典

    自定義分析器,分詞器 所有字段檢索 高亮搜索 分詞測(cè)試 GET /test_index/_analyze jieba中文分詞支持添加禁用詞和擴(kuò)展詞庫(kù)功能 創(chuàng)建索引:PUT http://xxxx:9200/test_index 分詞測(cè)試: GET http://xxxxxx:9200/test_index/_analyze

    2024年02月11日
    瀏覽(23)
  • 文本分析-使用jieba庫(kù)進(jìn)行中文分詞和去除停用詞(附案例實(shí)戰(zhàn))

    文本分析-使用jieba庫(kù)進(jìn)行中文分詞和去除停用詞(附案例實(shí)戰(zhàn))

    ? ???♂? 個(gè)人主頁(yè):@艾派森的個(gè)人主頁(yè) ???作者簡(jiǎn)介:Python學(xué)習(xí)者 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對(duì)你有幫助的話, 歡迎評(píng)論 ??點(diǎn)贊???? 收藏 ??加關(guān)注+ ????????中文分詞是將中文文本切分成一系列有意義的詞語(yǔ)的過(guò)程。中文分詞可以用于

    2024年02月11日
    瀏覽(42)
  • NLP基礎(chǔ)—jieba分詞

    NLP基礎(chǔ)—jieba分詞

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

    2024年04月17日
    瀏覽(24)
  • python之jieba分詞庫(kù)使用

    一. 介紹 A. 什么是jieba庫(kù) jieba庫(kù)是一款開(kāi)源的中文分詞工具,能夠?qū)⒅形奈谋厩蟹殖稍~語(yǔ)。 B. jieba庫(kù)的特點(diǎn)和優(yōu)勢(shì) 支持四種分詞模式:精確模式、全模式、搜索引擎模式和paddle模式。 提供自定義詞典功能,可以添加、刪除詞語(yǔ)。 支持提取和詞性標(biāo)注。 提供Tokenize接口

    2024年02月16日
    瀏覽(26)
  • python使用jieba分詞,詞頻統(tǒng)計(jì),基本使用

    python使用jieba分詞,詞頻統(tǒng)計(jì),基本使用

    python采用第三方庫(kù)進(jìn)行中文分詞,本文章只是記錄文章。 1.需要下載第三方庫(kù)jieba: ? ? ? ? ? ? ? ? cmd: pip install jieba 2.為了方便測(cè)試,在同級(jí)目錄下,準(zhǔn)備一個(gè)txt格式文件,文件名隨意,這里我也是隨便取的: ? ? ? ? ? ? ? ? 文件路徑可以是絕對(duì)路徑,也可以是相對(duì)路

    2024年02月07日
    瀏覽(24)
  • 通過(guò)Python的jieba庫(kù)對(duì)文本進(jìn)行分詞

    大家好,我是空空star,本篇給大家分享一下通過(guò)Python的jieba庫(kù)對(duì)文本進(jìn)行分詞。 Python的jieba庫(kù)是一個(gè)中文分詞工具,它可以將一段中文文本分割成一個(gè)一個(gè)的詞語(yǔ),方便后續(xù)的自然語(yǔ)言處理任務(wù),如文本分類(lèi)、情感分析等。jieba庫(kù)使用了基于前綴詞典的分詞方法,能夠處理中

    2024年02月05日
    瀏覽(31)
  • Python使用jieba庫(kù)分詞并去除標(biāo)點(diǎn)符號(hào)

    Python使用jieba庫(kù)分詞并去除標(biāo)點(diǎn)符號(hào)

    相對(duì)于英文文本,中文文本挖掘面臨的首要問(wèn)題就是分詞,因?yàn)橹形牡脑~之間沒(méi)有空格。在Python中可以使用jieba庫(kù)來(lái)進(jìn)行中文分詞。 但是在中文中,標(biāo)點(diǎn)符號(hào)出現(xiàn)的頻率也是很高的,在使用jieba庫(kù)對(duì)帶有標(biāo)點(diǎn)符號(hào)的漢語(yǔ)句子進(jìn)行分詞時(shí),標(biāo)點(diǎn)符號(hào)出現(xiàn)在分詞結(jié)果中時(shí),對(duì)于后

    2024年02月04日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包