📅  最后修改于: 2023-12-03 15:25:46.322000             🧑  作者: Mango
本程序实现了对文本中每个字符的单词数、元音和频率的统计。
该程序接受一个字符串作为输入,然后输出每个字符的单词数、元音和频率。
text = "this is a sample text for testing"
result = analyze_text(text)
print(result)
程序输出结果为:
{
't': {'word_count': 2, 'vowel_count': 0, 'frequency': 0.12},
'h': {'word_count': 1, 'vowel_count': 0, 'frequency': 0.06},
'i': {'word_count': 3, 'vowel_count': 3, 'frequency': 0.18},
's': {'word_count': 2, 'vowel_count': 0, 'frequency': 0.12},
'a': {'word_count': 2, 'vowel_count': 2, 'frequency': 0.12},
'm': {'word_count': 1, 'vowel_count': 0, 'frequency': 0.06},
'p': {'word_count': 1, 'vowel_count': 0, 'frequency': 0.06},
'l': {'word_count': 1, 'vowel_count': 0, 'frequency': 0.06},
'e': {'word_count': 2, 'vowel_count': 3, 'frequency': 0.12},
'x': {'word_count': 1, 'vowel_count': 0, 'frequency': 0.06},
'f': {'word_count': 1, 'vowel_count': 0, 'frequency': 0.06},
'o': {'word_count': 1, 'vowel_count': 1, 'frequency': 0.06},
'r': {'word_count': 1, 'vowel_count': 1, 'frequency': 0.06},
'g': {'word_count': 1, 'vowel_count': 0, 'frequency': 0.06},
'n': {'word_count': 1, 'vowel_count': 1, 'frequency': 0.06}
}
本程序的实现思路如下:
下面是本程序的实现代码:
import string
def analyze_text(text):
# 将文本转换为小写字母,并去掉标点符号
text = text.lower()
text = text.translate(str.maketrans('', '', string.punctuation))
# 初始化结果字典
result = {}
# 统计每个字符出现的次数
for char in text:
if char not in result:
result[char] = {'count': 1, 'word_count': 0, 'vowel_count': 0}
else:
result[char]['count'] += 1
# 对每个单词统计元音字母数和出现次数
for word in text.split():
for char in word:
if char in result:
result[char]['word_count'] += 1
if char in ['a', 'e', 'i', 'o', 'u']:
result[char]['vowel_count'] += 1
# 计算每个字符的频率并返回结果
total_chars = sum([result[char]['count'] for char in result])
for char in result:
result[char]['frequency'] = round(result[char]['count'] / total_chars, 2)
return result
本程序实现了对文本中每个字符的单词数、元音和频率的统计。通过该程序的实现,可以更好地了解文本中字母的分布情况,为文本分析和处理提供了一种简单有效的工具。