NLP
fly_Xiaoma
技术分享,技术学习
展开
-
智能客服系统开发(技术方案)
一个智能客服系统,负责全部的开发任务:主要包括前端页面开发,后台逻辑设计,中间客服与用户之间的对话流设计(算法部分),以及系统部署。前端页面采用vue框架(最近比较火的一个框架,vuejs比较贴合python的风格,所以用起来比较顺手); 后端采用django,典型的MVT架构,(类似于Android中的MVC,难度比MVP差远了); 对话流主要采用seq2seq模型,包括捕获用户意图、获...原创 2020-05-01 12:02:14 · 4903 阅读 · 2 评论 -
通过ahocorasick快速构建一棵actree(AC自动机)
参考自文章:https://www.cnblogs.com/always-fight/p/10895984.html1. 作用本质上说就是字符串匹配,比如根据一句话我们可以从字典树中快速匹配出字符串交集(快速指的是只遍历一遍字典树,比KMP算法要快),通常应用在问答系统中用于提取语句的关键词。2. 例子比如有一个wordlist列表,包含43430个元素:['长春海外制药接骨...转载 2020-03-19 17:33:38 · 3023 阅读 · 0 评论 -
NLP面试题总结(包含8种优化器简介).03
part 1.1. 介绍一下几种优化器在机器学习与深度学习中,主要应用于梯度下降。如,传统的优化器主要结合数据集,通过变化单次循环所采用的数据量的大小对梯度下降进行控制;非传统的优化器则进一步集合数据集的特点和模型的训练时间,以不同的形式变化梯度下降的学习率。常见的优化器有SGD、BGD、MBGD、Momentum、Adagrad、RMSprop、Adam。梯度下降的原理:...原创 2020-03-18 17:57:17 · 2389 阅读 · 0 评论 -
NLP面试题总结.02
这一章节提出了38个问题,不是很难,可以当做休闲一下:目录1.下列哪些技术能被用于关键词归一化(keyword normalization),即把关键词转化为其基本形式?2. 下列哪些技术能被用于计算两个词向量之间的距离?3. 文本语料库的可能特征是什么?4.你在20K文档的输入数据上为机器学习模型创建了文档-词矩阵(document-term matrix)。以下哪项可用于减...原创 2020-03-17 17:32:25 · 4406 阅读 · 0 评论 -
理解LSTM和GRU
目录1.LSTM网络1.1 细胞状态(cell state)1.2 遗忘门(forget gate)1.3 输入门(input gate)1.4 输出门(output gate)2. LSTM的变种GRU1.LSTM网络长短期记忆网络(Long Short Term Memory networks)-通常叫做LSTMs----是RNN中一个特殊的类型。设计LS...原创 2020-03-14 02:02:47 · 768 阅读 · 0 评论 -
浅谈模型压缩
有一个做深度学习模型部署的同学曾经提到过他目前的方向主要是模型压缩,就是对于部署在app上的模型在不影响性能的前提下如何减小模型的体量,我也会经常用Bert等transformer架构的模型,体量过大也是缺点,所以才有了后面的ALBert模型,这里对模型压缩的内容提前了解下,以免后面的工作会用到。目录1. 模型压缩的意义2. 模型压缩相关技术2.1 低秩分解2.2 剪枝2....原创 2020-03-13 13:16:24 · 8478 阅读 · 0 评论 -
理解Transformer架构 .02
通过提问题的方式,学习一下Bert中的Transformer架构,其中这篇文章与《理解Transformer架构 .01》的内容互为补充:目录1. Transformer的结构是什么样?1.1 encoder端与decoder端总览1.2 encoder端各个子模块1.2.1 多头 self-attention 模块1.2.2 前馈神经网络层1.3 decoder端各...原创 2020-03-13 12:07:57 · 1153 阅读 · 0 评论 -
理解Transformer架构 .01
本文参考自知乎专栏:https://zhuanlan.zhihu.com/p/54356280,并结合自己的一些理解记录下来方便以后查看。目录1. Transformer架构2. 编码器3. 解码器4. Transformer中的张量5. 编码过程5.1 从宏观上看自注意力机制5.2 从微观上看自注意力机制的计算步骤5.3 自注意力的矩阵运算6. Tran...原创 2020-03-12 20:56:20 · 1569 阅读 · 0 评论 -
从语言模型Bert来理解NLP
总结下Bert,从头到尾读完应该会有一个全新的理解。1. Bert的基本原理Bert的参考论文《Pre-training of Deep Bidirectional Transformers for Language Understanding》,Bert是“Bidirectional Encoder Representations from Transformers”的首字母缩写,整体是...原创 2020-03-09 19:50:51 · 1961 阅读 · 0 评论 -
NLP面试题总结.01
对自己复盘的NLP做个总结:1. 什么perplexity?它在NLP中的地位是什么?perplexity是一种表达模型在预测中出现的混乱程度的方法。熵越大=越混乱。使用perplexity来评估NLP中的语言模型。一个好的语言模型会给正确的预测赋予更高的概率。2. ReLu的问题是什么?梯度爆炸(通过梯度裁剪来解决) 死亡ReLu----激活为0时不进行学习(通过加参数的ReL...原创 2020-03-07 06:36:15 · 1650 阅读 · 0 评论 -
动态调整模型中的学习率
调整模型中学习率的方法主要有:一种是修改optimizer.param_groups中对应的学习率 另一种是新建优化器注意:由于optimizer十分轻量级,构建开销很小,故可以构建新的optimizer。但新建优化器会重新初始化动量等状态信息,这对使用动量的优化器来说(如带momentum的sgd),可能会造成损失函数在收敛过程中出现震荡。首先我们建立一个LeNet网络:imp...原创 2020-03-05 16:57:01 · 1565 阅读 · 0 评论 -
语言模型ELMO
2019年8月份参加达观杯信息抽取比赛时,研究过ELMO并取得第100名的成绩,最近又读到了ELMO的文章,对ELMO详细的回顾了一下并做个总结。1.什么是ELMOELMO是"Embedding from Language Model"的简称,直接参考的论文是《Deep Contextualized Word Representation》。在ELMO之前,word embedding 本...原创 2020-03-03 02:15:45 · 976 阅读 · 0 评论 -
细粒度上的语义分析
从分析粒度上可以分成:词语级语义分析、句子级语义分析以及篇章级语义分析。词语级的语义分析:词语级别的语义分析主要研究词语的含义,常见的任务有:词语消歧、词表示、同义词或上下位词的挖掘。1、词语消歧:一词多义是许多语言的固有属性,如“苹果”可以指水果,又可以指美国的科技公司。词语消歧的任务是判断文中出现的词语属于哪种意思。2、词表示:词表示的任务是用一个k维的向量表示一个词,并且该向...原创 2019-11-20 20:11:37 · 1496 阅读 · 0 评论 -
熟悉LSTM框架
目录LSTM总体架构参数介绍:遗忘门:传入门:更新cell状态:cell输出:LSTM变种-->GRU数学原理:公式参数:LSTM总体架构参数介绍:遗忘门:传入门:更新cell状态:cell输出:LSTM变种-->GRU数学原理:公式参数:...原创 2019-06-05 14:09:29 · 640 阅读 · 0 评论 -
使用CBOW构建网络模型
# 这些都是我们稍后将要使用的模块.在继续操作之前,请确保可以导入它们%matplotlib inlineimport collectionsimport mathimport numpy as npimport osimport randomimport tensorflow as tfimport bz2from matplotlib import pylabfrom s...原创 2019-08-20 00:34:04 · 729 阅读 · 1 评论 -
CRF++安装 for Linux Server
在Windows下安装CRF++,往往由于硬件设备,内存很快就被crf_learn进行塞满了,所以不建议安装在windows下。步骤:1、下载最新版本0.58 CRF++-0.58.tar.gz2、放到指定目录下,解压tar xzvf CRF++-0.58.tar.gz3、进入CRF++-0.58文件夹,运行命令./configure4、编译环境make...原创 2019-08-23 15:36:22 · 270 阅读 · 0 评论 -
CRF++参数调优
1、输入输出文件每一行称为一个token,每个token包含许多列,一般第0列是词本身,最后一列是输出的标记 中间的列是词的Pos,可以有多个,如词性、类别2、特征模板(feature template)举个栗子:输入:He PRP B-NPreckons VBZ B-VPthe DT B-NP << CURRENT TOK...原创 2019-08-23 16:01:45 · 1511 阅读 · 0 评论 -
使用yaml配置文件
yaml:yet another markup language,另一种标记语言,专门用来写配置文件,类似于json格式。语法大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 # 表示注释,从这个字符一直到行尾,都会被解析器忽略数据结构:对象:键值对的集合,又称为映射/哈希/字典 数组:一组...原创 2019-08-27 10:36:35 · 3583 阅读 · 0 评论 -
训练字向量
import timefrom gensim.models import Word2Vecimport codecs#model_path 存储文件路径#注意这里的corpus是所有字的集合#embedding_size 字向量的维度def word2vec(model_path,corpus,embedding_size=256,min_count=1,window=7): ...原创 2019-08-27 16:27:35 · 876 阅读 · 0 评论 -
XLNet运行机制、与Bert的比较
本文是转自张俊林老师的博客,方便加深记忆及理解。那么XLNet和Bert比,有什么异同?有什么模型方面的改进?在哪些场景下特别有效?原因又是什么?本文通过论文思想解读及实验结果分析,试图回答上述问题。首先,XLNet引入了自回归语言模型以及自编码语言模型的提法,这个思维框架我觉得挺好的,可以先简单说明下。自回归语言模型(Autoregressive LM)在ELMO/BERT出来之...转载 2019-08-30 13:55:55 · 463 阅读 · 0 评论 -
从Word Embedding到Bert模型---NLP中预训练发展史
本文转自张俊林老师,希望加深记忆及理解。本文的主题是自然语言处理中的预训练过程,会大致说下NLP中的预训练技术是一步一步如何发展到Bert模型的,从中可以很自然地看到Bert的思路是如何逐渐形成的,Bert的历史沿革是什么,继承了什么,创新了什么,为什么效果那么好,主要原因是什么,以及为何说模型创新不算太大,为何说Bert是近年来NLP重大进展的集大成者。我们一步一步来讲,而串起来这个故事的脉...转载 2019-08-30 14:33:46 · 311 阅读 · 0 评论 -
使用Glove对词进行向量化表示
#%% md# GloVe: 全局向量 #%%# 这些都是我们稍后将要使用的模块.在继续操作之前,请确保可以导入它们%matplotlib inlinefrom __future__ import print_functionimport collectionsimport mathimport numpy as npimport osimport randomimp...原创 2019-10-02 12:40:06 · 1476 阅读 · 3 评论 -
NLP处理的四步:Embed->Encode->Attend->Pred
目录文本类深度学习的四部曲第一步:词向量第二步:编码第三步:注意力机制(Attending)第四步:预测实例1:自然语言推测的可分解注意力模型实例2:文档分类的分层注意力网络假设你有一项强大的技术,可以预测实数稠密向量的类别标签。只要输入输出的格式相同,你就能用这项技术解决所有的问题。与此同时,你有另一项技术,可以用一个向量和一个矩阵预测出另一个向量。那么,现在你手...转载 2019-05-26 19:12:17 · 553 阅读 · 0 评论