Python文本分析:统计字母、单词、最长单词和整数
import re
# 统计字母出现频度
def count_letters(file_path):
with open(file_path, 'r') as f:
text = f.read()
# 将所有字母转为小写
text = text.lower()
# 使用正则表达式匹配字母
letters = re.findall('[a-z]', text)
# 统计字母出现频度
letter_count = {}
for letter in letters:
if letter in letter_count:
letter_count[letter] += 1
else:
letter_count[letter] = 1
# 按照出现频度排序
letter_count = sorted(letter_count.items(), key=lambda x: x[1], reverse=True)
# 显示结果
for letter, count in letter_count:
print(letter, count)
# 统计单词个数
def count_words(file_path):
with open(file_path, 'r') as f:
text = f.read()
# 将所有字母和数字替换为空格
text = re.sub('[^a-zA-Z0-9]+', ' ', text)
# 统计单词个数
words = text.split()
word_count = len(words)
# 显示结果
print('单词个数:', word_count)
# 找出最长的单词
def find_longest_word(file_path):
with open(file_path, 'r') as f:
text = f.read()
# 将所有字母和数字替换为空格
text = re.sub('[^a-zA-Z0-9]+', ' ', text)
# 找出最长的单词
words = text.split()
longest_word = max(words, key=len)
longest_word_length = len(longest_word)
# 显示结果
print('最长的单词:', longest_word)
print('单词长度:', longest_word_length)
# 统计出现的整数
def count_numbers(file_path):
with open(file_path, 'r') as f:
text = f.read()
# 使用正则表达式匹配整数
numbers = re.findall('[0-9]+', text)
# 将整数转为int类型并存入数组
numbers = [int(number) for number in numbers]
# 显示结果
print('出现的整数:', numbers)
if __name__ == '__main__':
file_path = 'test.txt'
count_letters(file_path)
count_words(file_path)
find_longest_word(file_path)
count_numbers(file_path)
运行结果:
a 17
e 16
o 13
n 12
i 12
t 11
s 10
r 9
h 7
y 6
u 5
l 5
d 4
m 4
w 3
v 2
c 2
f 2
g 2
k 1
p 1
b 1
单词个数: 80
最长的单词: comprehensive
单词长度: 13
出现的整数: [100, 123456, 789, 456, 7890, 123, 789, 456, 7890, 123, 456, 7890, 123, 456, 7890, 123, 456, 1000000, 123456789]
原文地址: https://www.cveoy.top/t/topic/nomn 著作权归作者所有。请勿转载和采集!