编写一个能统计文档中词语词频小程序
时间: 2024-02-22 21:58:56 浏览: 20
好的,以下是Python代码实现:
```python
import re
from collections import Counter
# 读取文件
with open('text.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 提取词语
words = re.findall(r'[\u4e00-\u9fa5]+', content)
# 统计词频
word_freq = Counter(words)
# 输出词频最高的15个词语
for word, freq in word_freq.most_common(15):
print(word, freq)
```
注:需要将代码中的文件名改为实际的文件名,并确保文件与代码在同一目录下。
相关问题
用python语句编写一个能统计文档中词语词频小程序。
当然可以,请见以下示例代码:
```
filename = "your_document.txt" # 文件名和路径
with open(filename, "r", encoding='utf-8') as file: # 打开文件
count_dict = {}
for line in file:
line = line.strip() # 去掉行末尾的空格和换行符
words = line.split() # 把一行分割成单词
for word in words:
if word not in count_dict:
count_dict[word] = 1
else:
count_dict[word] += 1
# 对频率进行排序
sorted_dict = sorted(count_dict.items(), key=lambda x:x[1], reverse=True)
for word, count in sorted_dict:
print(word, count) # 输出结果
```
以上代码会统计给定文档中每个单词出现的频率,并按频率进行从高到低排序输出。须注意,统计结果也可能包含标点符号、空格和换行符等非单词字符,代码中没有进行过滤。如果需要更精细的统计,请考虑使用正则表达式或其他方法。
本关任务:编写一个能统计文档中词语词频小程序。 宋词文件如下所示: 宋词文件 统计文件中词频最高的15个词语(除了词牌名和作者) 注意:标题行的空格是全角空格" "(可复制此空格) 由于有一个词牌名为东风第一枝,需要将文件中的词牌名删除。(否则会多一个东风)
好的,我明白了。以下是Python代码实现:
```python
import re
from collections import Counter
# 读取文件
with open('songci.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 删除词牌名
content = content.replace('东风第一枝', '')
# 提取词语
words = re.findall(r'[\u4e00-\u9fa5]+', content)
# 统计词频
word_freq = Counter(words)
# 删除词牌名和作者
del word_freq['东风第一枝']
del word_freq['苏轼']
# 输出词频最高的15个词语(除了词牌名和作者)
for word, freq in word_freq.most_common(15):
print(word, freq)
```
注:需要将代码中的文件名改为实际的文件名,并确保文件与代码在同一目录下。