TF-IDF算法的学习记录

可以用于文本相似度计算(基于关键词)

词在一定程度上反映了文本的语义,例如“阿莫西林的应用”,这句话可以分词为 阿莫西林 的 应用。一人的思维来看的话,这句话中最具有代表性的词是“阿莫西林”,其次是“应用”,对于人类来说最后的“的”是可有可无的。那么在计算机中,应该怎么表现这个在人类看来显而易见的排序呢?

第一种思路

直接使用文本中的词频来表示文本,即[TF1,TF2……,TFn](所有语料的unique word数量为n, ∑TFi = 1),那么这样来计算两文本的相似度就可以使用两个词频向量进行计算。
但是这会有什么问题吗?

  • n很大时,文本的表示太长,而且稀疏(一段文本的词毕竟有限,那么TF向量上就会出现大量的0)
  • 明显的相反意思会呈现出高相似度,比如说“爱” 和 “不爱”(仅仅是举个例子,意思到位就行)
  • 明显相同的意思会呈现出低相似度,比如说“爱” 和“喜欢”
    这种思路其实就是使用词袋模型进行语义表示

第二种思路

再次回到例子,“阿莫西林的应用”。为什么人类将词按照代表能力的先后进行排序呢?
“的”是最不重要的,因为在很多的文章中都会出现“的”这个字,不仅仅是“的”,还有“啊”、“吗”、“呢”等很多类似的词,这些词在NLP处理中成为停止词(网上有词库,百度一大堆),即几乎不能为文本的语义做出贡献的词。
“应用”排在“阿莫西林”的后面,是因为“应用”这个词虽然没有“的”使用那么普遍(几乎所有的文本都有),但是“应用”的出现次数还是会比“阿莫西林“高的多得多。
按照这种思路,在计算机上是否可行呢?
答案是肯定的。这就是大名鼎鼎的TF-IDF算法。
TF即词频(Term Frequency),每篇文档中关键词的频率(该文档单词/该文档单词总数)
IDF即逆文档频率(Inverse Document Frequency),文档总数/关键词t出现的文档数目,即 IDF(t) =ln(语料库中的文件总数/(包含词t的文件数 + 1))
那么TF-IDF = TF*IDF。
“的”:TF很大,IDF几乎为0,那么TF-IDF ≈ 0
“应用”:TF较大,IDF较小
“阿莫西林”:TF较小,IDF很大

  • 那么TF-IDF怎么用于文本相似度计算?(下次再写吧。。。。)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值