NLP扎实基础3:TF-IDF文本特征提取

2023-10-26

TF-IDF简介

在这里插入图片描述

TF-IDF使用流程

见上图,步骤如下:

  1. 根据全部语料每个词对应的TF-IDF值
  2. 每个句子对应全部语料的one-hot编码,将TF-IDF编码作为特征

Python代码

流程很简单,就不复现了,这里有两个使用的方式,第一种是梳理整个流程,第二种是工程上能够简化代码的写法:

def get_text():
    sentence_list = [  # 假设这是全部的训练语料
        "nlp drives computer programs that translate text from one language to another",
        "nlp combines computational linguistics rule based modeling of human language with statistical",
        "nlp model respond to text or voice data and respond with text",
    ]
    return sentence_list


def main():
    from sklearn.feature_extraction.text import TfidfTransformer
    from sklearn.feature_extraction.text import CountVectorizer

    print("逐个流程梳理:")
    sentence_list = get_text()
    # instantiate CountVectorizer()
    count_vectorizer = CountVectorizer()
    word_count_vector = count_vectorizer.fit_transform(sentence_list)  # 1. 计算词频TF
    tfidf_transformer = TfidfTransformer(smooth_idf=True, use_idf=True)
    tfidf_transformer.fit(word_count_vector)  # 2. 计算 TF-IDF
    # 计算TF-IDF
    tf_idf_vector = tfidf_transformer.transform(word_count_vector)  # 获得全部语料的tf-idf值
    # 开始使用
    print("全部语料:", count_vectorizer.get_feature_names())
    my_sentence = "nlp combines computational linguistics"
    print("转换任意的一个句子:", tfidf_transformer.transform(count_vectorizer.transform([my_sentence])).todense())


def main2():
    print("简写操作:")
    from sklearn.feature_extraction.text import TfidfVectorizer
    sentence_list = get_text()
    tfidf_vectorizer = TfidfVectorizer(use_idf=True)
    tfidf_vectorizer.fit(sentence_list)
    # 使用
    print("全部语料:", tfidf_vectorizer.get_feature_names())
    my_sentence = "nlp combines computational linguistics"
    print("转换任意的一个句子:", tfidf_vectorizer.transform([my_sentence]).todense())


if __name__ == '__main__':
    main()
    main2()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NLP扎实基础3:TF-IDF文本特征提取 的相关文章

随机推荐

  • 基于SSM的海外代购系统设计与实现

    摘 要 近年来 我国的互联网方面发展十分的迅速 短短20年 信息时代就已经展现在了我们的面前 电商 是信息时代中出现的一大产物 电商的发展在很大程度上来说的的确确的方便了我们日常的部分的生活购物行为 从1997年电商的萌芽开始发展直至今日
  • 类的公有类型(public)和私有类型(private)

    数据成员可以为公有 函数成员也可以为私有 如果数据成员为公有 那么在对象的作用域内的任何函数都可以通过对象名使用该数据成员 如果函数成员为公有 那么该函数成员只能被公有的函数通过对象名调用
  • python二元函数图像在线绘制_“绘图,让科学生动起来”:Python-matplotlib绘图(多元函数拟合-3D绘图专题)...

    作者简介 85后一名分析化学工作者及科学爱好者 深爱着北京的老北京人 爱好运动 科学 旅行 个人微信公众号 科学是什么东东 欢迎关注 搭建python matplotlib绘图平台的四个要素是什么 它们是 python软件主体 pip库管理
  • ReentrantLock 源码分析

    ReentrantLock简单使用demo如下 Lock lock new ReentrantLock lock lock try 业务逻辑 finally lock unlock 注 获取的锁代码要放到try块之外 防止获得锁代码异常 抛
  • Chrome开发者工具详解

    Chrome开发者工具详解 1 Elements Console Sources面板 Chrome开发者工具面板 面板上包含了Elements面板 Console面板 Sources面板 Network面板 Timeline面板 Profi
  • adb MacBook Pro上使用adb命令:Command not found或者每次使用前要source .bash_profile文件

    前言 adb MacBook Pro上使用adb命令报错 Command not found 或者每次使用前要source bash profile文件 一 解决问题1 在根路径配置 bash profile文件 如果没有 touch ba
  • python-面向对象基础-类属性&实例属性-构造&析构

    一 类的定义 class 类名 类体 class Person object pass 二 类中成员的定义 class Person object 属性 name tom age 18 height 180 方法 def eat self
  • C++堆和栈的区别和联系

    2017年09月16日 10 39 33 阅读数 1605 参考博客地址 http blog csdn net hairetz article details 4141043 http blog csdn net handsomesunsh
  • C#学习之ASP.NET概述

    ASP NET的应用 网络应用程序开发 学习ASP NET的优势 易学 设计人员和后台代码人员专注于自己的工作 原因 ASP NET将HTML页面代码和脚本代码分离 高效地创建大规模的网络应用程序 背景 自从互联网的出现 各种网络开发技术层
  • 关于ehcache使用rmi方式实现分布式缓存时遇到的问题

    业务场景 一个架构较老的系统 由于在正式环境中需要搭建集群环境 目前使用echcache来作为缓存 为了减少代码修改 使用了RMI方式来实现集群 使用了被动发现和注册的方式 配置如下
  • Ansible Lookup

    1 文件内容的读取 hosts all vars contents lookup file etc foo txt tasks debug msg the value of foo txt is contents Note 切记读取的是本地
  • 使用gpt绘制奥特曼

    public class Ultraman extends JPanel public void paint Graphics g Color silver new Color 192 192 192 画头 g setColor Color
  • C语言顺序表中删除值为x的元素

    要求时间复杂度为O n 空间复杂度为O 1 实现代码如下 删除线性表中为x的元素 void deleteX SqList L int x int k 0 for i 0 i
  • 全球及中国工业互联网产业运行态势与布局状况调研报告2022-2028年

    全球及中国工业互联网产业运行态势与布局状况调研报告2022 2028年 修订日期 2022年4月 出版单位 鸿晟信合研究院 对接人员 周文文 报告价格 纸质版6500元 电子版6800元 纸质 电子版7000元 有折扣 内容部分有删减 了解
  • 1、网络隧道技术

    网络隧道技术简介 隧道技术 Tunneling 是一类网络协议 它是一种数据包封装技术 它将原始IP包 其报头包含原始发送者和最终目的地 封装在另外一个数据包 称为封装的IP包 的数据净荷中进行传输 使用隧道的原因是在不兼容的网络上传输数据
  • CVE20190708复现

    一 实验环境 基于虚拟机运行 VMware 1 靶机 ip 192 168 8 2 测试机 192 168 8 3 将两个虚拟机设置于同一个网段中 a 在虚拟网络编辑器中 将VMnet0采用桥接模式 并桥接到网线网上 b 设置win7为动态
  • 动态规划浅析

    leetcode53 最大子序和 leetcode62 不同路径 leetcode300 最长递增子序列 动态规划要解决的都是一些问题的最优解 即从很多解决问题的方案中找到最优的一个 当我们在求一个问题最优解的时候 如果可以把这个问题分解成
  • npm install 错误 安装 chromedriver 失败的解决办法

    npm 安装 chromedriver 失败的解决办法 npm 安装 chromedriver 时 偶尔会出错 错误提示类似于 npm ERR chromedriver 2 35 0 install node install js 经分析发
  • cicd 07--构建前后端一体化自动化发布流程

    cicd 07 构建前后端一体化自动化发布流程 1 介绍 2 构建过程 2 1 功能说明 2 2 jenkins gitlab 配置 2 3 测试结果 3 注意事项 4 说明 1 介绍 cicd 04 构建自动化发布流程 介绍了一种通用的自
  • NLP扎实基础3:TF-IDF文本特征提取

    TF IDF简介 TF IDF使用流程 见上图 步骤如下 根据全部语料每个词对应的TF IDF值 每个句子对应全部语料的one hot编码 将TF IDF编码作为特征 Python代码 流程很简单 就不复现了 这里有两个使用的方式 第一种是