text-summarizer by dkyazzentwatwa/chatgpt-skills
npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill text-summarizer使用抽取式摘要技术,从长文本文档中创建简洁摘要。识别并提取最重要的句子,同时保留原意。
from scripts.text_summarizer import TextSummarizer
# 摘要文本
summarizer = TextSummarizer()
summary = summarizer.summarize(long_text, ratio=0.2) # 原文本的 20%
print(summary)
# 摘要文件
summary = summarizer.summarize_file("article.txt", num_sentences=5)
summarizer = TextSummarizer(
method="textrank", # textrank, lsa, frequency
language="english"
)
# 按比例(原长度的 20%)
summary = summarizer.summarize(text, ratio=0.2)
# 按句子数量
summary = summarizer.summarize(text, num_sentences=5)
# 按单词数量
summary = summarizer.summarize(text, max_words=100)
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
# 获取要点
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 |
summarizer = TextSummarizer()
article = """
[长新闻文章文本...]
"""
# 获取 3 句摘要
summary = summarizer.summarize(article, num_sentences=3)
print("摘要:")
print(summary)
# 获取关键要点
points = summarizer.extract_key_points(article, num_points=5)
print("\n关键要点:")
for i, point in enumerate(points, 1):
print(f"{i}. {point}")
summarizer = TextSummarizer(method="lsa")
paper = open("research_paper.txt").read()
# 创建摘要长度的摘要
abstract = summarizer.summarize(paper, max_words=250)
print(abstract)
summarizer = TextSummarizer()
notes = """
Meeting started at 2pm. John presented Q3 results showing 15% growth.
Sarah raised concerns about supply chain delays affecting Q4 projections.
The team discussed mitigation strategies including dual-sourcing.
Budget allocation for marketing was approved at $50k.
Next steps include vendor outreach by Friday.
Follow-up meeting scheduled for next Tuesday.
"""
summary = summarizer.summarize(notes, num_sentences=3)
points = summarizer.extract_key_points(notes, num_points=4)
print("摘要:", summary)
print("\n行动项:")
for point in points:
print(f"• {point}")
summarizer = TextSummarizer()
import os
for filename in os.listdir("./documents"):
if filename.endswith(".txt"):
text = open(f"./documents/{filename}").read()
summary = summarizer.summarize(text, ratio=0.2)
with open(f"./summaries/{filename}", "w") as f:
f.write(summary)
print(f"已摘要: {filename}")
| 算法 | 速度 | 质量 | 最佳适用场景 |
|---|---|---|---|
| TextRank | 中等 | 高 | 通用文本 |
| LSA | 快 | 良好 | 技术文档 |
| Frequency | 快 | 中等 | 快速摘要 |
nltk>=3.8.0
numpy>=1.24.0
scikit-learn>=1.2.0
每周安装量
519
代码仓库
GitHub 星标数
36
首次出现
2026 年 1 月 24 日
安全审计
安装于
gemini-cli505
opencode505
codex502
cursor499
github-copilot498
amp489
Create concise summaries from long text documents using extractive summarization. Identifies and extracts the most important sentences while preserving meaning.
from scripts.text_summarizer import TextSummarizer
# Summarize text
summarizer = TextSummarizer()
summary = summarizer.summarize(long_text, ratio=0.2) # 20% of original
print(summary)
# Summarize file
summary = summarizer.summarize_file("article.txt", num_sentences=5)
summarizer = TextSummarizer(
method="textrank", # textrank, lsa, frequency
language="english"
)
# By ratio (20% of original length)
summary = summarizer.summarize(text, ratio=0.2)
# By sentence count
summary = summarizer.summarize(text, num_sentences=5)
# By word count
summary = summarizer.summarize(text, max_words=100)
# Get bullet points
points = summarizer.extract_key_points(text, num_points=5)
for point in points:
print(f"• {point}")
# Summarize multiple texts
texts = [text1, text2, text3]
summaries = summarizer.summarize_batch(texts, ratio=0.2)
# Summarize files in directory
summaries = summarizer.summarize_directory("./articles/", ratio=0.3)
# Preserve original sentence order
summary = summarizer.summarize(text, preserve_order=True)
# Include title/first sentence
summary = summarizer.summarize(text, include_first=True)
# Minimum sentence length filter
summarizer.min_sentence_length = 10
# Summarize text file
python text_summarizer.py --input article.txt --ratio 0.2
# Specific sentence count
python text_summarizer.py --input article.txt --sentences 5
# Extract key points
python text_summarizer.py --input article.txt --points 5
# Batch process
python text_summarizer.py --input-dir ./docs --output-dir ./summaries --ratio 0.3
# Output to file
python text_summarizer.py --input article.txt --output summary.txt --ratio 0.2
| Argument | Description | Default |
|---|---|---|
--input | Input file path | Required |
--output | Output file path | stdout |
--input-dir | Directory of files | - |
--output-dir | Output directory | - |
--ratio | Summary ratio (0.0-1.0) | 0.2 |
summarizer = TextSummarizer()
article = """
[Long news article text...]
"""
# Get a 3-sentence summary
summary = summarizer.summarize(article, num_sentences=3)
print("Summary:")
print(summary)
# Get key points
points = summarizer.extract_key_points(article, num_points=5)
print("\nKey Points:")
for i, point in enumerate(points, 1):
print(f"{i}. {point}")
summarizer = TextSummarizer(method="lsa")
paper = open("research_paper.txt").read()
# Create abstract-length summary
abstract = summarizer.summarize(paper, max_words=250)
print(abstract)
summarizer = TextSummarizer()
notes = """
Meeting started at 2pm. John presented Q3 results showing 15% growth.
Sarah raised concerns about supply chain delays affecting Q4 projections.
The team discussed mitigation strategies including dual-sourcing.
Budget allocation for marketing was approved at $50k.
Next steps include vendor outreach by Friday.
Follow-up meeting scheduled for next Tuesday.
"""
summary = summarizer.summarize(notes, num_sentences=3)
points = summarizer.extract_key_points(notes, num_points=4)
print("Summary:", summary)
print("\nAction Items:")
for point in points:
print(f"• {point}")
summarizer = TextSummarizer()
import os
for filename in os.listdir("./documents"):
if filename.endswith(".txt"):
text = open(f"./documents/{filename}").read()
summary = summarizer.summarize(text, ratio=0.2)
with open(f"./summaries/{filename}", "w") as f:
f.write(summary)
print(f"Summarized: {filename}")
| Algorithm | Speed | Quality | Best For |
|---|---|---|---|
| TextRank | Medium | High | General text |
| LSA | Fast | Good | Technical docs |
| Frequency | Fast | Medium | Quick summaries |
nltk>=3.8.0
numpy>=1.24.0
scikit-learn>=1.2.0
Weekly Installs
519
Repository
GitHub Stars
36
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
gemini-cli505
opencode505
codex502
cursor499
github-copilot498
amp489
--sentences | Number of sentences | - |
--words | Maximum words | - |
--points | Extract N key points | - |
--method | Algorithm to use | textrank |
--preserve-order | Keep sentence order | False |