本教程向您展示瞭如何通過使用Python分析單詞頻率快速確定文檔的主要主題。 手動計數單詞的發生是乏味的。這種自動化方法簡化了過程。
>>我們將使用一個示例文本文件test.txt
(下載它,但不要窺視!)來說明。 目的是根據單詞頻率猜測教程的主題。
了解正則表達式
這個過程使用正則表達式(REGEX)。 如果不熟悉,則正則是一個字符序列,定義搜索模式的字符串匹配模式(例如“查找和替換”)。 要深入研究,請參閱專用的正則教程。
>構建程序
>讀取文件:該程序首先將文本文件讀取到字符串:
開始document_text = open('test.txt', 'r') text_string = document_text.read().lower()
正則表達式:一個正則表達式過濾單詞3至15個字符:
match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string)
單詞頻率:詞典跟踪單詞頻率:
frequency = {} 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])
這是合併的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])
>處理較大的文本文件
對於較大的文件,對頻率字典進行排序簡化了查找最常見的單詞:
這將輸出一個排序的列表,最常見的單詞首先出現。>
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])
不包括常用詞
使用黑名單:
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計數文件中的單詞頻率的詳細內容。更多資訊請關注PHP中文網其他相關文章!