Python实现的统计文章单词次数功能示例

首先我们需要明确一下Python实现的统计文章单词次数功能的具体需求和实现方式。

需求

我们希望通过Python代码实现一个功能,可以统计一篇文章中每个单词出现的次数,并将结果按照出现次数从高到低排序,最后输出统计结果。

实现方式

为了实现这个功能,我们需要依次完成以下步骤:

  1. 获取文章并进行预处理,去除文章中的标点符号和多余空格等,并将文章转换为小写字母格式方便后续统计。

  2. 对文章进行分词,将文章拆分成一个一个的单词。

  3. 统计每个单词在文章中出现的次数,使用字典进行存储。

  4. 将统计结果进行排序,按照出现次数从高到低排序。

  5. 输出统计结果,以易于阅读的方式格式化展示。

接下来,让我们来一步一步实现这个功能。

步骤一:获取文章并进行预处理

首先,我们需要读取一篇文章,并对文章进行预处理,去除标点符号和多余空格,并将文章转换为小写字母格式方便后续统计。

代码实现如下:

import string

def preprocess(text):
    text = text.lower() # 将文章转换为小写字母格式
    text = text.translate(str.maketrans("", "", string.punctuation)) # 去除标点符号
    text = " ".join(text.split()) # 去除多余空格
    return text

with open("article.txt", "r") as f:
    article = f.read()

processed_article = preprocess(article)

这里我们定义了一个preprocess函数,用于对文章进行预处理。在函数内部,我们先调用了lower方法将整篇文章转换为小写字母格式。然后使用了translate和punctuation属性去除文章中的标点符号,最后使用了split和join方法去除多余空格。

在主程序中,我们通过with语句读取了一篇文章,并将文章传递给preprocess函数进行预处理,得到了处理后的文章processed_article。

步骤二:对文章进行分词

接下来,我们需要对预处理后的文章进行分词,将文章拆分成一个一个的单词。

代码实现如下:

def tokenize(text):
    tokens = text.split()
    return tokens

tokens = tokenize(processed_article)

这里我们定义了一个tokenize函数,用于对文章进行分词,将文章拆分成一个一个的单词。在函数内部,我们使用了split方法将文章划分为单词,最后通过返回值将结果返回。

在主程序中,我们将预处理后的文章传递给tokenize函数进行分词,得到了文章中的单词列表tokens。

步骤三:统计每个单词在文章中出现的次数

接下来,我们需要对文章中的每个单词进行统计,计算每个单词在文章中出现的次数。

代码实现如下:

def word_count(tokens):
    word_dict = {} # 新建一个空的字典,用于存储单词出现的次数
    for token in tokens:
        if token not in word_dict:
            word_dict[token] = 1
        else:
            word_dict[token] += 1
    return word_dict

word_dict = word_count(tokens)

这里我们定义了一个word_count函数,用于统计文章中每个单词出现的次数。在函数内部,我们新建了一个空的字典word_dict,用于存储每个单词出现的次数。然后我们遍历了文章中的每一个单词,如果该单词不在word_dict中,我们就将其添加到字典中并将它的出现次数设置为1;否则我们就将该单词在字典中对应的值+1。

最后,我们通过返回值将处理后的结果返回。

在主程序中,我们将文章中的单词列表tokens传递给word_count函数进行统计,得到了一个字典word_dict,它记录了每个单词出现的次数。

步骤四:将统计结果进行排序

接下来,我们需要将统计结果进行排序,按照每个单词在文章中出现的次数从高到低排序。

代码实现如下:

def sort_words(word_dict):
    sorted_words = sorted(word_dict.items(), key=lambda x:x[1], reverse=True)
    return sorted_words

sorted_words = sort_words(word_dict)

这里我们定义了一个sort_words函数,用于对文章中的单词按照出现次数从高到低进行排序。在函数内部,我们使用了sorted函数,通过传递一个lambda函数作为key来实现对字典按值进行排序,并将排序结果以列表的形式返回。

在主程序中,我们将统计后的字典word_dict传递给sort_words函数进行排序,得到了按照出现次数从高到低排序后的结果sorted_words。

步骤五:输出统计结果

最后,我们需要将统计结果以易于阅读的方式格式化展示出来。

代码实现如下:

def print_stats(sorted_words):
    for word, count in sorted_words:
        print("{:<20}{:>5}".format(word, count))

print_stats(sorted_words)

这里我们定义了一个print_stats函数,用于将统计后的结果以易于阅读的方式格式化展示出来。在函数内部,我们使用了for循环遍历了排序后的列表sorted_words,然后使用了.format方法将单词和出现次数以一定的格式输出到屏幕上。

在主程序中,我们将排序后的结果sorted_words传递给print_stats函数,将统计结果展示到屏幕上。

以上就是Python实现的统计文章单词次数的完整攻略,接下来我来举一个例子。

示例

假设我们有一篇文章如下所示:

Python is a popular high-level programming language that is widely used in various fields of engineering, scientific computing, data analysis, web development, finance, etc. Python is easy to learn, as it has a simple syntax and offers a large number of libraries and tools that make programming easier and faster. Python is frequently used for tasks such as data mining, web scraping, machine learning, data visualization, etc.

我们将这篇文章保存为article.txt文件,然后运行如下代码:

import string

# 预处理
def preprocess(text):
    text = text.lower() # 将文章转换为小写字母格式
    text = text.translate(str.maketrans("", "", string.punctuation)) # 去除标点符号
    text = " ".join(text.split()) # 去除多余空格
    return text

with open("article.txt", "r") as f:
    article = f.read()
processed_article = preprocess(article)

# 分词
def tokenize(text):
    tokens = text.split()
    return tokens
tokens = tokenize(processed_article)

# 统计单词出现次数
def word_count(tokens):
    word_dict = {} # 新建一个空的字典,用于存储单词出现的次数
    for token in tokens:
        if token not in word_dict:
            word_dict[token] = 1
        else:
            word_dict[token] += 1
    return word_dict
word_dict = word_count(tokens)

# 排序
def sort_words(word_dict):
    sorted_words = sorted(word_dict.items(), key=lambda x:x[1], reverse=True)
    return sorted_words
sorted_words = sort_words(word_dict)

# 输出结果
def print_stats(sorted_words):
    for word, count in sorted_words:
        print("{:<20}{:>5}".format(word, count))
print_stats(sorted_words)

我们可以得到如下的输出结果:

python                  3
is                      3
a                       2
used                    2
programming             1
language                1
that                    1
widely                  1
in                      1
various                 1
fields                  1
of                      1
engineering             1
scientific              1
computing               1
data                    1
analysis                1
web                     1
development             1
finance                 1
etc                     1
easy                    1
to                      1
learn                   1
as                      1
it                      1
has                     1
simple                  1
syntax                  1
and                     1
offers                  1
large                   1
number                  1
libraries               1
tools                   1
make                    1
easier                  1
faster                  1
frequently              1
for                     1
tasks                   1
such                    1
as                      1
mining                  1
scraping                1
machine                 1
learning                1
visualization           1

我们可以看到,统计结果按照单词出现次数从高到低排序,并以易于阅读的方式展示出来。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现的统计文章单词次数功能示例 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • python数据结构算法分析

    下面是关于“Python数据结构算法分析”的完整攻略。 1. 数据结构 1.1 列表 列表是Python中最常用的数据结构之一,它可以存储任类型的数据,并且支持动态扩容。在Python中,我们可以使用[]或list()函数来创建一个列表。 # 创建列表 my_list = [1, 2, 3, ‘hello’, ‘world’] 1.2 元组 元组是Pytho…

    python 2023年5月13日
    00
  • python执行精确的小数计算方法

    下面是Python执行精确的小数计算方法的完整攻略。 使用Decimal模块进行精确计算 在Python中,浮点数计算精度有限,可能会产生精度丢失和误差。因此,要进行精确的小数计算,可以使用Python标准库中的decimal模块。 首先需要引入decimal模块: import decimal 创建Decimal类型 在decimal模块中,可以使用Dec…

    python 2023年6月3日
    00
  • python日志模块loguru详解

    Python日志模块Loguru详解 Python日志模块Loguru是一个轻量级、易于使用的日志库,它提供了丰富的功能和灵活的配置选项,可以帮助我们更好地管理和应用程序的日志信息。本文将为您提供Python日志模块Loguru的完整攻略,包括如何安装和配置Log、如何记录日志信息、如何使用Loguru的高级功能等。 安装和配置Loguru 在使用Logur…

    python 2023年5月14日
    00
  • 基于DataFrame筛选数据与loc的用法详解

    下面是“基于DataFrame筛选数据与loc的用法详解”的完整攻略。 一、什么是DataFrame? DataFrame是Python中pandas库中的一种类型,它是一个二维的表格型数据结构,每列可以是不同的数据类型(如整数、浮点数、字符串等),类似于Excel、SQL表、或者R中的数据框架。我们可以通过数据框架来处理、清洗、分析和可视化数据。 二、如何…

    python 2023年6月3日
    00
  • 如何使用pdb进行Python调试

    下面是使用 pdb 进行 Python 调试的详细攻略。 什么是 pdb Python 调试器(Python debugger)是一种用于诊断 Python 代码中错误的工具。Python 自带了一个基本的调试器叫做 pdb,它可以让你按步骤执行代码,并查看变量的值,进而发现和解决问题。在调试过程中,你可以打印变量值、计算表达式、设置断点等等。 如何在代码中…

    python 2023年5月18日
    00
  • Python3.4实现远程控制电脑开关机

    Python3.4实现远程控制电脑开关机攻略 准备工作 为了实现远程控制电脑开关机,需要满足以下几个条件: 两台电脑在同一局域网内 接收控制开关机指令的电脑开启远程连接功能 控制开关机指令发送电脑安装有Python3.4或以上版本 在满足以上条件的情况下,我们就可以开始进行远程控制开关机了。 第一步:开启远程管理服务 在接收指令的电脑上,需要开启远程管理服务…

    python 2023年5月23日
    00
  • python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例

    Python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例 简介 QPrinter 是 PyQt5 里面的打印控件,用于打印预览窗口,支持 PDF 和图片的输出,还可以设置打印机的各种属性。在本教程中,将详细介绍 QPrinter 的各种基本用法,并提供两个实例说明。 前置条件 在开始之前确保你已经已经安装好了 PyQt5 库,…

    python 2023年5月19日
    00
  • 详解在Python中把一个图像叠加在另一个图像上

    在Python中把一个图像叠加在另一个图像上的过程中,可以用OpenCV库来实现。具体步骤如下: 1.读取原图和覆盖图 import cv2 # 读取原图和覆盖图 img1 = cv2.imread("image1.png") img2 = cv2.imread("image2.png") 2.确定图像叠加的位置 # …

    python-answer 2023年3月25日
    00
合作推广
合作推广
分享本页
返回顶部