转自:http://www.cnblogs.com/canyangfeixue/p/7227998.html 对于威胁检测算法使用神经网络训练有用!!!TODO待实验

/*** Created by lkl on 2017/7/21.*/
//import com.ibm.spark.exercise.util.LogUtils
//import com.ibm.spark.exercise.util.LogUtils import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classification.MultilayerPerceptronClassifier import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator import org.apache.spark.ml.feature.{IndexToString, StringIndexer, Word2Vec} import org.apache.spark.sql.SQLContext import org.apache.spark.{SparkContext, SparkConf} import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.SQLContext object mllib { final val VECTOR_SIZE = 1000 // def main(args: Array[String]) { // if (args.length < 1) { // println("Usage:SMSClassifier SMSTextFile") // sys.exit(1) // }  def main(args: Array[String]) { val conf = new SparkConf().setMaster("local").setAppName("test") val sc = new SparkContext(conf) val sqlContext = new org.apache.spark.sql.SQLContext(sc) // val role = "jdbc:mysql://192.168.0.37:3306/emotional?user=root&password=123456&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false" // import sqlContext.implicits._ // val df = sc.textFile("hdfs://192.168.0.211:9000/user/hadoop/emotion/SMS.txt").map(line=>(line.split(" ")(0),line.split(" ")(1),line.split(" ")(2),line.split(" ")(3))).toDF("id","innserSessionid","words","value") // df.printSchema() // df.insertIntoJDBC(role, "SMS", true) val sqlCtx =new org.apache.spark.sql.SQLContext(sc) import sqlContext.implicits._// 读取hdfs 数据源,格式如下:以空格隔开,最后一列数字列是分析标题后,人为打上的标签,值是按照情绪程度,值选择于【-1,-0.75,-0.5,-0.25,,0.25,0.50,0.75,1】其中之一。
// 10090 C779C882AA39436A89C463BCB406B838 涨停板,复盘,全,靠,新,股,撑,门面,万科,A,尾盘,封板 0.75
// 10091 519A9C6AD0A845298B0B3924117C0B4F 一,行业,再现,重大,利好,板块,反弹,仍,将,继续 0.75
// 10092 C86CEC7DB9794311AF386C3D7B0B7CBD 藁城区,3,大,项目,新,获,规划证,开发,房企,系,同,一家 0
// 10093 FCEA2FFC1C2F4D6C808F2CBC2FF18A8C 完善,对,境外,企业,和,对外,投资,统计,监测 0.5
// 10094 204A77847F03404986331810E039DFC2 财联社,电报 0
// 10095 E571B9EF451F4D5F8426A1FA06CD9EE6 审计署,部分,央企,业绩,不,实 -0.5
// 10096 605264A2F6684CC4BB4B2A0B6A8FA078 厨卫,品牌,新,媒体,榜,看看,谁家,的,官微,最,爱,卖萌 0.25
val parsedRDD = sc.textFile("hdfs://192.168.0.211:9000/user/hadoop/emotion/SMS.txt").map(line=>{  val a = line.split(" ")  if(a.length == 4 ){    (line.split(" ")(3),line.split(" ")(2).split(","))  }else{    ("","".split(","))  }})
val msgDF = sqlCtx.createDataFrame(parsedRDD).toDF("label","message")    val labelIndexer = new StringIndexer().setInputCol("label").setOutputCol("indexedLabel").fit(msgDF)    val word2Vec = new Word2Vec().setInputCol("message").setOutputCol("features").setVectorSize(VECTOR_SIZE).setMinCount(1)

    val layers = Array[Int](VECTOR_SIZE,250,500,200)    val mlpc = new MultilayerPerceptronClassifier().setLayers(layers).setBlockSize(512).setSeed(1234L).setMaxIter(128).setFeaturesCol("features").setLabelCol("indexedLabel").setPredictionCol("prediction")

    val labelConverter = new IndexToString().setInputCol("prediction").setOutputCol("predictedLabel").setLabels(labelIndexer.labels)

    val Array(trainingData, testData) = msgDF.randomSplit(Array(0.8, 0.2))    val pipeline = new Pipeline().setStages(Array(labelIndexer,word2Vec,mlpc,labelConverter))    val model = pipeline.fit(trainingData)    val predictionResultDF = model.transform(testData)    //below 2 lines are for debug use    predictionResultDF.printSchema    predictionResultDF.select("message","label","predictedLabel").show(30)    val evaluator = new MulticlassClassificationEvaluator().setLabelCol("indexedLabel").setPredictionCol("prediction").setMetricName("precision")    val predictionAccuracy = evaluator.evaluate(predictionResultDF)    println("Testing Accuracy is %2.4f".format(predictionAccuracy * 100) + "%")   // sc.stop

  }}
 

结果如下:

+--------------------+-----+--------------+
|             message|label|predictedLabel|
+--------------------+-----+--------------+
|[价格会, 一飞, 冲天, 神秘,...|  0.5|           0.5|
|[审计署, 部分, 央企, 业绩,...| -0.5|           0.5|
|[广电, 总局, 新浪, 微博, ...| -0.5|           0.5|
|[叶檀, 若, 粤, 港澳湾区, ...| 0.25|           0.5|
|      [万达, 崩, 万科, 起]|    0|           0.5|
|[外汇, 小白, 必, 看, 视频...| 0.25|           0.5|
|[乐视, 回, 应发, 不, 出,...|-0.75|           0.5|
|[万达, 电影, 高开, 1.69...|  0.5|           0.5|
|[万科, A, 股, 6月, 23...| 0.75|           0.5|
|[金价, 周一, 反弹, 扭转, ...|  0.5|           0.5|
|[收评, 两, 市, 震荡, 沪指...| 0.25|           0.5|
|[点睛, 军工, 混改, 加速, ...|  0.5|           0.5|
|[棉花, 日报, 棉花, 短期, ...| 0.25|           0.5|
|[探秘, 巴铁, 试验线, 部分,...|-0.75|           0.5|
|[万达, 复星, 股价, 暴跌, ...|-0.75|           0.5|
|[油价, 迎, 年内, 最, 大,...|-0.25|           0.5|
|[2017年, IPO, 被, 否...|-0.75|           0.5|
|[股, 转, 监事长, 邓映翎, ...| -0.5|           0.5|
|[发改委, 国内, 汽, 柴油, ...|-0.25|           0.5|
|[周报, 明晟, MSCI, 宣布...|  0.5|           0.5|
|[夏季, 达沃斯, 共识, 中国,...|  0.5|           0.5|
|[重磅, 又, 一, 家, 公司,...|-0.75|           0.5|
|[麦格里, 重磅, 警告, OPE...| -0.5|           0.5|
|[韩国, 娱乐, 公司, TO-W...|  0.5|           0.5|
|       [新, 三, 板, 周报]|    0|           0.5|
|[分享, 华尔街, 对, 美国, ...|  0.5|           0.5|
|[盛和, 资源, 2015年, 公...|    0|           0.5|
|[交易, 实况, 黄金, 两, 连...| -0.5|           0.5|
|[徽商, 银行, 内斗戏, 第二,...| -0.5|           0.5|
|[2017, 夏季, 达沃斯, 论...| 0.25|           0.5|

转载于:https://www.cnblogs.com/bonelee/p/7813835.html

spark scala word2vec 和多层分类感知器在情感分析中的实际应用相关推荐

  1. 多层神经元感知器模型_使用多层感知器模型对星系进行分类

    多层神经元感知器模型 Cosmos is an intriguing space to observe and analyse, it is the stronghold for any scienc ...

  2. AI实战:从入门到精通系列——用感知器实现情感分类(一)

    前言 人工智能的第一次高潮始于上世纪50年代.在算法方面,感知器数学模型被提出用于模拟人的神经元反应过程,并能够使用梯度下降法从训练样本中自动学习,完成分类任务. 感知器 感知器算法在上个世纪50-7 ...

  3. 感知器(perceptron)模型分析及实现

    感知器模型分析及实现 1. 感知器模型 2. 几何意义 3. 感知器模型的训练 4. 批处理训练过程 4.1 训练数据的规范化 4.2 批处理感知器算法 实现代码 \qquad 感知器 (percep ...

  4. 感知器及其在python中的实现_感知器及其在Python中的实现

    什么是感知器? 生物神经元示意图 感知器的概念类似于大脑基本处理单元神经元的工作原理.神经元由许多由树突携带的输入信号.胞体和轴突携带的一个输出信号组成.当细胞达到特定阈值时,神经元会发出一个动作信号 ...

  5. 单层感知器python_感知器及其在Python中的实现

    本文涵盖以下主题: 什么是感知器?算法.Python实现.局限性. 什么是感知器? 生物神经元示意图 感知器的概念类似于大脑基本处理单元神经元的工作原理.神经元由许多由树突携带的输入信号.胞体和轴突携 ...

  6. 感知器及其在python中的实现_感知器及其Python实现

    感知器是由美国计算机科学家罗森布拉特(F.Roseblatt)于1957年提出的.感知器可谓是最早的人工神经网络.单层感知器是一个具有一层神经元.采用阈值激活函数的前向网络.通过对网络权值的训练,可以 ...

  7. 【原创推荐】 计算机毕业设计之Python+Spark+LSTM电商爬虫 商品推荐系统 商品评论情感分析 电商大数据 电商推荐系统 大数据毕业设计

    开发技术 Hadoop.Spark.SparkSQL.Python.MySQL.协同过滤算法(基于用户+基于物品).LSTM情感分析.Python爬虫.echarts.阿里云短信接口.支付宝沙箱支付. ...

  8. 多层感知器用实际例子和Python代码进行解释情绪分析

    多层感知器用实际例子和Python代码进行解释情绪分析 多层感知器是一种学习线性和非线性数据之间关系的神经网络. 这是专门介绍深度学习系列的第一篇文章,深度学习是一组机器学习方法,其根源可以追溯到20 ...

  9. 多层感知器的基本特征

    多层感知器的基本特征 Rosenblatt 感知器本质上是一个单层神经网络,这一网络局限于线性可分模式的分类问题.自适应滤波采用了 Widrow 和 Hoff 的 LMS 算法.这一算法也是基于权值可 ...

最新文章

  1. Redis 服务器管理相关命令
  2. xpool, cpool,epoo
  3. [NOIP 2010普及组 No.3] 导弹拦截
  4. Eclipse安装STS插件并解决安装缓慢问题
  5. phpcms后台系统怎么去掉html目录_高标准 Vue+Antd 后台系统VueAntdAdmin
  6. 贪吃蛇c语言代码高难,100多行代码的《贪吃蛇》
  7. 872. Leaf-Similar Trees - LeetCode
  8. 20170810上课笔记
  9. 2021最新前端面试题
  10. 固态硬盘SSD与机械硬盘HDD
  11. 设置ubuntu终端光标开启自动显示
  12. 公众号采集,公众号批量自动采集,微信公众号免费文章采集
  13. Unity3D中 使模型变成变透明
  14. 通过css实现图片过渡放大的效果
  15. 某程序员动了公司祖传代码屎山,半年没改完,惭愧后交辞职报告
  16. EEGLAB系列教程5:数据预处理2(ICA去伪迹)
  17. 桌面图标没有图片的解决方法
  18. python对股票的基本面进行分析_python菜鸟学员如何获取沪深股票基本面数据
  19. 对计算机专业有用的书籍
  20. 项目管理师(高级)论文

热门文章

  1. android开发 获取相册名称_Android开发之获取相册照片和获取拍照照片
  2. centos7安装ftp_python 编译安装
  3. qt中socket通信流程图_使用QT实现简单的tcp/ip通信
  4. python 画云图_【词云图】如何用python的第三方库jieba和wordcloud画词云图
  5. flash读取程序 msp430_MSP430读写擦除FLASH程序
  6. Java程序员必看!2021最新爱奇艺Java社招面试题目
  7. 这些知识点你会吗?redis的分布式布隆过滤器含答案解析
  8. 基于Pytorch再次解析AlexNet现代卷积神经网络
  9. JAVA中NEXTLINE()与NEXT()的区别
  10. 计算机图形什么叫参数连续性,计算机图形学--参数三次插值样条曲线.ppt