textrank提取文档关键词
前言:我大致介绍一下TextRank算法的实现,对于细节和相关公式的介绍不做过多的介绍,感兴趣的同学可以去看TextRank算法的论文(英文版)里面有具体的实现,文章下载地址http://download.csdn.net/detail/sinat_29957455/9925407
一、TextRank算法简介
TextRank算法主要用于文档的关键词抽取和摘要的抽取,TextRank主要借鉴了PageRank的思想来实现的。PageRank是由Google用来体现网页之间的相关性和重要性,它是通过网页之间的超链接来计算网页的重要性。通过网页之间超链接之间的关系将不同的页面划分成不同的等级,页面划分等级的依据是根据各个页面之间给其他页面之间的投票来进行衡量的。而,TextRank提取关键词也正是采用了这种思想来实现的,它需要将一片文章先进行分词,然后将每个词语作为一个无向图的节点,最后通过单词之间的投票计算出权重。
二、TextRank实现
1、将给定输入的文章,进行分词,如何将文章进行分词可以使用jieba来实现。
2、对于分词的词语,我们可以对其词性进行标注处理,并可以过滤掉一些停用词(如:的、有...),只保留我们需要的词性的单词,名词或者动词或形容词。
3、将上述我们需要的词语构建一个关键词图,其中词语为图的节点,然后通过共现关系构造任意两点之间的变,两个节点之间存在边仅当他们对应的词汇在长度为k的窗口中共现,K表示窗口的大小,即一个窗口单词的个数默认是5.
4、然后根据公式计算,最后可以等到每个单词的权重,我们可以根据顺序选取权重最大的前几个。
5、对节点的权重进行排序,逆序排序,选取权重最大的前几个作为文章的关键词。
三、TextRank算法的测试
测试文章
有很多不同的数学公式可以用来计算tf-idf。
这边的例子以上述的数学公式来计算。
词频(tf)是一词语出现的次数除以该文件的总词语数。
假如一篇文件的总词语数是100个,而词语“母牛”出现了3次,
那么“母牛”一词在该文件中的词频就是3/100=0.03。
一个计算文件频率(DF)的方法是测定有多少份文件出现过“母牛”一词,
然后除以文件集里包含的文件总数。所以,如果“母牛”一词在1,000份文件出现过,
而文件总数是10,000,000份的话,其逆向文件频率就是log(10,000,000 / 1,000)=4。
最后的tf-idf的分数为0.03 * 4=0.12。
实现代码,使用jieba实现的
import sys
sys.path.append('../')import jieba
import jieba.analyse
from optparse import OptionParserfile_name = "../txt/test.txt"content = open(file_name, 'rb').read()#topK表示输出多少个关键词,withWeight表示是否输出权重,如果想要获取权重,for x,w并将withWeight=True
#allowPOS表示输出的词性
for x in jieba.analyse.textrank(content,topK=20,withWeight=False,allowPOS=('ns','n','vn','v')):print('%s' % (x))
输出结果
文件
出现
计算
词语
数学公式
份文件
频率
母牛
测定
集里
总数
包含
次数
用来
词频
逆向
方法
例子
四、TF-IDF测试结果
import sys
sys.path.append('../')import jieba
import jieba.analyse
from optparse import OptionParserfile_name = "../txt/test.txt"content = open(file_name, 'rb').read()#10表示输出的前10个
tags = jieba.analyse.extract_tags(content, topK=10)print(",".join(tags))
输出结果
000,文件,母牛,词语,tf,词频,100,0.03,idf,10
总结:对比TextRank算法和TF-IDF算法的结果,我们可以发现TextRank算法提取的关键词更能表现出文章的意思,而TF-IDF算法主要还是依靠词频来判断一个词语是否为文章的关键词。当然,如果你想要提高TF-IDF算法的准确性可以根据自己的业务需要,来使用适合自己业务的语料库和设置词语的权重来达到自己想要的效果,TF-IDF算法相对于TextRank算法来说,效率较高。但是,TextRank算法不需要自己来训练数据。
textrank提取文档关键词相关推荐
- 从单一图像中提取文档图像:ICCV2019论文解读
从单一图像中提取文档图像:ICCV2019论文解读 DewarpNet: Single-Image Document Unwarping With Stacked 3D and 2D Regressi ...
- dedecms批量删除文档关键词可以吗
这几天在重新整服务器,几个站点都是用dedecms搭建的,版本相对比较早,虽然都已经打了补丁,但客户还是在纠结,所以就下载了新的系统进行搭建(注意编码要和原来的一样),导入数据,一切安好,可发现后台有 ...
- 【Auto.JS】Autojs官方提取文档使用说明函数 (2)
接上一篇文章:Autojs官方提取文档使用说明函数 (1) Images Stability: 2 - Stable images模块提供了一些手机设备中常见的图片处理函数,包括截图.读写图片.图片剪 ...
- dede的文档关键词维护,就是自动加内链锚文本
dede的文档关键词维护,就是自动加内链锚文本,对SEO非常重要.几乎所有用DEDECMS的站长都要解决这个问题.官方默认规则是: 1.文档关键词维护添加关键词和url对应表 2.文章内容出现改关 ...
- 织梦(Dedecms)文档关键词维护,文章页自动添加关键词内链锚文本
网站关键词内链,是做好网站内部优化的一个重要环节 织梦(Dedecms)官方默认规则是: 1.添加关键词和关键词的链接地址 设置步骤:进入后台 核心->批量维护->文档关键词维护 2.文章 ...
- 文档关键词维护,文章页自动添加关键词内链锚文本-织梦(Dedecms)
网站关键词内链,是做好网站内部优化的一个重要环节 DEDECMS有个文档关键词维护功能,这个功能可以把文章里的关键词链向各个地方,就是内链优化,作为SEO人员用dedecms系统必须解决的问题,ded ...
- 织梦Cms怎么一直服务器维护中,织梦cms文档关键词维护中频率详解
首先解释下文档关键词维护中这个频率的意思.我们知道,织梦默认设置为30,很多朋友都将其看作是锚文本的链接数量.其实不然,这个频率只是表示关键词的热度,同动易系统的关 [-] 首先解释下文档关键词维护中 ...
- java中用流提取文档中的文字,语言实现从word文档中提取文本
word中提取中文 打开Word,CTRL+F打开"查找替换"对话框. 点击下方的"查找替换"对话框的"高级"按钮. 点击"特殊字 ...
- Matlab使用技巧 (如何提取文档数据和表格数据)
1.如何提取txt文档数据内容 ex=importdata('filename.txt') https://jingyan.baidu.com/article/37bce2be12a2cc1002f3 ...
最新文章
- Hadoop和大数据:60款顶级开源工具
- 容器化分布式日志组件ExceptionLess的Angular前端UI
- 2018蓝桥杯省赛---java---A--2-(星期一)
- 计算机基础及ms应用在线,全国一级计算机基础及MS Office应用课件 (2).pdf
- [vue] 说说你对provide和inject的理解
- python列向输出字符串_Python读取字符串按列分配后按行输出
- ***CI的CLI运行方式
- 前端用户忘记密码,手机验证码修改密码功能
- (十三)中介者模式详解(玄幻版)
- (Adobe Premiere Pro CS4)[ISO]《Adobe非线性视频编辑软件》
- HP 6L WIN7 WIN8 驱动
- sony媒体服务器文件不对,索尼Z280断电MXF变成RSV文件完美修复
- 搭建测试环境详细步骤
- movs 数据传送指令_数据传送汇编指令
- socket: (10106) 无法加载或初始化请求的服务提供程序。
- kernel中的日志打印
- 桌面图标变白,任务栏图标变白
- win10如何修改dns服务器地址,win10如何修改dns服务器地址
- 时间固定效应和个体固定效应的选择_固定效应模型必须同时控制时间和个体吗?...
- 信息安全密码学实验四:Diffie-Hellman密钥交换协议的设计与实现