Python是一門廣受歡迎的編程語言,其強大的文本處理能力尤其受到廣大學習者和開發者的青睞,詞頻統計就是Python常用的一種文本處理方法。在本文中,我們將從多個方面詳細闡述Python中的詞頻統計代碼,幫助讀者初步掌握這一技巧。
一、英文歌Hello詞頻統計Python代碼
我們先從一個簡單的例子開始,演示如何使用Python進行英文歌的詞頻統計。下面是代碼示例:
text = "Hello from the other side, I must've called a thousand times" words = text.split() freq = {} for word in words: if word in freq: freq[word] += 1 else: freq[word] = 1 print(freq)
運行以上代碼,會輸出一個字典,包含每個英文單詞出現的次數。代碼中,我們首先將文本字符串text按空格分割成單詞,然後遍歷每個單詞,統計出現次數,存入freq字典中。
二、紅樓夢詞頻統計Python代碼
接下來,我們來看一下如何使用Python進行中文文本的詞頻統計,以《紅樓夢》為例。轉載的《紅樓夢》文字可以通過Git命令獲取,當前目錄下就會有一個紅樓夢txt的文件,接下來就是代碼部分:
with open('hongloumeng.txt', 'r', encoding='utf-8') as file: text = file.read().replace('\n', '') words = list(jieba.cut(text)) words = filter(lambda x: len(x)>1, words) freq = {} for word in words: if word in freq: freq[word] += 1 else: freq[word] = 1 print(freq)
代碼解釋:
首先,我們使用Python內置函數open()打開《紅樓夢》txt文件,然後使用read()方法讀取文本內容並使用replace()方法將換行符替換為空格。接着,我們使用jieba庫進行中文分詞,篩選出長度大於1的詞語,最後進行詞頻統計。
三、詞頻統計Python代碼不區分大小寫
在進行詞頻統計時,有時候需要忽略單詞的大小寫,例如「Hello」和「hello」被認為是同一個單詞。下面是不區分大小寫的詞頻統計Python代碼示例:
text = "To be, or not to be, that is the question" words = text.lower().split() freq = {} for word in words: if word in freq: freq[word] += 1 else: freq[word] = 1 print(freq)
在代碼中,我們使用lower()方法將文本字符串轉換為小寫,並按空格分割成單詞。然後按照前文的方法進行遍歷統計,統計完後輸出頻率字典。
四、詞頻統計Python代碼jieba
我們前面已經用到了jieba,這裡介紹一下jieba庫的基本用法:
import jieba text = "我喜歡Python編程" words = list(jieba.cut(text)) print(words)
代碼解釋:
首先,我們導入jieba庫。然後,我們定義一個文本字符串text,對其進行中文分詞並生成詞語列表words,最後輸出列表。
五、詞頻統計Python代碼導入表格
有時候,我們需要直接將詞頻統計結果導出到表格中,下面是一個示例,展示了如何使用Python進行表格導入:
import pandas as pd freq = {'Python': 3, '編程': 2, '很棒': 1} df = pd.DataFrame.from_dict(freq, orient='index', columns=['Frequency']) df.index.name = 'Word' df.to_csv('freq.csv')
代碼解釋:
首先,我們導入pandas庫。然後,我們使用Python內置函數from_dict()將頻率字典轉換為DataFrame格式,並設置列名和索引名。最後,我們使用to_csv()函數將DataFrame對象導出為csv文件。
六、詞頻統計Python代碼意義背景
除了基本的詞頻統計,我們還可以在統計時考慮每個單詞的意義和背景。例如,某些單詞出現在特定場景中時,它們的含義可能會有所不同。下面是一個示例:
import nltk text = "I saw a saw." tokens = nltk.word_tokenize(text) tags = nltk.pos_tag(tokens) freq = {} for word, tag in tags: if tag[0] == 'V': if word in freq: freq[word] += 1 else: freq[word] = 1 print(freq)
代碼解釋:
我們導入nltk庫進行英文分詞和詞性標註,對文本字符串text進行分詞,標註後最終輸出包含動詞的詞頻字典。
七、詞頻統計Python代碼多個文件
有時候,我們需要統計多個文本文件中的詞頻,下面是一個示例:
import glob files = glob.glob('*.txt') freq = {} for file in files: with open(file, 'r') as f: text = f.read().lower() words = text.split() for word in words: if word in freq: freq[word] += 1 else: freq[word] = 1 print(freq)
代碼解釋:
首先,我們使用Python模塊glob匹配當前目錄下所有的txt文件。然後,我們使用Python內置函數open()打開每個txt文件,按照前文的方法進行詞頻統計,並在詞頻字典freq中累加出現次數。
八、詞頻圖Python代碼
最後,我們將展示如何使用Python繪製詞頻圖。我們會使用Matplotlib庫,代碼示例:
import matplotlib.pyplot as plt freq = {'Python': 3, '編程': 2, '很棒': 1} plt.bar(range(len(freq)), list(freq.values()), align='center') plt.xticks(range(len(freq)), list(freq.keys())) plt.show()
代碼解釋:
我們導入Matplotlib庫,並定義一個頻率字典freq。然後,我們使用plt.bar()函數繪製豎狀條形圖,使用plt.xticks()函數設置x軸標籤。最後,我們通過調用plt.show()函數顯示圖形。
九、三國演義詞頻統計Python
最後,讓我們以著名的《三國演義》作為示例,展示如何進行中文文本的詞頻統計:
import jieba with open('san_guo_yan_yi.txt', 'r', encoding='utf-8') as f: text = f.read() words = list(jieba.cut(text)) freq = {} for word in words: if word in freq: freq[word] += 1 else: freq[word] = 1 print(freq)
代碼解釋:
與前面的《紅樓夢》示例類似,代碼中我們也使用jieba庫進行中文分詞,並進行遍歷統計。
總結
Python是一門非常靈活的編程語言,詞頻統計是其廣泛應用的一種文本處理方法。本文從多個方面介紹了Python中詞頻統計的應用,希望能夠幫助讀者初步掌握這一重要技巧。
原創文章,作者:ULZKO,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/368269.html