python对一篇英文小说,进行词频统计,输出前20个出现频率最高的单词;
时间: 2023-12-27 10:03:32 浏览: 101
好的,可以使用Python中的`collections`模块来实现词频统计,具体代码如下:
```python
import collections
# 读取小说文本文件
with open('novel.txt', 'r') as f:
novel = f.read()
# 将文本文件中的标点符号去除
novel = ''.join(e for e in novel if e.isalnum() or e.isspace())
# 将小说文本文件中的单词分割成列表
words = novel.lower().split()
# 统计单词出现的频率
word_counts = collections.Counter(words)
# 输出前20个出现频率最高的单词
for word, count in word_counts.most_common(20):
print(word, count)
```
其中,`novel.txt`是小说文本文件的名称,可以根据实际情况进行修改。这段代码会将小说文本文件中的标点符号去除,并将其中的单词分割成列表,然后使用`collections.Counter`函数统计每个单词出现的次数,最后输出出现频率最高的前20个单词和它们出现的次数。
相关问题
怎样对一篇同时含有中文和英文的文本进行词频统计并绘制词云图 python代码
以下是对一篇同时含有中文和英文的文本进行词频统计并绘制词云图的 Python 代码:
```
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取文本文件
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 分词
text = jieba.cut(text)
# 统计词频
word_freq = {}
for word in text:
if word not in word_freq:
word_freq[word] = 1
else:
word_freq[word] += 1
# 生成词云图
wc = WordCloud(background_color='white', width=800, height=600)
wc.generate_from_frequencies(word_freq)
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()
```
上述代码中,我们首先使用 `jieba` 库对文本进行了分词,然后统计每个词的出现频率。最后使用 `wordcloud` 库生成词云图并绘制出来。需要注意的是,在使用 `jieba` 库时需要提前安装并下载中文分词词库。此外,绘制词云图时可以根据需要调整参数,如背景色、大小等。
Python用jieba库进行文本词频统计::一篇文章,出现了哪些词?哪些词出现的最多?
好的,针对您的问题,可以使用Python中的jieba库进行文本词频统计,具体操作如下:
1. 安装jieba库:
```
pip install jieba
```
2. 导入jieba库并读取文本文件:
```python
import jieba
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
```
3. 使用jieba库对文本进行分词:
```python
words = jieba.cut(text)
```
4. 统计各词出现的频率:
```python
word_freq = {}
for word in words:
if word not in word_freq:
word_freq[word] = 1
else:
word_freq[word] += 1
```
5. 排序并输出结果:
```python
sorted_word_freq = sorted(word_freq.items(), key=lambda x: x[1], reverse=True)
print('出现最多的前10个词:')
for word, freq in sorted_word_freq[:10]:
print(word, freq)
print('所有出现过的词:')
for word, freq in sorted_word_freq:
print(word, freq)
```
这样,就可以得到该文章中出现的所有词以及它们的出现频率,从而找到出现最多的前10个词。
阅读全文