结合 TextRank 与 TF-IDF 更精准的提取文章关键词

我们往往需要从大量的文本中迅速提取出核心关键词,以便快速把握文章主旨。如果要做信息流分发、基于内容的推荐算法,这也是其中很重要的步骤,一般用于文章特征。

传统的 TF-IDF 方法虽然广泛使用,但有时候它并不能完全准确地反映出文章的关键内容。实际上,TextRank、PositionRank 等任意算法都很难保证不遗漏重要的关键词。为了提高关键词提取的准确性,我们可以采用结合多种算法的方式来提取关键词。我在产品中使用了 TextRank 算法和 TF-IDF 的方法来结合,实测效果不错。

不同的库实现的关键词提取,结果往往不同,因为其实现细节有优劣之分。这里我使用的是 pke_zhtextrank4zh 库,通过 Python 代码实现这一过程。

在介绍代码实现之前,我们先简单回顾一下 TF-IDF 和 TextRank 的基本概念。

TF-IDF

TF-IDF(词频-逆文档频率)是一种用于信息检索与文本挖掘的常用加权技术。它通过计算词语的频率(TF)和其在文档集中的分布(IDF)来评估一个词语对于一个文件集或一个语料库中的其中一份文件的重要程度。TF-IDF 值越大,这个词在文本中的重要性越高。

你可以在这篇文章查看具体的计算方法和公式。

TextRank

TextRank 是一种基于图的排序算法,通过将文本分割成多个单词,并将这些单词作为图中的节点,通过节点之间的相互影响,计算每个节点的重要性。在关键词提取的场景中,TextRank 可以帮助我们找出文本中的高权重关键词。

接下来,我们将详细讲解如何使用代码实现更精准的关键词提取。

  1. 文本预处理:首先,我们将文本转换为小写,并使用正则表达式移除所有的数字,这是为了确保后续处理的文本是纯粹的文本数据。

  2. 关键词提取:我们使用 TfIdf_m.extract 方法和 tr4w.analyze 方法分别提取 TF-IDF 和 TextRank 的结果。

  3. 关键词合并与向量生成:将两种方法提取的关键词合并,并为每个关键词生成相应的 TF-IDF 和 TextRank 向量。

  4. 数据归一化:为了使不同的指标具有可比性,我们使用 MinMaxScaler 对数据进行归一化处理。

  5. 混合向量计算:将归一化后的 TF-IDF 向量和 TextRank 向量按照一定的比例混合,从而得到一个综合考虑两者的混合向量。

  6. 关键词排序:根据混合向量的值对关键词进行排序,并选出排名前20的关键词作为最终的关键词。

完整代码如下,你可以花不到 1 元钱来查看这段代码,开箱即用:

通过结合 TF-IDF 和 TextRank 算法,我们可以更全面地考虑词语的重要性和文本结构,从而提高关键词提取的准确性。以上代码实现了一个基于这两种技术的混合关键词提取方法,有助于我们在实际应用中抽取出更加精准的关键信息。

题外话:我帮你整理了包括 AI 写作、绘画、视频(自媒体制作)零门槛 AI 课程 + 国内可直接顺畅使用的软件。想让自己快速用上 AI 工具来降本增效,辅助工作和生活?限时报名

当前页阅读量为: