使用【python】写【统计词频】的代码
时间: 2024-12-14 21:26:46 浏览: 68
在Python中,我们可以使用collections模块中的Counter类来统计文本中每个单词出现的频率。下面是一个基本的例子:
```python
from collections import Counter
import re
def count_words(text):
# 清理文本,移除标点符号并转换为小写
text = re.sub(r'[^\w\s]', '', text).lower()
# 分割文本为单词列表
words = text.split()
# 使用Counter计算词频
word_counts = Counter(words)
return word_counts
# 测试
text = "这是一段测试文本,它包含了一些重复的词语,比如测试,文本,和一些其他词汇。"
word_frequency = count_words(text)
for word, frequency in word_frequency.most_common():
print(f"'{word}': {frequency}次")
```
这个代码首先通过正则表达式去除文本中的非字母数字字符,并将所有内容转为小写。然后,它按照空格分割文本成单词列表,并使用Counter计算每个单词出现的次数。`most_common()`函数返回一个列表,按频率降序排列元素。
相关问题
Python怎么统计词频
Python可以使用字典(dict)来统计词频,具体实现方法如下:
```python
text = "hello world, hello python, world of python"
word_list = text.lower().split() # 先将文本转换为小写,并分割成单词列表
word_count = {} # 定义空字典用于统计词频
for word in word_list:
if word not in word_count:
word_count[word] = 1
else:
word_count[word] += 1
print(word_count)
```
上述代码中,首先将文本转换为小写,并分割成单词列表。然后遍历列表中的每个单词,将其作为字典的键,如果该键不存在,则将其添加到字典中,并将值设置为1;如果该键已经存在,则将其对应的值加1。最后输出统计结果即可。
python爬虫统计词频
Python爬虫统计词频的基本思路如下:
1. 网络爬虫爬取网页内容
2. 使用正则表达式或者BeautifulSoup等工具对网页内容进行解析
3. 对解析出来的文本内容进行分词处理,可以使用jieba等第三方库进行中文分词
4. 统计每个单词出现的次数,并按照词频从高到低排序
5. 可以使用Matplotlib等库进行数据可视化展示
以下是Python爬虫统计词频的示例代码:
```python
import requests
import jieba
from collections import Counter
import matplotlib.pyplot as plt
# 爬取网页内容
url = 'https://www.csdn.net/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
html = response.text
# 使用正则表达式或者BeautifulSoup等工具对网页内容进行解析
# 这里使用BeautifulSoup进行解析
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
text = soup.get_text()
# 对文本内容进行分词处理
words = jieba.cut(text)
# 统计每个单词出现的次数,并按照词频从高到低排序
counter = Counter(words)
top_words = counter.most_common(20)
# 数据可视化展示
x_data = [word for word in top_words]
y_data = [word for word in top_words]
plt.bar(x_data, y_data)
plt.show()
```
阅读全文