自然语言处理
nathan_deep
Keep Learning, Keep Fighting
展开
-
关于智能客服、聊天机器人的算法分享
五八同城智能客服系统“帮帮”技术揭秘58智能客服QABot问答机器人算法实践帮帮智能问答机器人中TaskBot任务对话算法实践原创 2020-07-31 17:28:55 · 1509 阅读 · 0 评论 -
TF-IDF和BM25算法原理及python实现
1 TF-IDFTF-IDF是英文Term Frequency–Inverse Document Frequency的缩写,中文叫做词频-逆文档频率。一个用户问题与一个标准问题的TF-IDF相似度,是将用户问题中每一词与标准问题计算得到的TF-IDF值求和。计算公式如下:TF-IDF算法,计算较快,但是存在着缺点,由于它只考虑词频的因素,没有体现出词汇在文中上下文的地位,因...原创 2020-03-27 16:03:40 · 1866 阅读 · 1 评论 -
ALBERT与BERT的异同
论文地址:https://openreview.net/pdf?id=H1eA7AEtvS中文预训练ALBERT模型:https://github.com/brightmart/albert_zh1、对Embedding因式分解(Factorized embedding parameterization)在BERT中,词embedding与encoder输出的embedding维...原创 2020-01-21 15:59:15 · 7046 阅读 · 0 评论 -
Bert 预训练源码详解
本部分介绍BERT预训练过程,BERT针对两个任务同时训练。1.下一句预测。2.遮蔽词识别Bert预训练由两个脚本,create_pretraining_data.py和run_pretraining.py,前者为对数据进行预处理,保存数据成tfrecord格式的文件。后者构建bert网络并进行训练。1 数据预处理python create_pretraining_data.py \...原创 2020-01-15 14:33:40 · 2128 阅读 · 0 评论 -
论文:Character-Level Language Modeling with Deeper Self-Attention
语言模型语言模型通常用条件概率分布进行表示:为了实现,使用causal attention将当前词后面的词mask掉。causal attention其实与transformer的decode部分中的masked attention是一样的。如下图所示:Multiple Positions在论文中,训练了一个64层的char-level的Transformer模型,因为训练...原创 2019-12-09 15:18:10 · 484 阅读 · 0 评论 -
论文:Self-Attention with Relative Position Representations
动机RNN的结构是通过隐状态对序列信息进行编码的。第二个 I 的输出和第一个 I 的输出是不同的,这是因为输入到其中的隐状态是不同的。对于第二个 I 来说,隐状态经过了单词"I think therefore",而第一个 I 是刚刚经过初始化的。因此,RNN的隐状态会使得处于不同位置的相同词具有不同的输出表示。恰恰相反的是,具有自注意力机制的Transformer(没有位置编码的)会使...原创 2019-12-06 15:46:49 · 992 阅读 · 1 评论 -
Attention Is All You Need
Motivation:靠attention机制,不使用rnn和cnn,并行度高 通过attention,抓长距离依赖关系比rnn强Scaled Dot-Product Attention其中,其中因子起到调节作用,使得内积不至于太大(太大的话softmax后就非0即1了,不够“soft”了)。1.给定输入数据,转换成对应的内容 embeddin...原创 2019-12-06 11:35:15 · 109 阅读 · 0 评论 -
论文:Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context
Transformers具有学习长期依赖的潜力,但在语言模型的设置中受到固定长度上下文的限制。Transformer-XL引入了两点创新——循环机制(Recurrence Mechanism)和相对位置编码(Relative Positional Encoding),不仅可以捕获长距离依赖性,还可以解决上下文碎片问题。Transformer-XL学习的依赖性比RNN长80%,比vanilla Tr...原创 2019-12-11 15:54:14 · 271 阅读 · 0 评论 -
拼写纠错
拼写纠错(Spelling Correction),又称拼写检查(Spelling Checker),往往被用于文字处理软件、输入法和搜索引擎。1 拼写错误类型:1)None-word拼写错误指词本身就不合法,如错误的将“giraffe”写成“graffe”2)Real-word拼写错误拼写错误后的词仍然是合法的情况,如将“there”错误拼写为“three”(形近),将...原创 2019-10-25 14:57:56 · 714 阅读 · 0 评论 -
相似度计算方法
1 皮尔逊相关系数Pearson 相关系数是用协方差除以两个变量的标准差得到的,虽然协方差能反映两个随机变量的相关程度(协方差大于0的时候表示两者正相关,小于0的时候表示两者负相关),但其数值上受量纲的影响很大,不能简单地从协方差的数值大小给出变量相关程度的判断。为了消除这种量纲的影响,于是就有了相关系数的概念。当两个变量的方差都不为零时,相关系数才有意义,相关系数的取值范围为[-1,1]...原创 2019-10-16 09:47:07 · 414 阅读 · 0 评论 -
TextRank 文本摘要抽取
TextRank是受到Google的PageRank的启发,通过把文本分割成若干组成单元(单词、句子)并建立图模型, 利用投票机制对文本中的重要成分进行排序, 仅利用单篇文档本身的信息即可实现关键词提取、文本摘要抽取。PageRankPageRank是用来标识网页的等级、 重要性的一种方法, 是衡量一个网页的重要指标。PageRank 算法提出之前, 已经有人提出使用网页的入链数量进行链接...原创 2019-10-14 18:02:21 · 1265 阅读 · 0 评论 -
分词算法
基于规则的分词是一种机械分词方法,主要是通过维护词典,在切分语句时,将语句的每个字符串与词表中的词进行逐一匹配,找到则切分,否则不予切分。按照匹配切分的方式,主要有正向最大匹配法、逆向最大匹配法以及双向最大匹配法三种方法。正向最大匹配算法先设定扫描的窗口大小maxLen(最好是字典最长的单词长度),从左向右取待切分汉语句的maxLen个字符作为匹配字段。查找词典并进行匹配。若匹配成功,...原创 2019-10-14 14:15:27 · 1509 阅读 · 0 评论 -
TextCNN模型原理和实现
将卷积神经网络CNN应用到文本分类任务,利用多个不同size的kernel来提取句子中的关键信息(类似于多窗口大小的ngram),从而能够更好地捕捉局部相关性。1网络结构Embedding: 将[batch_size, sentence_len]的句子转化成[batch_size, sentence_len, embedding_dim] 的embedding表示Convolutio...原创 2019-09-24 10:44:42 · 869 阅读 · 0 评论 -
Word2Vec词向量
Word2Vec使用一层神经网络将one-hot(独热编码)形式的词向量映射到分布式形式的词向量。1 Neural Network Language Model2003年,Bengio等人发表了一篇开创性的文章:A neural probabilistic language model。采用了一个简单的前向反馈神经网络来拟合一个词序列的条件概率。模型结构:线性的Embed...原创 2019-09-23 17:21:41 · 368 阅读 · 0 评论 -
Word2Vec笔记
一.背景知识1.1词向量自然语言处理(NLP)相关任务中,要将自然语言交给机器学习中的算法来处理,通常需要首先将语言数学化,因为机器不是人,机器只认数学符号。词向量就是用来将语言中的词进行数学化的一种方式,顾名思义,词向量就是把一个词表示成一个向量。1.1.1 one_hot representation一种最简单的词向量方式是 one-hot representation,就是用一个很长的向量来...转载 2018-05-18 11:23:40 · 312 阅读 · 0 评论