【一】综述

利用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)相关推荐

  1. java jieba tfidf_【NLP】【三】jieba源码分析之关键字提取(TF-IDF/TextRank)

    [一]综述 利用jieba进行关键字提取时,有两种接口.一个基于TF-IDF算法,一个基于TextRank算法.TF-IDF算法,完全基于词频统计来计算词的权重,然后排序,在返回TopK个词作为关键字 ...

  2. 【Qt】Log4Qt(三)源码分析

    Log4Qt(三)源码分析 1.分层架构 1.1 核心对象 1.2 支持对象 2.源码分析 2.1 宏 2.1.1 LOG4QT_DECLARE_QCLASS_LOGGER 2.1.2 LOG4QT_ ...

  3. Nimbus三Storm源码分析--Nimbus启动过程

    Nimbus server, 首先从启动命令开始, 同样是使用storm命令"storm nimbus"来启动 看下源码, 此处和上面client不同, jvmtype=" ...

  4. SoundTouch音频处理库源码分析及算法提取(6)

    TDStretch类的实现 SoundTouch类成员函数putSamples(const SAMPLETYPE *samples, uint nSamples)实现如下,根据上篇的分析rate是一个 ...

  5. SoundTouch音频处理库源码分析及算法提取(1)

    SoundTouch音频处理库的使用异常简单,经过简单的编译之后,设置编译环境,以vc为例 ,直接在include包含SoundTouch目录下的include路径,接着在lib添加SoundTouc ...

  6. Spring源码分析(三)

    Spring源码分析 第三章 手写Ioc和Aop 文章目录 Spring源码分析 前言 一.模拟业务场景 (一) 功能介绍 (二) 关键功能代码 (三) 问题分析 二.使用ioc和aop重构 (一) ...

  7. TreeMap源码分析,看了都说好

    一.简介 TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现.TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey.get ...

  8. 趣味图解+源码分析,轻松吃透Linux

    如今的软件开发行业,服务器端市场基本被 Linux 系统占领了.移动端中的 Android 系统是基于 Linux 内核开发的,那些很火的虚拟化.消息队列.云计算.大数据等技术,都默认支持 Linux ...

  9. 【集合框架】JDK1.8源码分析HashSet LinkedHashSet(八)

    一.前言 分析完了List的两个主要类之后,我们来分析Set接口下的类,HashSet和LinkedHashSet,其实,在分析完HashMap与LinkedHashMap之后,再来分析HashSet ...

最新文章

  1. virsh 常用操作
  2. 使用字典编码每个字再编码每句话不知对nlp是否有帮助(深度大脑)
  3. 中国发现银河系最大恒星级黑洞!颠覆认知登上Nature:68倍太阳质量,自研郭守敬望远镜立大功...
  4. 快学Scala习题解答—第十章 特质
  5. kaggle较好的竞赛经验
  6. 《Python编程从入门到实践》第10章文件和异常动手试一试答案(附代码)
  7. linux安装matlab(亲测有用)
  8. python反编译_反编译 python
  9. xp系统的无线配置服务器,Windows XP系统下无线网卡配置及安装
  10. ModBus RTU和ModBus ASC
  11. 数据结构与算法分析(排序,递归,链表)
  12. 游戏的革命:手机定位游戏
  13. 百度android模拟器下载地址,百度手机助手电脑版怎么下载 安卓模拟器电脑版下载地址...
  14. strsplit()函数
  15. MySQL增加新的分区
  16. 服务器一键部署可道云KODBOX网盘云盘
  17. 2020年房价趋势_2020年最大的设计趋势
  18. android 强制锁屏代码,Android 监听锁屏、解锁、开屏 功能代码
  19. 每日一记:zabbix日志报错cannot process item fra[usable,pct] trap: item type 15 cannot be used with traps
  20. 深度linux运行windows游戏,在deepin linux系统中手动安装windows游戏的小技巧

热门文章

  1. 苹果vs剪辑下载_视频剪辑软件下载
  2. Python开发基础总结之套接字+字符串+正则表达式
  3. oracle卸载注意啥,关于oracle的安装,卸载以及其他注意事项
  4. mysql %type_mysql 存储过程 %type
  5. python图像配准的原理_python利用sift和surf进行图像配准
  6. .net 获取字符串中的第一个逗号的位置_用EXCEL合并同列字符串
  7. 云南大学信息学院c语言实验七,云南大学软件学院C语言程序
  8. oracle导入到mysql命令_oracle数据库导入导出命令
  9. 汇博工业机器人码垛机怎么写_一文带您理解码垛机器人,原来它这么简单!
  10. linux下的SIGINT的作用,signal(SIGINT,stop)的问题,大家进来看下!!!