数据特征处理之文本型数据(特征值化二)TF-IDF

首页 » Python » 正文

数据特征处理之文本型数据(特征值化二)TF-IDF


本篇内容介绍文本类型数据数据特征抽取的第二种方法(TF-IDF),有关文本数据特征抽取的第一种方法已在 数据特征处理之文本型数据(特征值化) 中介绍,感兴趣的小伙伴可以再点击查看。

 

什么是TF-IDF

 

TF-IDF是一种用于资讯检索与文本挖掘的常用加权技术,可以用来评估一个词对于一个文档集或语料库中某个文档的重要程度。它的理论计算公式为:

 

数据特征处理之文本型数据(特征值化二)TF-IDF

 

其中

TF:英文全称为Term Frequencyhe(检索词频率),通俗地说就是单词在文档出现的频率。

IDF:英文全称为Inverse Document Frequency(逆文档频率)

这里对于TF-IDF先在概念上提及一下,后面小编会专门在一篇文章中详细介绍TF-IDF算法。这里我们先知道它的作用是评估一个词在一篇文章或语料库的重要程度。


下面借助机器学习工具模块sklearn来完成TF-IDF对文本型数据进行特征值化

 

# -*- coding:utf-8 -*-

# @Author: 数据与编程之美
# @File: tf_idf.py
# @Time: 2020/12/31 20:23

from sklearn.feature_extraction.text import TfidfVectorizer

def tf_idf():
    """
    文本数据特征提取
    :return:
    """

    tfv = TfidfVectorizer()
    data = tfv.fit_transform(["机器学习 是 一门 多 学科 交叉 专业 ,", "涵盖 概率论 知识 ,", "统计学 知识 ,", "近似 理论 知识 和 复杂 算法 知识 ,",
                       "使用 计算机 作为 工具 并 致力于 真实 实时 的 模拟 人类 学习 方式 ,", "并 将 现有 内容 进行 知识 结构 划分 来 有效 提高 学习 效率 。"])

    # 输出词条列表
    print(tfv.get_feature_names())

    # 输出词条列表对应的值化数据
    print(data.toarray())


if __name__ == "__main__":
    
    tf_idf()

 

# 输出词条列表
print(tfv.get_feature_names())

 

词条列表输出的是分词文章去重后的词语

 

['一门', '专业', '交叉', '人类', '作为', '使用', '内容', '划分', '复杂', '学习', '学科', '实时', '工具', '提高', '效率', '方式', '有效', '机器学习', '概率论', '模拟', '涵盖', '现有', '理论', '真实', '知识', '算法', '结构', '统计学', '致力于', '计算机', '近似', '进行']

 

# 输出词条列表对应的值化数据
print(data.toarray())

 

次条列表特征抽取后,DF-IDF值如下,其中数值越大说明该词在这篇文章中的重要性越大

 

[[0.4472136  0.4472136  0.4472136  0.         0.         0.
  0.         0.         0.         0.         0.4472136  0.
  0.         0.         0.         0.         0.         0.4472136
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.        ]
 [0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.65205671 0.         0.65205671 0.         0.         0.
  0.3868386  0.         0.         0.         0.         0.
  0.         0.        ]
 [0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.5102266  0.         0.         0.86004001 0.         0.
  0.         0.        ]
 [0.         0.         0.         0.         0.         0.
  0.         0.         0.43002    0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.43002    0.
  0.5102266  0.43002    0.         0.         0.         0.
  0.43002    0.        ]
 [0.         0.         0.         0.30610363 0.30610363 0.30610363
  0.         0.         0.         0.25100935 0.         0.30610363
  0.30610363 0.         0.         0.30610363 0.         0.
  0.         0.30610363 0.         0.         0.         0.30610363
  0.         0.         0.         0.         0.30610363 0.30610363
  0.         0.        ]
 [0.         0.         0.         0.         0.         0.
  0.33288277 0.33288277 0.         0.27296863 0.         0.
  0.         0.33288277 0.33288277 0.         0.33288277 0.
  0.         0.         0.         0.33288277 0.         0.
  0.19748575 0.         0.33288277 0.         0.         0.
  0.         0.33288277]]

 

容易误解的地方说明:

 

源文字数据中,所有文章都放于列表[]内,每篇文章用‘逗号’隔开,本文为了演示效果取用了很少的数据。

 

数据特征处理之文本型数据(特征值化二)TF-IDF


以上就是特征工程里面文本数据数据特征提取的第二种方法TF-IDF,希望此文对你有所帮助!

 

更多精彩内容请关注公众号:

 

【福利】pycharm、idea、全家桶正版激活

数据特征处理之文本型数据(特征值化二)TF-IDF

作者:bear, 转载或复制请以 超链接形式 并注明出处 数据与编程之美
原文地址:《数据特征处理之文本型数据(特征值化二)TF-IDF》 发布于2020-12-31

分享到:
赞(1) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

一碗牛肉面
鼓励站长分享更多学习经验、教程、学习资源。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册