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

使用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單實(shí)用的文本詞頻統(tǒng)計(jì)分析工具

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

前言

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

功能特點(diǎn)

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

自動(dòng)處理文本編碼問(wèn)題

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

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

支持查看前N個(gè)高頻詞功能

代碼實(shí)現(xiàn)

import re
from collections import defaultdict


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

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

    # 統(tǒng)計(jì)詞頻
    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)} 個(gè)單詞,其中唯一單詞 {len(sorted_words)} 個(gè)")
    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("請(qǐng)輸入文本文件路徑:").strip()
    top_n = input("要顯示前多少個(gè)高頻詞(默認(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:特殊字典類(lèi)型,當(dāng)鍵不存在時(shí)提供默認(rèn)值,簡(jiǎn)化詞頻統(tǒng)計(jì)

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

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

用戶(hù)交互:

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

運(yùn)行效果

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

應(yīng)用場(chǎng)景

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

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

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

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

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

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

添加停用詞過(guò)濾功能

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

開(kāi)發(fā)GUI界面提升用戶(hù)體驗(yàn)

支持批量文件分析比較

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

相關(guān)文章

  • Python Opencv 通過(guò)軌跡(跟蹤)欄實(shí)現(xiàn)更改整張圖像的背景顏色

    Python Opencv 通過(guò)軌跡(跟蹤)欄實(shí)現(xiàn)更改整張圖像的背景顏色

    這篇文章主要介紹了Python Opencv 通過(guò)軌跡(跟蹤)欄實(shí)現(xiàn)更改整張圖像的背景顏色,在文章末尾有一個(gè)小訓(xùn)練——是將所學(xué)得的圖像顏色修改應(yīng)用為畫(huà)板一般的刷新,需要的朋友可以參考下
    2020-03-03
  • Python的Django中django-userena組件的簡(jiǎn)單使用教程

    Python的Django中django-userena組件的簡(jiǎn)單使用教程

    這篇文章主要介紹了Python的Django中django-userena組件的簡(jiǎn)單使用教程,包括用戶(hù)登陸和注冊(cè)等簡(jiǎn)單功能的實(shí)現(xiàn),需要的朋友可以參考下
    2015-05-05
  • python在html中插入簡(jiǎn)單的代碼并加上時(shí)間戳的方法

    python在html中插入簡(jiǎn)單的代碼并加上時(shí)間戳的方法

    今天小編就為大家分享一篇python在html中插入簡(jiǎn)單的代碼并加上時(shí)間戳的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • python 刪除列表里所有空格項(xiàng)的方法總結(jié)

    python 刪除列表里所有空格項(xiàng)的方法總結(jié)

    下面小編就為大家分享一篇python 刪除列表里所有空格項(xiàng)的方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python算法深入理解風(fēng)控中的KS原理

    python算法深入理解風(fēng)控中的KS原理

    這篇文章主要為大家介紹了python算法深入理解風(fēng)控中的KS原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-11-11
  • opencv python 圖像輪廓/檢測(cè)輪廓/繪制輪廓的方法

    opencv python 圖像輪廓/檢測(cè)輪廓/繪制輪廓的方法

    這篇文章主要介紹了opencv python 圖像輪廓/檢測(cè)輪廓/繪制輪廓的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python xpath表達(dá)式如何實(shí)現(xiàn)數(shù)據(jù)處理

    Python xpath表達(dá)式如何實(shí)現(xiàn)數(shù)據(jù)處理

    這篇文章主要介紹了Python xpath表達(dá)式如何實(shí)現(xiàn)數(shù)據(jù)處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python實(shí)現(xiàn)遺傳算法(虛擬機(jī)中運(yùn)行)

    Python實(shí)現(xiàn)遺傳算法(虛擬機(jī)中運(yùn)行)

    遺傳算法(GA)是最早由美國(guó)Holland教授提出的一種基于自然界的“適者生存,優(yōu)勝劣汰”基本法則的智能搜索算法。本文主要介紹了如何通過(guò)Python實(shí)現(xiàn)遺傳算法,感興趣的同學(xué)可以看一看
    2021-11-11
  • Python?實(shí)現(xiàn)多表和工作簿合并及一表按列拆分

    Python?實(shí)現(xiàn)多表和工作簿合并及一表按列拆分

    這篇文章主要介紹了Python?實(shí)現(xiàn)多表和工作簿合并及一表按列拆分,文章圍繞主題展開(kāi)詳細(xì)的資料介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • Python調(diào)用Java接口失敗(Java日志打印警告:JSON parse error:xxxx)的解決方案

    Python調(diào)用Java接口失敗(Java日志打印警告:JSON parse error:xxxx)

    文章描述了Python調(diào)用Java接口時(shí)遇到400錯(cuò)誤和JSON解析錯(cuò)誤的問(wèn)題,通過(guò)分析問(wèn)題發(fā)現(xiàn)參數(shù)傳遞方式可能存在問(wèn)題,修改Python代碼使用data參數(shù)并序列化數(shù)據(jù)后,問(wèn)題解決,文章總結(jié)了在Python調(diào)用Java接口傳遞JSONObject數(shù)據(jù)時(shí)的注意事項(xiàng),需要的朋友可以參考下
    2025-11-11

最新評(píng)論

高青县| 渝北区| 同心县| 始兴县| 临沭县| 县级市| 赤壁市| 邹平县| 许昌市| 涪陵区| 山阴县| 佛冈县| 滨海县| 靖江市| 监利县| 蒙自县| 宁国市| 科尔| 永平县| 洛宁县| 逊克县| 邢台县| 湖州市| 德令哈市| 齐齐哈尔市| 大丰市| 宝鸡市| 秀山| 广州市| 张家口市| 个旧市| 平昌县| 绵竹市| 长春市| 徐水县| 邢台县| 大宁县| 宣化县| 酒泉市| 黄浦区| 定州市|