最近需要做一些文本摘要的东西,选取了TextRank(论文参见《TextRank: Bringing Order into Texts》)作为对比方案,该方案可以很方便的使用Python相关库进行实现。

下面介绍如何利用Python实现一个简单的文本摘要工具。

Demo


【前期准备】:

  1. Python 2.7.x - 当然也推荐Python3,少掉很多编码问题。信仰选2!
  2. jieba分词 - 最好的python中文分词工具(最新清华出了个THULAC,有兴趣的可以试试,看对比效果似乎更好)
  3. networkx - 一个非常棒的复杂网络工具库

【背景知识】

利用Textrank做文本摘要的核心思想很简单,和著名的网页排名算法PageRank类似:每个句子可以作为一个网络中的节点(称为节点i),与之相连的其他节点(例如节点j)会对其重要度产生一定的“贡献值”,该“贡献值”与节点j自身的重要度以及i、j之间的相似度(也可以称为连接的强度)有关,只需要对整个图进行迭代直至收敛,最后各节点的分值即是该句子的重要性,根据重要性排序后选取前k个句子即可作为摘要。

xxxxx

摘自:http://jayveehe.github.io/2016/05/11/da_textrank/

英文的在线提取见:http://textsummarization.net/text-summarizer

转载于:https://www.cnblogs.com/bonelee/p/7168672.html

摘要提取算法——本质上就是pagerank,选择rank最高的句子作为摘要,如果结合word2vec应该有非常好的效果...相关推荐

  1. 神经网络和反向传播算法——反向传播算法本质上是随机梯度下降,链式求导法则而来的...

    原文:https://www.zybuluo.com/hanbingtao/note/476663 写得非常好,适合入门! 神经元 神经元和感知器本质上是一样的,只不过我们说感知器的时候,它的激活函数 ...

  2. java dsa 私钥_DSA算法——本质上和RSA是一样的 有公钥和私钥

    DSA算法 DSA(Digital Signature Algorithm)是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard ...

  3. varint算法——本质上是牺牲最高位作为标识数据结束位,达到变长编码,说白了就是贪心的分割位...

    varint算法,摘自:http://blog.csdn.net/liaoquesg/article/details/50897327 最近在看<大规模WEB服务开发技术>这本书中.书中提 ...

  4. 【图论】用一道题从本质上讲清楚Floyd算法

    P1119 [灾后重建] 4 5 1 2 3 4 0 2 1 2 3 1 3 1 2 2 1 4 0 3 5 4 2 0 2 0 1 2 0 1 3 0 1 4 -1 -1 5 4 一道非常好的Flo ...

  5. 2D与3D人脸识别有什么本质上的区别?

    https://www.zhihu.com/question/324123433/answer/681365180 https://www.zhihu.com/question/324123433/a ...

  6. python数据库开发 dga_使用深度学习检测DGA(域名生成算法)——LSTM的输入数据本质上还是词袋模型...

    from:http://www.freebuf.com/articles/network/139697.html DGA(域名生成算法)是一种利用随机字符来生成C&C域名,从而逃避域名黑名单检 ...

  7. 大数据DDos检测——DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然! 和一个句子的分词算法CRF没有区别!...

    DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然!--和一个句子的分词算法CRF没有区别! 注:传统DDos检测直接基于IP数据发送流量来识别 ...

  8. 使用TextRank算法进行文本摘要提取(python代码)

    文本摘要是自然语言处理(NLP)的一种应用,随着人工智能的发展文本提取必将对我们的生活产生巨大的影响.随着网络的发展我们处在一个信息爆炸的时代,通读每天更新的海量文章/文档/书籍会占用我们大量的时间, ...

  9. 机器学习的算法和普通《算法导论》里的算法有什么本质上的异同

    机器学习的算法和普通<算法导论>里的算法有什么本质上的异同? 本人非计算机专业出身,对这些方向感兴趣,所以有此一问.曾经问过一些人,说是机器学习全是数学,是用数学的方式试图去描述和理解我们 ...

最新文章

  1. Self-Attention 加速方法一览:ISSA、CCNet、CGNL、Linformer
  2. 万物共享的物联网架构
  3. Java 8系列之重新认识HashMap(转载自美团点评技术团队)
  4. 阿里巴巴 连接池 druid 的使用、maven依赖
  5. java 正则 pattern 线程安全_(一)Java Pattern类----java正则
  6. Reef Finance与Manta Network就流动性解决方案达成合作
  7. Chrome 内存和CPU消耗量双料冠军
  8. Java中的AtomicInteger
  9. python open函数用法_python中open函数的用法详解
  10. string对象的创建、截取和拼接_java基础面试题-String深入理解
  11. 2018年3月江苏省计算机二级C语言真题第1套
  12. 信用卡前6位bin号代表什么
  13. matlab数字图像处理-找不同
  14. 秋天的第一杯奶茶刷屏互联网,其背后又蕴含着哪些营销逻辑呢?
  15. Unity3dC#分布式游戏服务器ET框架介绍-组件式设计(转)
  16. Strawberry Perl 所有版本链接
  17. SONET/SDH技术讲解
  18. C++编译错误提示 [Error] name lookup of 'i' changed for ISO 'for' scoping
  19. 下载后端传来的excel文件
  20. 龙与地下城用户名_多用户地下城如何教我编程

热门文章

  1. springboot的jsp应该放在哪_详解SpringBoot 添加对JSP的支持(附常见坑点)
  2. jexcel可以合并单元格么_含金量超高的3个文本、字符合并实用技巧解读!
  3. 计算机中文无敌版,奥特曼格斗进化3中文无敌版电脑版
  4. java 枚举 或运算_Objective-C 枚举 中位运算 的使用
  5. java rect平移_如何在Java Swing中使用鼠标平移图像
  6. python commands_python commands模块在python3.x被subprocess取代
  7. java log4j mysql_java – 配置log4j属性文件以存储在mysql数据库中
  8. mysql明明有索引却用不到的情况
  9. curl进行post请求的demo
  10. 逆误差函数:torch.erfinv