python统计单词出现频率
时间: 2024-10-16 13:11:38 浏览: 82
在Python中,你可以使用collections模块的Counter函数来统计字符串(如文本文件)中每个单词出现的频率。下面是一个简单的示例:
```python
from collections import Counter
def word_frequency(file_path):
with open(file_path, 'r') as file:
text = file.read().lower() # 先读取文件内容并转换为小写
words = text.split() # 使用空格分隔得到单词列表
frequency = Counter(words) # 计算每个单词的频率
return frequency
# 示例用法
word_counts = word_frequency('your_text_file.txt')
for word, count in word_counts.most_common(): # 显示最常见的单词及其频率
print(f"{word}: {count}")
相关问题
python统计单词出现的频率
可以使用Python内置的collections模块中的Counter类来实现单词频率的统计。
假设有一个字符串s,可以按照以下步骤进行单词频率的统计:
1. 将字符串s按照空格切分成单词列表words。
2. 使用Counter类统计单词列表words中每个单词出现的次数。
3. 打印每个单词及其出现次数。
下面是示例代码:
```python
from collections import Counter
s = "This is a test string. This string is used for testing the Python program."
words = s.split()
# 使用Counter类统计单词出现次数
word_counts = Counter(words)
# 打印每个单词及其出现次数
for word, count in word_counts.items():
print(word, count)
```
运行结果如下:
```
This 2
is 2
a 1
test 1
string. 1
string 1
used 1
for 1
testing 1
the 1
Python 1
program. 1
```
python 统计英语单词出现频率,
可以使用 Python 中的字典来统计英语单词的出现频率。具体实现过程如下:
1. 首先,读取英文文本文件,可以使用 Python 中的 `open()` 函数来打开文件,并使用 `read()` 函数读取文件内容。例如,以下代码可以读取名为 `example.txt` 的文本文件:
```python
with open('example.txt', 'r') as f:
text = f.read()
```
2. 然后,将文本内容转换为单词列表,可以使用 Python 中的 `split()` 函数来将文本内容按照空格分割为单词列表。例如,以下代码可以将文本内容转换为单词列表:
```python
words = text.split()
```
3. 接下来,遍历单词列表,使用字典来统计每个单词出现的次数。如果单词已经存在于字典中,则将该单词对应的值加 1;否则,将该单词作为新键值对添加到字典中,初始值为 1。例如,以下代码可以统计单词列表中每个单词的出现频率:
```python
freq_dict = {}
for word in words:
if word in freq_dict:
freq_dict[word] += 1
else:
freq_dict[word] = 1
```
4. 最后,按照单词出现频率从高到低输出结果。可以使用 Python 中的 `sorted()` 函数对字典按照值进行排序,然后使用 `for` 循环遍历排序后的结果输出。例如,以下代码可以将字典按照值从大到小排序,并输出前 10 个键值对:
```python
sorted_freq_dict = sorted(freq_dict.items(), key=lambda x: x[1], reverse=True)
for i in range(10):
print(sorted_freq_dict[i])
```
完整代码如下:
```python
with open('example.txt', 'r') as f:
text = f.read()
words = text.split()
freq_dict = {}
for word in words:
if word in freq_dict:
freq_dict[word] += 1
else:
freq_dict[word] = 1
sorted_freq_dict = sorted(freq_dict.items(), key=lambda x: x[1], reverse=True)
for i in range(10):
print(sorted_freq_dict[i])
```
阅读全文