
机器学习
九指码农
生活不止眼前的苟且。
展开
-
spark-streaming使用spark-ML模型实时预测
不得不说Spark是一款优秀的计算引擎,继承Spark-ML、Spark-Graphx机器学习和图计算框架,Spark-ML一般用于离线分析和挖掘,生成模型。如果我们把模型保存在HDFS,需要在实时计算里面使用提前训练好的模型,解决方案如下:1、通过转换序列化方式,把模型转换成可以被其他语言调用的方式,如:java、python2、在spark-streaming中使用具体读取kafak的配置信息和保证EOS的不在这里体现,主要体现如何使用Spark-ML训练好的模型,具体代码如下:val sp原创 2020-05-26 17:59:40 · 1954 阅读 · 1 评论 -
spark mllib CountVectorizer源码解析
CountVectorizer和CountVectorizerModel旨在通过计数来将一个文档转换为向量。当不存在先验字典时,Countvectorizer可作为Estimator来提取词汇,并生成一个CountVectorizerModel。该模型产生文档关于词语的稀疏表示,其表示可以传递给其他算法如LDA。 在fitting过程中,countvectorizer将根据语料库中的词频排序从高到...原创 2019-08-20 10:47:14 · 638 阅读 · 0 评论 -
spark mllib HashingTF解析
在处理文本数据,尤其是自然语言处理的场景中,hashingTF使用的比较多;Mllib使用hashing trick实现词频。元素的特征应用一个hash`函数映射到一个索引(即词),通过这个索引计算词频。这个方法避免计算全局的词-索引映射,因为全局的词-索引映射在大规模语料中花费较大。但是,它会出现哈希冲突,这是因为不同的元素特征可能得到相同的哈希值。为了减少碰撞冲突,我们可以增加目标特征的维...原创 2019-08-19 20:49:56 · 5445 阅读 · 0 评论 -
那些年用过的时间衰减函数
在我们日常的应用中时间衰减函数无处不在,比如避免出现犹太反应(强者愈强,弱者愈弱)各种排行榜;通常我们希望某些指标如文章热度、电影评分随着时间的漂移越来越低或者随着时间的衰减出现一个系数能拟合这一过程,比较出名的就是牛顿冷却定律。一、刚开始接触时间衰减,是在使用elasticsearch的过程中对function_score函数的使用function_score支持的衰减函数有三种,分别是 l...原创 2019-07-17 21:07:06 · 23514 阅读 · 0 评论 -
Spark LDA
spark1.4版本的LDA原文比较简单,下面主要是以翻译官网为主。理论部分 LDA是一个主题模型,它能够推理出一个文本文档集合的主题。LDA可以认为是一个聚类算法,原因如下:主题对应聚类中心,文档对应数据集中的样本(数据行) 主题和文档都在一个特征空间中,其特征向量是词频向量 跟使用传统的距离来评估聚类不一样的是,LDA使用评估方式是一个函数,该函数基于文档如何生成的统计模型。 ...原创 2018-02-28 18:00:06 · 570 阅读 · 0 评论 -
文本分类-fastText
一、FastText架构 1. fastText 原理fastText 方法包含三部分:模型架构、层次 Softmax 和 N-gram 特征。下面我们一一介绍。1.1 模型架构fastText 模型架构如下图所示。fastText 模型输入一个词的序列(一段文本或者一句话),输出这个词序列属于不同类别的概率。序列中的词和词组组成特征向量,特征向量通过线性变换映射到中间层,中间层再映射到标签。fa转载 2017-12-23 15:39:26 · 1038 阅读 · 0 评论 -
java tf-idf提取关键字
最近在研究nlp,nlp第一步就是分词,目前开源的工具中,java的有中科院的分词工具nlpir、还有word分词器,ansj_seg等,python的比较火的jieba,ansj_seg5.x版本之后提供了提取关键字的方法,jieba也提供了提取关键字的方法。 提取关键字比较常用的算法有tf-idf、textrank。其中tf-idf是统计词频和逆文档词频,textrank是基于pagerank原创 2017-12-07 23:04:11 · 4292 阅读 · 2 评论 -
java 正则去除中文标点符号
在作文本分析,尤其是分词的时候,我们需要把不需要的标点符号去除,防止在词转向量的时候,把中文符号添加进去。"[\\pP+~$`^=|<>~`$^+=|<>¥×]""[\\p{P}+~$`^=|<>~`$^+=|<>¥×]"我使用的是ansj分词器,其5.x版本有提供Recognition接口,用于在分词的时候剔除不需要的,比如剔除停用词、标点符号,根据词性剔除一批词,也支持正则表达式,很强大。原创 2017-08-20 11:03:38 · 3754 阅读 · 0 评论 -
spark-knn的简易实现
spark-knn,spark是一个很优秀的分布式计算框架,本文实现的knn是基于欧几里得距离公式实现的,下面开始起简单的实现,可能有多问题希望大家能够给指出来。 Logger.getLogger("org.apache.spark").setLevel(Level.WARN) Logger.getLogger("org.eclipse.jetty.server").setLevel(原创 2017-02-06 15:04:52 · 2444 阅读 · 0 评论 -
K最近邻(kNN,k-NearestNeighbor)
KNN最邻近规则,主要应用领域是对未知事物的识别,即判断未知事物属于哪一类,判断思想是,基于距离计算公式(欧几里得定理,余弦定理(文本分析)),判断未知事物的特征和哪一类已知事物的的特征最接近; K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本原创 2017-02-06 13:57:16 · 974 阅读 · 0 评论 -
机器学习-贝叶斯分类
1、分类问题综述 对于分类问题,其实谁都不会陌生,说我们每个人每天都在执行分类操作一点都不夸张,只是我们没有意识到罢了;有一次出差,出差经常加班到深夜,打车回宾馆,刚上车,司机师傅说了句,哥几个是程序员吧,我们几个非常诧异,他是怎么看出来的,ps:当时感觉特别尴尬。这其中就涉及到了分类,司机师傅是按照自己的经验得出的结论,分类无非也是从训练样本中学习经验,然后根据训练出的模型进行分类。原创 2017-01-10 23:19:52 · 559 阅读 · 0 评论 -
文本分析之TF-IDF
1、定义: TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜寻引擎应用,作为文件与用原创 2017-01-10 14:08:40 · 2000 阅读 · 0 评论