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 requests 模块

    以下是关于Python requests模块的攻略: 浅析Python requests模块 Python requests模块是一个流行的HTTP库,可以用于向Web服务器发送HTTP请求和接收响应。它提供了简单易用的API,支持HTTP/1.1和HTTPS,并支持Cookie、认证、代理等功能。以下是Python requests模块的详细介绍: 发送H…

    python 2023年5月14日
    00
  • Python 迭代,for…in遍历,迭代原理与应用示例

    Python迭代 在Python中,迭代是指访问集合中每个元素的过程,而集合可以是列表、元组、字典或其他可迭代对象。在Python中,有多种方法可以迭代集合中的元素,比如for…in循环、列表推导式、生成器等。其中,for…in循环是最常用的方法之一。 for…in循环遍历 for…in循环可以遍历任何可迭代对象中的所有元素。语法如下: fo…

    python 2023年5月14日
    00
  • python如何查看网页代码

    当我们想要分析网页或者制作爬虫器时,需要查看网页源代码。Python为我们提供了查看网页源代码的能力,以下是具体的攻略。 步骤一:安装Requests库 在Python中,我们可以使用Requests库来请求网页并获取返回值。需要先安装Requests库,可以在命令行中使用如下命令进行安装: pip install requests 步骤二:使用Reques…

    python 2023年6月3日
    00
  • python实现pptx批量向PPT中插入图片

    当你需要向 PPT 中插入大量图片时,手动操作会非常繁琐,因此你可以使用 Python 的库 python-pptx 实现自动化批量插入图片。下面是具体的实现方法: 1. 安装 python-pptx 首先,在命令行下输入以下命令来安装 python-pptx: pip install python-pptx 2. 导入必要的库 在 Python 代码开头,…

    python 2023年6月3日
    00
  • Python 字符串与数字输出方法

    下面是关于Python字符串与数字输出方法的完整攻略。 格式化字符串输出 Python提供了一种简洁的方式,将字符串和数字混合在一起输出。使用百分号(%)作为特殊符号,表示一个转换说明符。 格式化字符串 通过格式化字符串,你可以将多个对象结合在一起,从而打印出可读性更好的输出结果。 例如,你可以通%s将一个字符串值转换为字符串,并插入到另一个字符串中。 na…

    python 2023年6月5日
    00
  • springboot publish event 事件机制demo分享

    标题:SpringBoot事件机制的示例分享 简介 Spring框架是一个非常流行的Java框架,其提供了事件机制来处理应用程序中的各种操作,SpringBoot是Spring的一个子框架,继承了Spring框架的事件机制,使得事件的处理更加简单和高效。 SpringBoot事件机制简介 SpringBoot事件机制允许应用程序中的不同组件之间进行通信。核心…

    python 2023年6月13日
    00
  • Python 字符串定义

    对于Python字符串的定义,我们需要从两个方面来讲解,分别是单引号和双引号字符串的定义以及多行字符串的定义。 单引号和双引号字符串的定义 在Python中,我们可以使用单引号或双引号来定义一个字符串。例如: str1 = ‘Hello, World!’ str2 = "I’m a Python developer." 其中,变量str1…

    python 2023年5月20日
    00
  • 学python最电脑配置有要求么

    学习Python并不需要特别高的电脑配置,但是建议至少满足以下要求: 处理器:至少双核CPU,推荐四核及以上 内存:建议8GB及以上 存储:至少100GB以上的硬盘或固态硬盘(SSD) 这些要求可以保证你的电脑可以顺畅运行Python的开发环境和一些常见的编程工具。 另外,为了更好的学习体验,还可以考虑安装一些必备的软件: Python解释器:如果你是初学者…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部