随笔分类 -  NLP

摘要:博客内容有空了再补充。先贴代码。 数据地址:链接: https://pan.baidu.com/s/1-RbHi5xxBwJDG1gqAYUReQ 密码: rkup 完整代码如下: import argparse import time parser = argparse.ArgumentParse 阅读全文
posted @ 2020-12-01 11:54 Yanqiang 阅读(282) 评论(0) 推荐(0)
摘要:论文地址 百度的 DeepSpeech2 是语音识别业界非常知名的一个开源项目。 本博客主要对论文内容进行翻译,开源代码会单独再写一篇进行讲解。 这篇论文发表于2015年,作者人数非常多,来自于百度硅谷AI实验室语音技术组。 论文下载地址:https://arxiv.org/pdf/1512.025 阅读全文
posted @ 2020-08-25 13:25 Yanqiang 阅读(2431) 评论(0) 推荐(2)
摘要:自动编码器 encoder和decoder没办法单独训练,但接在一起就可以做无监督学习。 中间压缩了维度的隐藏层叫做bottleneck layer(像颈部一样比较细),两边的权重通常互为转置(可以减少参数量,但不是必须这样的)。 中间的维度肯定是要小于input的,是需要做一下压缩的,不然网络直接 阅读全文
posted @ 2020-08-23 22:49 Yanqiang 阅读(450) 评论(0) 推荐(0)
摘要:从one-hot到word embedding 词表示最直觉的做法是1-of-N Encoding, 向量维度和词表大小一样,每个词在其中某一维为1,其他维为0。这种表示法无法体现出词之间的关系。 word class方法是将意思相似或者同种属性的词归为一类,但这种划分太粗糙了,而且需要很多人工设计 阅读全文
posted @ 2020-08-22 20:10 Yanqiang 阅读(561) 评论(0) 推荐(0)
摘要:语言模型 语言模型是根据语言客观事实对语言进行抽象数学建模。可以描述为一串单词序列的概率分布: 通过极大化L可以衡量一段文本是否更像是自然语言(根据文本出现的概率): 函数P的核心在于,可以根据上文预测后面单词的概率(也可以引入下文联合预测)。 其中一种很常用的语言模型就是神经网络语言模型。 神经网 阅读全文
posted @ 2020-08-19 14:43 Yanqiang 阅读(1339) 评论(0) 推荐(0)
摘要:Hidden Markov Model (HMM) 以前语音识别用的是统计模型,而现在,深度学习的方法有很多思想也还是借鉴的HMM。 X是输入语音序列,Y是输出文字,我们的目标是穷举所有可能的Y,找到一个$Y*$使得$P(Y|X)$最大化。这个过程叫作解码。 根据贝叶斯定律,我们可以把它变成$\fr 阅读全文
posted @ 2020-07-08 17:08 Yanqiang 阅读(943) 评论(0) 推荐(0)
摘要:Connectionist Temporal Classification (CTC) CTC可以用于线上实时地语音识别,编码器用的是单向的RNN,解码是用MLP来预测文字分布。 编码器将语音输入$xi$编码成$hi$,MLP再对它乘上一个权重,接上Softmax,得到词表V大小的概率分布。 但有时 阅读全文
posted @ 2020-07-08 15:28 Yanqiang 阅读(2098) 评论(0) 推荐(0)
摘要:语音识别模型: 语音识别模型主要分为两种,一种是基于seq2seq的,一种是基于HMM的。 seq2seq的模型主要有LAS,CTC,RNN-T,Neural Transducer,MoChA。 本节讲最流行的LAS,就是Listen,Atten,and Spell,典型的seq2seq+atten 阅读全文
posted @ 2020-07-06 20:14 Yanqiang 阅读(1948) 评论(0) 推荐(0)
摘要:语音识别中声音和文字的表示 声音:通常表示为一个d维、长度为T的向量序列, 文字:表示为长度为N的token序列(token的共V类),token通常用它在词表中id表示。 token通常有很多种粒度:Bytes < Grapheme/Phoneme < Morpheme < Word Phonem 阅读全文
posted @ 2020-07-06 16:56 Yanqiang 阅读(1033) 评论(0) 推荐(0)
摘要:课程名称:深度学习与人类语言处理(Deep Learning for Human Language Processing) (自然语言包括文本和语音两种形式,不过自然语言处理大多时候指的是文本处理,所以这门课的名字叫人类语言处理以便区分,因为这门课语音和文本的内容是1:1的) 人类语言处理的终极目标 阅读全文
posted @ 2020-07-06 11:10 Yanqiang 阅读(1303) 评论(0) 推荐(1)
摘要:1.背景知识 one-hot → word class → word embedding 不过传统的word embedding解决不了多义词的问题。 2. ELMO 为了解决上述问题,首先有了ELMO。 它是一个双向的RNN网络,这样每一个单词都对应两个hidden state,进行拼接便可以得到 阅读全文
posted @ 2020-04-07 19:25 Yanqiang 阅读(940) 评论(0) 推荐(0)
摘要:1.RNN和CNN的局限性 RNN是seq2seq的模型,RNN不易平行化,如果是单向的话,要输出$b3$,需要先看完$a1, a2, a3$。如果是双向的话,可以看完整个句子。 CNN在高层的时候,可以考虑距离更长的信息,CNN易于并行化。CNN的缺点是,考虑的只是局部内容,要考虑长距信息,需要叠 阅读全文
posted @ 2020-04-07 18:58 Yanqiang 阅读(2176) 评论(0) 推荐(0)
摘要:BERT 课程笔记 1. 传统方案遇到的问题 BERT的核心在于Transformer,Transformer就类似seq2seq网络输入输出之间的网络结构。 传统的RNN网络:最大的问题,因为不能并行计算,所以往往深度不够。 传统的word2vec:同一个词一经训练词向量便确定了下来,缺乏适应不同 阅读全文
posted @ 2020-02-27 16:42 Yanqiang 阅读(882) 评论(0) 推荐(0)
摘要:文章作者:刘知远 (原载于知乎: "NLP日知录" ) 课件来自于学堂在线直播: 在微博和知乎上关注自然语言处理(NLP)技术的朋友,应该都对 NLP太难了 、 自然语言理解太难了 两个话题标签不陌生,其下汇集了各种不仅难煞计算机、甚至让人也发懵的费解句子或歧义引起的笑话。然而,这些例子只是让人直觉 阅读全文
posted @ 2020-02-23 12:40 Yanqiang 阅读(745) 评论(0) 推荐(0)
摘要:###1. 比赛信息 比赛地址:阿里云恶意程序检测新人赛 比赛介绍:使用自然语言处理的方法对恶意程序的行为(API调用序列)进行分析,实现对恶意程序鉴别及分类。 ###2. 我的主要工作 1)数据预处理:格式转换csv->txt->pkl,根据fileid分组数据,排序后生成api序列,用于训练; 阅读全文
posted @ 2020-02-20 12:31 Yanqiang 阅读(1651) 评论(0) 推荐(0)
摘要:一、概述 训练语料来源:维基媒体 https://dumps.wikimedia.org/backup index.html 汉语数据 用word2vec训练词向量,并用所学得的词向量,计算 pku_sim_test.txt 文件中每行两个词间的余弦距离作为两词相似度,并输出到文件中。 二、数据准备 阅读全文
posted @ 2019-12-27 22:21 Yanqiang 阅读(2033) 评论(0) 推荐(0)
摘要:一、概述 本实验做的是一个很常见的数据挖掘任务:新闻文本分类。 语料库来自于搜狗实验室2008年和2012年的搜狐新闻数据, 下载地址:https://www.sogou.com/labs/resource/cs.php 实验工作主要包括以下几步: 1)语料库的数据预处理; 2)文本建模; 3)训练 阅读全文
posted @ 2019-12-27 17:25 Yanqiang 阅读(1309) 评论(0) 推荐(0)
摘要:第14章 统计剖析 CKY算法和Earley算法可以有效地表示句法歧义,但却没有提供排歧的手段。概率语法提供的方法是,可以计算歧义的每一种解释的概率,然后从中选择概率最大的解释。 概率上下文无关语法(PCFG)最常用。 14.1 概率上下文无关语法 上下文无关语法由四个参数定义: N(非终极符集合) 阅读全文
posted @ 2019-11-22 16:47 Yanqiang 阅读(496) 评论(0) 推荐(0)
摘要:使用word2vec训练词向量 使用word2vec无监督学习训练词向量,输入的是训练数据和测试数据,输出的是每个词的词向量,总共三百个词左右。 求和:然后再将每行数据中的每个词的词向量加和,得到每行的词向量表示。 其他还可以通过求平均,求众数或者最大值等等方法得到每行的词向量表示。 代码如下: 训 阅读全文
posted @ 2019-11-22 10:58 Yanqiang 阅读(1459) 评论(0) 推荐(0)
摘要:第六章 隐式马尔可夫模型与最大熵模型 马尔可夫模型发展出了隐式马尔可夫模型HMM和最大熵模型MaxEnt,与马尔可夫有关的最大熵模型称为最大熵马尔可夫模型MEMM。 HMM和MEMM都是序列分类器。给定一个单元(单词、字母、语素、句子等)的序列,可以计算在可能的标号上的概率分布,并选择最好的标号序列 阅读全文
posted @ 2019-11-08 22:03 Yanqiang 阅读(630) 评论(0) 推荐(0)