jieba tfidf_【NLP】【三】jieba源码分析之关键字提取(TF-IDF/TextRank)
【一】综述
利用jieba进行关键字提取时,有两种接口。一个基于TF-IDF算法,一个基于TextRank算法。TF-IDF算法,完全基于词频统计来计算词的权重,然后排序,在返回TopK个词作为关键字。TextRank相对于TF-IDF,基本思路一致,也是基于统计的思想,只不过其计算词的权重时,还考虑了词的上下文(通过窗口滑动来实现),而且计算词的权重时,也考虑了相关联系词的影响。可以说,TextRank实际上是依据位置与词频来计算词的权重的。下面,结合基于jieba源码,来分别解释两种算法的实现。
【二】TF-IDF
1. 原理解析
假设,共有N篇文档,分别用 d1,d2,d3,,,,,,,dn来表示。
TF = 某个词在di篇文章中出现的次数/di篇文章的总词数 = count(W in di)/ count(di)。因此,TF计算的是单个词在单个文档中出现的词频。
IDF = 总的文档数 / 出现词W的文档数 。 IDF其实反映了词W在文档之间的区别度。如果W在仅在一篇文档中出现,则说明可以使用W将该文档与其他文档区别开来。即IDF可以反映W的独特性 。
TF*IDF,可以得到词的重要性。比如: 北京和西安在同一篇文档中的词频均为20%,那如何估计北京是该文的关键字,还是西安呢?如果同时有10篇文章均提到了北京,恰好只有这篇文章提到了西安,则西安作为这篇文章的关键字更为合理。
————————————————
版权声明:本文为CSDN博主「王若然」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上https://blog.csdn.net/weixin_31458015/article/details/115039076
java jieba tfidf_【NLP】【三】jieba源码分析之关键字提取(TF-IDF/TextRank)_王若然的博客-CSDN博客
jieba tfidf_【NLP】【三】jieba源码分析之关键字提取(TF-IDF/TextRank)相关推荐
- java jieba tfidf_【NLP】【三】jieba源码分析之关键字提取(TF-IDF/TextRank)
[一]综述 利用jieba进行关键字提取时,有两种接口.一个基于TF-IDF算法,一个基于TextRank算法.TF-IDF算法,完全基于词频统计来计算词的权重,然后排序,在返回TopK个词作为关键字 ...
- 【Qt】Log4Qt(三)源码分析
Log4Qt(三)源码分析 1.分层架构 1.1 核心对象 1.2 支持对象 2.源码分析 2.1 宏 2.1.1 LOG4QT_DECLARE_QCLASS_LOGGER 2.1.2 LOG4QT_ ...
- Nimbus三Storm源码分析--Nimbus启动过程
Nimbus server, 首先从启动命令开始, 同样是使用storm命令"storm nimbus"来启动 看下源码, 此处和上面client不同, jvmtype=" ...
- SoundTouch音频处理库源码分析及算法提取(6)
TDStretch类的实现 SoundTouch类成员函数putSamples(const SAMPLETYPE *samples, uint nSamples)实现如下,根据上篇的分析rate是一个 ...
- SoundTouch音频处理库源码分析及算法提取(1)
SoundTouch音频处理库的使用异常简单,经过简单的编译之后,设置编译环境,以vc为例 ,直接在include包含SoundTouch目录下的include路径,接着在lib添加SoundTouc ...
- Spring源码分析(三)
Spring源码分析 第三章 手写Ioc和Aop 文章目录 Spring源码分析 前言 一.模拟业务场景 (一) 功能介绍 (二) 关键功能代码 (三) 问题分析 二.使用ioc和aop重构 (一) ...
- TreeMap源码分析,看了都说好
一.简介 TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现.TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey.get ...
- 趣味图解+源码分析,轻松吃透Linux
如今的软件开发行业,服务器端市场基本被 Linux 系统占领了.移动端中的 Android 系统是基于 Linux 内核开发的,那些很火的虚拟化.消息队列.云计算.大数据等技术,都默认支持 Linux ...
- 【集合框架】JDK1.8源码分析HashSet LinkedHashSet(八)
一.前言 分析完了List的两个主要类之后,我们来分析Set接口下的类,HashSet和LinkedHashSet,其实,在分析完HashMap与LinkedHashMap之后,再来分析HashSet ...
最新文章
- virsh 常用操作
- 使用字典编码每个字再编码每句话不知对nlp是否有帮助(深度大脑)
- 中国发现银河系最大恒星级黑洞!颠覆认知登上Nature:68倍太阳质量,自研郭守敬望远镜立大功...
- 快学Scala习题解答—第十章 特质
- kaggle较好的竞赛经验
- 《Python编程从入门到实践》第10章文件和异常动手试一试答案(附代码)
- linux安装matlab(亲测有用)
- python反编译_反编译 python
- xp系统的无线配置服务器,Windows XP系统下无线网卡配置及安装
- ModBus RTU和ModBus ASC
- 数据结构与算法分析(排序,递归,链表)
- 游戏的革命:手机定位游戏
- 百度android模拟器下载地址,百度手机助手电脑版怎么下载 安卓模拟器电脑版下载地址...
- strsplit()函数
- MySQL增加新的分区
- 服务器一键部署可道云KODBOX网盘云盘
- 2020年房价趋势_2020年最大的设计趋势
- android 强制锁屏代码,Android 监听锁屏、解锁、开屏 功能代码
- 每日一记:zabbix日志报错cannot process item fra[usable,pct] trap: item type 15 cannot be used with traps
- 深度linux运行windows游戏,在deepin linux系统中手动安装windows游戏的小技巧
热门文章
- 苹果vs剪辑下载_视频剪辑软件下载
- Python开发基础总结之套接字+字符串+正则表达式
- oracle卸载注意啥,关于oracle的安装,卸载以及其他注意事项
- mysql %type_mysql 存储过程 %type
- python图像配准的原理_python利用sift和surf进行图像配准
- .net 获取字符串中的第一个逗号的位置_用EXCEL合并同列字符串
- 云南大学信息学院c语言实验七,云南大学软件学院C语言程序
- oracle导入到mysql命令_oracle数据库导入导出命令
- 汇博工业机器人码垛机怎么写_一文带您理解码垛机器人,原来它这么简单!
- linux下的SIGINT的作用,signal(SIGINT,stop)的问题,大家进来看下!!!