sparl ML使用TFIDF
来源:互联网 发布:linux中vi保存退出 编辑:程序博客网 时间:2024/05/21 11:28
TFIDF将文本向量化,用于后期的特征使用
1.创建DF
// $example on$val sentenceData = sqlContext.createDataFrame(Seq( (0, "Hi I heard about Spark"), (0, "I wish Java could use case classes"), (1, "Logistic regression models are neat"))).toDF("label", "sentence")
JSON格式:
{"label":0,"sentence":"I wish Java could use case classes"}
{"label":1,"sentence":"Logistic regression models are neat"}
{"label":0,"sentence":"Hi I heard about Spark"}
2.由于我们需要处理的是term词条,所以先tokenizer
val tokenizer = new Tokenizer().setInputCol("sentence").setOutputCol("words")val wordsData = tokenizer.transform(sentenceData)
3.接着求TF即词条的频率
val hashingTF = new HashingTF() .setInputCol("words").setOutputCol("rawFeatures").setNumFeatures(20)val featurizedData = hashingTF.transform(wordsData)
格式:
scala> featurizedData.select("rawFeatures").show
+--------------------+
| rawFeatures|
+--------------------+
|(20,[5,6,9],[2.0,...|
|(20,[3,5,12,14,18...|
|(20,[5,12,14,18],...|
+--------------------+
格式2:
scala> res36.take(5).foreach(println)
[(20,[5,6,9],[2.0,1.0,2.0])]
[(20,[3,5,12,14,18],[2.0,2.0,1.0,1.0,1.0])]
[(20,[5,12,14,18],[1.0,2.0,1.0,1.0])]
4.获取iDF
val idf = new IDF().setInputCol("rawFeatures").setOutputCol("features")val idfModel = idf.fit(featurizedData)
5.得到TF-iDF
val rescaledData = idfModel.transform(featurizedData)rescaledData.select("features", "label").take(3).foreach(println)scala>rescaledData.select("features", "label").take(3).foreach(println)[(20,[5,6,9],[0.0,0.6931471805599453,1.3862943611198906]),0][(20,[3,5,12,14,18],[1.3862943611198906,0.0,0.28768207245178085,0.28768207245178085,0.28768207245178085]),0][(20,[5,12,14,18],[0.0,0.5753641449035617,0.28768207245178085,0.28768207245178085]),1]
0 0
- sparl ML使用TFIDF
- Python如何使用tfidf
- TFIDF
- Tfidf
- TFIDF
- 使用sklearn实现tfidf特征计算
- java 实现 计算tfidf 使用ik分词
- 使用scikit-learn tfidf计算词语权重
- spark ML 使用Word2Vec
- Pyhton 基于scikit的TFIDF特征抽取如何使用
- ml
- ML
- ML
- ML
- ML
- TFIDF算法
- 使用spark ml pipeline进行机器学习
- 使用spark ml pipeline进行机器学习
- 一起talk C栗子吧(第一百五十三回:C语言实例--socket通信地址系统调用一)
- java中内部类访问局部变量为什么要定义局部变量为final
- TCP协议与UDP协议的区别
- 【JAVA】四 JAVA集合 Collection ArrayList LinkedList
- Programming Scala 第6章 demo04 重用函数值
- sparl ML使用TFIDF
- JAVA之旅(五)——this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块
- 动态规划9之1014
- LinkedList、ArrayList、Vector对比
- android开发中常用颜色对应的值
- Programming Scala 第6章 demo05 参数的位置记法
- 畅通工程续(最短路)
- 【JZOJ 3401】Pty爬山
- 关于开机广播无法接受的问题