
机器学习
花咪
实干,解决一切困难。
展开
-
标签传播的基本原理
图算法应用场景简单实现原创 2021-01-26 16:54:05 · 604 阅读 · 0 评论 -
记录协同过滤相关的系列实验(2)
(一)基于物品端的协同过滤2019-Large-scale Collaborative Filtering with Product Embeddings(二)数据构建训练集构建上, 样本是用户历史的交互数据(正向交互)+ 当前交互数据 + 当前交互数据类型(正向/负向)目的就是找出用户喜欢了什么, 来预测其将喜欢什么。(三)算法实现 def build_model(self): """""" input_seq = layer..原创 2021-01-25 18:21:51 · 238 阅读 · 0 评论 -
记录协同过滤相关的系列实验
推荐的本质:推荐的最终目的就是找到相似的人、相似的物品。进而再进行基于user、item的推荐。未达到这个目的,可以对用户的行为分析(相似行为的人当作相似的人)、基于内容的分析(如用户的各种标签,根据标签匹配度查看相似的人)。但一个推荐系统可能是一个多策略、多场景方法结合体。协同过滤:主要是基于用户和物品的交互行为,进行分析。 传统的协同过滤是基于矩阵分解的。当用户和物品的数据级大了以后,这个方法相当耗时。所以采用了deep的方法。(1)直接dot, 对交互矩阵进行拟合..原创 2021-01-25 18:19:05 · 213 阅读 · 0 评论 -
基于划分的新词发现
该新词发现是在query中的新词。主要的技术点:(1)左右熵、凝固度(2)直接基于划分部分效果(对query的直接划分):目前问题: 对英文不好 , 对低频词不好。processing line : 办公室主任[1, 4, 6]办公室主任processing line : 私家车司机[1, 4, 6]私家车司机processing line : 土建预算员[1, 3, 6]土建预算员processing line : 医院挂号员[1, 3, 6]医院.原创 2021-01-25 17:58:11 · 176 阅读 · 0 评论 -
命名实体识别实践(魔改)
该方案依然是对query的命名实体识别任务,针对该任务设计的实验方案。针对该任务的一些思考:(1)训练时,将字随机unk, 增加泛化性。(2)字向量、句向量相结合,学习联合分布。(3)深度堆叠,使特征更加丰富。# coding: utf-8from keras import layersfrom keras.models import Model, save_model, load_model, model_from_jsonfrom keras_contrib.l..原创 2021-01-25 18:05:14 · 235 阅读 · 0 评论 -
命名实体识别实践(albert + crf)
该项目是识别query中实体的项目, 由于业务特点,query中实体较密集且连续。该项目是Albert在该项目的一个测试方案, 效果上还可以。但应该注意的有:(1)albert的中文向量版本要看仔细, 要和代码需要的版本相匹配。(2)在使用的时候,注意编码时添加的前缀后缀。代码完整版:#! -*- coding:utf-8 -*-# 情感分析例子,加载albert_zh权重(https://github.com/brightmart/albert_zh)im...原创 2021-01-25 18:16:37 · 1004 阅读 · 1 评论 -
keras 问题汇总
(1)cub segmented reduce errorinvalid configuration argumentLSTM——CRF 框架中,初始化crf时,检查类别是否赋值正确。(2)attributeerror ‘tensor’ object has no attribute ‘assign’Embeding层,检查输入的字符数是否正确,生成的batch数据是否正确。...原创 2019-04-08 20:35:16 · 566 阅读 · 0 评论 -
Keras 实现对bert编码的封装实现
bert编码突袭了NLP各大榜单,为了让大家更方便的在自己的数据集合上测试bert的威力,在此分享一下,keras版本的nert编码层。直接上代码了。class b_embeding_layer_b(keras.layers.Layer): """自定义层""" def __init__(self, max_seq_len=50,model_dir = r"F:\glove.6...原创 2019-05-19 23:39:29 · 1934 阅读 · 0 评论 -
keras自定义层对自定义参数进行保存
问题描述在使用keras的过程中,有时会在自定义层中定义自己的参数,然而调用 json_model = model.to_json() 后发现自定义的参数并没有保存到模型中,造成模型加载时报错。解决方案需要在该层中实现 get_config(self) 方法,将自定义的参数保存到一个map中。聚义可以参考本人的《Keras 实现对bert编码的封装实现》中的具体写法。...原创 2019-05-19 23:51:51 · 2941 阅读 · 2 评论 -
意图分析及斯坦福NLP服务搭建
标题应用范围和场景在自然语言处理的应用中,经常会用到分词,词性分析、句法分析、英体识别等应用,斯坦福NLP在中文支持方面还算不错,方便我们更快的支持和验证应用的可行性。环境配值和搭建过程下载 stanford-corenlp-full-2017-06-09.zip ,然后在系统中解压,下载该包支持的中文模型 stanford-chinese-corenlp-2017-06-09...原创 2019-06-02 21:17:10 · 629 阅读 · 0 评论 -
再谈语言模型
标题:语言模型再自然语言处理任务中有极其重要的作用,大家较为熟悉的是n-gram类型的语言模型,无论是传统的方法还是基于NN的方法,都是根据前N个词 预测当前词,或者求当前词的概率。需要求整个序列的概率时需要对序列进行遍历然后进行累乘操作。其实自然语言的语言模型可以不这样玩,哈哈。下面对一些新型的语言模型加以介绍,并探讨一下其应用。(稍后讲解求编码、求损失等操作)新型语言模型:bert预训练...原创 2019-07-20 18:23:32 · 369 阅读 · 0 评论 -
seq2seq 实现数字加法
标题这是用简单的seq2seq实现的数字加法,原理就是想用一个循环网络编码Query,然后将其复制到Answer的的长度。后接多层循环神经网络。最后softmax加交叉熵损失。model = Sequential()# "Encode" the input sequence using an RNN, producing an output of HIDDEN_SIZE.# Note: I...原创 2019-06-20 22:28:14 · 411 阅读 · 0 评论 -
神经网络实验心得(持续更新)
(1)当预测类别比较多时,各层测参数应该数量相当,否则会出现一个特征会影响多个类别的情况,出现一对多,模型不好训练。(2)其实神经网络的本质还是特征提取和空间映射,观察数据的特征和分布是非常有必要的。(3)attention 在词特征影响比较大的任务中真的有效,如一些翻译或者分类任务。(4)relu激活适合用在特征维度逐渐减少的层中,并且能增加模型的鲁棒性。(5)...原创 2019-07-20 22:15:02 · 4655 阅读 · 1 评论 -
再谈语言模型之应用
语言模型的形式上文介绍的语言模型在效果上得到了非常好的效果,但是在生产环境速度偏慢,因此本文的目的有两个,意识较轻量级的语言模型的实验, 二是语言模型在下游任务中应用,语言模型本质上还是去发现语言文法中的潜在的关联关系,应用该方法理论上在文本的语义方面判断的任务会有很大帮助。模型的应用 VAE这里展示的是VAE在文本生成过程中加入了,lm_loss用来辅助文本生成,关于VAE的一些东西就不在...原创 2019-07-20 22:14:11 · 1220 阅读 · 0 评论 -
java版本phash算法优化
phash本文的参考实现是:https://blog.youkuaiyun.com/sunhuaqiang1/article/details/70232679原有代码中有一个四重for循环:private double[][] applyDCT(double[][] f) { int N = size; double[][] F = new double[N][N];...原创 2019-04-08 20:30:21 · 1240 阅读 · 3 评论 -
文本相似度计算与检索
前言:文本的检索和相似度计算在nlp的应用中有很重要的作用,本文介绍了一种简单方法对问答匹配进行一种实现,即在所有的query中找到和用户输入query罪匹配的一项。本方法比较适合细粒度的匹配。主要技术:(1)关键词分析:提取出Query中主要的关键词,作为检索源。(2)全文检索:如mysql、ELsearch等均可。 作为召回。(3)在召回数据中进行相似度计算找到最高匹配项。完成匹配。...原创 2019-03-01 23:05:31 · 2158 阅读 · 0 评论 -
FastText 介绍
发现一篇不错的文章介绍fasttext:http://www.mamicode.com/info-detail-1903629.html先发个图在这,可以对代码有更好的理解。:转载 2018-06-14 09:48:31 · 573 阅读 · 0 评论 -
文本分类的一些实践(一)
基于单行的文本分类文本分类是自然语言处理中的常见的任务,随着深度学习在自然语言处理任务中的广泛应用,在传统的分类方法的基础上,发展了基于CNN, RNN的分类方法,在这里做了一下记录:基于RNN的文本分类 input0 = keras.layers.Input(shape=[self.MAX_SEQUENCE_LENGTH]) embeding...原创 2018-08-26 13:02:05 · 1490 阅读 · 0 评论 -
文本分类的一些实践(二)
xgboost因为上篇博客介绍到了xgboost的结果,在这里就简单的介绍一下。其原理在这里就不过多介绍了,在应用时主要在其特征构建上面。特征构造:在构造特征的时候用到了句子的外在特征,如句子的长度、开头结尾、数字、空白符等特征,也用到了句子的初始的类别信息来刻画句子的语义信息,(我们有一批标注的数据,找五条句与待预测句子的相近的标注数据的标签作为待预测标签),他们共同的构成的训练特征...原创 2018-08-26 13:29:39 · 835 阅读 · 0 评论 -
文本分类的一些实践(三)
基于多个句子的分类除了一般的对于单句的文本分类的场景,还有一些场景句子和上下文的标签是相关的。如多伦对话中的话题、可能几句句子表示同一个话题;文章的段落结构,简历的段落结构等;其中每一行文本都不是孤立的,于是想尝试对词的NER做一下扩展,变成基于句子的NER,来学习句子间的上下文关系。模型构建的思路首先将每一行的词表示成句字的编码,然后把句子当成词构建LSTM + CRF的NER模型。...原创 2018-08-26 23:14:26 · 644 阅读 · 1 评论 -
关键词提取
关键词提取技术关键词提取在Query理解中有重要的作用,按照机器学习比较宏观的分类方式可以大致分为有监督和无监督。有监督的提取方式无监督的提取方式 (1)基于随即游走的关键词提取(PageRank): (2)基于统计的关键词提取: 基于统计的关键词提取方式遇见的比较少,本文在短文本Query理解的业务场景中,基于词的词性、长度、位置、idf等基本信息实现了一种关键词提取,效果如下...原创 2018-08-23 23:12:25 · 1217 阅读 · 0 评论 -
记忆神经网络
记忆神经网络原来图片是这样的:现在图片是这样的,就比较好理解了。(当然只是单层的实现)原创 2018-12-04 15:32:48 · 1718 阅读 · 0 评论 -
LSTM计算过程推导
LSTM 计算过程推导(1) LSTM简介(2)LSTM笔记(3)LSTM变体(4)LSTM代码(1) LSTM简介LSTM是常用的循环神经网络(即带有LSTMcell的循环网络),使用的时候也非常方便,在这里想结合论文和代码对LSTM的计算过程做一下介绍。(2)LSTM笔记先放一张图(摘自大牛的笔记)(1)Ct-1 -> Ct (最上面横线,该细胞状态state)只经历了小的线...原创 2019-02-18 23:32:33 · 4035 阅读 · 0 评论 -
[论文阅读] - 基于结构表示的文本分类
标题内容概要本文主要应用强化学习方法自动学习该任务相关的句子结构,从而达到辅助文本分类的目的,利用的常识有两点:(1)信息是冗余的,所以删除部分信息排除干扰。(2)特定的短语结构对分类有辅助作用。作者定义了三种网络如下图所示:他们分别是策略网络、表示网络和分类网络,作用方式如下:策略网络:策略网络是一个循环网络。根据状态值(其值来自语表示网络)输出是动作空间{reta...原创 2019-02-16 01:37:05 · 340 阅读 · 0 评论 -
文本表示概览
文本表示文本表示在最近的研究领域非常火热,因为自己在做文本分类的一些工作(这一部分计划在另一篇博文中进行阐述),所以对文本表示的一些方式进行了一些调研,对于问题了解的同时也产生了一些疑问概论 如何描述一个句子...原创 2019-02-17 18:26:54 · 336 阅读 · 0 评论 -
keras 多任务多loss
# Three loss functionscategory_predict1 = Dense(100, activation='softmax', name='ctg_out_1')( Dropout(0.5)(feature1))category_predict2 = Dense(100, activation='softmax', name='ctg_out_2')( ...转载 2019-03-01 23:16:56 · 4763 阅读 · 6 评论 -
自定义层多输出时需要list包装
def compute_output_shape(self, input_shape): if self.data_format == 'channels_first': rows = input_shape[2] cols = input_shape[3] elif self.data_format == 'cha...原创 2019-02-28 10:58:15 · 170 阅读 · 0 评论 -
AipNlp测试
AipNlpAipNlp是百度家的自然语言接口,功能呢个挺全的,在系统构建之初已有的功能可以先取之应急,把系统搭建起来,然后再相应的改成自有实现。(当然要在百度平台申请帐号,获取相应的KEY,这里就略去了)from aip import AipNlpclass baidu_nlp_ts(object): """对百度的自然语言api进行使用和测试""" def __init...原创 2019-02-28 22:50:20 · 3376 阅读 · 0 评论 -
序列相似性比对(1)
序列的相似索引和相似度计算直接代码: def seq_match_pattern_2(self, list_char, list_char_other): """基于字符序列的比对 @:param list_char 对比序列1 @:param list_char_other 对比序列2 """ d = diffl...原创 2019-02-28 23:24:45 · 2717 阅读 · 0 评论 -
tensorflow-gpu DLL问题解决
前提:NVIDIA 驱动程序下载。CUDA下载,现在到了v10.0了。cudnn下载,并将相应文件拷贝到NVIDIA GPU Computing Toolkit\CUDA\v10.0对应目录下。环境:安装C++编译程序。05版本即可。Anaconda3 下载,最先版的即可。pip install tensorflowpip install tensorflow-gpu调整:如...原创 2019-03-01 14:36:34 · 1855 阅读 · 0 评论 -
各版本cuDNN驱动下载地址
https://developer.nvidia.com/rdp/cudnn-archive CUDA9.0 :下载网址 https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type...原创 2018-06-12 09:47:49 · 29659 阅读 · 0 评论