自动摘要算法
来源:互联网 发布:java分销微商城源码 编辑:程序博客网 时间:2024/06/05 02:58
from: http://www.isnowfy.com/automatic-summarization/
当时yahoo以3000万美元的价格收购了summly的消息传出来之后,貌似大家都比变的对自动摘要产生了极大的兴趣,关于自导摘要wiki这里有很详细的介绍,一般自动摘要比较常用的一个是摘取文章中的关键词,另一个则是摘取文章中的关键的句子,在这里我主要是介绍用textrank算法来搞句子的摘取。
相对于textrank,摘取关键句子还有一些比较简单的算法,比如这篇,我们可以把句子分别和整篇文章做比较,相似性最大的就是关键的句子。而textrank其实就是pagerank算法扩展到句子上,来的到一些全局的信息。textrank的论文在这里。
首先我们看pagerank算法,就是google用的那个网页排序的pagerank算法,首先网页之间都是有超链接链接的,如果某个网站A有指向B的超链接,说明A网站认为B网站是有价值的,于是相应的我们可以给B来提升权重,但是就像现实中,一般人的意见和专家的意见的权重是不一样的,所以如果网站A的权重比较高,那么就可以贡献更多的权重给B,反之则贡献更少的权重,然后算法经过一轮轮的迭代,所有结点的权重会收敛,就得到了最终的权重了。然后我们有pagerank的计算公式,其中d是阻尼系数。
score(Vi)=(1−d)+d∗∑1∣∣out(Vj)∣∣∗score(Vj)
换到textrank,对于pagerank而言,边是没有权值的,而textrank的边是有权值的,表示两个句子的相似性,这个权值可以用Jaccard similarity coefficient就是交集数目除以并集数目,或者cosine的余弦夹角,或者是bm25一类的算法。在边有了权值之后,textrank的公式变为这个样子。
score(Vi)=(1−d)+d∗∑weight(j,i)∑weight(j,k)∗score(Vj)
论文里显示带了权重之后收敛会慢一些,在经过若干轮的迭代之后,我们就可以得到每个句子的权重了,然后我们取出权重最大的几个就认为是文章的关键句子了。
自己实现了一份以bm25为相似性的textrank算法,代码在github上,具体可以看代码,test.py展示了摘要的提取。同时这个项目实现了一些常用的操作,比如繁体转简体,中文的分词和词性标注等,欢迎试用提pull requests啊!
- 自动摘要算法
- 文本关键词提取算法及自动摘要
- TextRank算法自动摘要的Java实现
- 自动摘要
- 文档摘要自动提取算法——抽取式
- textrank算法原理与提取关键词、自动提取摘要PYTHON
- 摘要算法
- 摘要算法
- 摘要算法
- 摘要算法
- 自动更改传票摘要
- 文本自动摘要简介
- 文本自动摘要简介
- 文本自动摘要
- 文本自动摘要
- R中如何利用余弦算法实现文章的自动摘要
- MD5 报文摘要算法
- 泛型算法摘要
- 二叉树学习之二叉查找树 http://blog.csdn.net/callinglove/article/details/40707449
- java acm hdu 2083
- 【Leetcode】之Divide Two Integers
- 2015河南科技学院高校csdn俱乐部--网线制作
- Jquery插件
- 自动摘要算法
- 关于mysql函数GROUP_CONCAT 需要注意的地方
- ios初体验,终端命令
- 【C基础】#if、if、#ifdef、#if defined之间的区别
- css 背景属性background的使用方法
- Android 打开网络设置页面
- 安装cocoapods的终端命令
- 【LeetCode】150 Evaluate Reverse Polish Notation 小侃小解
- 浅谈网络语音技术