使用python统计英文歌中的单词出现频率,并按出现频率排序
时间: 2024-10-24 22:11:20 浏览: 31
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])
```
阅读全文