项目介绍:Sumy 自动文本摘要工具
Sumy是一个简单易用的库和命令行工具,旨在从HTML页面或纯文本中提取摘要。它还提供了一个简单的文本摘要评估框架。项目中实现的摘要方法在文档中有详细介绍,还提供了其他编程语言实现的替代版本清单。
语言支持
Sumy支持多种自然语言。如果用户的语言暂不支持,也相对容易添加新语言的支持。
安装指南
要使用Sumy,首先需要确保安装了Python 3.6以上版本和pip,可以在Windows或Linux系统上安装。推荐的安装方式如下:
$ [sudo] pip install sumy
$ [sudo] pip install git+git://github.com/miso-belica/sumy.git # 安装最新版本
使用方法
得益于开发者的贡献,最简单的方式是在浏览器中尝试Sumy。Sumy也提供命令行工具,方便用户快速对文档进行摘要:
$ sumy lex-rank --length=10 --url=https://en.wikipedia.org/wiki/Automatic_summarization
用户还可以使用不同的评价方法运行如下命令进行摘要质量评估:
$ sumy_eval lex-rank reference_summary.txt --url=https://en.wikipedia.org/wiki/Automatic_summarization
若不想进行安装,还可使用容器版Sumy:
$ docker run --rm misobelica/sumy lex-rank --length=10 --url=https://en.wikipedia.org/wiki/Automatic_summarization
Python API
Sumy也可以作为库在项目中使用。以下是一个简单的Python示例代码,展示如何在项目中整合Sumy进行文本摘要。
from sumy.parsers.html import HtmlParser
from sumy.parsers.plaintext import PlaintextParser
from sumy.nlp.tokenizers import Tokenizer
from sumy.summarizers.lsa import LsaSummarizer as Summarizer
from sumy.nlp.stemmers import Stemmer
from sumy.utils import get_stop_words
LANGUAGE = "english"
SENTENCES_COUNT = 10
if __name__ == "__main__":
url = "https://en.wikipedia.org/wiki/Automatic_summarization"
parser = HtmlParser.from_url(url, Tokenizer(LANGUAGE))
stemmer = Stemmer(LANGUAGE)
summarizer = Summarizer(stemmer)
summarizer.stop_words = get_stop_words(LANGUAGE)
for sentence in summarizer(parser.document, SENTENCES_COUNT):
print(sentence)
有趣的项目使用 Sumy
一些互联网项目使用Sumy进行有趣的应用:
- 自动生成问题项目。
- 将视频内容总结成任意长度。
- 集体总结大型讨论的工具。
- Lemmy平台的自动TL;DR机器人。
总之,Sumy为需要从复杂文本中提取精华的人提供了一种便捷的方法,并且不断扩展和丰富其功能以满足多样化的需求。