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

一文帶你掌握Python中文詞頻統(tǒng)計(jì)

 更新時(shí)間:2023年02月08日 16:39:01   作者:夢(mèng)想橡皮擦  
詞頻統(tǒng)計(jì)是指在文本中計(jì)算每個(gè)詞出現(xiàn)的次數(shù)。這篇文章主要帶大家了解一下Python實(shí)現(xiàn)中文詞頻統(tǒng)計(jì)的方法,感興趣的小伙伴可以了解一下

詞頻統(tǒng)計(jì)是指在文本中計(jì)算每個(gè)詞出現(xiàn)的次數(shù)。

在 Python 中,可以使用一些第三方庫(kù)(如 jieba)來(lái)分詞,然后使用字典等數(shù)據(jù)結(jié)構(gòu)記錄每個(gè)詞的詞頻。

Python中文詞頻統(tǒng)計(jì)知識(shí)點(diǎn)

  • 分詞:需要對(duì)中文文本進(jìn)行分詞,分詞的目的是將文本分解為獨(dú)立的詞語(yǔ),便于后續(xù)的詞頻統(tǒng)計(jì)。
  • 字典:使用字典存儲(chǔ)每個(gè)詞的詞頻。字典的鍵為詞語(yǔ),值為詞頻。
  • 遍歷:遍歷分詞后的結(jié)果,統(tǒng)計(jì)每個(gè)詞出現(xiàn)的次數(shù)。
  • 排序:對(duì)字典按照詞頻排序,以得到詞頻最高的詞。
  • 輸出:最后,可以輸出詞頻最高的詞,也可以輸出完整的詞頻字典。

Python中文詞頻分詞

安裝 jieba 庫(kù)

pip install jieba

使用 jieba.cut() 函數(shù)對(duì)中文文本進(jìn)行分詞

import jieba

text = "夢(mèng)想橡皮擦的Python博客很不錯(cuò)"
seg_list = jieba.cut(text)
print(list(seg_list))

輸出結(jié)果:

['夢(mèng)想', '橡皮擦', '的', 'Python', '博客', '很', '不錯(cuò)']

使用字典可以很方便地存儲(chǔ)每個(gè)詞語(yǔ)的詞頻

import jieba

text = "夢(mèng)想橡皮擦的Python博客很不錯(cuò)"
seg_list = jieba.cut(text)
# print(list(seg_list))

word_dict = {}
for word in seg_list:
    print(word)
    if word in word_dict:
        word_dict[word] += 1
    else:
        word_dict[word] = 1

print(word_dict)

再次整理Python詞頻統(tǒng)計(jì)的具體實(shí)現(xiàn)方法:

  • 導(dǎo)入 jieba 庫(kù),使用 jieba.cut() 函數(shù)對(duì)中文文本進(jìn)行分詞。
  • 遍歷分詞后的結(jié)果,統(tǒng)計(jì)每個(gè)詞出現(xiàn)的次數(shù)。
  • 使用字典記錄每個(gè)詞出現(xiàn)的次數(shù)。
  • 對(duì)字典按照詞頻排序,并輸出詞頻最高的詞。

代碼示例:

import jieba

def get_word_frequency(text):
    seg_list = jieba.cut(text)
    word_dict = {}
    for word in seg_list:
        if word in word_dict:
            word_dict[word] += 1
        else:
            word_dict[word] = 1
    sorted_word_dict = sorted(word_dict.items(), key=lambda x: x[1], reverse=True)
    return sorted_word_dict

text = "夢(mèng)想橡皮擦的Python博客很不錯(cuò)"
result = get_word_frequency(text)
print(result)

停用詞

在分詞時(shí),通常會(huì)忽略一些詞語(yǔ),這些詞語(yǔ)被稱為停用詞。如常用的助詞、介詞等。

在 Python 中,可以預(yù)先加載停用詞表,在分詞時(shí),如果詞語(yǔ)是停用詞,則忽略。

下面是一個(gè)簡(jiǎn)單的例子:

import jieba

stop_words = set()
with open("stop_words.txt", "r",encoding='utf-8') as f:
    for line in f:
        stop_words.add(line.strip())

text = "夢(mèng)想橡皮擦的Python博客很不錯(cuò)"
seg_list = jieba.cut(text)
filtered_words = [word for word in seg_list if word not in stop_words]
print(filtered_words)

“stop_words.txt” 文件中是停用詞表,每行一個(gè)詞語(yǔ)。在代碼中,通過(guò) with open 語(yǔ)句讀取文件,并將每個(gè)詞語(yǔ)加入到 stop_words 集合中。在分詞后,通過(guò)列表推導(dǎo)式,篩選出不是停用詞的詞語(yǔ)。文件中的內(nèi)容如下:

詞干提取

詞干提取是將詞語(yǔ)的不同形式提取為同一詞干的過(guò)程。例如 “running” 和 “runner” 可以被提取為 “run”。

在 Python 中,可以使用詞干提取工具來(lái)進(jìn)行詞干提取,常見的詞干提取工具有 nltk 庫(kù)的 PorterStemmer 和 SnowballStemmer 。

下面是一個(gè)簡(jiǎn)單的例子:

import nltk
from nltk.stem import SnowballStemmer

stemmer = SnowballStemmer("english")

words = ["run", "runner", "running"]
stemmed_words = [stemmer.stem(word) for word in words]
print(stemmed_words)

SnowballStemmer 函數(shù)的第一個(gè)參數(shù)是語(yǔ)言。 english 表示使用英語(yǔ)詞干提取器。

其支持多種語(yǔ)言,可以指定不同的語(yǔ)言,以使用不同的詞干提取器。例如,如果是法語(yǔ)文本,可以使用 SnowballStemmer("french") 。

stemmer.stem(word) 是 nltk 庫(kù)的 SnowballStemmer 函數(shù)的一個(gè)方法,用于提取詞干。

詞云圖

詞云圖是一種展示詞頻的可視化圖形,其中詞語(yǔ)的大小代表詞頻的多少。

在 Python 中,可以使用詞云庫(kù) wordcloud 來(lái)生成詞云圖。

以下是一個(gè)使用 wordcloud 庫(kù)創(chuàng)建詞云圖的簡(jiǎn)單示例:

from wordcloud import WordCloud
import matplotlib.pyplot as plt

text = "ca1 ca2 ca3 ca4 ca4 ca4"
wordcloud = WordCloud(width=400, height=400, random_state=21, max_font_size=110).generate(text)
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis('off')
plt.show()

首先使用 WordCloud 函數(shù)創(chuàng)建一個(gè)詞云圖對(duì)象,并設(shè)置圖片的寬度、高度、隨機(jī)狀態(tài)、字體大小等參數(shù)。

然后,使用 generate() 方法生成詞云圖,并將其作為參數(shù)傳遞給 matplotlib 的 imshow() 函數(shù)。

最后,使用 show() 方法顯示詞云圖。

Python 中文詞頻分詞其它庫(kù)

thulac:thulac 是一個(gè)中文分詞庫(kù),支持動(dòng)態(tài)詞性標(biāo)注。

snownlp:snownlp 是一個(gè)基于 SnowNLP 的中文自然語(yǔ)言處理庫(kù),支持中文分詞、情感分析、關(guān)鍵詞提取等功能。

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

相關(guān)文章

  • python+django快速實(shí)現(xiàn)文件上傳

    python+django快速實(shí)現(xiàn)文件上傳

    本篇文章主要介紹了django快速實(shí)現(xiàn)文件上傳,通過(guò)django web框架來(lái)實(shí)現(xiàn)一些簡(jiǎn)單的功能,有需要的可以了解一下。
    2016-10-10
  • python爬蟲之PySpider框架的使用

    python爬蟲之PySpider框架的使用

    本文主要介紹了python爬蟲之PySpider框架的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Python摳圖教程之使用OpenCV實(shí)現(xiàn)背景去除

    Python摳圖教程之使用OpenCV實(shí)現(xiàn)背景去除

    這篇文章主要給大家介紹了關(guān)于Python摳圖教程之使用OpenCV實(shí)現(xiàn)背景去除的相關(guān)資料,背景去除是在很多視覺(jué)應(yīng)用里的主要預(yù)處理步驟,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • Python爬蟲基礎(chǔ)講解之scrapy框架

    Python爬蟲基礎(chǔ)講解之scrapy框架

    scrapy是一個(gè)使用Python語(yǔ)言(基于Twisted框架)編寫的開源網(wǎng)絡(luò)爬蟲框架,目前由scrapinghub Ltd維護(hù).Scrapy簡(jiǎn)單易用、靈活易拓展、開發(fā)社區(qū)活躍,并且是跨平臺(tái)的.在Linux、MaxOS以及windows平臺(tái)都可以使用,需要的朋友可以參考下
    2021-06-06
  • python datetime 和時(shí)間戳互相轉(zhuǎn)換問(wèn)題

    python datetime 和時(shí)間戳互相轉(zhuǎn)換問(wèn)題

    time和datetime都是Python中的內(nèi)置模塊(不需要安裝,直接可以使用),都可以對(duì)時(shí)間進(jìn)行獲取,對(duì)時(shí)間格式進(jìn)行轉(zhuǎn)換,如時(shí)間戳和時(shí)間字符串的相互轉(zhuǎn)換,本文先給大家介紹python datetime 和時(shí)間戳互轉(zhuǎn)問(wèn)題,感興趣的朋友一起看看吧
    2022-11-11
  • Python中橫向或縱向拼接兩個(gè)表方法實(shí)例

    Python中橫向或縱向拼接兩個(gè)表方法實(shí)例

    最近要將兩個(gè)表格合并,Python處理起來(lái)很簡(jiǎn)單,所以這篇文章主要給大家介紹了關(guān)于Python中橫向或縱向拼接兩個(gè)表的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Python數(shù)據(jù)結(jié)構(gòu)之Array用法實(shí)例

    Python數(shù)據(jù)結(jié)構(gòu)之Array用法實(shí)例

    這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)之Array用法實(shí)例,較為詳細(xì)的講述了Array的常見用法,具有很好的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-10-10
  • Python 結(jié)構(gòu)化字符串中提取數(shù)據(jù)詳情

    Python 結(jié)構(gòu)化字符串中提取數(shù)據(jù)詳情

    這篇文章主要介紹了Python 結(jié)構(gòu)化字符串中提取數(shù)據(jù)詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • Python實(shí)現(xiàn)將n個(gè)點(diǎn)均勻地分布在球面上的方法

    Python實(shí)現(xiàn)將n個(gè)點(diǎn)均勻地分布在球面上的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)將n個(gè)點(diǎn)均勻地分布在球面上的方法,涉及Python繪圖的技巧與相關(guān)數(shù)學(xué)函數(shù)的調(diào)用,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 在Docker上開始部署Python應(yīng)用的教程

    在Docker上開始部署Python應(yīng)用的教程

    這篇文章主要介紹了在Docker上開始部署Python應(yīng)用的教程,Docker是時(shí)下最火爆的虛擬機(jī),正在被各大云主機(jī)服務(wù)商所采用,需要的朋友可以參考下
    2015-04-04

最新評(píng)論