自然语言处理中的关键词抽取模型(TF—IDF)

关键词提取能让我们快速地了解一篇文章,或者从大量的语料中快速找到其想说明的主题。在自然语言处理中,提取关键词是很重要的数据预处理部分。

这里要介绍的是TF-IDF(term frequency-inverse document frequency)算法来提取关键词,它的实现简单,并且效果显著,所以应用很广。别看它的名字这么复杂,其实原理很简单,是一种统计方法,一个词的重要性随着它在文件中出现的次数呈正比地增加,但同时也会随着它在语料库中出现的频率呈反比地下降。什么意思呢?下面我用通俗易懂的话来解释一下。

一篇文章中什么词是更重要的呢?相信我们的第一想法都一致,那就是出现次数多的那些词喽。比如广告里,会经常重复产品的名字,这就是关键词,为的是让用户能够记住产品名。

但是回头再细想一下,有一些词出现的次数也很多啊,比如‘我’,‘的’,‘你’等等之类的人称,助词,语气词也经常会在文章里出现啊,但是这些词不一定是重要的词。所以,光靠词在文章中的出现次数来判断,似乎还不是很合理。

那是不是可以这么来看,这个词在其它地方出现的次数很少,唯独在这篇文章里出现次数多,由于过滤掉以上出现的那些在所有地方都常见的词,就说明这个词就是这篇文章的关键词啦。

现在我们就总结出了两个影响一个词是不是一篇文章的重要词汇的因素:

  • 这个词在这个文章中的出现情况(tf)
  • 这个词在其它文章中的出现情况 (idf)

第一个因素用公式来表示:
该词在该文章中出现的次数/文章中所有的词汇数量

第二个因素用公式来表示:
出现该词的文章数目/总的文章数目

在第二个因素中,涉及具体的计算,我们会算倒数并且前面加log,即:
在这里插入图片描述
N表示文章的总数,N(x)表示出现词的文章数目。

在实际应用中,我们上述的文章并不一定是文章,确切地来说是文本,什么意思呢?比如数据库是100个新闻标题,也可以是100个读者评论,也可以是100个网民提的问题,也就是说文本是多样化的。

下面我有以下几个短文本:
鱼多少钱?
肉多少钱?
菜多少钱?

根据tf-idf的算法,“多少钱”就不能算是关键词了,但是显然“多少钱”在这几个文本里可以说是关键的。所以说,这个算法对数据本身的形式有要求,另外,也跟我们的目标相关,如果我们已知这些文本都有关商品卖买,目的是要找出每个短文本中的商品,那“多少钱”也不是很重要了,如果我们最终的目的是要明白句子的意思,那“多少钱”就是很重要的。

总结来说,tf-idf也不是万能的,具体要根据自己的需求来应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值