本文目录导读:
传统的提取式和现代的生成式(基于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。
核心流程:
- 准备文本。
- 构造提示词(Prompt):
请对以下文本进行摘要,要求简洁、保留关键信息,不超过100字:\n\n{文章内容}。 - 调用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("你的长文章内容"))
利用浏览器插件(日常使用)
如果你只想在浏览网页时一键生成摘要:
- SMMRY (Chrome/Edge插件):选中文字,右键自动生成摘要。
- Kimi浏览器助手:国内常用,支持网页侧边栏快速总结。
- ChatGPT Sidebar:支持选中文字后用AI总结。
| 你的场景 | 推荐方案 | 复杂度 |
|---|---|---|
| 偶尔需要读长文 | 方法一:用Kimi、通义千问的对话功能 | 零门槛 |
| 做研究、处理大量文档 | 方法三:调用大模型API(效果好、可控) | 中等(需编程) |
| 不想联网,但需要基础功能 | 方法二:写TextRank/TF-IDF脚本 | 中等(需编程) |
| 浏览网页时想用 | 方法四:安装浏览器插件 | 零门槛 |
如果你现在就需要生成一个摘要,可以直接告诉我文章内容或链接,我立刻帮你生成。
标签: 关键词提取