首頁 > 後端開發 > Python教學 > 使用Python計數文件中的單詞頻率

使用Python計數文件中的單詞頻率

Jennifer Aniston
發布: 2025-03-06 11:59:11
原創
665 人瀏覽過

本教程向您展示瞭如何通過使用Python分析單詞頻率快速確定文檔的主要主題。 手動計數單詞的發生是乏味的。這種自動化方法簡化了過程。

>

>我們將使用一個示例文本文件test.txt(下載它,但不要窺視!)來說明。 目的是根據單詞頻率猜測教程的主題。

了解正則表達式

這個過程使用正則表達式(REGEX)。 如果不熟悉,則正則是一個字符序列,定義搜索模式的字符串匹配模式(例如“查找和替換”)。 要深入研究,請參閱專用的正則教程。

>

構建程序

  1. >讀取文件:該程序首先將文本文件讀取到字符串:

    開始
    document_text = open('test.txt', 'r')
    text_string = document_text.read().lower()
    登入後複製
  2. 正則表達式:一個正則表達式過濾單詞3至15個字符:

    match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string)
    登入後複製
  3. 單詞頻率:詞典跟踪單詞頻率:

    frequency = {}
    for word in match_pattern:
        count = frequency.get(word, 0)
        frequency[word] = count + 1
    登入後複製
  4. 然後

    frequency_list = frequency.keys()
    for word in frequency_list:
        print(word, frequency[word])
    登入後複製
    完成程序

這是合併的python代碼:

>運行此功能將輸出一個單詞頻率列表。 最常見的單詞暗示了原始教程的主題。

import re

frequency = {}
document_text = open('test.txt', 'r')
text_string = document_text.read().lower()
match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string)

for word in match_pattern:
    count = frequency.get(word, 0)
    frequency[word] = count + 1

frequency_list = frequency.keys()
for word in frequency_list:
    print(word, frequency[word])
登入後複製

>處理較大的文本文件Counting Word Frequency in a File Using Python

對於較大的文件,對頻率字典進行排序簡化了查找最常見的單詞:

這將輸出一個排序的列表,最常見的單詞首先出現。

>

import re

frequency = {}
document_text = open('dracula.txt', 'r')  # Example: dracula.txt
text_string = document_text.read().lower()
match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string)

for word in match_pattern:
    count = frequency.get(word, 0)
    frequency[word] = count + 1

most_frequent = dict(sorted(frequency.items(), key=lambda elem: elem[1], reverse=True))
most_frequent_count = most_frequent.keys()

for word in most_frequent_count:
    print(word, most_frequent[word])
登入後複製

不包括常用詞Counting Word Frequency in a File Using Python

使用黑名單: 這提供了更為專注的分析。

import re

frequency = {}
document_text = open('dracula.txt', 'r')
text_string = document_text.read().lower()
match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string)

blacklisted = ['the', 'and', 'for', 'that', 'which']

for word in match_pattern:
    if word not in blacklisted:
        count = frequency.get(word, 0)
        frequency[word] = count + 1

most_frequent = dict(sorted(frequency.items(), key=lambda elem: elem[1], reverse=True))
most_frequent_count = most_frequent.keys()

for word in most_frequent_count:
    print(word, most_frequent[word])
登入後複製
這個增強的Python腳本提供了一種可靠的方法,用於分析文本並根據單詞頻率識別關鍵主題。 請記住適應黑名單和單詞長度標準以滿足您的特定需求。

以上是使用Python計數文件中的單詞頻率的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板