什么是TF-IDF(词频-逆文档频率)?
我们玩AI会听说一个词叫做 向量化,那么什么是向量化呢?
文本向量化:将文本信息表示成能够表达文本语义的向量,是用数值向量来表示文本的语义。词嵌入(Word Embedding):一种将文本中的词转换成数字向量的方法,属于文本向量化处理的范畴。
常见的文本向量和词嵌入方法包括独热模型(One Hot Model),词袋模型(Bag of Words Model)、词频-逆文档频率(TF-IDF)、N元模型(N-Gram)、单词-向量模型(Word2vec)、文档-向量模型(Doc2vec)
下面是其中一种方法:词频-逆文档频率(TF-IDF)
TF-IDF(Term Frequency-Inverse Document Frequency)是一种用于信息检索和文本挖掘的常见技术,用于评估文档中的单词或词语在给定语料库中的重要性。TF-IDF考虑两个因素:词频(TF)和逆文档频率(IDF)。
-
Term Frequency (TF):词频是指在一个文档(或文本)中某个词语出现的频率。通常,TF 值越高表示词语在文档中越重要。
-
Inverse Document Frequency (IDF):逆文档频率是一个词语的重要性度量,它考虑了这个词语在整个文档集合中的出现情况。IDF 值越高表示词语越不常见,因此在特定文档中出现时,具有更高的重要性。
TF-IDF 公式将这两个因素结合起来,以评估某个词语在特定文档中的重要性。其计算方式为:
TF-IDF(w, d) = TF(w, d) * IDF(w)
其中:
TF(w, d)
表示词语 w 在文档 d 中的词频(出现的次数或频率)。IDF(w)
表示词语 w 的逆文档频率,通常计算方式为 log(N / n),其中 N 是文档集合中的文档总数,n 是包含词语 w 的文档数。
TF-IDF 的主要目的是确定一个词语对于给定文档的重要性,并用于搜索引擎、文本分类、信息检索等应用中,以便识别文档中的关键词语和提高检索效果。较高的 TF-IDF 值意味着某个词语在文档中具有更高的重要性。
TF-IDF 的目的不是简单地表示在文档中出现次数多的词语就重要,而是综合考虑了两个因素:词频(TF)和逆文档频率(IDF)。IDF 的作用是弥补了在多个文档中出现次数较多的常见词语的问题。
在 TF-IDF 中,词频(TF)衡量了在单个文档中某个词语的重要性,但逆文档频率(IDF)用于衡量一个词语在整个文档集合中的重要性。如果某个词语在大多数文档中都出现,那么它的 IDF 值会很低,即它在整个集合中并不是特别重要。相反,如果某个词语在相对较少的文档中出现,那么它的 IDF 值会较高,表示它在这些特定文档中更为重要。
所以,词语出现次数多并不意味着它的 TF-IDF 值高,因为 IDF 能够抑制那些在许多文档中都出现的常见词语的重要性。
TF-IDF 的目的是帮助识别在给定文档中相对较为重要的词语,而不是简单地依赖词频来衡量词语的重要性。
举一个例子来解释 TF-IDF 如何工作。
假设我们有一个包含三个文档的文本集合,每个文档代表不同的新闻文章。我们希望使用 TF-IDF 来确定每个词语在每个文档中的重要性。
文档 1: "足球比赛是一种流行的体育活动。" 文档 2: "篮球比赛在美国备受欢迎。" 文档 3: "乒乓球比赛是一种快节奏的运动。"
现在,我们想计算词语 "比赛" 的 TF-IDF 值。首先,我们计算词频(TF)和逆文档频率(IDF):
-
词频(TF):在每个文档中 "比赛" 出现的次数。
- 文档 1:1次
- 文档 2:1次
- 文档 3:1次
-
逆文档频率(IDF):计算在文档集合中 "比赛" 的逆文档频率。
- "比赛" 在所有文档中都出现,所以 IDF 可能较低。
最后,我们计算 TF-IDF 值,将 TF 与 IDF 相乘:
- 文档 1 中的 "比赛" 的 TF-IDF = TF * IDF = 1 * 低IDF = 低TF-IDF
- 文档 2 中的 "比赛" 的 TF-IDF = TF * IDF = 1 * 低IDF = 低TF-IDF
- 文档 3 中的 "比赛" 的 TF-IDF = TF * IDF = 1 * 低IDF = 低TF-IDF
由于 "比赛" 在每个文档中都出现,它的 TF-IDF 值相对较低。这是因为 IDF 分母的部分,即文档集合中包含 "比赛" 的文档数较大,导致 IDF 值较低,从而降低了 TF-IDF 值。
相反,如果某个词语在较少的文档中出现,其 IDF 值将较高,从而提高了相应词语的 TF-IDF 值,表明它在文档中的重要性较高。
"足球"、"篮球"、"乒乓球" 这些词语在文档集合中出现的频率较低,因此它们的 IDF 值较高。
如果某个文档中包含这些词语,并且它们在该文档中出现多次,那么它们的 TF-IDF 值将较高,表明它们在该文档中的重要性较高。
所以,TF-IDF 帮助标识在特定文档中相对重要的词语,通常是那些在整个文档集合中不常见但在某个文档中频繁出现的词语。这使得 TF-IDF 成为信息检索和文本挖掘中的一个有用工具,可以帮助区分文档中的关键词。