当前位置: 首页 > 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 的中文文本自动摘要工具简单易用,能够快速从长文本中提取关键信息。它适用于多种文本处理场景,如新闻摘要、文献综述等。希望这个工具能够帮助你更高效地处理文本数据。

http://www.xdnf.cn/news/240193.html

相关文章:

  • ChipCN IDE KF32 导入工程后,无法编译的问题
  • 探秘明远智睿SSD2351开发板在HMI领域的独特魅力
  • 2025第八届数字中国峰会启幕 | 思特奇以数智力量,助推数字中国建设
  • 游戏性能测试
  • C 语 言 - - - 文 件 操 作
  • vue3 动态修改系统title
  • python查看指定的进程是否存在
  • 安凯微以创新之芯,赋能万物智能互联新时代
  • k8s术语值ReplicaSet
  • navicat中导出数据表结构并在word更改为三线表(适用于navicat导不出doc)
  • Ollama 安装 QWen3 及配置外网访问指南
  • 近期汇报
  • springboot框架常用配置
  • 在柯希霍夫积分法偏移成像中,消除数据采集和地下构造(如深浅孔径差异)导致的叠加次数不均匀会引起成像剖面强度差异
  • 【STM32单片机】#11.5 I2C通信(硬件读写)
  • TM1668芯片学习心得三
  • Qwen3-32B的幻觉问题
  • Windows系统安装Docker(Win10系统升级,然后安装)
  • UE 像素和线框盒子 材质
  • 【AI图像创作变现】08 变现渠道—间接获客:让客户主动找上门
  • 广州创科——湖北房县汪家河水库除险加固信息化工程
  • 【Android】轻松实现实时FPS功能
  • [Survey] Image Segmentation in Foundation Model Era: A Survey
  • AI赋能烟草工艺革命:虫情监测步入智能化时代
  • MySQL中ROW_NUMBER() OVER的用法以及使用场景
  • 【Java函数式编程-58.1】深入理解Java中的Consumer函数式接口
  • 冠军之选,智启未来——解码威码逊的品牌传奇与冠军代言故事
  • 客户联络中心如何进行能力建设?
  • 【SAM2代码解析】数据集处理3--混合数据加载器(DataLoader)
  • 中国县级2m精度耕地分布数据(2020年)