自然语言处理
分享一些NLP方面的知识
烟雨人长安
空气,水,食物,书是生命中必不可少的四项事物!
展开
-
常见的相似度度量方法总结及Python实现
目录1.欧氏距离(Euclidean Distance)2.曼哈顿距离(Manhattan Distance)3.切比雪夫距离( Chebyshev Distance )4.标准化欧氏距离(Standardized Euclidean distance )5.马氏距离(Mahalanobis Distance)6.夹角余弦(Cosine)7.皮尔逊相关系...原创 2020-04-05 11:11:42 · 4533 阅读 · 3 评论 -
Word2Vec 怎么将得到的词向量变成句子向量,以及怎么衡量得到词向量的好坏
昨天电话面试问到了这两个问题,感觉回答的不是很好,来此总结一下:1.Word2Vec 怎么将得到的词向量变成句子向量1)平均词向量:平均词向量就是将句子中所有词的word embedding相加取平均,得到的向量就当做最终的sentence embedding。这种方法的缺点是认为句子中的所有词对于表达句子含义同样重要。2)TF-IDF加权平均词向量:TFIDF加权平均词向量就...原创 2020-03-27 12:37:24 · 8496 阅读 · 0 评论 -
为什么Bert的三个Embedding可以进行相加?
这个问题是知乎的这个问题:为什么Bert的三个Embedding可以进行相加?我觉得解释合理的是这个回答,这个回答解释的是相加的意义这里的相加是特征交叉而不是特征池化。神经网络中相加是构造特征交互的方法,类似的还有elementwise乘,减法。Bert这类的方法一个极大的优势就是通过BPT和字级别把词向量空间的稀疏性压缩下来,如果你在普通的embedding+nn里做这件事情,...原创 2020-03-17 17:54:13 · 1681 阅读 · 0 评论 -
Transformer中Multi-head Attention的作用
本文参考https://www.zhihu.com/question/341222779(1)多头的注意力有助于网络捕捉到更丰富的特征 / 信息。原论文中写道:Multi-head attention allows the model to jointly attend to information from different representation subspaces a...原创 2020-03-14 21:37:40 · 3017 阅读 · 0 评论 -
自然语言处理中一些常用的数据增强的方式
1. 加噪声。加噪尤以去信息为主(Dropout)。比如随机扔词(每次扔一类词,每次扔一个词),比如随机在 Embedding 上 dropout(这个几乎所有 Neural Model 都加了)。有结构的 Dropout 也就是所谓的 Mask,即使用带权的 mask来遮盖掉一些词。2.同义词替换。我们可以随机的选择一些词的同义词来替换这些词,比如:“她非常美丽” 改为 “她非常漂亮”...原创 2020-03-14 17:43:09 · 1084 阅读 · 0 评论 -
Stochastic Answer Networks for Natural Language Inference 论文解读
这篇论文没有源码,有的部分在论文里写的不够详细,所以有些地方说的可能会有些不对,请见谅!论文地址 :https://arxiv.org/pdf/1804.07888.pdf它的模型结构是这样的第一部分是Embbeding层,它是将word_embedding和 character_embedding拼接起来一起输入到神经网络中,在输入之前,它通过了两层Position-wi...原创 2020-03-12 22:09:51 · 279 阅读 · 0 评论 -
Attentive Pooling Networks论文讲解
这篇论文是做是一个做问答对匹配的模型,在多个回答里选出正确的那个答案,整篇论文相对简单。之前的问答对匹配模型是将CNN或者BiLSTM提取后的特征向量相互做余弦相似度,这篇论文的创新是加上了Attention层和使用不同的pooling层,column-wise max pooling和row-wise max pooling之前的模型是本篇论文的模型是Q和 A是问...原创 2020-03-10 21:28:42 · 3688 阅读 · 0 评论 -
Pytorch对NLP的数据进行处理,使用Dataset和Dataloader方法
此次数据使用的是LCQMC,它是做短文本匹配的一个数据,长这样判断两个文本是否相似,如果相似标签为1,不相似为0对于数据的处理在这里就不做研究了,无非就是分词,构建词表之类的,这里只说Dataset和DataLoader的用法。我们首先构建一个类,并继承Dataset类class DatasetIterater(Dataset): def __init__(self,...原创 2020-03-10 16:20:47 · 5158 阅读 · 2 评论