三行代码,给你的论文自动生成摘要
之前写过一篇关于论文降重的技术爽文,收到了不错的反响。
毕业生的法宝,论文一键降重~!
最近对毕业论文方面的问答做了一个统计,发现除了降重,“摘要”的准备以及撰写也是莘莘学子们重点关心的一个话题,那摘要有没有可能用代码实现的捷径呢?
确实是有的,老K在这里就给大家介绍一下:
1. 首先导入需要的第三方库
# encoding:utf-8
from gensim.summarization import summarize
import re
- 由于我们论文主要由汉字组成,为了避免编码问题,现在脚本头部写上utf-8的声明;
- 我们会用到的,是一个叫做gensim的库:
“gensim是一个用于自然语言处理的库,最早是用来生成给定文章相似内容的工具,gensim本身就是“generate similar”的合成词。
- 所以,想要实现摘要方面的功能,gensim是很适合的一个库。
- 它会用到的依赖库有numpy和smart_open。
2. 对文本进行预处理
text = re.sub(r‘。|?|!‘, ‘. ‘, text)
- gensim的算法是基于句子进行的。
- 由于gensim本身是针对英语文本的,所以为了让gensim能识别中文里的“句子”概念。我们做了一下以上的处理。
- 以“. ”结尾,使gensim能判断此处为一句的终止符号。
3. 一行代码实现摘要
abstract = summarize(text)
- gensim的summarize模块,是基于textrank的变体。
- textrank是以句子为最小单位,计算句子与句子之间的关联度,以此得到最具代表性的文本。最具代表性的文本,本身也就是最适合用于总结概述一段长文的句子。
ex. 总结
# encoding:utf-8
from gensim.summarization import summarize
import re
def do_abstract(text):
text = re.sub(r‘。|?|!‘, ‘. ‘, text)
abstract = summarize(text)
return abstratc
以上代码可以帮助你以最快的速度获取论文的核心内容,你可以用于:
- 快速获取参考文献的核心内容,以判断该论文是否适合您的论文主题
- 快速生成您论文的摘要内容草稿,可以直接从草稿开始修改,减少你从头组织语言的麻烦
“textrank是源于google的pagerank算法启发,应用到自然语言处理领域的结果。
- summarize模块有很多参数可以设置,以适应需求更加趋于个性化的现实环境。
- 对textrank感兴趣的朋友,可以百度Rada Mihalcea和Paul Tarau撰写的论文《TextRank: Bringing Order into Texts》了解更详细的原理。
- 不适应英文阅读的朋友,也可以关注我的公众号《老K玩代码》,后续我会针对这篇论文写一篇个人的中文解析。
该代码只能帮助您汇总文章核心内容,但不能完全替代摘要的撰写工作。
老K撰写本文以技术分享为初心,并仍然鼓励毕业生自主进行论文创作。
往期精彩推荐:
数据可视化有什么好的Python项目?
【热荐】大佬们推荐的Python入门书综述
深度学习,大家都看哪些社区论坛?
[推荐]10个免费python机器学习项目
手把手教新手安装Anaconda配置开发环境
粉丝福利:
- 阅读、分享《学好JavaScript基本功,老K推荐这几本书》,有机会获得《JavaScript高级程序设计》1本
- 阅读、分享《11本推荐新手自学入门Python的必看书目》,有机会获得《Python核心编程》1本
三行代码,给你的论文自动生成摘要
原文:https://blog.51cto.com/15069443/2576231