打开一个内容为一篇英文文章的文本文件,假设文章中的标点只有句号、逗号、叹号 和问号,统计其中单词的出现频率,忽略大小写。输出文章中出现频率最高的5个单词及 出现次数。
时间: 2024-02-06 14:09:34 浏览: 114
好的,这个任务可以用Python来实现。下面是代码:
```python
import re
from collections import Counter
# 读取文件内容
with open('article.txt', 'r') as f:
text = f.read()
# 将文本转换为小写,并去除标点符号
text = re.sub(r'[^\w\s]', '', text.lower())
# 统计单词出现次数
words = text.split()
word_counts = Counter(words)
# 输出出现频率最高的5个单词及出现次数
top_words = word_counts.most_common(5)
for word, count in top_words:
print(f'{word}: {count}')
```
这段代码首先读取了一个名为`article.txt`的文本文件,然后将其转换为小写,并使用正则表达式去除了标点符号。接着,使用Python内置的`Counter`类对单词出现次数进行了统计,最后输出了出现频率最高的5个单词及其出现次数。
相关问题
打开一个内容为一篇英文文章的文本文件,假设文章中的标点只有句号、逗号、叹号和问号,统计其中单词的出现频率,忽略大小写。输出文章中出现频率最高的5个单词及出现次数。
好的,我会为您提供一个 Python 代码来实现这个功能。
首先,我们需要读取文本文件中的内容,并将其中的标点符号替换为空格,将每个单词分开。可以使用 Python 的 replace() 函数和 split() 函数实现。
接下来,我们可以定义一个空的字典,用于记录每个单词出现的次数。遍历每个单词,将其转换为小写,并将其作为字典的键,在字典中累加其出现的次数。
最后,我们可以使用 Python 的 Counter 类对字典中的元素按照出现次数进行排序,取出前5个出现频率最高的单词及其出现次数。
下面是实现这个功能的 Python 代码:
```
import re
from collections import Counter
filename = input("请输入文件名: ")
with open(filename, 'r') as f:
text = f.read()
text = re.sub(r'[,.!?]', ' ', text) # 将标点符号替换为空格
words = text.split() # 将每个单词分开
word_count = {}
for word in words:
word = word.lower() # 将单词转换为小写
if word not in word_count:
word_count[word] = 1
else:
word_count[word] += 1
top5_words = Counter(word_count).most_common(5)
print("出现频率最高的5个单词及出现次数:")
for word, count in top5_words:
print(word, count)
```
希望能够帮助到您!
python打开一个内容为一篇英文文章的文本文件,假设文章中的标点只有句号、逗号、叹号和问号,统计其中单词的出现频率,忽略大小写。输出文章中出现频率最高的 5 个单词及出现次数。
好的,这是一个统计文本单词频率的问题。以下是 Python 代码示例:
```python
import re
from collections import Counter
# 打开文件并读取内容
with open('article.txt', 'r') as f:
text = f.read()
# 将文本中的标点符号替换为空格
text = re.sub(r'[^\w\s]', ' ', text)
# 将文本转换为小写并分割成单词列表
words = text.lower().split()
# 统计单词出现频率
word_counts = Counter(words)
# 输出出现频率最高的 5 个单词及出现次数
top_words = word_counts.most_common(5)
print("出现频率最高的 5 个单词及出现次数:")
for word, count in top_words:
print(f"{word}: {count}")
```
其中,`re.sub(r'[^\w\s]', ' ', text)` 用于将文本中的标点符号替换为空格,`words = text.lower().split()` 用于将文本转换为小写并分割成单词列表,`word_counts = Counter(words)` 用于统计单词出现频率,`word_counts.most_common(5)` 用于获取出现频率最高的 5 个单词及出现次数。你可以将代码中的 `article.txt` 替换为你所需的文本文件路径。希望这个代码可以帮助你解决问题。
阅读全文