自动摘要怎么生成?

访客 自然语言处理 2

本文目录导读:

  1. 方法一:使用现成的AI工具(最推荐,效果最好)
  2. 方法二:自己用代码实现(基础版:提取式摘要)
  3. 方法三:调用大模型API(进阶版:生成式摘要)
  4. 方法四:利用浏览器插件(日常使用)

传统的提取式现代的生成式(基于AI),如果你想实际做一个工具,或者只是需要快速摘要,具体操作如下:

使用现成的AI工具(最推荐,效果最好)

如果你只是需要结果,而不是技术实现,直接用大模型最快。

  • 国内工具Kimi(擅长长文本)、通义千问(有“阅读助手”功能)、百度文心一言
  • 国外工具ChatGPT(GPT-4)、Claude(理解力强)。
  • 通用平台DeepSeek(性价比高,适合大量文本)。

操作:把文章或链接粘贴进去,直接说“用200字总结这篇文章的要点”或“生成一段摘要”。

自己用代码实现(基础版:提取式摘要)

如果你有编程基础(Python),可以写一个简单的脚本,这种方法不“理解”意思,而是靠统计找关键句。

核心原理:计算句子权重,找出最重要的几句(类似TextRank算法)。

简单代码示例(Python + jieba库)

import jieba.analyse
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
def extractive_summary(text, num_sentences=3):
    # 1. 分句(按句号、问号、感叹号切分)
    sentences = text.replace('!', '。').replace('?', '。').split('。')
    sentences = [s.strip() for s in sentences if len(s) > 5]  # 去掉太短的句子
    if len(sentences) <= num_sentences:
        return "".join(sentences)
    # 2. 计算TF-IDF向量(把句子转为数字)
    vectorizer = TfidfVectorizer(tokenizer=jieba.lcut, max_features=1000)
    tfidf_matrix = vectorizer.fit_transform(sentences)
    # 3. 计算句子之间的相似度矩阵
    similarity_matrix = cosine_similarity(tfidf_matrix)
    # 4. TextRank迭代计算每个句子的得分
    damping = 0.85
    scores = np.ones(len(sentences)) / len(sentences)
    for _ in range(100):  # 迭代收敛
        new_scores = (1 - damping) / len(sentences) + damping * similarity_matrix.T.dot(scores)
        scores = new_scores
    # 5. 选出得分最高的N个句子,按原文顺序输出
    ranked_sentences = sorted(((scores[i], s) for i, s in enumerate(sentences)), reverse=True)
    top_sentences = [s for _, s in ranked_sentences[:num_sentences]]
    return "。".join(top_sentences)
# 使用示例
article = "人工智能正在改变世界,深度学习是其中最重要的技术之一,通过大量数据训练,机器可以学会识别图像和语音,AI将在医疗、教育等领域发挥更大作用。"
print(extractive_summary(article))

缺点:只是裁剪,可能不连贯。

调用大模型API(进阶版:生成式摘要)

这是目前最主流、效果最好的方法,你不需要训练模型,只需要调用OpenAI、通义千问等的API。

核心流程

  1. 准备文本。
  2. 构造提示词(Prompt):请对以下文本进行摘要,要求简洁、保留关键信息,不超过100字:\n\n{文章内容}
  3. 调用API获取结果。

Python示例(调用GPT-4或通义千问的API)

import openai  # 或使用 dashscope (阿里云)
# 设置 API Key
openai.api_key = "你的API_KEY"
def generate_summary(text):
    response = openai.ChatCompletion.create(
        model="gpt-4",  # 或通义千问 "qwen-plus"
        messages=[
            {"role": "system", "content": "你是一个专业的文章摘要助手,请用简洁的语言概括文章核心内容。"},
            {"role": "user", "content": f"请为以下文章生成摘要:\n{text}"}
        ],
        max_tokens=150  # 控制输出长度
    )
    return response.choices[0].message.content
# 使用
print(generate_summary("你的长文章内容"))

利用浏览器插件(日常使用)

如果你只想在浏览网页时一键生成摘要:

  1. SMMRY (Chrome/Edge插件):选中文字,右键自动生成摘要。
  2. Kimi浏览器助手:国内常用,支持网页侧边栏快速总结。
  3. ChatGPT Sidebar:支持选中文字后用AI总结。
你的场景 推荐方案 复杂度
偶尔需要读长文 方法一:用Kimi、通义千问的对话功能 零门槛
做研究、处理大量文档 方法三:调用大模型API(效果好、可控) 中等(需编程)
不想联网,但需要基础功能 方法二:写TextRank/TF-IDF脚本 中等(需编程)
浏览网页时想用 方法四:安装浏览器插件 零门槛

如果你现在就需要生成一个摘要,可以直接告诉我文章内容或链接,我立刻帮你生成。

标签: 关键词提取

抱歉,评论功能暂时关闭!