当前位置: 首页 > news >正文

# 基于 Python 和 jieba 的中文文本自动摘要工具

基于 Python 和 jieba 的中文文本自动摘要工具

在信息爆炸的时代,快速准确地提取文本核心内容变得至关重要。今天,我将介绍一个基于 Python 和 jieba 的中文文本自动摘要工具,帮助你高效地从长文本中提取关键信息。

一、背景与需求

在处理大量文本数据时,如新闻报道、学术论文、研究报告等,我们常常需要快速了解其核心内容。手动提取摘要不仅耗时费力,还容易遗漏重要信息。因此,开发一个自动摘要工具显得尤为重要。

二、工具介绍

这个工具的核心是基于 TF-IDF 算法,利用 Python 的 jieba 库实现中文文本的自动摘要。以下是工具的主要功能模块:

1. 文本读取

通过 read_text 函数,工具能够从指定路径读取文本文件。它支持 UTF-8 编码格式,确保能够正确处理中文字符。这使得工具能够轻松处理各种纯文本文件。

2. 分句处理

文本中的句子是信息的基本单元。工具使用正则表达式 re.split(r'[。!?;]', text) 按照中文标点符号(句号、感叹号、问号、分号)分割文本为句子。同时,去除空字符串,确保句子列表中的每个句子都是有效的。

3. 句子权重计算

句子的重要性是通过其关键词的 TF-IDF 值来衡量的。工具使用 jieba.analyse.tfidf 方法计算每个句子中关键词的 TF-IDF 值,并将这些值相加作为句子的权重。这种算法假设句子的重要性与句子中关键词的 TF-IDF 值之和成正比。

4. 摘要生成

根据句子权重,工具按权重降序排序并选择权重最高的若干句子作为摘要。默认情况下,工具会提取权重最高的 3 个句子,但你可以根据需要调整这个数字。此外,工具还会对摘要句子进行去重,确保摘要中没有重复的句子。

三、代码实现

以下是工具的完整代码实现:

import jieba
import jieba.analyse
from collections import defaultdict
import re# 读取文本文件
def read_text(file_path):with open(file_path, 'r', encoding='utf-8') as file:text = file.read()return text# 分句处理
def split_sentences(text):sentences = re.split(r'[。!?;]', text)sentences = [sentence.strip() for sentence in sentences if sentence.strip()]return sentences# 计算句子的TF-IDF权重
def calculate_sentence_weights(sentences):sentence_weights = defaultdict(float)for sentence in sentences:keywords = jieba.analyse.tfidf(sentence, withWeight=True)for word, weight in keywords:sentence_weights[sentence] += weightreturn sentence_weights# 生成摘要
def generate_summary(sentence_weights, top_n=3):sorted_sentences = sorted(sentence_weights.items(), key=lambda x: x[1], reverse=True)summary_sentences = [sentence for sentence, weight in sorted_sentences[:top_n]]unique_summary_sentences = list(dict.fromkeys(summary_sentences))return unique_summary_sentences# 主函数
def main():file_path = r'D:\Users\妄生\PycharmProjects\人工智能\作业(2023)\task5data.txt'text = read_text(file_path)sentences = split_sentences(text)sentence_weights = calculate_sentence_weights(sentences)summary_sentences = generate_summary(sentence_weights)print("摘要结果:")for sentence in summary_sentences:print(sentence)if __name__ == "__main__":main()

四、使用方法

  1. 安装依赖:确保你已经安装了 jieba 库。如果尚未安装,可以通过以下命令安装:
    pip install jieba
    
  2. 准备文本文件:将需要摘要的文本保存为一个 UTF-8 编码的纯文本文件。
  3. 运行代码:将上述代码保存为一个 Python 脚本文件(如 text_summary.py),然后运行该脚本。工具将自动读取文本文件,生成摘要并打印结果。

五、示例

假设我们有一个名为 task5data.txt 的文本文件,内容如下:

共赴青春盛会,激扬青春力量。在充满阳光与激情的盛夏,世界将目光聚焦成都。7月28日晚,第31届世界大学生夏季运动会将在成都拉开帷幕。来自170个国家和地区的大学生齐聚蓉城,他们将在赛场上勇敢挑战自我,拼搏成就梦想,展现青春风采。这场举世瞩目、万众期待的“青春之约”,让这个夏天的中国故事更加精彩纷呈。大运会是青春的盛会,无数青春在赛场绽放,闪耀出耀眼的光彩。本次大运会中国参赛运动员中,344人是首次代表国家参加世界综合性运动会。从层层选拔到刻苦备战,再到登上赛场冲击奖牌,这其间凝结着运动员们日复一日的拼搏坚持,用汗水孕育着梦想的果实直至开花结果。当他们在赛场上演绎着超越自我、突破极限、创造奇迹的青春故事,诠释出“不经历一番寒彻骨,怎得梅花扑鼻香”的真谛,这便是体育精神和奥林匹克精神带给我们的启示与感动。在他们身上,人们看到青春最美好的模样,看见奋斗是青春最靓丽的底色。 。

运行工具后,生成的摘要可能是:
在这里插入图片描述

六、总结

这个基于 Python 和 jieba 的中文文本自动摘要工具简单易用,能够快速从长文本中提取关键信息。它适用于多种文本处理场景,如新闻摘要、文献综述等。希望这个工具能够帮助你更高效地处理文本数据。

相关文章:

  • 无刷马达驱动芯片算法逐步革新着风扇灯行业--其利天下
  • Vue 3 单文件组件中 VCA 语法糖及核心特性详解
  • DAPO:对GRPO的几点改进
  • C#学习笔记 项目引用添加异常
  • SPSS PCA+判别分析
  • 【uom】 2 quantity! 宏解析(quantity.rs)
  • 冠军之选,智启未来——解码威码逊的品牌传奇与冠军代言故事
  • Flowith:解放思维的AI画布让创意与效率如泉涌
  • 《解锁LibTorch:开启C++深度学习新征程》
  • 数学:拉马努金如何想出计算圆周率的公式?
  • 北极星 新美团核销接口对接
  • getattr 的作用
  • PCB设计实战技巧宝典:从库管理到布线优化的全流程解析
  • 多数元素题解(LC:169)
  • “BYD SHENZHEN”启运,搭载超7000台比亚迪新能源车前往巴西
  • QT6 源(62)篇五:阅读与注释 QString 这个类,先给出官方综述,带一些翻译。总篇目太大,代码就有 2000 行
  • 机器学习,深度学习
  • 全面接入!Qwen3现已上线千帆
  • 第八节:目录操作
  • 晶振:从消费电子到航天领域的时间精度定义者
  • 奥斯卡新规:评委必须看完影片再投票;网友:以前不是啊?
  • 讲座|为什么要不断地翻译叶芝的诗?它们为什么值得细读?
  • 国台办:台商台企有信心与国家一起打赢这场关税战
  • 北大深圳研究生院成立科学智能学院:培养交叉复合型人才
  • 我国将出台稳就业稳经济推动高质量发展若干举措,将根据形势变化及时出台增量储备政策
  • 在差异中建共鸣,《20世纪美国文学思想研究》丛书出版