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

數(shù)據(jù)分析之jieba分詞使用詳解

這篇具有很好參考價值的文章主要介紹了數(shù)據(jù)分析之jieba分詞使用詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

在所有人類語言中,一句話、一段文本、一篇文章都是有一個個的詞組成的。詞是包含獨立意義的最小文本單元,將長文本拆分成單個獨立的詞匯的過程叫做分詞。分詞之后,文本原本的語義將被拆分到在更加精細化的各個獨立詞匯中,詞匯的結(jié)構(gòu)比長文本簡單,對于計算機而言,更容易理解和分析,所以,分詞往往是自然語言處理的第一步。

對于英文文本,句子中的詞匯可以通過空格很容易得進行劃分,但是在我們中文中則不然,沒有明顯的劃分標(biāo)志,所以需要通過專門的方法(算法)進行分詞。在Python中,有多種庫實現(xiàn)了各種方法支持中文分詞,例如:jieba、hanlp、pkuseg等。在本篇中,先來說說jieba分詞。

1 四種模式分詞

(1)精確模式:試圖將句子最精確地切開,適合文本分析。精確分詞模式對應(yīng)的方法是jieba.cut,該方法接受四個輸入?yún)?shù): 需要分詞的字符串;cut_all 參數(shù)用來控制是否采用全模式,值為False時表示采用精確分詞模式;HMM 參數(shù)用來控制是否使用 HMM 模型。

(2)全模式:把句子中所有的可以成詞的詞語都掃描出來,速度非??欤遣荒芙鉀Q歧義。全模式同樣是調(diào)用jieba.cut方法實現(xiàn),不過cut_all參數(shù)值設(shè)置為True。

(3)搜索引擎模式:在精確模式的基礎(chǔ)上,對長詞再詞切分,提高召回率,適合用于搜索引擎分詞。搜索引擎模式對應(yīng)的方法是jieba.cut_for_search。該方法接受兩個參數(shù):需要分詞的字符串;是否使用 HMM 模型。該方法適合用于搜索引擎構(gòu)建倒排索引的分詞,粒度比較細。

注意,待分詞的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建議直接輸入 GBK 字符串,可能無法預(yù)料地錯誤解碼成 UTF-8。 另外,jieba.cut 以及 jieba.cut_for_search 返回的結(jié)構(gòu)都是一個可迭代的 generator,可以使用 for 循環(huán)來獲得分詞后得到的每一個詞語(unicode),或者用jieba.lcut 以及 jieba.lcut_for_search 直接返回 list。

在分詞文本過大時,可以使用jieba.enable_parallel()來開啟并行分詞模式,使用多進行進行分詞。

import jieba

strt = "據(jù)報道,因雷暴雨天氣,該地區(qū)川億線變壓器跌落式熔斷器引流線燒斷,造成電壓不穩(wěn)" 
 
# 精確模式,默認hi精確模式,所以可以不指定cut_all=False
sl = jieba.cut(strt, cut_all=False, HMM=False)
print("精確模式分詞結(jié)果:", ",".join(sl))
print('\n')

# 全模式
sl = jieba.cut(strt, cut_all=True)
print("全模式分詞結(jié)果:", ",".join(sl) )
print('\n')
 
# 搜索引擎模式
sl = jieba.cut_for_search(strt)
print("搜索引擎模式分詞結(jié)果:", ",".join(sl))

在上面分詞結(jié)果中,可以看出,部分專有名詞并沒有被正確劃分,這時候可以試試將HMM參數(shù)設(shè)置為True,表示使用隱馬爾可夫模型發(fā)現(xiàn)新詞:

sl = jieba.cut(strt, cut_all=False, HMM=True)
print(",".join(sl))

遺憾的是,就算使用了發(fā)現(xiàn)新詞功能,只是進一步劃分出了“燒斷”一詞,仍然沒有對“川億線”、“跌落式”、“引流線”等詞匯進行正確提取,這是隱馬爾可夫模型分詞原理決定的,只能發(fā)現(xiàn)在原始訓(xùn)練詞庫匯總頻率稍高的新詞,而對沒有出現(xiàn)過的新詞無能為力。這時候,我們可以自定義詞典來添加新詞。

2 自定義詞典分詞

2.1 添加詞典

自定義詞典分詞是指在分詞前,用戶手動將部分詞匯添加到結(jié)巴分詞的詞庫中。通過這種方式可以進一步提取出默認詞庫中沒有的詞匯,提高分詞準確率。

在添加詞典通過jieba.load_userdict(file_name)方法實現(xiàn),參數(shù)file_name是詞典文件名,詞典中一個詞占一行,每一行分三部分,即詞語、詞頻(可省略)、詞性(可省略),用空格隔開,順序不可顛倒。

可見,“川億線”一次已被正確劃分。再來試試jieba.load_userdict(file_name)添加詞庫,這種方式的好處是可以一次性添加多個詞。我們先將詞匯寫入文件,請讀者自行新建一個名為“dict.txt”的文件,寫入一下內(nèi)容:

跌落式 90 a 熔斷器 80 a 跌落式熔斷器 10 n 引流線 80 n
strt = "據(jù)報道,因雷暴雨天氣,該地區(qū)川億線變壓器跌落式熔斷器引流線燒斷,造成電壓不穩(wěn)" 

jieba.load_userdict('dict.txt')
sl = jieba.cut(strt, cut_all=False)
print(",".join(sl))

從上面結(jié)果可以看出,添加自定義的詞庫后,原本沒有被正確劃分出來的詞,如“跌落式熔斷器”,“引流線”等都被正確劃分出來了。

2.2 調(diào)整詞典

添加自定義的詞典后,有時候我們還是需要對詞典進行微調(diào)。

  • jieba.suggest_freq()

在上述我們自定義的詞典中包含“跌落式”、“熔斷器”、“跌落式熔斷器”三個詞,但是分詞結(jié)果中按最長的“跌落式熔斷器”進行分詞,如果我們分別進行劃分,可以使用jieba.suggest_freq()方法調(diào)節(jié)單個詞語的詞頻,使其能(或不能)被正確劃分出來。

jieba.suggest_freq(('跌落式', '熔斷器'), tune=True)

sl = jieba.cut(strt, cut_all=False, HMM=False)
print(",".join(sl))

這時候,“跌落式”、“熔斷器”兩個詞就沒有在被完整劃分。

同時,對于居中的“不穩(wěn)”一詞,在上述分詞結(jié)果中被分成了兩個部分,這里也可以通過jieba.suggest_freq()調(diào)整,使其分為一個完整詞。

jieba.suggest_freq('不穩(wěn)', tune=True)

sl = jieba.cut(strt, cut_all=False)
print(",".join(sl))
據(jù),報道,,,因,雷暴雨,天氣,,,該,地區(qū),川,億線,變壓器,跌落式熔斷器,引流線,燒斷,,,造成,電壓,不穩(wěn)
sl = jieba.cut(strt, cut_all=False)
print(",".join(sl))
據(jù),報道,,,因,雷暴雨,天氣,,,該,地區(qū),川,億線,變壓器,跌落,式,熔斷器,引流線,燒斷,,,造成,電壓,不穩(wěn)
  • jieba.add_word(word, freq=None, tag=None)

jieba.add_word()用于向詞庫中添加一個詞,該方法有三個參數(shù):word指需要添加的詞,freq是詞頻,tag是詞性,其中,詞頻和詞性可省略。例如,在上述分詞中沒有被正確劃分為一個詞“川億線”添加到詞庫中:

jieba.add_word('川億線')
sl = jieba.cut(strt, cut_all=False, HMM=False)
print(",".join(sl))
據(jù),報道,,,因,雷暴雨,天氣,,,該,地區(qū),川億線,變壓器,跌落,式,熔斷器,引流線,燒,斷,,,造成,電壓,不穩(wěn)
  • del_word(word)

del_word(word)可以刪除詞庫中的一個詞。

jieba.del_word('川億線')
sl = jieba.cut(strt, cut_all=False, HMM=False)
print(",".join(sl))
據(jù),報道,,,因,雷暴雨,天氣,,,該,地區(qū),川,億,線,變壓器,跌落,式,熔斷器,引流線,燒,斷,,,造成,電壓,不穩(wěn)

3 詞性標(biāo)注

jieba分詞中,通過jieba.posseg提供詞性標(biāo)注支持。jieba.posseg.cut()方法返回一個生成器,jieba.posseg.lcut()放回一個列表。

import jieba.posseg

sl = jieba.posseg.cut(strt)
for x in sl:
    print('分詞: ', x.word, '     詞性: ', x.flag)
分詞: 據(jù) 詞性: p 分詞: 報道 詞性: v 分詞: , 詞性: x 分詞: 因 詞性: p 分詞: 雷暴雨 詞性: nr 分詞: 天氣 詞性: n 分詞: , 詞性: x 分詞: 該 詞性: r 分詞: 地區(qū) 詞性: n 分詞: 川 詞性: j 分詞: 億線 詞性: m 分詞: 變壓器 詞性: n 分詞: 跌落 詞性: v 分詞: 式 詞性: k 分詞: 熔斷器 詞性: n 分詞: 引流線 詞性: n 分詞: 燒斷 詞性: v 分詞: , 詞性: x 分詞: 造成 詞性: v 分詞: 電壓 詞性: n 分詞: 不穩(wěn) 詞性: a

結(jié)巴分詞中,各種詞性標(biāo)注含義如下所示:

數(shù)據(jù)分析之jieba分詞使用詳解

4 關(guān)鍵詞提取

4.1 基于 TF-IDF 算法的關(guān)鍵詞抽取

TF-IDF算法可以分為TF和IDF兩個部分來理解,TF指的是Term Frequency,意思詞頻。

數(shù)據(jù)分析之jieba分詞使用詳解

IDF指的是inverse document frequency,即逆文檔頻率。

數(shù)據(jù)分析之jieba分詞使用詳解

從計算公式上可以看出,TF衡量的是某個詞在當(dāng)前文檔的頻率,IDF衡量的是包含某個詞的文檔占比,當(dāng)占比越少時,IDF越大。TF-IDF算法的基本思想:某一個詞在本篇文章中詞頻越高(TF越大),而在其他文章中出現(xiàn)次數(shù)少(IDF?。?,則越有可能是本篇文章的關(guān)鍵詞。將TF與IDF相結(jié)合,進行關(guān)鍵詞篩選,于是有了一個新的量TF-IDF:

數(shù)據(jù)分析之jieba分詞使用詳解

jieba分詞中實現(xiàn)了TF-IDF算法,進行關(guān)鍵詞選取,可以通過調(diào)用jieba.analyse.extract_tags()使用這一功能,在extract_tags()有4個參數(shù):

  • sentence 為待提取的文本

  • topK 為返回幾個 TF/IDF 權(quán)重最大的關(guān)鍵詞,默認值為 20

  • withWeight 為是否一并返回關(guān)鍵詞權(quán)重值,默認值為 False

  • allowPOS 僅包括指定詞性的詞,默認值為空,即不篩選

import jieba.analyse as analyse

txt = "自然語言處理是計算機科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個重要方向。它研究能實現(xiàn)人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言處理是一門融語言學(xué)、計算機科學(xué)、數(shù)學(xué)于一體的科學(xué)。因此,這一領(lǐng)域的研究將涉及自然語言,即人們?nèi)粘J褂玫恼Z言,所以它與語言學(xué)的研究有著密切的聯(lián)系,但又有重要的區(qū)別。自然語言處理并不是一般地研究自然語言,而在于研制能有效地實現(xiàn)自然語言通信的計算機系統(tǒng),特別是其中的軟件系統(tǒng)。因而它是計算機科學(xué)的一部分。"

analyse.extract_tags(txt, topK=5, withWeight=True, allowPOS=())
[('自然語言', 1.1237629576061539), ('計算機科學(xué)', 0.4503481350267692), ('語言學(xué)', 0.27566262244215384), ('研究', 0.2660770221507693), ('領(lǐng)域', 0.24979825580353845)]

4.2 基于 TextRank 算法的關(guān)鍵詞抽取

TextRank算法在原理上比DF-ITF算法復(fù)雜許多,本文不在展開介紹。在jieba分詞庫中使用TextRank算法通過調(diào)用jieba.analyse.textrank方法實現(xiàn)。該方法參數(shù)與上述使用TF-IDF算法時調(diào)用的analyse.extract_tags的參數(shù)一致。文章來源地址http://www.zghlxwxcb.cn/news/detail-501795.html

txt = "自然語言處理是計算機科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個重要方向。它研究能實現(xiàn)人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言處理是一門融語言學(xué)、計算機科學(xué)、數(shù)學(xué)于一體的科學(xué)。因此,這一領(lǐng)域的研究將涉及自然語言,即人們?nèi)粘J褂玫恼Z言,所以它與語言學(xué)的研究有著密切的聯(lián)系,但又有重要的區(qū)別。自然語言處理并不是一般地研究自然語言,而在于研制能有效地實現(xiàn)自然語言通信的計算機系統(tǒng),特別是其中的軟件系統(tǒng)。因而它是計算機科學(xué)的一部分。"

analyse.textrank(txt, topK=5, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))
['研究', '領(lǐng)域', '計算機科學(xué)', '實現(xiàn)', '處理']

到了這里,關(guān)于數(shù)據(jù)分析之jieba分詞使用詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

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

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

    2024年02月07日
    瀏覽(24)
  • (6)所有角色數(shù)據(jù)分析-6

    (6)所有角色數(shù)據(jù)分析-6

    http://t.csdn.cn/KrurE http://t.csdn.cn/KrurE (5)中的頁面,傾向于向用戶展示所有數(shù)據(jù),但卻沒有對數(shù)據(jù)進行比較、分析,用戶不能直觀的感受到各種數(shù)據(jù)之間的關(guān)系與變化幅度,所以,下面將向用戶提供一個可以直觀感受到數(shù)據(jù)變化的頁面: 話不多說,上貨! 在運行page.render(\\\"x

    2024年02月13日
    瀏覽(21)
  • (5)所有角色數(shù)據(jù)分析頁面的構(gòu)建-5

    (5)所有角色數(shù)據(jù)分析頁面的構(gòu)建-5

    ????????所有角色數(shù)據(jù)分析頁面,包括一個時間軸柱狀圖、六個散點圖、六個柱狀圖(每個屬性角色的生命值/防御力/攻擊力的max與min的對比)。 運行結(jié)果: ?

    2024年02月13日
    瀏覽(26)
  • Python使用jieba庫分詞并去除標(biāo)點符號

    Python使用jieba庫分詞并去除標(biāo)點符號

    相對于英文文本,中文文本挖掘面臨的首要問題就是分詞,因為中文的詞之間沒有空格。在Python中可以使用jieba庫來進行中文分詞。 但是在中文中,標(biāo)點符號出現(xiàn)的頻率也是很高的,在使用jieba庫對帶有標(biāo)點符號的漢語句子進行分詞時,標(biāo)點符號出現(xiàn)在分詞結(jié)果中時,對于后

    2024年02月04日
    瀏覽(16)
  • python 基礎(chǔ)教程:使用jieba庫對文本進行分詞

    Python的jieba庫是一個中文分詞工具,它可以將一段中文文本分割成一個一個的詞語,方便后續(xù)的自然語言處理任務(wù),如文本分類、情感分析等。jieba庫使用了基于前綴詞典的分詞方法,能夠處理中文的各種復(fù)雜情況,如歧義詞、新詞等。它還提供了多種分詞模式,如精確模式、

    2024年02月05日
    瀏覽(27)
  • wireshark工具詳解、數(shù)據(jù)包抓取分析、使用教程

    wireshark工具詳解、數(shù)據(jù)包抓取分析、使用教程

    Wireshark界面 Wireshark查看數(shù)據(jù)捕獲列表 數(shù)據(jù)包概要信息窗口:描述每個數(shù)據(jù)包的基本信息。如圖,點擊某行數(shù)據(jù),即可在下方顯示該數(shù)據(jù)包的信息。 1、 數(shù)據(jù)包解析窗口 :顯示被選中的數(shù)據(jù)包的解析信息,包含每個數(shù)據(jù)包的 整體信息 、 數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層

    2023年04月09日
    瀏覽(25)
  • python 基礎(chǔ)知識:使用jieba庫對文本進行分詞

    python 基礎(chǔ)知識:使用jieba庫對文本進行分詞

    前言 嗨嘍,大家好呀~這里是愛看美女的茜茜吶 一、jieba庫是什么? Python的jieba庫是一個中文分詞工具,它可以將一段中文文本分割成一個一個的詞語,方便后續(xù)的自然語言處理任務(wù),如文本分類、情感分析等。 jieba庫使用了基于前綴詞典的分詞方法,能夠處理中文的各種復(fù)

    2024年02月10日
    瀏覽(22)
  • 克魔助手工具詳解、數(shù)據(jù)包抓取分析、使用教程

    克魔助手工具詳解、數(shù)據(jù)包抓取分析、使用教程

    ?目錄 摘要 引言 克魔助手界面 克魔助手查看數(shù)據(jù)捕獲列表 數(shù)據(jù)包解析窗口 數(shù)據(jù)包數(shù)據(jù)窗口 克魔助手過濾器表達式的規(guī)則 抓包過濾器實例 總結(jié) 參考資料 本文介紹了克魔助手工具的界面和功能,包括數(shù)據(jù)包的捕獲和分析,以及抓包過濾器的使用方法。同時提供了一些代碼案

    2024年01月19日
    瀏覽(19)
  • 使用.NET Jieba.NET 的 PosSegmenter 實現(xiàn)中文分詞匹配

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

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

    2024年02月11日
    瀏覽(27)
  • 【數(shù)據(jù)結(jié)構(gòu)】計數(shù)排序 & 排序系列所有源代碼 & 復(fù)雜度分析(終章)

    【數(shù)據(jù)結(jié)構(gòu)】計數(shù)排序 & 排序系列所有源代碼 & 復(fù)雜度分析(終章)

    目錄 一,計數(shù)排序 1,基本思想 2,思路實現(xiàn) 3,計數(shù)排序的特性總結(jié): 二,排序算法復(fù)雜度及穩(wěn)定性分析 三,排序系列所有源代碼 Sort.h Sort.c Stack.h Stack.c 計數(shù)排序也叫非比較排序; 1,基本思想 計數(shù)排序又稱為 鴿巢原理 ,是對 哈希直接定址法 的變形應(yīng)用 操作步驟 : 1

    2024年02月08日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包