有哪些可用的工具可以概括或简化文本?

35

有没有任何图书馆,最好是Python但至少是开源的,可以总结和/或简化自然语言文本?


这里有另一个基于“TextRank”算法的库,您可以在此处找到:https://github.com/RaRe-Technologies/gensim - prashanth
1
几乎没有任何程序可以做到这一点。 - too honest for this site
7个回答

27

也许你可以尝试使用sumy。它是我用Python编写的一个相当小的库。实现了Luhn和Edmundson方法、LSA方法、SumBasic、KL-Sum、LexRank和TextRank算法。它采用Apache2许可证,支持捷克语、斯洛伐克语、英语、法语、日语、中文、葡萄牙语、西班牙语和德语。

如果你有什么需要的功能,随时打开一个问题(issue)或发送拉取请求(pull request)。


1
我喜欢Sumy。它非常易于使用。你更喜欢哪种方法?相比其他选项,LSA不是最新的自然语言处理方法并且在理论上是最好的吗? - Houman
3
嗨,谢谢。几乎所有事情都没有万能的解决方案,但LSA是sumy中最先进的方法。 - Mišo
1
我已经在维基百科文章和同行评审文章上进行了大量的sumy测试,个人认为KL的效果远远优于其他摘要工具,但它的处理时间也比其他摘要工具长200倍左右。 - Xodarap777
@Xodarap777,你试过哪些其他的摘要工具?或者能否提供你的代码和实验链接? - Mišo
@Xodarap777,你能分享一下你用什么类型的度量来比较生成的摘要吗? - CtrlMj

18

我不确定当前是否有任何库可以完成这个任务,因为文本摘要,或者至少是易于理解的文本摘要,并不是一个简单的即插即用的库就能轻松完成的事情。

以下是一些我能找到的与文本摘要相关的项目/资源链接,希望能帮助你入门:

希望对你有所帮助 :)


1
一些答案中的死链接已被替换为来自https://archive.org/web/的缓存页面。 - Nick Bull

4

我也需要同样的东西,但我无法在Python中找到任何有助于我获得全面结果的东西。

所以我发现这个Web服务非常有用,他们有一个免费的API提供JSON结果,我想与你分享。

点击这里查看:http://smmry.com


3
尝试使用遵循GPL开源许可发布的Open Text Summarizer,它的表现相当不错,但自2007年以来没有进行任何开发工作。
原始代码是用C语言编写的(包括库和命令行实用程序),但有多种语言的包装器:

1
C# http://ots.codeplex.com/ - CleverPatrick

2
请看这篇文章,它详细研究了以下方法和软件包:
1. Lex_rank(sumy) 2. LSA(sumy) 3. Luhn(sumy) 4. PyTeaser 5. Gensim TextRank 6. PyTextRank 7. Google TextSum
该文章最后进行了“总结”。
sumy的作者@miso.belica在上面的回答中给出了描述。
其他各种ML技术已经涌现,如Facebook / NAMAS和Google / TextSum,但仍需要在Gigaword数据集上进行广泛的培训以及大约7000个GPU小时的训练。 数据集本身相当昂贵。
总之,如果您没有高端机器,则可以说sumy是目前市场上最好的选择。 感谢@miso.belica提供这个精彩的软件包。

2

虽然不是Python,但MEAD可以做文本摘要(它是用Perl编写的)。通常情况下,输出的结果是可理解的,但并非总是特别流畅。此外,请查看summarization.com以获取有关文本摘要任务的大量优质信息。


请更换summarization.com的链接,该链接已失效。 - GadaaDhaariGeek

1

前一段时间,我使用NLTK编写了一个Python的摘要库,使用了来自Classifier4J库的算法。它非常简单,但可能适合任何需要摘要的人:https://github.com/thavelick/summarize


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接