【大数据技术】Spark MLlib机器学习特征抽取 TF-IDF统计词频实战(附源码和数据集)

2023-11-17

需要源码和数据集请点赞关注收藏后评论区留言私信~~~

特征抽取 TF-IDF

TF-IDF是两个统计量的乘积,即词频(Term Frequency, TF)和逆向文档频率(Inverse Document Frequency, IDF)。它们各自有不同的计算方法。

TF是一个文档(去除停用词之后)中某个词出现的次数。它用来度量词对文档的重要程度,TF越大,该词在文档中就越重要。IDF逆向文档频率,是指文档集合中的总文档数除以含有该词的文档数,再取以10为底的对数。

TF-IDF的主要思想是如果某个词或短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为这个词或者短语具有很好的类别区分能力

具体实现步骤如下

(1)新建MAVEN项目,名称为spark-mlllib

(2)数据准备。新建一个文本文件,包含四行数据,内容如下:

hello mllib hello spark
goodBye spark
hello spark
goodBye spark

(3)新建Scala类,功能是计算单词的TF –IDF

创建TF计算实例

val hashingTF = new HashingTF()

//计算文档TF值

  val tf = hashingTF.transform(documents).cache()
    println("计算单词出现的次数结果为:")
    tf.foreach(println)

//创建IDF实例并计算

val idf = new IDF().fit(tf)

//计算TF_IDF词频

val tf_idfRDD: RDD[linalg.Vector] = idf.transform(tf) 

统计结果如下

 部分代码如下

package com.etc
import org.apache.spark.mllib.feature.{HashingTF, IDF}
import org.apache.spark.mllib.linalg
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object TF_IDF {
  def main(args: Array[String]) {
    //创建环境变量
    val conf = new SparkConf()
      //设置本地化处理
      .setMaster("local")
      //设定名称
      .setAppName("TF_IDF") //设定名称
    val sc = new SparkContext(conf)
    //设置日志级别
    sc.setLogLevel("error")
    //读取数据并将句子分割成单词
    val documents = sc.textFile("a.txt")
      .map(_.split(" ").toSeq)
    println("分词的结果为:")
    documents.foreach(println)
    //创建TF计算实例
    val hashingTF = new HashingTF()

    //计算文档TF值
    val tf = hashingTF.transform(documents).cache()
    println("计算单词出现的次数结果为:")
    tf.foreach(println)
    //创建IDF实例并计算
    val idf = new IDF().fit(tf)
    //计算TF_IDF词频
    val tf_idfRDD: RDD[linalg.Vector] = idf.transform(tf) //计算TF_IDF词频
    println("计算TF_IDF值:")
     tf_idfRDD.foreach(println)


  }
}

创作不易 觉得有帮助请点赞关注收藏~~~

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

【大数据技术】Spark MLlib机器学习特征抽取 TF-IDF统计词频实战(附源码和数据集) 的相关文章

  • 蒙牛×每日互动合作获评中国信通院2023“数据+”行业应用优秀案例

    当前在数字营销领域 品牌广告主越来越追求品效协同 针对品牌主更注重营销转化的切实需求 数据智能上市企业每日互动 股票代码 300766 发挥自身数据和技术能力优势 为垂直行业的品牌客户提供专业的数字化营销解决方案 颇受行业认可 就在不久前举
  • 神州信息一表通监管合规系统

    什么是 一表通 国家金融监督管理总局为进一步建立健全数据统计监管体系 规范数据报送指标体系 明确检测数据规则 而推行建立的一套新体系监管报送方式 提升校验准确性和信息安全性 近期 国家金融监督管理总局更是进一步加大推动 一表通 的实行试点范
  • 深度强化学习的核心算法:从QLearning到Deep QNetwork

    1 背景介绍 深度强化学习 Deep Reinforcement Learning DRL 是一种通过智能体与环境的互动学习的方法 它可以帮助智能体在没有明确指导的情况下学习如何执行最佳的动作 从而最大化收益 深度强化学习结合了强化学习 R
  • 心灵与计算机:解密情感处理

    1 背景介绍 情感处理是人工智能领域中一个重要的研究方向 它旨在使计算机能理解 识别和处理人类的情感 情感处理的主要应用包括情感分析 情感识别 情感挖掘等 随着大数据 深度学习和自然语言处理等技术的发展 情感处理技术已经取得了显著的进展 然
  • 基于GPT4+Python近红外光谱数据分析及机器学习与深度学习建模

    详情点击链接 基于ChatGPT4 Python近红外光谱数据分析及机器学习与深度学习建模教程 第一 GPT4 基础 1 ChatGPT概述 GPT 1 GPT 2 GPT 3 GPT 3 5 GPT 4模型的演变 2 ChatGPT对话初
  • 用CHAT如何写大学生会计综合模拟实训报告

    CHAT回复 标题 大学生会计综合模拟实训报告 一 前言 随着信息化时代的发展 现代会计工作不再只依赖手动运算和记录 而是更加倚重电脑软件系统的配合运用 因此 对我们大学生来说 把握会计理论知识的同时 积极掌握相关的实践应用技能变得非常重要
  • 问CHAT很繁琐的问题会不会有答案呢?

    问CHAT 什么已有的基于极值理论的极端温度重现期主要针对极端高温事件 对极端低温事件研究较少 CHAT 回复 为这主要可能是由于以下几个原因 1 气候变化与全球变暖 当前 全球变暖和气候变化的问题备受关注 这导致科研者更加关注极端高温事件
  • 什么是充放电振子理论?

    CHAT回复 充放电振子模型 Charging Reversal Oscillator Model 是一种解释ENSO现象的理论模型 这个模型把ENSO现象比喻成一个 热力学振荡系统 在这个模型中 ENSO现象由三个组成部分 充电 Char
  • 扬帆证券:突发利好!外资重大转变,A股收到多份喜报

    A股财报季 利好音讯密集传来 1月16日晚间 A股多家上市公司披露了成绩预告 其间成绩预增 扭亏等利好公告数量占比超80 其间 普瑞眼科公告 估计2023年净赢利同比添加高达1163 98 1285 51 别的 多家上市公司公告称 估计20
  • 渗透测试常用工具汇总_渗透测试实战

    1 Wireshark Wireshark 前称Ethereal 是一个网络分包分析软件 是世界上使用最多的网络协议分析器 Wireshark 兼容所有主要的操作系统 如 Windows Linux macOS 和 Solaris kali
  • 【毕业设计选题】复杂背景下的无人机(UVA)夜间目标检测系统 python 人工智能 深度学习

    前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度的 对本科同学来说是充满挑战 为帮助大家顺利通过和节省时间
  • AI在广告中的应用——预测性定位和调整

    营销人员的工作就是在恰当的时间将适合的产品呈现在消费者面前 从而增加他们购买的可能性 随着时间的推移 营销人员能够深入挖掘越来越精准的客户细分市场 他们不仅具备了实现上述目标的能力 而且这种能力还在呈指数级提升 在AI技术帮助下 现在的营销
  • CorelDRAW2024官方中文版重磅发布更新

    35年专注于矢量设计始于1988年并不断推陈出新 致力为全球设计工作者提供更高效的设计工具 CorelDRAW 滋养并见证了一代设计师的成长 在最短的时间内交付作品 CorelDRAW的智能高效会让你一见钟情 CorelDRAW 全称 Co
  • 史上最全自动驾驶岗位介绍

    作者 自动驾驶转型者 编辑 汽车人 原文链接 https zhuanlan zhihu com p 353480028 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 求职交流 技术交流群 本
  • 两个月进口猛增10倍,买近百台光刻机,难怪ASML不舍中国市场

    据统计数据显示 2023年11月和12月 中国从荷兰进口的光刻机设备同比猛增10倍 进口金额超过19亿美元 让ASML赚得盆满钵满 ASML早前表示中国客户在2023年订购的光刻机全数交付 2023年11月中国进口的光刻机达到42台 进口金
  • 如何使用 Spark Naive Bayes 分类器通过 IDF 进行文本分类?

    我想使用 tf idf 将文本文档转换为特征向量 然后训练朴素贝叶斯算法对它们进行分类 我可以轻松加载没有标签的文本文件 并使用 HashingTF 将其转换为向量 然后使用 IDF 根据单词的重要性对单词进行加权 但如果我这样做 我就会去
  • 不同长度的tf-idf文档

    我在网上搜索了有关在文档长度差异很大的情况下标准化 tf 等级的信息 例如 文档长度从 500 字到 2500 字不等 我发现的唯一标准化讨论是将术语频率除以文档的长度 因此导致文档的长度没有任何意义 不过 这种方法对于标准化 tf 如果有
  • TFIDF 计算混淆

    我在网上找到了以下计算TFIDF的代码 https github com timtrueman tf idf blob master tf idf py 我在函数 def idf word documentList 中添加了 1 这样我就不
  • pyspark中的稀疏向量RDD

    我一直在使用 mllib 的功能通过 Python Pyspark 实现此处描述的 TF IDF 方法 https spark apache org docs 1 3 0 mllib feature extraction html http
  • Spark、pyspark中从TF-IDF到LDA聚类

    我正在尝试对存储在格式键 listofwords 中的推文进行聚类 我的第一步是使用 dataframe 提取单词列表的 TF IDF 值 dbURL hdfs pathtodir file sc textFile dbURL Define

随机推荐

  • Redis基础知识(三):缓存穿透、缓存击穿、缓存雪崩

    文章目录 一 缓存穿透 出现过程 解决方法 二 缓存击穿 出现过程 解决方法 三 缓存雪崩 出现过程 解决方法 我们在项目中大量使用Redis承接海量数据的冲击 但是使用过程中也会遇到一些特殊的情况 这个就是缓存击穿 缓存穿透 缓存雪崩 一
  • 全志H3-----制作刷机包(TF卡)

    开发环境 Ubuntu 14 04 LTS busybox 1 26 2 U boot kernel lichee 全志原厂提供的BSP 1 制作一个 256M 的空白映象文件 你可以制作得更小或更大 dd if dev zero of f
  • JWT 安全及案例实战

    文章目录 一 JWT json web token 安全 1 Cookie 放在浏览器 2 Session 放在服务器 3 Token 4 JWT json web token 4 1 头部 4 1 1 alg 4 1 2 typ 4 2
  • Vue源码分析(Render渲染函数)

    文章目录 Render函数 渲染DOM原理 虚拟DOM Vue整体机制 Render Function API 练习Render函数动态渲染标签 函数组件和状态组件 练习Render函数动态渲染组件 Render函数 渲染DOM原理 在前面
  • SGX应用开发入门

    SGX应用开发入门 SGX 及 SDK 应用开发环境简介及搭建 第1部分 SGX应用开发入门 开发第一个 SGX 应用 Hello World 第2部分 SGX应用开发入门 SGX应用开发进阶篇 第3部分 英特尔 Software Guar
  • 周鸿祎力荐|纽约客16000字重磅刊文:区块链是回归互联网本质的唯一希望

    奇虎360创始人周鸿祎曾在朋友圈表示 迄今我认为说的最深入浅出最明明白白的一篇文章 没有大道理 没有空洞的口号 没有吓唬人的概念 这才是学习区块链技术最需要的基础 来源 纽约客 杂志 本文首发于机器之能 编译 张震 Edison Rik 这
  • Qt5中使用C++调用Python

    最近想把C 和Python一起混合编程 故作此文记录整个过程中的 坑 首先打开QtCreator 新建一个QtConsoleApplication 建立好了之后 在你的配置文件下面添加包含目录和库目录 INCLUDEPATH I D Pro
  • cass道路设计教程_cass道路设计

    1 生成里程文件 工程应用 菜单 生成里程文件 由纵断面线生成 功能 由道路中桩线即纵断面线生成里程文件 操作过程 1 在图上画出的道路纵断面线 必须是复合线 2 点取 由纵断面线生成 命令下的 新建 3 提示 选择纵断面线 请选择 1 中
  • Linux-0.12内核sleep_on函数分析

    sleep on用于进程休眠 原型如下 void sleep on struct task struct p 当进程访问某个互斥资源时 如果资源被另外进程占用 当前进程就需要休眠 假设资源的结构如下 struct res struct ta
  • HD DVD技术概要

    中文译者 陆其明 徐成哲原文标题 HD DVD A technical introduction原文版权 DVD论坛 http www dvdforum org 原文链接 http www dvdforum org images Forum
  • 伸手党福利文,Python入门大全

    文章目录 一 自学时间安排 Day1 Day15 Python语言基础 Day16 Day20 Python语言进阶 Day31 Day35 Linux操作系统 Day35 Day40 数据库基础和进阶 Day41 Day55 实战Djan
  • 编写函数对字符串进行反向排列

    1 题目 编写一个函数 reverse string char string 递归实现 实现 将参数字符串中的字符反向排列 不是逆序打印 要求 不能使用C函数库中的字符串操作函数 比如 char arr abcdef 逆序之后数组的内容变成
  • Sqlite数据库增删改查

    1 应用部分 package com example language import androidx appcompat app AppCompatActivity import android content ContentValues
  • 超级全的停用词整理

    一切看似逝去的 都不曾离开 你所给与的爱与温暖 让我执着地守护着这里 尤而小屋 一个温馨的小屋 小屋主人 一手代码谋求生存 一手掌勺享受生活 欢迎你的光临 人民 末 末 啊 阿 哎 哎呀 哎哟 唉 俺 俺们 按 按照 吧 吧哒 把 罢了 被
  • Vim编辑器使用

    一 Vim 编辑器简介 vi 编辑器是 Linux 里最基本的文本编辑器 系统自动安装了 vi 而 vim 是 vi 的加强版 vi 不显示高亮颜色语法 vim 能显示高亮颜色语法 如果系统没有自动安装 vim 需自行下载安装 二 Vim
  • Python实现登录接口测试

    一 准备数据 1 获得测试路径 即URL 2 准备测试数据 获取方式 二 可以先使用postman测试 调通后再使用Python实现 三 编写Python
  • MATLAB绘图函数fplot详解

    MATLAB绘图函数fplot详解 一 fplot基本语法 fplot不同于plot 主要用来根据函数表达式和自变量所属区间来直接绘制函数曲线 不需要给出像plot需要给出的自变量和因变量的数组 因此当函数表达式已知的情况 使用fplot绘
  • 倚天服务器里怎么修改装备,倚天私服完整GM命令

    倚天私服完整GM命令 本文出处 网游动力作者 本站发布时间 2009 07 26阅读次数 save命令 save XXX 手动保存玩家数据 save all 手动保存当前地图所有玩家数据 a命令 a ymir 999 调整ymir等级为99
  • 观察者模式和发布订阅模式

    观察者模式与发布订阅模式的区别 1 观察者模式中只有观察者和被观察者 发布订阅模式中有发布者 订阅者 调度中心 2 观察者模式是被观察者发生变化时自己通知观察者 发布订阅模式是通过调度中心来进行分布订阅操作 vue2中响应式数据就是由Obj
  • 【大数据技术】Spark MLlib机器学习特征抽取 TF-IDF统计词频实战(附源码和数据集)

    需要源码和数据集请点赞关注收藏后评论区留言私信 特征抽取 TF IDF TF IDF是两个统计量的乘积 即词频 Term Frequency TF 和逆向文档频率 Inverse Document Frequency IDF 它们各自有不同