← 返回首页
文本摘要
发表时间:2025-04-05 00:44:38
文本摘要

文本摘要生成是自然语言处理(NLP)中的一个重要任务,目标是从原始文本中提取关键信息并形成一个简短且保留核心内容的摘要。

1.文本摘要

文本摘要是一种自然语言处理任务,其目标是从一个长文本中提取出简洁、重要的信息,生成一个简短的版本。文本摘要可以分为两种主要类型:抽取式摘要和生成式摘要。

抽取式摘要

抽取式摘要通过选择原始文本中的重要句子或段落,直接提取这些内容作为摘要。这种方法不改变原始文本中的词语和句子结构。

实现原理: - 特征提取:首先,需要提取文本的各种特征,例如词频、句子位置、关键词、命名实体等。 - 重要性评分:基于提取的特征,计算每个句子的得分,以确定其重要性。 - 句子选择:根据重要性得分,选择最重要的句子来构建摘要。

难点: - 重要性衡量:如何准确衡量句子的相对重要性。 - 冗余消除:避免选择内容重复的句子。

实现方式: - 基于规则的方法:使用预定义的规则和统计方法来选择句子。 - 机器学习方法:使用有监督的学习算法,根据训练数据学习如何选择重要句子。

生成式摘要

生成式摘要通过理解原始文本并生成新的句子来概括其内容。这种方法可以创建更为自然和连贯的摘要,但也更加复杂。

实现原理:

难点:

实现方式:

2.BART模型实现文本摘要

以下是使用 Hugging Face 提供的 BART 模型进行文本摘要的示例代码:

from transformers import BartForConditionalGeneration, BartTokenizer

# 指定本地目录路径(确保模型和分词器文件已保存到该目录)
local_model_path = "./bart-large-cnn"  # 替换为你的本地路径

# 从本地目录加载模型和分词器
model = BartForConditionalGeneration.from_pretrained(local_model_path)
tokenizer = BartTokenizer.from_pretrained(local_model_path)

# 检查是否有可用的 GPU
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
"""
印度发射首个私人地球成像卫星星座
总部位于班加罗尔的太空初创公司Pixxel成功发射了印度首个私人地球成像卫星星座,名为“萤火虫”。
该星座由SpaceX的猎鹰9号火箭从加利福尼亚州的范登堡太空军基地发射,
部署在550公里的低地球轨道上。这一里程碑标志着印度私人太空行业取得了重大成就。
作为项目的一部分,今年晚些时候还将发射另外三颗卫星。“萤火虫”星座预计将为多种应用提供高分辨率成像数据,包括环境监测、农业和城市规划。
这一发展凸显了印度在太空技术方面的日益增长的能力,以及其在全球卫星服务市场中的竞争潜力。
"""

# 输入文本
input_text = """Bengaluru-based space start-up Pixxel has successfully launched India's first private earth imaging satellite constellation, named 'Firefly'. The constellation was deployed into a 550km low Earth orbit using SpaceX's Falcon-9 rocket, which was launched from Vandenberg Space Force Base in California. This milestone marks a significant achievement for India's private space sector. As part of the project, three more satellites are scheduled to be launched later this year. The 'Firefly' constellation is expected to provide high-resolution imaging data for various applications, including environmental monitoring, agriculture, and urban planning. This development highlights India's growing capabilities in space technology and its potential to compete in the global market for satellite-based services."""

# 对输入文本进行tokenize,并添加必要的模型输入
inputs = tokenizer([input_text], max_length=1024, return_tensors='pt')

# 使用模型生成摘要
summary_ids = model.generate(inputs['input_ids'], num_beams=4, max_length=150, early_stopping=True)

# 将生成的token序列转换回文本
summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True)

print(summary)

运行效果:

The constellation was deployed into a 550km low Earth orbit using SpaceX's Falcon-9 rocket. This milestone marks a significant achievement for India's private space sector. The 'Firefly' constellation is expected to provide high-resolution imaging data for various applications, including environmental monitoring, agriculture, and urban planning.

该星座通过 SpaceX 的猎鹰 9 号火箭被部署到 550 公里的低地球轨道上。这一里程碑标志着印度私人太空行业取得了重大成就。“萤火虫”星座预计将为多种应用提供高分辨率成像数据,包括环境监测、农业和城市规划等领域。

下面是BART实现生成中文摘要例子:

from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, pipeline
import os
import torch

# 指定本地目录路径(确保模型和分词器文件已保存到该目录)
local_model_path = "./bart-base-chinese"  # 替换为你的本地路径

# 从本地目录加载模型和分词器
model = AutoModelForSeq2SeqLM.from_pretrained(local_model_path)
tokenizer = AutoTokenizer.from_pretrained(local_model_path)

# 检查是否有可用的 GPU
device = "cuda" if torch.cuda.is_available() else "cpu"

# 创建摘要生成的 Pipeline
summarizer = pipeline("summarization", model=model, tokenizer=tokenizer, device=device)

# 输入中文文本
input_text = """印度班加罗尔的一家太空初创公司 Pixxel 成功发射了印度首个私人地球成像卫星星座,名为“萤火虫”。该星座通过 SpaceX 的猎鹰 9 号火箭被部署到 550 公里的低地球轨道上。这一里程碑标志着印度私人太空行业取得了重大成就。作为项目的一部分,今年晚些时候还将发射另外三颗卫星。“萤火虫”星座预计将为多种应用提供高分辨率成像数据,包括环境监测、农业和城市规划等领域。这一发展凸显了印度在太空技术方面的日益增长的能力,以及其在全球卫星服务市场中的竞争潜力。"""

# 使用 Pipeline 生成摘要
summary = summarizer(input_text, max_length=100, min_length=10, do_sample=False)

# 输出结果
print("原文:", input_text)
print("摘要:", summary[0]['summary_text'])

运行效果:

Device set to use cpu
原文: 印度班加罗尔的一家太空初创公司 Pixxel 成功发射了印度首个私人地球成像卫星星座,名为“萤火虫”。该星座通过 SpaceX 的猎鹰 9 号火箭被部署到 550 公里的低地球轨道上。这一里程碑标志着印度私人太空行业取得了重大成就。作为项目的一部分,今年晚些时候还将发射另外三颗卫星。“萤火虫”星座预计将为多种应用提供高分辨率成像数据,包括环境监测、农业和城市规划等领域。这一发展凸显了印度在太空技术方面的日益增长的能力,以及其在全球卫星服务市场中的竞争潜力。
摘要: 印 度 班 加 罗 尔 的 一 家 太 空 初 创 公 司 pixxel 成 功 发 射 了 印 度 首 个 私 人 地 球 成 像 卫 星 星 座 , 名 为 萤 火 虫 ” 的 该

Hugging Face 提供了多种用于文本摘要的预训练模型,包括但不限于: - BART (facebook/bart-large-cnn) - T5 (t5-small, t5-base, t5-large, t5-3b, t5-11b) - PEGASUS (google/pegasus-xsum, google/pegasus-cnn_dailymail)