用python打开txt文件,统计所有单词的出现次数并排序
时间: 2023-03-14 07:03:35 浏览: 90
用 Python 打开 txt 文件,可以使用以下代码来统计所有单词的出现次数并排序:with open('filename.txt') as f:
wordcount = {}
for line in f:
for word in line.split():
if word not in wordcount:
wordcount[word] = 1
else:
wordcount[word] += 1 # To get the count of each word in a dictionary
for key, value in wordcount.items():
print(key, value)# To get the sorted words according to the count
for key, value in sorted(wordcount.items(), key=lambda item: item[1]):
print("%s: %s" % (key, value))
相关问题
python读入英文文本文件统计单词出现的次数,按降序输出次数前10的单词
好的,可以通过Python的字典和正则表达式来实现。以下是代码示例:
```python
import re
# 打开文件并读取内容
with open("file.txt", "r") as file:
text = file.read()
# 使用正则表达式去除标点符号和换行符
text = re.sub(r'[^\w\s]', ' ', text)
text = re.sub(r'\n', ' ', text)
# 将文本分割成单词列表
words = text.split()
# 统计每个单词出现的次数
word_counts = {}
for word in words:
if word not in word_counts:
word_counts[word] = 0
word_counts[word] += 1
# 按照单词出现的次数降序排序并输出前10个单词
sorted_word_counts = sorted(word_counts.items(), key=lambda x: x[1], reverse=True)
for word, count in sorted_word_counts[:10]:
print(f"{word}: {count}")
```
在这个示例中,我们首先打开并读取文本文件。然后使用正则表达式去除标点符号和换行符,并将文本分割成单词列表。接下来,我们使用一个字典来统计每个单词出现的次数。最后,我们按照单词出现的次数降序排序,并输出前10个单词及其出现的次数。
使用python统计英文歌中的单词出现频率,并按出现频率排序
在Python中,你可以使用nltk库(Natural Language Toolkit)来完成这个任务,步骤大致如下:
1. **安装所需库**:
如果还没安装nltk,可以使用`pip install nltk`命令安装。另外,还需要下载punkt分词数据集,运行`import nltk; nltk.download('punkt')`。
2. **读取歌曲文本**:
你需要先将歌词文件读取到一个字符串变量中。如果歌词在本地文件,可以使用`open()`函数打开文件并读取内容。
3. **预处理文本**:
清理文本,移除标点符号、数字和其他非字母字符,只保留单词。这通常通过正则表达式实现。
```python
import re
def clean_text(text):
return re.sub(r'\W+', ' ', text).lower()
```
4. **分词**:
使用`word_tokenize()`函数将清理后的文本分割成单个单词。
5. **计数和排序**:
将单词列表传递给`collections.Counter`来计算每个单词的出现次数,然后使用`sorted()`函数结合字典的值(即单词频率)进行排序。
```python
from collections import Counter
def word_frequency(song_text):
cleaned_text = clean_text(song_text)
words = nltk.word_tokenize(cleaned_text)
frequency = Counter(words)
sorted_frequency = sorted(frequency.items(), key=lambda x: x[1], reverse=True)
return sorted_frequency
```
6. **结果输出**:
最后,你可以打印出结果,例如前几个最常出现的单词及其频率。
```python
print(word_frequency(your_song_text)[:10])
```
阅读全文