请帮我用python写一个词频统计的函数
时间: 2024-03-24 21:38:39 浏览: 14
当然可以,以下是一个简单的Python函数,可以统计一个字符串中每个单词出现的次数:
```python
def word_frequency(text):
# 将字符串转换为小写,并去除所有标点符号和换行符
text = text.lower()
text = re.sub(r'[^\w\s]', '', text)
text = re.sub(r'\n', '', text)
# 将字符串分割成单词
words = text.split()
# 创建一个字典来保存每个单词出现的次数
frequency = {}
# 遍历每个单词,更新字典中对应的值
for word in words:
if word in frequency:
frequency[word] += 1
else:
frequency[word] = 1
# 返回字典
return frequency
```
这个函数使用了Python的正则表达式库re,用来去除字符串中的标点符号和换行符。它将字符串转换为小写,然后使用split()方法将字符串分割成单词。接着,它遍历每个单词,更新一个字典中对应的值。最后,函数返回这个字典,其中包含每个单词出现的次数。
相关问题
python用内置函数进行英文词频统计
Python中可以使用collections模块中的Counter类来进行英文词频统计。具体操作如下:
```python
from collections import Counter
# 定义文本字符串
text = "The quick brown fox jumps over the lazy dog. The dog slept over the verandah."
# 将文本字符串转为小写并分割成单词
words = text.lower().split()
# 使用Counter类统计单词出现的频率
word_counts = Counter(words)
# 输出结果
print(word_counts)
```
上述代码中,首先将文本字符串转为小写并分割成单词。然后使用Counter类对单词进行统计,得到每个单词出现的次数。最后输出结果。输出结果如下:
```
Counter({'the': 3, 'over': 2, 'dog.': 1, 'quick': 1, 'brown': 1, 'fox': 1, 'jumps': 1, 'lazy': 1, 'dog': 1, 'slept': 1, 'verandah.': 1})
```
其中,Counter对象是一个字典,键为单词,值为该单词出现的频率。可以通过调用most_common方法,按照出现次数从高到低输出前n个出现频率最高的单词,代码如下:
```python
# 输出出现频率最高的前3个单词
print(word_counts.most_common(3))
```
输出结果如下:
```
[('the', 3), ('over', 2), ('dog.', 1)]
```
以上代码展示了如何使用Python内置函数进行英文词频统计。
帮我写个文本词频统计代码
### 回答1:
吧
嗯,这样吧:
# 导入必要的库
import collections
# 读取文本
with open("text.txt") as f:
text = f.read()
# 统计词频
words = text.split()
counter = collections.Counter(words)
# 打印统计结果
for word, count in counter.most_common():
print(word, count)
### 回答2:
当然可以帮你写一个文本词频统计的代码。下面是一个简单的Python代码示例:
```python
def word_freq(text):
words = text.split() # 将文本拆分成单词列表
freq = {} # 用字典存储每个单词的频率
for word in words:
if word in freq:
freq[word] += 1
else:
freq[word] = 1
return freq
text = input("请输入文本:")
result = word_freq(text)
print("词频统计结果:")
for word, freq in result.items():
print(f"{word}: {freq}")
```
这个代码定义了一个`word_freq`函数,它接受一个字符串类型的文本作为参数,并返回一个字典,其中包含了每个单词及其对应的词频。
代码首先使用`split`方法将文本拆分成单词列表。然后通过遍历单词列表,对每个单词进行词频统计。使用字典`freq`来存储每个单词的频率,如果某个单词已经在字典中存在,就将其频率加1;如果不存在,就将其初始频率设为1。
最后,打印出词频统计的结果,遍历字典中的每个键值对,输出对应的单词及其频率。
你只需运行这段代码并输入你想要进行词频统计的文本,它会给出每个单词的词频统计结果。