SuperAPI AI 工具集

text-summarizer

写作与研究

查看项目

更新于 10-15 16:29

技能介绍

Text Summarizer 是一个抽取式文本摘要工具,作用是从较长的文本文档中识别并抽取最重要的句子,在保留原意的前提下生成简洁摘要。它不会改写或生成新的句子,仅从原文中选句。

主要能力包括:

  • 抽取式摘要:从原文中选取关键句子组成摘要。
  • 长度控制:可按比例(ratio)、句子数量(num_sentences)或最大词数(max_words)来控制摘要长度。
  • 多种算法:支持 TextRank、LSA 和基于词频(frequency)三种算法。
  • 要点提取:可提取要点式的条目摘要(extract_key_points)。
  • 批量处理:支持对多个文本或某个目录下的多个文件进行批量摘要。
  • 结构保留:可选择保留原句顺序(preserve_order),并可选择包含标题或首句(include_first)。
  • 最小句子长度过滤:可通过 min_sentence_length 设置过滤过短的句子。

使用方式: 可通过 Python 模块导入使用,也可通过命令行调用。

Python 快速开始示例: from scripts.text_summarizer import TextSummarizer

summarizer = TextSummarizer() summary = summarizer.summarize(long_text, ratio=0.2) # 20% of original print(summary)

summary = summarizer.summarize_file("article.txt", num_sentences=5)

初始化时可指定算法和语言: summarizer = TextSummarizer( method="textrank", # textrank, lsa, frequency language="english" )

按不同方式摘要: summary = summarizer.summarize(text, ratio=0.2) summary = summarizer.summarize(text, num_sentences=5) summary = summarizer.summarize(text, max_words=100)

提取要点: points = summarizer.extract_key_points(text, num_points=5) for point in points: print(f"• {point}")

批量处理: texts = [text1, text2, text3] summaries = summarizer.summarize_batch(texts, ratio=0.2)

summaries = summarizer.summarize_directory("./articles/", ratio=0.3)

选项示例: summary = summarizer.summarize(text, preserve_order=True) summary = summarizer.summarize(text, include_first=True) summarizer.min_sentence_length = 10

命令行用法示例: python text_summarizer.py --input article.txt --ratio 0.2 python text_summarizer.py --input article.txt --sentences 5 python text_summarizer.py --input article.txt --points 5 python text_summarizer.py --input-dir ./docs --output-dir ./summaries --ratio 0.3 python text_summarizer.py --input article.txt --output summary.txt --ratio 0.2

命令行参数包括:--input(输入文件路径,必填)、--output(输出文件路径,默认 stdout)、--input-dir(文件目录)、--output-dir(输出目录)、--ratio(摘要比例,0.0-1.0,默认 0.2)、--sentences(句子数量)、--words(最大词数)、--points(提取 N 个要点)、--method(所用算法,默认 textrank)、--preserve-order(保持句子顺序,默认 False)。

适用场景包括:新闻文章摘要、研究论文摘要、会议记录摘要以及批量文档摘要。示例中展示了提取三句摘要、生成要点、生成摘要长度的论文摘要,以及对会议记录提取行动项等用法。

算法对比(资料提供):

  • TextRank:速度中等,质量高,适合通用文本。
  • LSA:速度快,质量良好,适合技术文档。
  • Frequency:速度快,质量中等,适合快速摘要。

依赖项: nltk>=3.8.0 numpy>=1.24.0 scikit-learn>=1.2.0

限制(资料提供):

  • 仅为抽取式(不会改写或生成新文本)。
  • 对结构良好的文本(有段落、句子清晰)效果最佳。
  • 极短文本可能不适合摘要。
  • 不能深度理解上下文,可能遗漏细微含义。