最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python實現(xiàn)一個簡單實用的文本詞頻統(tǒng)計分析工具

 更新時間:2025年05月29日 09:31:38   作者:笨笨輕松熊  
文本分析是自然語言處理(NLP)中的基礎(chǔ)任務(wù),而詞頻統(tǒng)計則是文本分析的入門級應(yīng)用,本文就來為大家介紹如何實現(xiàn)一個簡單而實用的文本詞頻統(tǒng)計工具吧,非常適合Python初學(xué)者練手

前言

文本分析是自然語言處理(NLP)中的基礎(chǔ)任務(wù),而詞頻統(tǒng)計則是文本分析的入門級應(yīng)用。通過詞頻分析,我們可以快速了解文本的主題傾向、關(guān)鍵信息分布以及語言使用習(xí)慣。本文將帶你實現(xiàn)一個簡單而實用的文本詞頻統(tǒng)計工具,非常適合Python初學(xué)者練手。

功能特點

支持任意.txt格式文本文件的詞頻分析

自動處理文本編碼問題

使用正則表達(dá)式精確提取英文單詞(包括帶連字符和撇號的單詞)

按頻率排序并計算每個單詞的出現(xiàn)比例

支持查看前N個高頻詞功能

代碼實現(xiàn)

import re
from collections import defaultdict


def word_frequency(file_path, top_n=None):
    """
    統(tǒng)計文本文件中的單詞頻率
    :param file_path: 文本文件路徑
    :param top_n: 顯示前N個高頻詞,默認(rèn)顯示全部
    :return: 排序后的單詞頻率列表
    """
    # 讀取文件內(nèi)容
    try:
        with open(file_path, 'r', encoding='utf-8') as file:
            text = file.read().lower()  # 轉(zhuǎn)為小寫
    except FileNotFoundError:
        print(f"錯誤:文件 {file_path} 未找到")
        return []
    except UnicodeDecodeError:
        print("錯誤:文件編碼不支持,請嘗試使用其他編碼(如gbk)")
        return []

    # 使用正則表達(dá)式提取單詞(包括帶連字符的單詞)
    words = re.findall(r"\b[a-zA-Z'-]+\b", text)

    # 統(tǒng)計詞頻
    frequency = defaultdict(int)
    for word in words:
        frequency[word] += 1

    # 按頻率排序
    sorted_words = sorted(frequency.items(), key=lambda x: x[1], reverse=True)

    # 輸出結(jié)果
    print(f"\n總共有 {len(words)} 個單詞,其中唯一單詞 {len(sorted_words)} 個")
    print("排名 | 單詞\t\t頻率\t占比")
    print("-" * 40)

    total_words = len(words)
    for rank, (word, count) in enumerate(sorted_words[:top_n], 1):
        percentage = (count / total_words) * 100
        print(f"{rank:4} | {word:12} {count:6} \t{percentage:.2f}%")

    return sorted_words


if __name__ == "__main__":
    # 使用示例
    file_path = input("請輸入文本文件路徑:").strip()
    top_n = input("要顯示前多少個高頻詞(默認(rèn)全部):").strip()
    top_n = int(top_n) if top_n.isdigit() else None

    word_frequency(file_path, top_n)

代碼解析

導(dǎo)入必要模塊:

  • re:提供正則表達(dá)式支持,用于精確提取單詞
  • defaultdict:特殊字典類型,當(dāng)鍵不存在時提供默認(rèn)值,簡化詞頻統(tǒng)計

核心函數(shù)設(shè)計:

  • 異常處理確保文件打開的健壯性
  • 使用正則表達(dá)式\b[a-zA-Z'-]+\b提取英文單詞(包括帶連字符和撇號的復(fù)雜形式)
  • 采用defaultdict高效統(tǒng)計詞頻
  • 使用Python內(nèi)置的sorted()函數(shù)按詞頻排序

用戶交互:

  • 支持自定義文件路徑輸入
  • 靈活設(shè)置顯示的高頻詞數(shù)量

運行效果

將以下文本保存為txt文件,然后運行程序,輸入文件路徑即可看到分析結(jié)果:

應(yīng)用場景

英文文學(xué)作品詞匯分析

論文關(guān)鍵詞提取

網(wǎng)絡(luò)文本主題挖掘

語言學(xué)習(xí)詞匯頻率研究

進(jìn)階改進(jìn)方向

增加中文分詞支持(可結(jié)合jieba等分詞庫)

添加停用詞過濾功能

實現(xiàn)數(shù)據(jù)可視化展示(如詞云圖)

開發(fā)GUI界面提升用戶體驗

支持批量文件分析比較

到此這篇關(guān)于使用Python實現(xiàn)一個簡單實用的文本詞頻統(tǒng)計分析工具的文章就介紹到這了,更多相關(guān)Python文本詞頻統(tǒng)計分析內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

乌恰县| 深圳市| 绥中县| 阳东县| 潢川县| 莒南县| 潍坊市| 溧阳市| 鄂温| 石楼县| 尖扎县| 贡觉县| 沐川县| 马边| 铜陵市| 宜城市| 玉屏| 进贤县| 孙吴县| 凤阳县| 城步| 盐津县| 巴彦淖尔市| 桑植县| 丹寨县| 杭州市| 敦化市| 绥棱县| 木兰县| 岫岩| 道孚县| 临高县| 林甸县| 乌海市| 洱源县| 天台县| 崇信县| 中卫市| 皋兰县| 梧州市| 汉寿县|