前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速上手关键词抽取的算法

快速上手关键词抽取的算法

作者头像
sladesal
发布2020-01-15 16:15:33
1.3K0
发布2020-01-15 16:15:33
举报
文章被收录于专栏:机器学习之旅机器学习之旅

前言

在自然语言处理领域,我们有一种类型的问题是如何在一堆文本中提取出核心词/句子。而无论是对于长文本还是短文本,往往几个关键词就可以代表整个文本的主题思想。同时,在很多推荐系统中,由于无法直接就整体文本进行利用,往往会现对文本进行汇总,常用的方法就是embedding或者关键词抽取,关键词提取的准确程度直接关系到推荐系统或者搜索系统的最终效果。让我们看下有哪些快速上手可用的方法。

TFIDF

TFIDF是term frequency inverse document frequency的简称,很好理解:term frequency dot inverse document frequency,文本频率与逆文档频率指数, TFIDF就是为了表征一个token(可以是一个字或者一个词)的重要程度。所以,当我们把doc中的每个词的重要程度算出来,倒序即可作为关键词。

Term Frequency

image

Inverse Document Frequency

image

分母+1是平衡未出现词

TF * IDF

TF-IDF算法非常容易理解,并且很容易实现,但是其简单结构并没有考虑词语的语义信息,无法处理一词多义与一义多词的情况。

实现

RAKE

RAKE是Rapid Automatic Keyword Extraction的简称,RAKE算法的亮点在于“R”,快速同时也有不俗的效果。

流程

  • 切句切词:切句是以标点+停顿词+分割词做标记,切词是借助第三方切词工具,我python版实现的时候用的是jieba,Java版实现的时候用的是HanNlp
  • 共现矩阵:构建共现矩阵
  • 特征提取:基于词的词频freq、度deg 以及度与频率之比deg/freq三个特征
  • 句的score:score = deg/freq
    • 建议通过句长进行平衡

实现

TextRank

知道PageRank的同学,一定知道这么一个道理,网页点击行为是一个有向图,重要的网页会被各种网页链接到,比如baidu,所以我们求出有向图中节点的重要性就是网页的重要性。TextRank其实思想类似,只是把有向图换成了无向图,所以公式大家就应该很熟悉,和PageRank类似:

image

其中,d依旧是阻尼系数,但是大家发现多了w,这个其实是节点之间边的权重,因为无向图,文本分词后的词汇跳转我们假设是相互等同的。

实现


以上的方法中,TFIDF只能对词进行提取,而RAKE和TextRank都可以抽词或者抽句。其实,以上方法都很简单,在数据量足够大的情况下,没有基于深度循环神经网络的算法效果好,但是强就强在易于上手,效果快速可见。

欢迎大家关注我的个人bolg知乎,更多代码内容欢迎follow我的个人Github,如果有任何算法、代码疑问都欢迎通过邮箱发消息给我。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • TFIDF
    • Term Frequency
      • Inverse Document Frequency
        • TF * IDF
          • 实现
          • RAKE
            • 流程
              • 实现
              • TextRank
                • 实现
                相关产品与服务
                NLP 服务
                NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档