如何使用Python在文本文件中查找出现最频繁的单词?

如何使用Python在文本文件中查找出现最频繁的单词?

在本文中,我们将向您展示如何使用python查找给定文本文件中出现最频繁的单词。

假设我们已经拿到了一个名为 ExampleTextFile.txt 由一些随机文本组成的文件。我们将返回给定文本文件中出现最频繁的单词

ExampleTextFile.txt

早上好TutorialsPoint
这是TutorialsPoint示例文件
包含特定的源代码
PythonSeabornScala
摘要和说明
欢迎TutorialsPoint
愉快的学习
Bash

算法(步骤)

以下是要执行所需任务的算法/步骤 –

  • 导入 计数器 函数(计数器类是Python3的集合模块提供的一种对象数据集形式。集合模块向用户公开了专门的容器数据类型,作为Python的通用内置替代品,例如字典,列表和元组。计数器是计算可哈希对象的子类。调用时,它会隐式地创建一个可迭代的哈希表)来自集合模块

  • 创建一个变量以存储文本文件的路径。

  • 创建一个列表以存储所有单词。

  • 使用 开放() 函数(打开一个文件并返回文件对象作为结果)通过将文件名和模式作为参数传递给它以只读模式打开文本文件(这里“ r ”表示只读模式)。

 with open(inputFile'r')as filedata
Bash
  • 使用for循环遍历文件中的每行。

  • 使用 split() 函数(将字符串拆分为列表。我们可以定义分隔符;默认分隔符是任何空格)将文本文件内容拆分为单词列表并将其存储在变量中。

  • 使用for循环遍历单词列表。

  • 使用 append() 函数(在列表末尾添加元素),将每个单词附加到列表中。

  • 使用 Counter() 函数(将单词的频率作为键值对给出)计算所有单词的频率(单词出现的次数)。

  • 创建一个变量以存储最大频率。

  • 在上述单词频率字典中使用for循环。

  • 使用if条件语句和in关键字,检查单词的频率是否大于最大频率。

 in关键字有两种使用方式:
关键字用于确定序列(列表,范围,字符串等)中是否存在值。
它也用于在for循环中遍历序列。
Bash
  • 如果单词的频率大于最大频率。

  • 创建一个变量以存储文本文件中最常出现的单词。

  • 打印文本文件中最常出现的单词。

  • 使用 close() 函数(用于关闭打开的文件)关闭输入文件。

以下程序遍历文本文件的行并使用来自集合模块的计数器函数打印文本文件中的键值对频率 –

# 导入计数器函数
from collections import Counter

# 输入文本文件
inputFile = "ExampleTextFile.txt"

# 存储所有单词
newWordsList = []

# 以只读模式打开给定文件
with open(inputFile, 'r') as filedata:

   # 遍历文件的每一行
   for textline in filedata:

      # 将文本文件内容拆分为单词列表
      wordsList = textline.split()

      # 遍历单词列表
      for word in wordsList:

         # 将每个单词添加到新列表
         newWordsList.append(word)

# 使用 Counter() 函数计算所有单词的频率
wordsFrequency = Counter(newWordsList)

# 取一个变量来存储最大频率值
maxFrequency = 0

# 遍历单词频率字典
for textword in wordsFrequency:

   # 检查单词频率是否大于最大频率
   if(wordsFrequency[textword] > maxFrequency):

      # 如果是,则将最大频率设置为该单词的对应频率值
      maxFrequency = wordsFrequency[textword]

      # 由于这是最高频率的单词,因此将其存储在一个变量中
      mostRepeatedWord = textword

# 打印文本文件中最多重复的单词
print("{",mostRepeatedWord,"} 是文本文件中最常见的单词")

# 关闭输入文件
filedata.close()
Bash

输出

执行后,上面的程序将生成以下输出 −

{ TutorialsPoint } 是文本文件中最常见的单词
Bash

在本程序中,我们从一个文本文件中读取一些随机文本。我们将整个文件读取完毕,将其拆分为单词,并将文本文件中的所有单词添加到列表中。我们使用 Counter() 方法统计文本文件中所有单词的频率,该方法返回一个字典,其中键为单词,值为单词的频率。然后,我们遍历字典中的单词,检查频率是否大于最大频率。如果是,则这是最常见的单词,因此我们将结果保存在一个变量中,并将最大频率更新为当前单词的频率。最后,我们显示最常用的单词。

结论

本文向我们展示了如何读取文件、逐行遍历文件并检索该行中的所有单词。一旦得到单词,我们可能会反转单词、更改大小写、检查元音、检索单词长度等。我们还学习了如何使用 Counter() 方法来确定单词列表的频率。该函数可用于确定字符串、列表、元组等的频率。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册