机器学习 - 文本特征处理之 TF 和 IDF

TF(Term Frequency,词频)和IDF(Inverse Document Frequency,逆文档频率)是文本处理和信息检索中的两个重要概念,常用于计算一个词在文档中的重要性。下面是详细解释:

TF(词频)

词频表示某个词在一个文档中出现的频率。其计算公式如下:

TF ( t , d ) = 出现次数 ( t , d ) 文档中词语总数 ( d ) \text{TF}(t, d) = \frac{\text{出现次数}(t, d)}{\text{文档中词语总数}(d)} TF(t,d)=文档中词语总数(d)出现次数(t,d)

其中:

  • ( t ) 表示词语
  • ( d ) 表示文档
示例:

假设有一个文档内容如下:

这 是 一个 示例 示例 文本
  • “示例”出现了2次,文档总共有6个词语。
  • 词频(TF)计算:

TF ( 示例 , d ) = 2 6 = 0.333 \text{TF}(\text{示例}, d) = \frac{2}{6} = 0.333 TF(示例,d)=62=0.333

IDF(逆文档频率)

逆文档频率用于衡量一个词在所有文档中的普遍重要性。词语越常见,其IDF值越低;词语越不常见,其IDF值越高。其计算公式如下:

IDF ( t ) = log ⁡ ( N 1 + 包含词语的文档数 ( t ) ) \text{IDF}(t) = \log \left( \frac{N}{1 + \text{包含词语的文档数}(t)} \right) IDF(t)=log(1+包含词语的文档数(t)N)

其中:

  • ( N ) 表示文档的总数
  • 包含词语的文档数 ( t ) \text{包含词语的文档数}(t) 包含词语的文档数(t) 表示包含词语 ( t ) 的文档数
示例:

假设有以下三个文档:

文档1:这 是 一个 示例 文本
文档2:这是 另一个 示例
文档3:这是 一段 示例 文字
  • “示例”在所有3个文档中都出现了。
  • 逆文档频率(IDF)计算:

IDF ( 示例 ) = log ⁡ ( 3 1 + 3 ) = log ⁡ ( 3 4 ) = − 0.124 \text{IDF}(\text{示例}) = \log \left( \frac{3}{1 + 3} \right) = \log \left( \frac{3}{4} \right) = -0.124 IDF(示例)=log(1+33)=log(43)=0.124

TF-IDF(词频-逆文档频率)

TF-IDF结合了TF和IDF两个指标,衡量一个词在文档中的重要性。其计算公式如下:

TF-IDF ( t , d ) = TF ( t , d ) × IDF ( t ) \text{TF-IDF}(t, d) = \text{TF}(t, d) \times \text{IDF}(t) TF-IDF(t,d)=TF(t,d)×IDF(t)

示例:

结合上述TF和IDF的计算,假设“示例”在某文档中的词频TF为0.333,IDF为-0.124:

TF-IDF ( 示例 , d ) = 0.333 × − 0.124 = − 0.0413 \text{TF-IDF}(\text{示例}, d) = 0.333 \times -0.124 = -0.0413 TF-IDF(示例,d)=0.333×0.124=0.0413

这种计算方式表明,尽管“示例”词在单个文档中较为频繁,但在所有文档中都很常见,因此其重要性并不高。

实际应用TF-IDF的示例

假设我们有以下三个文档:

文档1:我 喜欢 学习 机器学习
文档2:机器学习 是 很 有趣 的
文档3:我 喜欢 编程 和 机器学习
第一步:计算每个词的词频(TF)

计算每个文档中每个词的词频:

文档1:我 喜欢 学习 机器学习

我:1/4 = 0.25
喜欢:1/4 = 0.25
学习:1/4 = 0.25
机器学习:1/4 = 0.25

文档2:机器学习 是 很 有趣 的

机器学习:1/5 = 0.20
是:1/5 = 0.20
很:1/5 = 0.20
有趣:1/5 = 0.20
的:1/5 = 0.20

文档3:我 喜欢 编程 和 机器学习

我:1/5 = 0.20
喜欢:1/5 = 0.20
编程:1/5 = 0.20
和:1/5 = 0.20
机器学习:1/5 = 0.20
第二步:计算逆文档频率(IDF)
文档1:我 喜欢 学习 机器学习
文档2:机器学习 是 很 有趣 的
文档3:我 喜欢 编程 和 机器学习

计算IDF:

机器学习:log(3 / (1 + 3)) = log(3 / 4) = -0.124
我:log(3 / (1 + 2)) = log(3 / 3) = 0
喜欢:log(3 / (1 + 2)) = log(3 / 3) = 0
学习:log(3 / (1 + 1)) = log(3 / 2) = 0.176
是:log(3 / (1 + 1)) = log(3 / 2) = 0.176
很:log(3 / (1 + 1)) = log(3 / 2) = 0.176
有趣:log(3 / (1 + 1)) = log(3 / 2) = 0.176
的:log(3 / (1 + 1)) = log(3 / 2) = 0.176
编程:log(3 / (1 + 1)) = log(3 / 2) = 0.176
和:log(3 / (1 + 1)) = log(3 / 2) = 0.176
第三步:计算每个词的TF-IDF

将每个词的词频乘以其逆文档频率:

文档1:我 喜欢 学习 机器学习

我:0.25 * 0 = 0
喜欢:0.25 * 0 = 0
学习:0.25 * 0.176 = 0.044
机器学习:0.25 * -0.124 = -0.031

文档2:机器学习 是 很 有趣 的

机器学习:0.20 * -0.124 = -0.0248
是:0.20 * 0.176 = 0.0352
很:0.20 * 0.176 = 0.0352
有趣:0.20 * 0.176 = 0.0352
的:0.20 * 0.176 = 0.0352

文档3:我 喜欢 编程 和 机器学习

我:0.20 * 0 = 0
喜欢:0.20 * 0 = 0
编程:0.20 * 0.176 = 0.0352
和:0.20 * 0.176 = 0.0352
机器学习:0.20 * -0.124 = -0.0248
详细分析

通过正确的TF-IDF计算,我们可以更准确地确定每个文档中最重要的词语。

文档1分析

  • “学习”的TF-IDF值最高(0.044),表明在文档1中,“学习”是最重要的词语。
  • “我”和“喜欢”的TF-IDF值为0,因为它们在多个文档中都很常见。
  • “机器学习”的TF-IDF值为-0.031,表明它虽然在文档中出现,但在所有文档中都很常见,因此在区分这个文档时并不重要。

文档2分析

  • “是”、“很”、“有趣”、“的”这四个词的TF-IDF值相同(0.0352),表明它们在文档2中同等重要。
  • “机器学习”的TF-IDF值为-0.0248,同样因为它在所有文档中都很常见。

文档3分析

  • “编程”和“和”的TF-IDF值最高(0.0352),表明它们在文档3中最重要。
  • “我”和“喜欢”的TF-IDF值为0,因为它们在多个文档中都很常见。
  • “机器学习”的TF-IDF值为-0.0248,同样因为它在所有文档中都很常见。
应用TF-IDF结果

这些TF-IDF值帮助我们更准确地理解每个文档的关键内容和主题。例如:

  • 在文档1中,“学习”是关键词,可以推测文档的主题是学习相关内容。
  • 在文档2中,“是”、“很”、“有趣”、“的”这几个词同等重要,可能表示文档在描述机器学习的有趣性。
  • 在文档3中,“编程”和“和”是关键词,可以推测文档的主题涉及编程和机器学习的关系。

通过这些TF-IDF值,我们可以更有效地进行文本分类、主题提取和信息检索,提高处理文本数据的准确性和效率。

  • 28
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值