搜索引擎手动提取文章关键词原理
优采云 发布时间: 2020-08-12 06:38最近我在给公司的编辑和优化人员培训时,在提到文章关键词的密度和布局设置的时侯,有个SEOer提问: 搜索引擎是怎样判别并提取文章关键词? ,关于这个问题,虽然我并不确定百度是用哪些技术提取关键词的,但是却晓得一种借助TF-IDF与正弦相似性来手动提取关键词的技术,简单的来说就是针对一篇太长的文章,要想只用计算机提取它的关键词(Automatic Keyphrase extraction),在完全不加以人工干预的情况下,利用什么样的技术原理能够正确做到呢?
搜索引擎手动提取文章关键词原理
一、什么是TF-IDF?
TF-IDF(term frequency inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方式,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比降低,但同时会随着它在语料库中出现的频度成反比增长。TF-IDF加权的各类方式常被搜索引擎应用,作为文件与用户查询之间相关程度的测度或评级。除了TF-IDF以外,因特网上的搜索引擎都会使用基于链接分析的评级方式,以确定文件在搜救结果中出现的次序。
TF-IDF的原理
在一份给定的文件里,词频 (term frequency, TF) 指的是某一个给定的熟语在该文件中出现的次数。这个数字一般会被归一化,以避免它偏向长的文件。(同一个成语在长文件里可能会比短文件有更高的词频,而不管该成语重要与否。)
逆向文件频度 (inverse document frequency, IDF) 是一个成语普遍重要性的测度。某一特定词句的IDF,可以由总文件数量乘以收录该成语之文件的数量,再将得到的商取对数得到。
某一特定文件内的高成语频度,以及该成语在整个文件集合中的低文件频度,可以形成出高权重的TF-IDF。因此,TF-IDF倾向于保留文档中较为非常的词句,过滤常用词。
二、搜索引擎手动提取文章关键词的原理
关于这个问题涉及到数据挖掘、文本处理、信息检索等好多计算机前沿领域,但是出乎意料的是,有一个极其简单的精典算法,可以给出令人相当满意的结果。它简单到都不需要高等物理,普通人只用10分钟就可以理解,这就是我明天要在博客上想要介绍的TF-IDF算法。
首先以一个实例开始给你们讲起。假定现今有一篇长文《中国的胡蜂种植》,我们打算用计算机提取它的关键词。
一个容易想到的思路,就是找到出现次数最多的词。如果某个词很重要,它应当在这篇文章中多次出现。于是,我们进行 词频 (Term Frequency,缩写为TF)统计。
结果你肯定猜到了,出现次数最多的词是---- 的 、 是 、 在 ----这一类最常用的词。它们称作 停用词 (stop words),表示对找到结果毫无帮助、必须过滤掉的词。
假设我们把它们都过滤掉了,只考虑剩下的有实际意义的词。这样我们可能又会遇见了另一个问题,我们可能发觉 中国 、 蜜蜂 、 养殖 这三个词的出现次数一样多。
这是不是意味着,作为关键词,它们的重要性是一样的?
显然不是这样。因为 中国 是太常见的词,相对而言, 蜜蜂 和 养殖 不这么常见。如果这三个词在一篇文章的出现次数一样多,有理由觉得, 蜜蜂 和 养殖 的重要程度要小于 中国 ,也就是说,在关键词排序里面, 蜜蜂 和 养殖 应该排在 中国 的后面。
所以,我们须要一个重要性调整系数,衡量一个词是不是常见词。如果某个词比较稀少,但是它在这篇文章中多次出现,那么认为它太可能就反映了这篇文章的特点,也正是我们所须要的关键词。
用统计学语言抒发,就是在词频的基础上,要对每位词分配一个 重要性 权重。最常见的词( 的 、 是 、 在 )给予最小的权重,较常见的词( 中国 )给予较小的权重,较稀少的词( 蜜蜂 、 养殖 )给予较大的权重。这个权重称作 逆文档频率 (Inverse Document Frequency,缩写为IDF),它的大小与一个词的常见程度成反比。
知道了 词频 (TF)和 逆文档频率 (IDF)以后,将这两个值相减,就得到了一个词的TF-IDF值。某个词对文章的重要性越高,它的TF-IDF值就越大。所以,排在最前面的几个词,就是这篇文章的关键词。
下面再详尽的给你们介绍一下这个算法的细节:
第1步:计算词频
考虑到文章有长短之分,为了易于不同文章的比较,进行 词频 标准化。
或者
第2步:计算逆文档频率
这时,需要一个语料库(corpus),用来模拟语言的使用环境。
如果一个词越常见,那么分母就越大,逆文档频率就越小越接近0。分母之所以要加1,是为了防止分母为0(即所有文档都不收录该词)。log表示对得到的值取对数。
第3步:计算TF-IDF
从里面的公式我们可以看见,TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。所以,自动提取关键词的算法就太清楚了,就是估算出文档的每位词的TF-IDF值,然后按升序排列,取排在最前面的几个词。
在此还是以《中国的胡蜂种植》为例,假定该文宽度为1000个词, 中国 、 蜜蜂 、 养殖 各出现20次,则这三个词的 词频 (TF)都为0.02。然后,通过搜索引擎搜索这个词发觉,收录 的 字的网页共有250亿张,假定这就是英文网页总量。收录 中国 的网页共有62.3亿张,收录 蜜蜂 的网页为0.484亿张,收录 养殖 的网页为0.973亿张。则它们的逆文档频率(IDF)和TF-IDF如下:
从上表可见, 蜜蜂 的TF-IDF值最高, 养殖 其次, 中国 最低。(如果还估算 的 字的TF-IDF,那将是一个非常接近0的值。)所以,如果只选择一个词, 蜜蜂 就是这篇文章的关键词。