首页 文章 精选 留言 我的

精选列表

搜索[Windows应用SDK],共10000篇文章
优秀的个人博客,低调大师

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

转自: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| 本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/7813835.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.2 正确理解设计的含义

1.2正确理解设计的含义 虽然我们常常把“架构”和“设计”放在一起,总称为“架构设计”,其实从严格的意义上来说,“架构”和“设计”是两个概念,这里不是故意玩文字的游戏,而是两者的关注点确实是不一样的。 1.2.1设计的重要性 设计主要是指一个思考和求证的过程。在这个思考的过程中,针对某个需要解决的问题,提出一些可行方案,同时给出相应的计划。 一般来说,软件就是用来解决某个问题的,因为这个问题比较大,或者比较复杂,所以往往不得不分解,“分而治之”。大的问题不断被分解,最终成为一个个可以解决的小问题。设计指明了如何解决一个个的问题,并提出了方案和计划,只有这样,才能最后确保整个软件的问题被解决,也才能确保软件按照计划来进行。 1.2.2架构和设计的关系 正如之前所说,架构和设计是两个不同的概念,它们也出现在不同的阶段。当软件系统的架构确定之后,设计就开始了。 架构与系统的业务需求往往是紧密联系的,理论上来说,架构不是很关注系统最后搭建在哪个技术平台上(例如:或是J2EE上,或是.NET上),但实际上,很多时候我们在考虑架构创建的同时,也考虑了系统将要运行的技术平台。 设计是与系统的实现相关的。设计将架构所关注的那些高层抽象的需求与具体的技术实现联系起来,从而考虑如何实现系统所需要的稳定性、安全性,甚至是考虑采用哪种模式等。在设计阶段,还要决定在以后开发的过程中应采用哪种实现方法论进行开发(例如,是TDD,还是DDD或是BDD等)。 用一张图来说明架构和设计的相互关系,如图1-5所示。 图1-5架构与设计的关系图 在图1-5中,业务需求是系统架构的决定性因素,软件设计和开发在架构确定之后开始进行,而开发过程又是在设计的基础上进行的。 为了进一步说明架构和设计的关系,加深读者的理解,下面就以一个汽车制造的例子类比阐述之。 汽车厂的机械工程师(可以理解为机车行业的架构师)为一款新型的汽车设计了一个蓝图,我们可以将这个蓝图理解为机械工程师为汽车创建的架构。在这个蓝图中,包含了一些高层抽象的需求: q汽车的规格、大小和各个组成部分。 q汽车引擎的容量。 q汽车的类型。 q最大的承载能力。 机械工程师在蓝图中标明了设计和生产汽车所需要的一些环境,同时也包含了一些约束条件,例如生产汽车的预算和时间期限等。但是在蓝图中没有包含设计引擎的细节,也不包含会使用什么样的钢材,使用什么的轮胎等。而这些都将会由汽车设计工程师来决定,这些工程师基于公司现有的生产能力和技术来选择最佳的策略,以确保他们的选择可以实现蓝图的需求。 汽车的生产流水线将会按照汽车工程师的设计和指定的技术来进行,这个过程将包含轧钢、选材、选择合适的生产设备、组装各个零部件,烘烤油漆,安全测试等。 图1-6把汽车的生产过程和软件开发过程做了个对比映射。 图1-6工业生产与软件开发对比图 在设计过程中,有时候一个架构蓝图有多个可行的实现方案,而这些方案又各有利弊,那么设计人员必须在满足蓝图需求的前提下,选择尽可能地满足系统相关利益人关注点的方案。如图1-7所示。 图1-7架构蓝图实现 当当网: http://product.dangdang.com/product.aspx?product_id=22574513 京东地址: http://book.360buy.com/10893935.html 卓越地址: http://www.amazon.cn/mn/dp/B006NS2N0S 本文转自yanyangtian51CTO博客,原文链接:http://blog.51cto.com/yanyangtian/749112 ,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册