前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >文本型数据的向量化:TF-IDF

文本型数据的向量化:TF-IDF

作者头像
用户1171305
发布2017-12-28 11:28:36
1.7K0
发布2017-12-28 11:28:36
举报
文章被收录于专栏:成长道路成长道路

1.对于文本型数据的分类处理(或者其他的处理),根据ik和jcseg等分词器先对它们进行分词处理之后,大家都知道,计算机是处理不了汉字的,对于文本型的词我们如何才能让计算机处理呢?我们可以通过TF-IDF将文本型的数据向量化。对于TF-IDF的概念我就不再阐述,网上的资源非常多,这里我主要来看看是如何实现的。

2.测试数据的准备(pca.txt)

1,纵坐标 是 该词 在该 文章 中 的 权重 0,其 出发点 是 一个词 对于 分类 的 重要性 不但 取决于 其在 整个语料 中 出现 的 概率 0,那么 它 对于 分类 的 重要性 也是 不同 的 1,我们 是 祖国 的 接班人

说明:,前面的是类别,后面的是伪造的一些分词的结构,通过空格分割,具体的一篇文章,可以通过分词器将其分割成这样的。

3.代码实现

LableWords.scala

package com.iflytek.classifier

import java.io.Serializable

case class LableWords(label:String,words:Array[String]) extends Serializable{ }

TestTfIdf.scala

package com.iflytek.tfidf

import org.apache.spark.sql.SparkSession import org.apache.spark.ml.linalg.Vectors import org.apache.spark.ml.feature.HashingTF import org.apache.spark.ml.feature.IDF import com.iflytek.classifier.LableWords import org.apache.log4j.Logger import org.apache.log4j.Level

object TestTfIdf {   def main(args: Array[String]): Unit = {     val sc=SparkSession.builder().master("local").appName("tfidf").getOrCreate()     Logger.getRootLogger.setLevel(Level.OFF)     import sc.implicits._     val dataFile=sc.sparkContext.textFile("E:\\test\\pca.txt", 10)     .map { line => val split=line.split(",")       LableWords(split(0),split(1).split(" ")) }.toDS     val tf=new HashingTF().setInputCol("words").setOutputCol("rawfeatures").setNumFeatures(10000)//10000表示设置的特征数     val tfdata=tf.transform(dataFile)     val idf=new IDF().setInputCol("rawfeatures").setOutputCol("features").fit(tfdata)     val idfdata=idf.transform(tfdata)      idfdata.select("label", "features").foreach { x => println(x.apply(0)+" "+x.apply(1)) }   } }

4.运行结果截图

说明:最左边的是类别(0,1)右边的10000是特征数,就是第一个[]里面的数据是每个词被转换成的数字,范围应该在特征数之间,后面的[]是这个词对应的tfidf的值。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-05-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档