用Python对中文文档进行词频统计的代码
时间: 2024-12-17 14:48:42 浏览: 187
在Python中,我们可以使用`jieba`库来进行中文文本的分词,并结合`collections`库中的`Counter`类进行词频统计。以下是一个简单的示例:
```python
# 首先需要安装jieba库,如果未安装可以使用pip install jieba命令
import jieba
from collections import Counter
def word_frequency(text):
# 使用jieba进行中文分词
words = jieba.lcut(text)
# 使用Counter计算每个词的频率
word_counts = Counter(words)
return word_counts
# 测试示例
text = "这是一段测试的中文文档,用于演示词频统计。"
freqs = word_frequency(text)
# 输出最常出现的前10个词及其频率
for word, freq in freqs.most_common(10):
print(f"{word}: {freq}")
相关问题
请给出代码,用python对该文件进行词频统计,计算出词频最高的10个词
可以使用Python的collections库中的Counter对象来帮助我们完成词频统计的任务。这里先提供一个基础版本的实现方法,这个脚本将读取文本文件,并计算单词出现频率然后返回最常见的十个单词:
```python
from collections import Counter
import re
def count_words(filename):
with open(filename, 'r', encoding='utf-8') as file:
text = file.read().lower() # 转换所有文字为小写以避免大小写的重复记录
# 移除非字母字符,并分割字符串获得单词列表
words = re.findall(r'\b\w+\b', text)
counter = Counter(words)
# 返回出现次数最多的10个单词及其次数
return counter.most_common(10)
filename = "pku_training.txt"
top_10_words = count_words(filename)
for word, freq in top_10_words:
print(f"{word}: {freq}")
```
请注意,在实际应用中可能需要进一步清理数据,例如去除停用词(常见的诸如"a", "the", "and"这样的功能词),或者针对特定语言或领域调整正则表达式以更准确地匹配词汇单元。此外,考虑到提供的文档内容包含很多数字和特殊格式(比如日期、百分比等),这些如果也被认为是独立的'词语'的话,则上述代码无需修改即可直接运行。但如果需要排除这类情况,还需适当调整正则表达式。
用python代码实现对去停用词的文档进行词频统计,即统计每个词出现的次数。
可以使用 Python 中的 nltk 库来实现去停用词的文档进行词频统计。以下是示例代码:
```python
import nltk
from nltk.corpus import stopwords
from collections import Counter
# 读入文本文件
with open('example.txt', 'r', encoding='utf-8') as f:
text = f.read().lower() # 转成小写
# 分词
words = nltk.word_tokenize(text)
# 去停用词
stop_words = set(stopwords.words('english')) # 英文停用词表
filtered_words = [w for w in words if not w in stop_words]
# 统计词频
word_freq = Counter(filtered_words)
# 输出结果
print(word_freq.most_common(10)) # 显示出现频率最高的前10个词
```
其中,example.txt 是要进行词频统计的文本文件,可以替换成你自己的文本文件名。输出的结果是出现频率最高的前10个词及其出现次数,可根据需要进行调整。
阅读全文
相关推荐
















