网站优化
当前位置:主页 > 建站资讯 > 网站优化 >
搜索引擎自动提取关键字技术TF-IDF和余弦相似度
发布日期:2021-03-26 阅读次数: 字体大小:

搜索引擎自动提取关键字技术“ TF-IDF的应用和余弦相似度”这个标题似乎很复杂,但是我想说的是一个非常简单的问题。 有一篇很长的文章。 我想使用计算机来提取其关键字(自动关键词提取),而无需人工干预。 如何正确执行?
这个问题涉及许多前沿计算机领域,例如数据挖掘,文本处理和信息检索,但是出乎意料的是,有一个非常简单的经典算法可以给出令人满意的结果。 它是如此简单以至于它不需要高级数学,并且普通人仅需10分钟就可以理解它。 这就是我今天要介绍的TF-IDF算法。
让我们从一个例子开始。 假设有一篇长篇文章“中国的养蜂业”,我们将使用计算机提取其关键字。
一个容易想到的想法是找到最常用的单词。 如果一个单词很重要,则在本文中应多次出现。 因此,我们执行“术语频率”(Term Frequency,缩写为TF)统计。
因此,您一定猜对了。 最常用的单词是----“的”,“是”,“在” ----此类别中最常用的单词。 它们被称为“停用词”,表示对查找结果无用的词语,必须将其过滤掉。
假设我们将它们过滤掉,只考虑具有实际意义的其余单词。 这将遇到另一个问题。 我们可能会发现“中国”,“蜜蜂”和“农业”这三个词出现的次数相同。 这是否意味着它们作为关键字的重要性相同?
显然不是这样。 因为“中国”是一个非常普遍的词,所以相对而言,“蜜蜂”和“农业”并不那么普遍。 如果这三个词在一篇文章中出现的次数相同,则可以合理地认为“ bee”和“ farming”比“ China”更重要,也就是说,按照关键词“ bee”和“ bee”的顺序排列。““农业”应排在“中国”之前。
因此,我们需要一个重要度调整系数来衡量一个单词是否是一个普通单词。如果一个单词相对稀少,但在本文中却多次出现, 那么很可能反映出本文的特征,这正是我们需要的关键字。用统计语言表达是基于单词频率为每个单词分配“重要性”权重。 最常见的单词(“的”,“是”,“在”)的权重最小,更常见的单词(“中国”)的权重较小,而较不常见的单词(“ bee”,“ farming”)))给更大的重量。 此权重称为“文档反频率”(Inverse Document Frequency,简称为IDF),其大小与单词的通用性成反比。在知道了``词频''(TF)和``文档反频率''(IDF)之后,将这两个值相乘即可得出单词的TF-IDF值。 单词对文章的重要性越高,其TF-IDF值就越大。 因此,前几个词是本文的关键词。
以下是此算法的详细信息。
第一步是计算单词频率。

搜索引擎自动提取关键字技术TF-IDF和余弦相似度


考虑到文章的长度,为了便于不同文章的比较,对“词频”进行了标准化。

搜索引擎自动提取关键字技术TF-IDF和余弦相似度



搜索引擎自动提取关键字技术TF-IDF和余弦相似度


第二步是计算反文档频率。
这时,需要一个语料库来模拟语言环境。

搜索引擎自动提取关键字技术TF-IDF和余弦相似度


如果一个单词比较常见,则分母较大,并且文档的逆频率较小,接近于0。向分母添加1的原因是为了防止分母为0( 也就是说,所有文档都不包含单词)。log表示取所获得值的对数。
第三步是计算TF-IDF。

搜索引擎自动提取关键字技术TF-IDF和余弦相似度


可以看出TF-IDF与文档中某个单词的出现次数成正比,而与整个语言中该单词的出现次数成反比。 因此,自动提取关键字的算法非常清晰,即计算文档中每个单词的TF-IDF值,然后按降序排列,从前几个单词开始。
以“中国的养蜂业”为例。 假设文本的长度为1000个单词,“中国”,“蜜蜂”和“育种”分别出现20次,则这三个单词的“单词频率”(TF)均为0.02。 然后,在Google上进行的搜索发现,假设这是中文网页的总数,那么就有250亿个网页包含“的”字样。 包含“中国”的网页有62.3亿网页,包含“蜜蜂”的网页有4840万,包含“栽培”的网页有9730万。 那么它们的逆文档频率(IDF)和TF-IDF如下:
从上表中可以看出,“蜜蜂”具有TF-IDF值最高,“繁殖”是第二,“中国” 是最低的。(如果还计算单词“的”的TF-IDF,它将是一个非常接近0的值。)因此,如果仅选择一个单词,则“ bee”是本文的关键词。
除了自动提取关键字外,TF-IDF算法还可以在许多其他地方使用。 例如,在信息检索期间,对于每个文档,可以分别计算一组搜索词(“中国”,“蜜蜂”,“农业”)的TF-IDF,并且可以将它们加在一起以获得TF- 整个文档的IDF。 以色列国防军。 值最高的文档是与搜索词最相关的文档。TF-IDF算法的优点是简单,快速,结果更符合实际情况。 缺点是仅通过“词频”来衡量一个词的重要性还不够全面,有时重要的词可能不会出现很多次。 而且,该算法不能反映单词的位置信息。 出现在最前面位置的单词和出现在该位置后面的单词都被认为具有相同的重要性,这是不正确的。(一种解决方案是对全文的第一段和每一段的第一句给予更大的重视。)

标签: