NLP
文章平均质量分 76
一枚小码农
这个作者很懒,什么都没留下…
展开
-
布尔模型(Boolean Model)
最早的IR模型,也是应用最广泛的模型;目前仍然应用于商业系统中;Lucene是基于布尔(Boolean)模型的。布尔模型描述文档D表示:一个文档被表示为关键词的集合查询式Q表示:查询式(Queries)被表示为关键词的布尔组合,用“与、或、非”连接起来,并用括弧指示优先次序匹配F:一个文档当且仅当它能够满足布尔查询式时,才将其检索出来检索策略基于二值判定标准算法R:根据匹配框架F判定相关, 计算相关度排名,这里不涉及doc得分和tfidf,只是boolean关系。查询表示在布尔模型中,原创 2021-07-01 14:42:40 · 3236 阅读 · 0 评论 -
python-Levenshtein常用函数
编辑距离Levenshtein.distance(str1, str2)汉明距离计算汉明距离。要求str1和str2必须长度一致。是描述两个等长字串之间对应位置上不同字符的个数。Levenshtein.hamming(str1, str2)莱文斯坦比计算公式r = (sum – ldist) / sum, 其中sum是指str1 和 str2 字串的长度总和,ldist是类编辑距离。注意这里是类编辑距离,在类编辑距离中删除、插入依然+1,但是替换+2。Leven...原创 2020-09-04 15:29:55 · 3271 阅读 · 0 评论 -
安装python-Levenshtein包时遇到的问题
环境:Python3.6直接用pip installpython-Levenshtein时报错,提示需要安装 Microsoft Visual C++ 14.0。error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools安装Microsoft Vis...原创 2020-09-04 15:11:35 · 1684 阅读 · 3 评论 -
编辑距离算法之Jaro-Winkler Distance
概述Jaro-Winkler Distance是一个度量两个字符序列之间的编辑距离的字符串度量标准,是由William E. Winkler在1990年提出的Jaro Distance度量标准的一种变体。Jaro Distance是两个单词之间由一个转换为另一个所需的单字符转换的最小数量。Jaro-Winkler Distance通过前缀因子使Jaro Distance相同时共同前缀长度越大的相似度越高。Jaro–Winkler Distance越小,两个字符串越相似。如果分数是0,则表示完全不同,分数原创 2020-09-04 14:53:30 · 5352 阅读 · 0 评论 -
文本相似度的若干计算方法及Python实现
最近工作中正好遇到文本相似度问题,尝试了好几种方法,在这里稍微总结下吧,也让自己理解更透彻些。1 余弦相似度import numpy as npdef cos_sim(vector_a, vector_b): vector_a = np.mat(vector_a) vector_b = np.mat(vector_b) num = float(vector_a * vector_b.T) denom = np.linalg.norm(ve...原创 2020-09-02 17:45:10 · 698 阅读 · 0 评论 -
Papers
NLP1.Beyond Accuracy Behavioral Testing of NLP Models with CheckListACL2020 Best Parper,本文主要介绍的是NLP的评测方法,不同于以往的从语料中分为一部分test data来评价模型,而是介绍CHECKLIST这种新式评测方法。...原创 2020-07-10 10:31:52 · 126 阅读 · 0 评论 -
好文分享(NLP/机器学习/深度学习)
记录下平常在公众号,zhihu上看到的不错的技术文章。搜索1.医疗搜索中的Query词权重算法探索2.BERT在美团搜索核心排序的探索和实践NLP1.1分钟|聊聊Transformer的并行化原创 2020-07-10 10:02:51 · 197 阅读 · 0 评论 -
Learning to rank学习
IntroLTR(Learning to rank)是一种监督学习(SupervisedLearning)的排序方法,已经被广泛应用到推荐与搜索等领域。传统的排序方法通过构造相关度函数,按照相关度进行排序。然而,影响相关度的因素很多,比如tf,idf等。传统的排序方法,很难融合多种因数,比如向量空间模型以tf*idf作为权重构建相关度函数,就很难利用其他信息了,并且如果模型中参数比...原创 2020-04-30 16:43:55 · 569 阅读 · 1 评论 -
生成式对话系统总结(1)
1 自然语言生成自然语言生成的作用是组织适当的应答语句,将系统的答复转换成用户能够理解的自然语言, 通常有 3 种解决方案: 基于人工模板( rule-based) 、基于知识库检索( query-based) 和基于深度学习的序列到序列(Sequence-to-Sequence) 生成模型。语言生成方案的优缺点和适用场景总结如下表所示。Ref...原创 2020-04-24 15:02:30 · 4952 阅读 · 1 评论 -
任务式对话系统总结(1)---自然语言理解
任务式对话系统基本框架如下图所示,这里我对语音领域不是很熟悉,所以本文不做具体介绍,因此任务式对话系统基本框架主要包括自然语言理解(NLU),对话管理器( DM) 、语言生成(NLG)。下面内容就具体介绍下这几个组件。1 自然语言理解NLU完成的具体任务在不同对话系统中差异较大,比较共性的能力包括领域识别、意图识别、对话行为识别、槽位识别和槽位值抽取。领域识别是将用户...原创 2020-04-28 17:20:55 · 2889 阅读 · 0 评论 -
关于对话系统(任务式/检索式/生成式)的若干总结
最近一直在调研对话系统,细细研究发现里面的细分知识点非常多,任务式/检索式/生成式对话系统每个里面的都有不同特点及方法,因此在这里总结下自己的研究成果。Intro按照对话系统的技术架构来分, 人机对话系统可以分为任务型对话系统和非任务型对话系统两大类, 在实际商业应用中这 2 种对话方式常常结合在一起使用. 任务型对话通过交互的方式帮助用户完成一项或多项特定的任务, 系统能够完成的任...原创 2020-04-24 11:04:43 · 3564 阅读 · 1 评论 -
diversity beam search
Seq2Seq中常用到的优化方法就是Beam Search,但是Beam Search的一个缺点就是生成的N个回答往往差异性很小,无法体现语言的多样性(比如文本摘要、机器翻译的生成文本,往往有不止一种表述方式)。最近看论文的时候发现Google提出的改进Beam Search方法,下面来稍微总结下。论文地址:https://arxiv.org/pdf/1610.02424.pdf具体...原创 2020-04-16 10:38:20 · 1128 阅读 · 0 评论 -
大厂对话系统文章汇总
最近主要在研究对话系统,看到很多大厂技术团队分享的文章,在此分享给大家。1.Trend Micro--基于Elasticsearch的智能客服机器人2.平安-智能问答系统:问句预处理、检索和深度语义匹配技术3.腾讯-智能问答技术及其应用4.思必驰-一文详解启发式对话中的知识管理5.贝壳找房-【WOT峰会回顾】人工智能和人工冰释前嫌6.微软-微软小冰对话机器人架构7.瓜子...原创 2020-04-13 17:06:24 · 307 阅读 · 0 评论 -
Glove原理解析
在2013年Tomas Mikolov等人提出word2vec之后,2014年,Jeffrey Pennington, Richard Socher, Christopher D. Manning三人提出了GloVe算法[1][2][3]。其中,GloVe是Global Vector的缩写。在传统上,实现word embedding(词嵌入)主要有两种方法,Matrix Factorizat...原创 2020-03-25 16:36:19 · 1874 阅读 · 0 评论 -
Feature-based和Fine-tune的区别
在Bert的论文中看到了Feature-based和Fine-tune这两种无监督的NLP学习方法,对这两个概念一直以来都不太理解,今天来总结下。Feature-basedFeature-based指利用语言模型的中间结果也就是LM embedding, 将其作为额外的特征,引入到原任务的模型中,例如在TagLM[1]中,采用了两个单向RNN构成的语言模型,将语言模型的中间结果。...原创 2020-02-14 11:14:20 · 4916 阅读 · 0 评论 -
Bert改进模型汇总(5)
目录DistillBert:a distilled version of BERT: smaller,faster, cheaper and lighterTinyBert:: DISTILLING BERT FOR NATURAL LANGUAGE UNDERSTANDINGReferenceDistillBert:a distilled version of BERT: s...原创 2020-02-11 15:32:54 · 1758 阅读 · 0 评论 -
Bert改进模型汇总(4)
目录ALBertIntroFactorized embedding parameterizationCross-layer parameter sharingSentence Order Prediction(SOP)Electra:Efficiently Learning an Encoder that Classifies Token Replacements Accu...原创 2020-02-11 14:49:47 · 2841 阅读 · 0 评论 -
Bert改进模型汇总(3)
目录SpanBert: Improving Pre-training by Representing and Predicting SpansSpanMaskingSpan Boundary ObjectiveRemove NextSentencePredictionRoBERTa:Robustly optimized BERT approachMoreData...原创 2020-02-11 09:49:52 · 3770 阅读 · 0 评论 -
Bert改进模型汇总(2)
目录MASS:Masked Sequence to Sequence Pre-training for Language GenerationUNILM:UNIfied pre-trained Language ModelUnidirectional LMBidirectional LMSeq2Seq LMReferenceMASS:Masked Sequence to...原创 2020-02-10 23:06:39 · 948 阅读 · 0 评论 -
Byte Pair Encoding(BPE)/WordPiece算法介绍
Subword算法如今已经成为了一个重要的NLP模型性能提升方法。自从2018年BERT横空出世横扫NLP界各大排行榜之后,各路预训练语言模型如同雨后春笋般涌现,其中Subword算法在其中已经成为标配。所以作为NLP界的小菜鸟,有必要了解下Subword算法的原理。1BPEBPE,(byte pair encoder)字节对编码,也可以叫做digram coding双字母组合编码,主要...原创 2020-02-05 23:37:36 · 5157 阅读 · 3 评论 -
Bert改进模型汇总(1)
目录IntroERNIE from BaiduERNIE from THUReferenceIntroBert自问世以来横扫NLP各大榜单,但Bert模型本身还存在着或多或少的问题,因此后续学术界也针对Bert的缺陷提出了各类改进模型,今天这篇文章我就大致总结下我所了解到的模型。首先先上两张图,总结的非常好ERNIE from Baidu论文地址htt...原创 2020-02-05 21:45:49 · 5685 阅读 · 0 评论 -
T5: Text-To-Text Transfer Transformer
总而言之就是一个集NLP之大成者的预训练模型,也只有Google这种土豪公司才玩得起了。。论文:Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer代码:https://github.com/google-research/text-to-text-transfer-tra...原创 2020-02-05 11:45:50 · 523 阅读 · 0 评论 -
NLP领域相关博文汇总
自己总结的相关内容目录:1.T5: Text-To-Text Transfer Transformer2.Bert改进模型汇总(1)3.Byte Pair Encoding(BPE)/WordPiece算法介绍4.Bert改进模型汇总(2)5.Bert改进模型汇总(3)6.Bert改进模型汇总(4)7.Bert改进模型汇总(5)大佬优秀文章收藏1.预训练语...原创 2020-02-05 11:46:59 · 359 阅读 · 0 评论 -
文本分类方法总结
目录1 机器学习的文本分类方法1.1 特征工程1.1.1 文本预处理1.1.2 文本表示和特征提取1.1.3 基于语义的文本表示1.2 分类器朴素贝叶斯分类(Naïve Bayes)用朴素贝叶斯分类算法做中文文本分类KNNSVM最大熵2 深度学习的文本分类方法2.1 文本的分布式表示:词向量(word embedding)2.2 深度学习文本...原创 2020-01-17 15:01:42 · 20205 阅读 · 0 评论 -
HAN(Hierarchical Attention Network)
本文主要介绍CMU在2016年发表在ACL的一篇论文:Hierarchical Attention Networks for Document Classification及其代码复现。该论文是用于文档级情感分类(document-level sentiment classification)的,其模型架构如下:整个网络结构包括四个部分: 1)词序列编码器 2)基于词...原创 2020-01-15 15:45:01 · 1050 阅读 · 0 评论 -
CNN/RNN在NLP领域的对比
本篇主要总结下张俊林大神关于放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较文章中关于CNN RNN部分的内容。1 RNN1.1Why hot?我们知道,RNN自从引入NLP界后,很快就成为吸引眼球的明星模型,在NLP各种任务中被广泛使用。但是原始的RNN也存在问题,它采取线性序列结构不断从前往后收集输入信息,但这种线性序列结构在...原创 2020-01-15 14:13:51 · 2670 阅读 · 0 评论 -
ConvS2S总结
目录1 Introduction2 Network2.1 Symbols2.2Convolutional Architecture2.3 Multi-step Attention2.4 GenerationReferences论文地址《Convolutional Sequence to Sequence Learning》1 Introduction众所...原创 2020-01-15 13:59:44 · 3536 阅读 · 3 评论 -
jieba分词原理
1. 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG)作者这个版本中使用前缀字典实现了词库的存储(即dict.txt文件中的内容),而弃用之前版本的trie树存储词库,想想也是,python中实现的trie树是基于dict类型的数据结构而且dict中又嵌套dict 类型,这样嵌套很深,导致内存耗费严重,详情见作者把trie树改成前缀词典的缘由...原创 2020-01-14 15:44:30 · 496 阅读 · 0 评论 -
DPCNN深度金字塔卷积神经网络介绍
目录1 概述2 模型结构2.1卷积(等长卷积)2.2池化(Downsampling and polling)2.3近路连接(shortcut connect)2.4 Text region embedding1 概述DPCNN(Deep Pyramid Convolutional Neural Networksfor Text Categorizatio...原创 2020-01-13 16:21:41 · 5376 阅读 · 0 评论 -
Attention的两种机制——global attention/local attention
目录1Global Attention全局注意力机制权重计算函数Local AttentionReferences:1Global Attention全局注意力机制权重计算函数眼尖的同学肯定发现这个attention机制比较核心的地方就是如何对Query和key计算注意力权重。下面简单总结几个常用的方法:1、多层感知机方法主要...原创 2019-12-18 17:13:56 · 6002 阅读 · 1 评论 -
Batch Norm/Layer Norm/Instance Norm /Group Norm/Switchable Norm
BatchNorm存在的问题局限1:如果Batch Size太小,则BN效果明显下降。BN是严重依赖Mini-Batch中的训练实例的,如果Batch Size比较小则任务效果有明显的下降。那么多小算是太小呢?图10给出了在ImageNet数据集下做分类任务时,使用ResNet的时候模型性能随着BatchSize变化时的性能变化情况,可以看出当BatchSize小于8的时候开始对分...原创 2020-01-15 16:53:20 · 304 阅读 · 0 评论 -
NLP中的数据增强方法
目录1 概述2. 方法2.1随机drop和shuffle2.2同义词替换2.3回译2.4 文档裁剪2.5 生成对抗网络2.6 预训练的语言模型1 概述NLP中的数据是离散的。它的后果是我们无法对输入数据进行直接简单地转换,而大多数CV工具则没有这个限制,如domain randomization。小的扰动可能会改变含义。在NLP中,删掉一个否定词可能...原创 2019-12-10 16:22:20 · 1125 阅读 · 0 评论 -
XLNet模型总结
目录1 导语1.1 自回归语言模型(Autoregressive LM)1.2自编码语言模型(Autoencoder LM)2排列语言建模(Permutation Language Modeling)2.1 Masked Two-Stream Attention3 Transformer-XL3.1vanilla Transformer3.2 Transfor...原创 2019-12-10 12:01:20 · 1149 阅读 · 0 评论 -
TextCNN/RCNN/LSTM/GRU
目录1 TextCNN1.1嵌入层(embedding layer)1.2 ConvolutionLayer1.3 Pooling Layer1.3.1 One-Max Pooling1.3.2 Average Pooling1.3.3 K-Max Pooling1.3.4 Dynamic Pooling之Chunk-MaxPooling2 TextRNN...原创 2019-12-06 17:45:40 · 1615 阅读 · 0 评论 -
ELMo/GPT/Bert/Attention/Transformer/Self-Attention总结
目录1ELMo(Embedding from Language Models)1.1结构1.2 评价2 OpenAI GPT(Generative Pre-training)2.1 Unsupervised pre-training阶段2.2 Finetune阶段2.3 模型评价优缺点3Bert(Bidirectional Encoder Representa...原创 2019-12-06 14:22:45 · 1030 阅读 · 0 评论 -
Word Embedding总结
目录1 概述2 词的表示方法类型2.1 词的独热表示one-hot representation2.2词的分布式表示distributed representation2.2.1基于矩阵的分布表示(Glove)GloVe模型(Global Vectors for Word Representation)2.2.2基于聚类的分布表示2.2.3 基于神经网络的分布...原创 2019-12-06 14:17:55 · 1533 阅读 · 0 评论 -
句法分析
句法分析也是自然语言处理中的基础性工作,它分析句子的句法结构(主谓宾结构)和词汇间的依存关系(并列,从属等)。通过句法分析,可以为语义分析,情感倾向,观点抽取等NLP应用场景打下坚实的基础。随着深度学习在NLP中的使用,特别是本身携带句法关系的LSTM模型的应用,句法分析已经变得不是那么必要了。但是,在句法结构十分复杂的长语句,以及标注样本较少的情况下,句法分析依然可以发挥出很大的作用。因此研...原创 2019-12-05 16:24:39 · 2101 阅读 · 0 评论 -
词性标注笔记
1 词性标注问题难点词性作为词语基本的语法属性,是词语和语句的关键性特征。词性种类也很多,ICTCLAS 汉语词性标注集归纳的词性种类及其表示见 https://www.cnblogs.com/chenbjin/p/4341930.html。词性标注中的难点主要有相对于英文,中文缺少词形态变化,不能从词的形态来识别词性 一词多词性很常见。统计发现,一词多词性的概率高达22.5%...原创 2019-12-05 14:53:34 · 586 阅读 · 0 评论 -
N-gram Model
N元语法模型(语言模型)目录简单的(非平滑)N元语法模型语言模型的评测方法外部评测内部评测平滑方法Laplace Smoothing(Add-oneSmoothing)Add-K SmoothingInterpolation(插值法)Good-Turing Smoothing缺点Katz回退法(Katz Backoff)Kneser-Ney S...原创 2019-12-05 12:32:06 · 455 阅读 · 0 评论