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

Python中Jieba進(jìn)行詞頻統(tǒng)計(jì)與關(guān)鍵詞提取

 更新時間:2023年03月28日 14:26:08   作者:專注算法的馬里奧學(xué)長  
本文主要介紹了Python中Jieba進(jìn)行詞頻統(tǒng)計(jì)與關(guān)鍵詞提取,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1 詞頻統(tǒng)計(jì)

1.1 簡單詞頻統(tǒng)計(jì)

1.導(dǎo)入jieba庫并定義文本

import jieba
text = "Python是一種高級編程語言,廣泛應(yīng)用于人工智能、數(shù)據(jù)分析、Web開發(fā)等領(lǐng)域。"

2.對文本進(jìn)行分詞

words = jieba.cut(text)

這一步會將文本分成若干個詞語,并返回一個生成器對象words,可以使用for循環(huán)遍歷所有的詞語。

3. 統(tǒng)計(jì)詞頻

word_count = {}
for word in words:
    if len(word) > 1:
        word_count[word] = word_count.get(word, 0) + 1

這一步通過遍歷所有的詞語,統(tǒng)計(jì)每個詞語出現(xiàn)的次數(shù),并保存到一個字典word_count中。在統(tǒng)計(jì)詞頻時,可以通過去除停用詞等方式進(jìn)行優(yōu)化,這里只是簡單地過濾了長度小于2的詞語。

4. 結(jié)果輸出

for word, count in word_count.items():
    print(word, count)

image.png

1.2 加入停用詞

為了更準(zhǔn)確地統(tǒng)計(jì)詞頻,我們可以在詞頻統(tǒng)計(jì)中加入停用詞,以去除一些常見但無實(shí)際意義的詞語。具體步驟如下:

定義停用詞列表

import jieba

# 停用詞列表
stopwords = ['是', '一種', '等']

對文本進(jìn)行分詞,并過濾停用詞

text = "Python是一種高級編程語言,廣泛應(yīng)用于人工智能、數(shù)據(jù)分析、Web開發(fā)等領(lǐng)域。"
words = jieba.cut(text)
words_filtered = [word for word in words if word not in stopwords and len(word) > 1]

統(tǒng)計(jì)詞頻并輸出結(jié)果

word_count = {}
for word in words_filtered:
    word_count[word] = word_count.get(word, 0) + 1
for word, count in word_count.items():
    print(word, count)

加入停用詞后,輸出的結(jié)果是:

image.png

可以看到,被停用的一種這個詞并沒有顯示出來。

2 關(guān)鍵詞提取

2.1 關(guān)鍵詞提取原理

與對詞語進(jìn)行單純計(jì)數(shù)的詞頻統(tǒng)計(jì)不同,jieba提取關(guān)鍵字的原理是基于TF-IDF(Term Frequency-Inverse Document Frequency)算法。TF-IDF算法是一種常用的文本特征提取方法,可以衡量一個詞語在文本中的重要程度。

具體來說,TF-IDF算法包含兩個部分:

  • Term Frequency(詞頻):指一個詞在文本中出現(xiàn)的次數(shù),通常用一個簡單的統(tǒng)計(jì)值表示,例如詞頻、二元詞頻等。詞頻反映了一個詞在文本中的重要程度,但是忽略了這個詞在整個語料庫中的普遍程度。
  • Inverse Document Frequency(逆文檔頻率):指一個詞在所有文檔中出現(xiàn)的頻率的倒數(shù),用于衡量一個詞的普遍程度。逆文檔頻率越大,表示一個詞越普遍,重要程度越低;逆文檔頻率越小,表示一個詞越獨(dú)特,重要程度越高。

TF-IDF算法通過綜合考慮詞頻和逆文檔頻率,計(jì)算出每個詞在文本中的重要程度,從而提取關(guān)鍵字。在jieba中,關(guān)鍵字提取的具體實(shí)現(xiàn)包括以下步驟:

  • 對文本進(jìn)行分詞,得到分詞結(jié)果。
  • 統(tǒng)計(jì)每個詞在文本中出現(xiàn)的次數(shù),計(jì)算出詞頻。
  • 統(tǒng)計(jì)每個詞在所有文檔中出現(xiàn)的次數(shù),計(jì)算出逆文檔頻率。
  • 綜合考慮詞頻和逆文檔頻率,計(jì)算出每個詞在文本中的TF-IDF值。
  • 對TF-IDF值進(jìn)行排序,選取得分最高的若干個詞作為關(guān)鍵字。

舉個例子
F(Term Frequency)指的是某個單詞在一篇文檔中出現(xiàn)的頻率。計(jì)算公式如下:
T F = ( 單詞在文檔中出現(xiàn)的次數(shù) ) / ( 文檔中的總單詞數(shù) ) 
例如,在一篇包含100個單詞的文檔中,某個單詞出現(xiàn)了10次,則該單詞的TF為
10 / 100 = 0.1 
IDF(Inverse Document Frequency)指的是在文檔集合中出現(xiàn)某個單詞的文檔數(shù)的倒數(shù)。計(jì)算公式如下:
I D F = l o g ( 文檔集合中的文檔總數(shù) / 包含該單詞的文檔數(shù) ) 
例如,在一個包含1000篇文檔的文檔集合中,某個單詞在100篇文檔中出現(xiàn)過,則該單詞的IDF為 l o g ( 1000 / 100 ) = 1.0
TFIDF是將TF和IDF相乘得到的結(jié)果,計(jì)算公式如下:
T F I D F = T F ∗ I D F 

需要注意的是,TF-IDF算法只考慮了詞語在文本中的出現(xiàn)情況,而忽略了詞語之間的關(guān)聯(lián)性。因此,在一些特定的應(yīng)用場景中,需要使用其他的文本特征提取方法,例如詞向量、主題模型等。

2.2 關(guān)鍵詞提取代碼

import jieba.analyse

# 待提取關(guān)鍵字的文本
text = "Python是一種高級編程語言,廣泛應(yīng)用于人工智能、數(shù)據(jù)分析、Web開發(fā)等領(lǐng)域。"

# 使用jieba提取關(guān)鍵字
keywords = jieba.analyse.extract_tags(text, topK=5, withWeight=True)

# 輸出關(guān)鍵字和對應(yīng)的權(quán)重
for keyword, weight in keywords:
    print(keyword, weight)

在這個示例中,我們首先導(dǎo)入了jieba.analyse模塊,然后定義了一個待提取關(guān)鍵字的文本text。接著,我們使用jieba.analyse.extract_tags()函數(shù)提取關(guān)鍵字,其中topK參數(shù)表示需要提取的關(guān)鍵字個數(shù),withWeight參數(shù)表示是否返回關(guān)鍵字的權(quán)重值。最后,我們遍歷關(guān)鍵字列表,輸出每個關(guān)鍵字和對應(yīng)的權(quán)重值。
這段函數(shù)的輸出結(jié)果為:

image.png

可以看到,jieba根據(jù)TF-IDF算法提取出了輸入文本中的若干個關(guān)鍵字,并返回了每個關(guān)鍵字的權(quán)重值。

到此這篇關(guān)于Python中Jieba進(jìn)行詞頻統(tǒng)計(jì)與關(guān)鍵詞提取的文章就介紹到這了,更多相關(guān)Python Jieba詞頻統(tǒng)計(jì)與關(guān)鍵詞提取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中cv2.Canny() 函數(shù)使用方法

    Python中cv2.Canny() 函數(shù)使用方法

    cv2.Canny() 函數(shù)是 OpenCV 中的邊緣檢測函數(shù)之一,用于檢測圖像的邊緣,它的基本原理是通過計(jì)算圖像中每個像素點(diǎn)的梯度值來檢測邊緣,本文通過示例代碼介紹Python中cv2.Canny() 函數(shù)用法,需要的朋友參考下吧
    2023-07-07
  • python比較兩個列表是否相等的方法

    python比較兩個列表是否相等的方法

    這篇文章主要介紹了python比較兩個列表是否相等的方法,實(shí)例分析了Python中==和is兩種方法的區(qū)別,需要的朋友可以參考下
    2015-07-07
  • Python備份Mysql腳本

    Python備份Mysql腳本

    特點(diǎn)是多平臺,一個腳本內(nèi)可以備份多個數(shù)據(jù)庫,并分別打包上傳到ftp進(jìn)行備份。調(diào)用了mysqldump及tar來進(jìn)行數(shù)據(jù)庫dump及打包。 具體參數(shù)說明參見源文件
    2008-08-08
  • Python實(shí)現(xiàn)計(jì)算長方形面積(帶參數(shù)函數(shù)demo)

    Python實(shí)現(xiàn)計(jì)算長方形面積(帶參數(shù)函數(shù)demo)

    今天小編就為大家分享一篇Python實(shí)現(xiàn)計(jì)算長方形面積(帶參數(shù)函數(shù)demo),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 教你用Python創(chuàng)建微信聊天機(jī)器人

    教你用Python創(chuàng)建微信聊天機(jī)器人

    這篇文章主要手把手教你用Python創(chuàng)建微信聊天機(jī)器人,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python如何快速生成時間戳

    python如何快速生成時間戳

    在本篇內(nèi)容里小編給大家整理的是關(guān)于python生成時間戳的簡單方法,需要的朋友們可以學(xué)習(xí)下。
    2020-07-07
  • 用python3 urllib破解有道翻譯反爬蟲機(jī)制詳解

    用python3 urllib破解有道翻譯反爬蟲機(jī)制詳解

    這篇文章主要介紹了python破解網(wǎng)易反爬蟲機(jī)制詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python基于exchange函數(shù)發(fā)送郵件過程詳解

    python基于exchange函數(shù)發(fā)送郵件過程詳解

    這篇文章主要介紹了python基于exchange函數(shù)發(fā)送郵件過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • python繪制橫豎條形圖的方法

    python繪制橫豎條形圖的方法

    這篇文章主要為大家詳細(xì)介紹了python繪制橫豎條形圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 詳解Python中用于計(jì)算指數(shù)的exp()方法

    詳解Python中用于計(jì)算指數(shù)的exp()方法

    這篇文章主要介紹了詳解Python中用于計(jì)算指數(shù)的exp()方法,是Python入門中必會的基本方法,需要的朋友可以參考下
    2015-05-05

最新評論