《从零开始学习自然语言处理(NLP)》-TF-IDF算法(2)

写在最前面

在这个日新月异的信息时代,海量数据的积累,计算能力的不断提升,机器学习尤其是深度学习的蓬勃发展,使得人工智能技术在不同领域焕发出蓬勃的活力。自己经历了嵌入式开发,移动互联网开发,目前从事自然语言处理算法开发工作。从工程软件开发到自然语言处理算法开发,希望通过这个系列的文章,能够由浅入深,通俗易懂的介绍自然语言处理的领域知识,分享自己的成长,同大家一起进步。

问题描述

在上一篇文章中(《《从零开始学习自然语言处理(NLP)》-倒排索引(1)》)描述了基于关键词搜索的基本原理,以及通过倒排索引来提升和关键词相关网页的查询。本文在上文的基础上提出一个新的问题:
如果通过倒排索引查找到的网页都包含全部的查询关键字,而且,召回(符合查找条件)的网页数目又很多,这就需要将网页与查询Query的相关度进行排序了。相关度高的网页排在查询结果的前面,相关度低的网页排在后面。那问题来了,如何依据网页与查询关键词的相关性对召回的网页做排序呢?

基于TF(Term Frequency,词频)进行排序

最容易想到的便是基于词频打分进行排序,具体来说,对于查询Query:“林俊杰/2019/演唱会/行程”,下面的哪个网页跟查询Query的相关度更高呢?
网页a

[林俊杰]/[2019]/全球/[演唱会]/[行程]/发布/,/这是/[林俊杰]/的/第/20/场/全球/巡演/。
关键字 出现频次
林俊杰 2
2019 1
演唱会 1
行程 1

网页b

在 [林俊杰]/[2019]/全球/[演唱会]/[行程]/发布/之后/,/田馥甄/也/发布/了/今年/的/巡演/计划/,/她的/第一站/是/台北/。
关键字 出现频次
林俊杰 1
2019 1
演唱会 1
行程 1

显然网页a和Query的相关度更高。当然对于计算机就没有这么“显然”了,它需要依靠规则和具体算法来计算判断。基于词频的排序用公式表示就是,


相关性计算

其中,
k:Query中查询关键词序号


参数说明

为了方便计算,我们假设每个网页包含的词的总数为100,通过上面的公式,
网页a

网页a相关度=2/100+1/100+1/100+1/100=0.05

网页b

网页b相关度=1/100+1/100+1/100+1/100=0.04

通过上面的公式,计算机也能“显然”的判断,网页a与查询Query的相关度更高了。

基于词频(TF)排序的问题

假设现在有新的召回网页,
网页c

在 [林俊杰]/[2019]/全球/[演唱会]/[行程]/发布/之后/,/众多/明星/也/都/发布/了/自己/[2019]年/的/巡演/计划/,/[行程]/安排/如下/,
关键字 出现频次
林俊杰 1
2019 2
演唱会 1
行程 2
网页c相关度=1/100+2/100+1/100+2/100=0.06

显然基于词频的相关性计算公式,网页c(相关度0.06)大于网页a(相关度0.05),但真实情况是,网页c和查询Query的相关度,并没有网页a大。

IDF(Inverse DocumentFrequency,逆文件词频)

上面的问题关键在于用户的查询Query主要关注的是"林俊杰",至于"2019","行程"等信息也是在林俊杰的基础上展开的。所以,现在要解决的问题便是,排序算法如何能够凸显出"林俊杰"这个关键的查询信息。在这里便引入了IDF(Inverse DocumentFrequency,逆文件词频)。
我们先看下它的定义:

IDF定义

其中,
分母的+1操作,是为了避免当所有文档都不包含该关键词时,分母出现为0的情况。
IDF的分子是固定的,所以,IDF的特性主要体现在分母上。
从IDF的定义可以看出,
1 越是能代表特定内容的关键词,包含该关键词的网页越少,IDF值越高,如“林俊杰”
2 越是和内容主旨不相关的关键词,包含该关键词的网页越多,IDF值越低,如“2019”,“行程”
所以,IDF值就能很好的体现出查询Query关键字,与需要查询内容的相关性。

基于TF-IDF进行排序

结合TF和IDF的特定,便有了TF-IDF,定义也非常直观,

TF-IDF

具体来说就是,一个网页与查询Query的相关性体现在:
1 网页中包含查询关键词的频度
2 查询关键词对查询内容的反映程度
基于TF-IDF,网页与查询Query的相关性,改写为,
相关性定义

其中,
参数说明

在实际工程中,TF和IDF值,以及TF-IDF值针对于具体网页是提前计算好的,当搜索系统接收到用户的查询Query后,能够实时计算查询关键词与网页的相关度。

小结

本文沿用了《《从零开始学习自然语言处理(NLP)》-倒排索引(1)》中搜索的例子,提出了在网页包含所有查询关键词的情况下,如何对网页与查询Query的相关性进行排序。文中提出了基于TF的相关性排序方法,同时,也指出了该方法存在的问题。最终,引出TF-IDF算法:结合查询关键词在网页中的出现频率和该关键词反映查询内容程度两个特征,对召回网页进行排序。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249

推荐阅读更多精彩内容

  • 这个系列的第六个主题,主要谈一些搜索引擎相关的常见技术。 1995年是搜索引擎商业公司发展的重要起点,《浅谈推荐系...
    我偏笑_NSNirvana阅读 6,503评论 3 24
  • 前面的文章主要从理论的角度介绍了自然语言人机对话系统所可能涉及到的多个领域的经典模型和基础知识。这篇文章,甚至之后...
    我偏笑_NSNirvana阅读 13,613评论 2 64
  • SEO算法之TF-IDF算法 1、TF-IDF算法概念: TF-IDF(term frequency–invers...
    老朱seo阅读 979评论 2 3
  • 我们对文档分析的时候,通常需要提取关键词,中文分词可以使用jieba分词,英文通过空格和特殊字符分割即可。那么分割...
    lawenliu阅读 1,535评论 0 2
  • 你优雅的转过身 深情的望着我 微笑着 轻轻的 来到我身边 温柔的 抚摸我的头 把我拥入怀中 低声说 你真可爱 好喜...
    小幸福的幸福阅读 118评论 0 4