spark 新闻相识度计算
/** * Created by zxl on 2016/5/5. * 余弦相识度计算 */ import java.sql.{Connection, DriverManager, ResultSet} import java.text.SimpleDateFormat import java.util.Date ; import kafka.serializer.StringDecoder import kafka.producer._ import org.apache.log4j.{Level, Logger} import org.apache.spark._ import org.apache.spark.ml.feature.{HashingTF, IDF, Tokenizer} import org.apache.spark.mllib.classification.NaiveBayes import org.apache.spark.mllib.linalg.{Vector, Vectors,SparseVector =>SV} import org.apache.spark.mllib.regression.LabeledPoint import org.apache.spark.sql.Row import org.apache.spark.streaming._ import org.apache.spark.streaming.kafka._ import org.apache.spark.sql.Row; object Cossimi {case class RawDataRecord(category:String,text:String)def main(args: Array[String]) {val sparkConf = new SparkConf().setAppName("cos")val sc = new SparkContext(sparkConf)val sqlContext = new org.apache.spark.sql.SQLContext(sc)import sqlContext.implicits._Logger.getRootLogger.setLevel(Level.ERROR)var srcRDD = sc.textFile("/home/spark/art.txt").map {x =>var data = x.split(",")RawDataRecord(data(0), data(1))}var trainingDF = srcRDD.toDF()trainingDF.take(2).foreach(println);
var tokenizer = new Tokenizer().setInputCol("text").setOutputCol("words")var wordsData = tokenizer.transform(trainingDF)println("output1:")//===============hashing tf ============= var hashingTF = new HashingTF().setNumFeatures(500000).setInputCol("words").setOutputCol("rawFeatures") var featurizedData = hashingTF.transform(wordsData) var idf = new IDF().setInputCol("rawFeatures").setOutputCol("features")var idfModel = idf.fit(featurizedData) val rescaledData = idfModel.transform(featurizedData)//val content_list = collection.mutable.ListBuffer[String]() val content_list = rescaledData.select($"category", $"features").collect().toListprintln("out put 2") val docSims = rescaledData.select($"category", $"features").map {case Row(id1, idf1) =>import breeze.linalg._val sv1 = idf1.asInstanceOf[SV]val bsv1 = new SparseVector[Double](sv1.indices, sv1.values, sv1.size)content_list.filter(_(0) != id1).map { case Row(id2, idf2) =>val sv2 = idf2.asInstanceOf[SV]val bsv2 = new SparseVector[Double](sv2.indices, sv2.values, sv2.size)val cosSim = bsv1.dot(bsv2).asInstanceOf[Double] / (norm(bsv1) * norm(bsv2))(id1, id2, cosSim)}}//docSims.take(5).foreach(println) println("insert mysql ......")docSims.foreach{cos_list =>cos_list.sortWith( _._3 >_._3).take(5).foreach{x =>val news_id = x._1val t_id = x._2val value = x._3insert_sim(news_id.toString,t_id.toString,value)}}sc.stop()}
spark 新闻相识度计算相关推荐
- 【推荐系统】新闻相似度计算
文章目录 前言 一.新闻相似度计算思路 1.效果展示 2.实现思路 3.杰卡德相似系数 二.代码实现 1.分词 2.相似度计算 前言 通过结巴进行分词,通过杰卡德相似系数来计算新闻的相似程度,相似度大 ...
- 腾讯TDW千台Spark千亿节点对相似度计算
本文将介绍腾讯TDW使用千台规模的Spark集群来对千亿量级的节点对进行相似度计算这个案例,通过实验对比,我们优化后的性能是MapReduce的6倍以上,是GraphX的2倍以上. 相似度计算在信息检 ...
- TDW千台Spark千亿节点对相似度计算
相似度计算在信息检索.数据挖掘等领域有着广泛的应用,是目前推荐引擎中的重要组成部分.随着互联网用户数目和内容的爆炸性增长,对大规模数据进行相似度计算的需求变得日益强烈.在传统的MapReduce框架下 ...
- java算法(1)---余弦相似度计算字符串相似率
功能需求:最近在做通过爬虫技术去爬取各大相关网站的新闻,储存到公司数据中.这里面就有一个技术点,就是如何保证你已爬取的新闻,再有相似的新闻 或者一样的新闻,那就不存储到数据库中.(因为有网站会去引用其 ...
- 【转】海量数据相似度计算之simhash和海明距离
2019独角兽企业重金招聘Python工程师标准>>> 通过 采集系统 我们采集了大量文本数据,但是文本中有很多重复数据影响我们对于结果的分析.分析前我们需要对这些数据去除重复,如何 ...
- gensim在“中文查找(关键词)“与“txt文本“之间做相似度计算(返回最相似的文本)
本文目的 搜索关键词,返回最相关的txt文本内容(模仿搜索引擎) 网上的例子都是一个list里面放入几句话,然后输入关键词去计算相似度. 无法在实际中应用,例如 http://blog.csdn.ne ...
- word2vec词向量训练及中文文本类似度计算
本文是讲述怎样使用word2vec的基础教程.文章比較基础,希望对你有所帮助! 官网C语言下载地址:http://word2vec.googlecode.com/svn/trunk/ 官网Python ...
- LSF-SCNN:一种基于 CNN 的短文本表达模型及相似度计算的全新优化模型
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本篇文章是我在读期间,对自然语言处理中的文本相似度问题研究取得的一点小成果.如果你对自然语言处理 (natural language proc ...
- Word2Vec与文章相似度--相似度计算
2.7.4.2 相似度计算 目的:计算18号Python频道的文章之间相似度 步骤: 1.读取数据,进行类型处理(数组到Vector) 2.BRP进行FIT 读取数据,进行类型处理(数组到Vector ...
最新文章
- 项目: 双人反弹球游戏
- Smzzl with Greedy Snake 模拟-贪心-阅读理解
- Angular 动态控制 aside 标签显示和隐藏的一个例子
- iOS 动画绘制线条颜色渐变的折线图
- oracle sql 查询优化器,基于ORACLE成本优化器的SQL查询优化分析与应用
- Destoon源数据库配置文件在哪_数据库监控软件Lepus安装部署详解
- mysql5.7 undo_MySQL 5.7新特性之在線收縮undo表空間
- 为vs2008添加Mobile Web Forms模板
- Adobe软件中PS、PR、AE、AI软件如何安装【附软件下载】
- 创蓝253云通讯paas平台PHP短信接口demo分享
- 基于c语言的学生档案管理系统设计实现
- wpa_supplicant, wpa_cli用法
- Permission denied: user=dr.who, access=READ_EXECUTE, inode=/user/root:root:supergroup:drwx------
- Navicat中如何调试存储过程
- WVGA与HVGA、QVGA详细解答
- 牛顿(Newton)插值法的Matlab实现
- layabox 打印_layaair-doc/Chinese/LayaNative/LayaDcc_Tool at master · layabox/layaair-doc · GitHub...
- [NOIP2014]珠心算测验 T1
- scrap安装——Windows
- AndroidStudio运行报错 apk file does not exist on dis
热门文章
- Unity 使场景物体始终面向摄像机
- Vue环境搭建及第一个hello world
- 大二计算机专业可以进实验室吗,计算机科学论坛--关于北大CS报考、复试以及实验室综合答疑,08考生必看[原创]...
- crawler爬虫抓取数据
- 海思YOLOv3 wk模型在nnie设备上面推理
- 十三届双11,一部电商流量变迁史
- 长方体体积 java程序_Java技术解决 长方体体积 问题
- 以NLP技术为核心,容联云对话式AI平台入选《2022中国对话式AI采购指南》
- 计算机组成原理二:系统总线——知识点和知识结构图
- 微信小程序校验网络连接是否正常,无网络时给出提示