依赖包:https://download.csdn.net/download/dreamzuora/10853874
代码:

 String document = "算法可大致分为基本算法、数据结构的算法、数论算法、计算几何的算法、图的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法、厄米变形模型、随机森林算法。\n" +"算法可以宽泛的分为三类,\n" +"一,有限的确定性算法,这类算法在有限的一段时间内终止。他们可能要花很长时间来执行指定的任务,但仍将在一定的时间内终止。这类算法得出的结果常取决于输入值。\n" +"二,有限的非确定算法,这类算法在有限的时间内终止。然而,对于一个(或一些)给定的数值,算法的结果并不是唯一的或确定的。\n" +"三,无限的算法,是那些由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法。通常,无限算法的产生是由于未能确定的定义终止条件。";List<String> sentenceList = HanLP.extractSummary(document, 3);System.out.println(sentenceList);

算法背景:
自动文本摘要是自然语言处理中一个比较难的任务。新闻的摘要要求编辑能够从新闻事件中提取出最关键的信息点,然后重新组织语言进行描述;一般论文的摘要要求作者先表述清楚问题,对前人工作中不完善的地方进行总结,然后用更凝练的语言描述自己的工作;综述性质的论文要求作者通读大量相关领域的工作,用最概括性的语言将每份工作的贡献、创新点写出来,并对每份工作的优缺点进行比较。本质上,文本摘要是一种信息过滤,输出的文本比输入的文本少很多,但却包含了主要的信息,有点类似主成分分析(PCA)。从某种意义上,文本摘要与推荐系统的功能类似,都是为了提取出用户感兴趣的内容,只是使用的方法有很大不同。

自动摘要技术应用最广的领域在新闻,由于新闻信息的过载,也由于很多新闻媒体为了哗众取宠,故意将标题起的特别吸引人眼球,但却名不副实,人们迫切地希望有一个工具可以帮助自己用最短的时间了解最多的最有用的新闻。搜索引擎也是应用之一,基于查询(Query)的自动文本摘要技术会帮助用户尽快找到感兴趣的内容。另外,随着智能设备的普及,自动摘要技术的使用也会为新的信息浏览与人机交互方式带来变革。

按照文档数量,文本摘要可以分为单文档摘要与多文档摘要,前者是后者的基础,但后者不只是前者结果的简单叠加。前者经常应用于新闻信息的过滤,而后者,在搜索引擎中有很大的潜力,难度也随之加大。

按照实现方式,可以分为两大类,提取式(Extractive)和摘要式(Abstractive)。

提取式的方法基于一个假设:一篇文档的核心思想可以用文档中的某一句或者几句话来概括。因此,文本摘要的任务就变成了找到文本中最重要的几句话,这通常是一个排序问题。在文档摘要问题中,基于图的排序算法,是以文档的每句话作为节点,句子之间的相似度作为边的权值构构建图模型,用PageRank算法进行求解,得到每个句子的得分,代表算法有TextRank和LexRank【。基于特征工程的排序算法实用性更强,然而需要人为进行调整的部分也变得更多。文本摘要问题中经常使用到的特征包括句子长度、句子位置、句子是否包含标题词和句子关键词打分等,代表算法是TextTeaser,由于只考虑了相关性而没有考虑新颖性,以上的排序算法很可能出现排名靠前的几句话表达的都是相似的意思,所以需要引入一个惩罚因子,在对排在后面的句子进行评分时,对它与在它之前的句子的相似度进行惩罚,也就是MMR(Maximum Margin Relevance)以上是提取式的自动摘要算法,其输出结果是不同段落中选择出来的Top K的句子,因此摘要的连贯性、一致性很难保证。

摘要式的方法是一种生成式的方法,它要求系统理解文本所表达的意思,然后用可读性强的人类语言将其简练地总结出来。这里包含几个难点:

理解文本。与人类阅读文本类似,需要明白文本表达的意思,涉及到的话题等。
可读性强。可读性是指生成的摘要能够连贯与衔接。
简练总结。即在理解文本的基础上,用尽可能简洁的文本表达最核心的部分。
上述难点即使对于人类也不是一件容易的事情,对于计算机更是。虽然在一些领域中,由于计算机强大的计算能力,人工智能能够领先于人类,但在更多的领域,例如机器翻译、文本摘要,AI离人类的水平还很遥远。

近几年随着深度学习(Deep Learning)的发展,研究者们开始尝试将一些最新的研究成果应用于自动文本摘要,尤其是机器翻译(Machine Translation)中的Encoder-Decoder框架和Attention机制。从这个思路可以将文本摘要问题转化为一个Sequence-2-Sequence问题,由此产生了基于RNN的Attention Model,基于CNN的ABS(Attention-Based Summarization)等。在一定程度上,它们实现了摘要式的自动文本摘要,但还是处于研究初期,效果不算太好。

目前使用到的语料数据分为两种,一种是用于训练深度网络的大型语料,一种是用来参加测评的小型语料。前者经常使用CNN、Daily Mail等提供的新闻数据集。后者通常使用TAC(Text Analysis Conference)提供的小型数据集。关于中文语料数据集,常用的是哈尔滨工业大学(深圳)智能计算研究中心开放的LCSTS(Large Scale Chinese Short Text Summarization Dataset),数据主要采自新浪微博,是一个短文本摘要数据集。

关于评价方法,人工评价自不用提,自动评价目前公认的只有Lin在2003年提出的ROUGE(Recall-Oriented Understudy for Gisting Evaluation)指标【6】,基本思想是将待审的摘要和参考摘要的n元组共现统计量作为评价作为评价依据,然后通过一系列标准进行打分,包括:ROUGH-N、ROUGH-L、ROUGH-W、ROUGH-S和ROUGH-SU几个类型。通俗来说是通过一些定量化的指标来描述待审摘要和参考文摘之间的相似性,例如共同出现次数、最长相同文本长度、带权最长相同文本长度等。

背景:https://blog.csdn.net/Silience_Probe/article/details/80699282
word2vec使用过程(Java版):
https://blog.csdn.net/acwa123/article/details/72626580
详解(python):https://blog.csdn.net/qq_22636145/article/details/75099792
hanlp介绍:http://hanlp.linrunsoft.com/
hanlp下载:https://github.com/hankcs/HanLP
hanlp(分词)使用:https://blog.csdn.net/nima1994/article/details/72819973
hanlp1.7:https://github.com/hankcs/HanLP/tree/v1.7.0

Word2vec加TextRank算法生成文章摘要相关推荐

  1. 基于Word2vec加TextRank算法生成中文新闻摘要(附python代码)

    转自 # https://blog.csdn.net/qq_36910634/article/details/97764251 import numpy as np import pandas as ...

  2. 基于TextRank算法的文本摘要(附Python代码)

    基于TextRank算法的文本摘要(附Python代码): https://www.jiqizhixin.com/articles/2018-12-28-18

  3. Django 快速搭建博客 第十一节(文章阅读量统计,自动生成文章摘要)

    这一节主要做一些修补工作,一个是:文章阅读量的统计,另一个是自动生成文章摘要内容 1 . 文章阅读量的统计: 1 文章阅读量的统计,我们需要在model下的Post类中新加入一个views 字段用来统 ...

  4. php文章摘要,PHP:如何生成文章摘要

    2017年第一篇日志,今天来说说一个我觉得很有意思的东西,文章摘要的生成.主要利用到了正则匹配来完成,下面来详细说说原理. 问题 生成文章摘要,就像下面的图片显示的一样, 困难有如下两点: 汉字的截取 ...

  5. 独家 | 基于TextRank算法的文本摘要(附Python代码)

    作者:Prateek Joshi 翻译:王威力 校对:丁楠雅 本文约3300字,建议阅读10分钟. 本文介绍TextRank算法及其在多篇单领域文本数据中抽取句子组成摘要中的应用. TextRank ...

  6. 加解密算法、消息摘要、消息认证技术、数字签名与公钥证书

    本文讲解对称加密.非对称加密.消息摘要.MAC.数字签名.公钥证书的用途.不足和解决的问题. 0.概述 当发送方A向接收方B发送数据时,需要考虑的问题有: 1.数据的安全性. 2.数据的完整性,即数据 ...

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

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

  8. Diango博客--7.自动生成文章摘要

    文章目录 0.思路引导 1.方法一:覆写 save 方法 2.方法二:使用 truncatechars 模板过滤器 0.思路引导 博客文章的模型有一个 excerpt 字段,这个字段用于存储文章的摘要 ...

  9. 自动填充html_第 11 篇:自动生成文章摘要

    作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 [HelloGitHub-Team 仓库](https://github.com/HelloGitHub-Team/Hello ...

最新文章

  1. 尚育鹏:Leetcode刷题总结(数组)
  2. ACCP学习旅程之-----基础篇
  3. [转]学习Objective-C: 入门教材
  4. mysql myisam转innodb_Mysql MyISAM数据库批量转换表引擎为Innodb
  5. python自动化办公都能做什么菜-python+selenium自动化(一)之环境搭建
  6. oracle mysql 并发连接数_如何修改Oracle并发连接数的设置
  7. 【LCS系列】最长公共子序列和最长公共子串
  8. android 直播 app下载地址,朵朵直播app下载地址
  9. 时域采样定理MATLAB实现
  10. win10怎么取消开机密码
  11. 明源售楼系统技术解析(三)付款定义新增、修改、删除
  12. 已解决报错UnboundLocalError: local variable ‘title‘ referenced before assignment
  13. 人工智能轨道交通行业周刊-第25期(2022.11.28-12.4)
  14. 计算机组成原理实验信号cpu,计算机组成原理实验43_实验报告
  15. opencv--图像色彩和对比度
  16. 为你的SQLite开发选择一款比较好的工具
  17. DEBUG:plt保存失败
  18. 计算机二级access分数分布_全国计算机等级考试2017年上半年二级ACCESS数据库成绩查询...
  19. 我与Python的偶遇(第二篇)
  20. php云盘搭建,自建云盘之FileRun的搭建与配置

热门文章

  1. Visual Studio 2010 sp1
  2. bucket sort sample sort 并行_双调排序Bitonic Sort,适合并行计算的排序算法
  3. android要求图标格式,Android设计规范 Material Design-Style(3图标)
  4. 用python编写最简单的记事本_Python使用字典实现的简单记事本功能示例
  5. python123数值运算_python123中 Hello World的条件输出 和数值运算
  6. python按列读取txt文件_如何使用pandas读取txt文件中指定的列(有无标题)
  7. java代码复数包括虚部和实部,Java中编写Applet程序验证复数类(在问题补充中)实现接收用户输入的复数的实部和虚部,计算复数与复数,复数与实数的加减,乘除操作...
  8. ol xyz 加载天地图_OpenLayers加载天地图方法——WMTS和XYZ
  9. python没有这个xlwt模块_python xlwt模块简介
  10. bcp out 带列名导出_从零开始学习 MySQL 系列索引、视图、导入和导出