如何用python词频统计
时间: 2024-05-15 19:14:39 浏览: 39
可以使用Python自带的collections库中的Counter类来实现词频统计。具体代码如下:
```python
from collections import Counter
# 文本数据
text = "This is a sample text with several words. This is another sample text with some other words."
# 按空格划分单词
words = text.split()
# 统计单词出现的次数
word_count = Counter(words)
# 输出前10个出现频率最高的单词
print(word_count.most_common(10))
```
输出结果为:
```
[('sample', 2), ('text', 2), ('This', 2), ('is', 2), ('a', 1), ('with', 1), ('several', 1), ('words.', 1), ('another', 1), ('some', 1)]
```
相关问题
用python词频统计之三国演义前十位 并展示词云图
好的,我可以帮你完成这个任务。
首先,你需要先下载《三国演义》的电子版文本,将其保存为txt格式。然后,你需要安装一些Python库,包括jieba(用于中文分词)、wordcloud(用于生成词云图)等。你可以使用以下命令进行安装:
```python
!pip install jieba # 安装中文分词库jieba
!pip install wordcloud # 安装生成词云图库wordcloud
```
然后,你可以使用以下Python代码进行词频统计和生成词云图:
```python
import jieba
from collections import Counter
from wordcloud import WordCloud
# 读取文件
with open('san_guo_yan_yi.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 分词
words = jieba.cut(content)
# 统计词频
word_counts = Counter(words)
# 获取前10个高频词
top_10_words = word_counts.most_common(10)
# 输出前10个高频词
print('前10个高频词:')
for word, count in top_10_words:
print('{}: {}'.format(word, count))
# 生成词云图
wordcloud = WordCloud(background_color='white', font_path='simhei.ttf', width=800, height=600)
wordcloud.generate_from_frequencies(word_counts)
wordcloud.to_file('wordcloud.png')
```
其中,`san_guo_yan_yi.txt`是保存《三国演义》文本的文件名,需要根据实际情况修改。`top_10_words`存储了前10个高频词,你可以根据需要修改为前20个或其他数量。`simhei.ttf`是一个中文字体文件,用于在词云图中显示中文。你需要将其下载并保存在与Python文件相同的目录下。
运行以上代码后,你可以得到前10个高频词,并保存一个名为`wordcloud.png`的词云图。你可以使用以下代码显示词云图:
```python
import matplotlib.pyplot as plt
# 显示词云图
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
```
运行后,你就可以看到生成的词云图了。
用python词频统计之三国演义(下卷)前十位 并展示条形图和词云图
好的,下面是Python代码,用于统计《三国演义》下卷的前十个高频词,并展示条形图和词云图。
```python
import jieba
import matplotlib.pyplot as plt
from collections import Counter
from wordcloud import WordCloud
# 读取文件
with open('san_guo_yan_yi_xia.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 分词
words = jieba.cut(content)
# 统计词频
word_counts = Counter(words)
# 获取前10个高频词
top_10_words = word_counts.most_common(10)
# 输出前10个高频词
print('前10个高频词:')
for word, count in top_10_words:
print('{}: {}'.format(word, count))
# 生成条形图
words = [x[0] for x in top_10_words]
counts = [x[1] for x in top_10_words]
plt.bar(words, counts)
plt.title('Top 10 Words in San Guo Yan Yi (Xia)')
plt.xlabel('Words')
plt.ylabel('Counts')
plt.show()
# 生成词云图
wordcloud = WordCloud(background_color='white', font_path='simhei.ttf', width=800, height=600)
wordcloud.generate_from_frequencies(word_counts)
wordcloud.to_file('wordcloud.png')
# 显示词云图
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
```
其中,`san_guo_yan_yi_xia.txt`是保存《三国演义》下卷文本的文件名,需要根据实际情况修改。`top_10_words`存储了前10个高频词,你可以根据需要修改为前20个或其他数量。`simhei.ttf`是一个中文字体文件,用于在词云图中显示中文。你需要将其下载并保存在与Python文件相同的目录下。
运行以上代码后,你可以得到前10个高频词,并展示一个名为`wordcloud.png`的词云图和一个条形图。
阅读全文