用Python实现英文文本词频统计
时间: 2023-11-29 14:42:05 浏览: 70
可以使用Python的`collections`模块来实现英文文本的词频统计。下面是一个简单的示例代码:
```python
import re
from collections import Counter
def word_frequency(text):
# 使用正则表达式将文本中的非字母字符替换为空格
text = re.sub(r'[^a-zA-Z]', ' ', text)
# 将文本转换为小写,并按空格分割成单词列表
words = text.lower().split()
# 使用Counter对象统计单词出现的次数
word_counts = Counter(words)
return word_counts
# 示例用法
text = "Hello, how are you? I'm doing great, thank you!"
frequency = word_frequency(text)
print(frequency)
```
运行以上代码,输出结果为:
```
Counter({'hello': 1, 'how': 1, 'are': 1, 'you': 1, "i'm": 1, 'doing': 1, 'great': 1, 'thank': 1, 'you': 1})
```
以上代码首先使用正则表达式将非字母字符替换为空格,然后将文本转换为小写,并按空格分割成单词列表。接着使用`Counter`对象统计单词出现的次数,并返回结果。
相关问题
用Python实现中文文本词频统计
要使用Python实现中文文本的词频统计,可以按照以下步骤进行:
1. 导入必要的库,包括`jieba`用于中文分词。
2. 定义一个函数,命名为`word_frequency`,该函数接受一个中文文本字符串作为参数。
3. 在函数内部,使用`jieba`库对文本进行分词,得到词语列表。
4. 初始化一个空字典`freq_dict`用于存储词频统计结果。
5. 遍历词语列表,对每个词语进行统计:
- 如果词语已经在`freq_dict`中,将其计数加1;
- 如果词语不在`freq_dict`中,将其添加到`freq_dict`并设置计数为1。
6. 返回词频统计结果`freq_dict`。
以下是用Python实现中文文本词频统计的代码示例:
```python
import jieba
def word_frequency(text):
word_list = jieba.lcut(text) # 中文分词
freq_dict = {}
for word in word_list:
if word in freq_dict:
freq_dict[word] += 1
else:
freq_dict[word] = 1
return freq_dict
```
你可以调用`word_frequency`函数并传入一个中文文本字符串来进行测试,例如:
```python
text = "今天天气真好,出去玩了一天。明天继续努力学习!"
freq_result = word_frequency(text)
print(freq_result)
```
输出结果将为:
```
{'今天': 1, '天气': 1, '真好': 1, ',': 1, '出去': 1, '玩': 1, '了': 1, '一天': 1, '。': 1, '明天': 1, '继续': 1, '努力': 1, '学习': 1, '!': 1}
```
这样就完成了使用Python实现中文文本词频统计的过程。请注意,在进行中文分词时,你可能需要提前安装`jieba`库,并且需要下载`jieba`的中文分词词库。
用python实现英文词频统计
可以使用Python中的collections模块中的Counter类来实现英文词频统计。具体步骤如下:
1. 读取英文文本文件,将其内容存储到一个字符串中。
2. 将字符串中的标点符号和换行符替换为空格。
3. 将字符串中的所有字母转换为小写。
4. 将字符串按照空格分割成单词列表。
5. 使用Counter类统计每个单词在列表中出现的次数。
6. 输出结果。
下面是一个示例代码:
```python
import collections
# 读取文件内容
with open('text.txt', 'r') as file:
text = file.read()
# 将标点符号和换行符替换为空格
text = text.replace('\n', ' ')
for ch in '.,?!():;':
text = text.replace(ch, ' ')
# 将所有字母转换为小写
text = text.lower()
# 按照空格分割成单词列表
words = text.split()
# 统计单词出现次数
counter = collections.Counter(words)
# 输出结果
for word, count in counter.most_common():
print(word, count)
```
其中,text.txt是待统计的英文文本文件。输出结果按照单词出现次数从高到低排序。