项目简介
文本分析器是一个命令行应用,旨在对用户输入的文本进行基本分析,包括词频统计、句子长度分析和常用词提取,以帮助理解文本的结构和内容。
主要功能
- 词频统计:计算每个单词出现的频率,并以降序显示。
- 句子长度分析:统计每个句子的长度(单词数),并显示平均句子长度。
- 提取常用词:显示文本中出现频率最高的 N 个单词。
- 文本清洗:去除标点符号和多余的空格,以确保统计准确。
技术栈
- Python 3.x
- 标准库(如
collections
和re
)
实现步骤
- 获取用户输入:提示用户输入文本。
- 文本清洗:使用正则表达式去除标点符号并将文本转换为小写。
- 词频统计:
- 使用
collections.Counter
统计单词频率。 - 将结果按频率排序并打印。
- 使用
- 句子长度分析:
- 将文本按句子分割,统计每个句子的单词数。
- 计算并打印平均句子长度。
- 提取常用词:选择频率最高的 N 个单词并显示。
- 输出结果:将所有分析结果以友好的格式打印到控制台。
完整代码
import re
from collections import Counter
def clean_text(text):
# 去除标点符号并转为小写
return re.sub(r'[^\w\s]', '', text).lower()
def analyze_text(text):
cleaned_text = clean_text(text)
words = cleaned_text.split()
# 词频统计
word_counts = Counter(words)
most_common_words = word_counts.most_common(10) # 获取前10个常用词
# 句子分析
sentences = re.split(r'[.!?]', text)
sentence_lengths = [len(s.split()) for s in sentences if s]
avg_sentence_length = sum(sentence_lengths) / len(sentence_lengths) if sentence_lengths else 0
return most_common_words, avg_sentence_length
def main():
text = input("请输入一段文本:")
most_common_words, avg_sentence_length = analyze_text(text)
print("\n词频统计(前10个常用词):")
for word, count in most_common_words:
print(f"{word}: {count} 次")
print(f"\n平均句子长度:{avg_sentence_length:.2f} 个单词")
if __name__ == "__main__":
main()