Python中如何编写函数来统计单词出现频率?
发布时间:2023-11-09 23:53:38
在Python中,可以使用字典(dictionary)来统计单词的出现频率。下面是一个示例函数,可以实现此功能:
def word_frequency(text):
# 将文本转换为小写以忽略大小写差异
text = text.lower()
# 去除标点符号
text = text.replace(".", "").replace(",", "").replace("?", "").replace("!", "")
# 按空格拆分文本为单词列表
words = text.split()
# 创建一个空字典来存储单词和它们的频率
word_freq = {}
# 遍历单词列表,统计每个单词的出现频率
for word in words:
if word in word_freq:
word_freq[word] += 1
else:
word_freq[word] = 1
return word_freq
此函数接受一个文本字符串作为输入,并返回一个字典,其中键是单词,值是单词的出现频率。函数的工作步骤如下:
1. 将输入文本转换为小写字母,以便忽略大小写差异。
2. 使用字符串的replace()方法去除文本中的标点符号。
3. 使用字符串的split()方法按空格将文本分割为单词列表。
4. 创建一个空字典word_freq来存储单词和它们的频率。
5. 遍历单词列表,对于每个单词,如果它已经存在于字典word_freq中,则将它的频率加1,否则将它添加到字典中并设置频率为1。
6. 返回字典word_freq,其中包含了每个单词的出现频率。
下面是一个示例的使用:
text = "This is a sample sentence. This sentence is used for testing word frequency." result = word_frequency(text) print(result)
输出:
{'this': 2, 'is': 2, 'a': 1, 'sample': 1, 'sentence': 2, 'used': 1, 'for': 1, 'testing': 1, 'word': 1, 'frequency': 1}
注意,这个示例函数做了一些简化,例如没有处理连字符、缩写词等特殊情况。如果需要更精确的统计,可能需要使用更复杂的处理方法或库。
