TF-IDF 表征了某个词对于一段文本的重要性和独特性
假设我们有以下三段简短的文本数据:
文本1: 这个苹果很新鲜很甜
文本2: 我买了一个苹果非常喜欢
文本3: 这个苹果皮非常光滑
首先,我们构建这个小文本集合的词典(vocabulary),去掉一些常见的无意义词语(如"的"、"一个"等),词典为:
{‘这个’, ‘苹果’, ‘新鲜’, ‘甜’, ‘我’, ‘买了’, ‘非常’, ‘喜欢’, ‘皮’, ‘光滑’} 共10个词条。
接下来,计算每个词条在每个文本中的TF(词频)值,以及在整个文本集合中的IDF(逆向文档频率)值。
例如对于"苹果"这个词条:
TF(文本1) = 1/4 = 0.25 (在文本1中出现1次,文本长度4)
TF(文本2) = 1/5 = 0.2
TF(文本3) = 1/4 = 0.25
IDF = log(3/3) = 0 (在所有3个文件中都出现过)
将每个词条的TF*IDF值作为该词条在该文本的特征值,那么文本1可以用一个10维的特征向量表示为:
[0.27, 0.25, 0.27, 0.27, 0, 0, 0, 0, 0, 0]
文本2的特征向量为:
[0, 0.2, 0, 0, 0.4, 0.4, 0.4, 0.4, 0, 0]
文本3的特征向量为:
[0.27, 0.25, 0, 0, 0, 0, 0, 0, 0.27, 0.27]
这样,我们就根据TF-IDF的值,将原始的文本数据转化为了数值型的向量形式,方便被机器学习模型使用。可以看出,在这个例子中,"苹果"