自然语言处理
guofei_fly
这个作者很懒,什么都没留下…
展开
-
【论文解析】从头开始打造Transformer
在谷歌大作Attention is all you need中提出了一种基于seq2seq架构的self-attention特征抽取机制,兼具CNN的并行化优点和RNN的长距离依赖特点,成为后续以MLM为主要任务的Bert、Roberta、albert预训练模型(利用Transformer中的Encode block)以及以AR-ML为主要任务GPT系列模型(利用Transformer中的Decode block)的主要模块,并在各类任务上取得了前所未有的成功。本博客在Transformer浅析一文中已经原创 2020-09-19 17:27:56 · 664 阅读 · 0 评论 -
【NLP工具】和文本处理相关的Linux命令小结
1. cat/head/tail显示文件开头或结尾的若干行cat -n 5 1.txt # 显示前5行cat -n -5 1.txt # 显示非前5行的其它行head -n 5 1.txt # 显示前5行tail -n 5 1.txt # 显示末尾5行2. grep用于文本内容查找,可在一个或多个文件中搜索并返回符合指定字符串模板的行。grep的命令行格式为grep [选项] pattern file,其中pattern即是字符串模板(支持正则表达式),file是路径或原创 2020-09-19 13:18:11 · 484 阅读 · 0 评论 -
【NLP工具】Vim常用命令小结
Vim是解决文本快速处理(尤其是服务器端)的神器,本文简单总结下常用的命令。0. 配置文件1. 基本概念和功能1.1 模式1.2 界面设置:set number 显示各行行号, set nonumber取消该功能:set list 显示制表符和行末, set nolist取消该功能:set fileencoding 查看当前文件编码:e ++enc=gb18003 强制采用某种编码重新打开本文档(临时的)2. 光标移动2.1 行内移动-> 右箭头,向右逐字符移动原创 2020-09-06 13:07:59 · 224 阅读 · 0 评论 -
【文本匹配】MatchZoo的基本使用
在前序文章中分别介绍了文本匹配的基本应用场景以及两大主流匹配范式:表示型匹配模型和交互型匹配模型。本文介绍一款文本匹配的基本工具:MatchZoo,其囊括了常见的文本匹配模型,免去重复造轮子的麻烦,且提供了基于Tensorflow和Pytorch的两个版本。本文按照【数据集准备】——>【模型训练】——>【模型使用】的常规顺序,介绍pytorch版本的基本使用。一、数据准备MatchZoo按照DataPack——>Preprocessed——>DataSet——>DataL原创 2020-07-26 01:10:11 · 2690 阅读 · 2 评论 -
【序列标注】CRF++的基本使用
条件随机场(conditional random filed, CRF)是深度学习算法运用于文本序列标注任务前,性能最优异的相关技术之一。即使在深度学习时代,将CRF层接于底层编码层之上仍是序列标注任务的baseline之一。CRF++是CRF算法的实现,虽然在深度学习时代的使用面有所减少,但作为经典工具仍值得了解其基本用法。0. 工具安装CRF++工具包以及本文案例所使用的【人民日报】标注语料的下载请戳链接,提取码:egs1压缩平台内包含适用于windows平台的包和linux平台的tar包。使用原创 2020-07-22 13:51:34 · 1692 阅读 · 0 评论 -
【文本匹配】交互型模型
表示型的文本匹配模型存在两大问题:(1)对各文本抽取的仅仅是最后的语义向量,其中的信息损失难以衡量;(2)缺乏对文本pair间词法、句法信息的比较而交互型的文本匹配模型通过尽早在文本pair间进行信息交互,能够改善上述问题。基于交互的匹配模型的基本结构包括:(1)嵌入层,即文本细粒度的嵌入表示;(2)编码层,在嵌入表示的基础上进一步编码;(3)匹配层:将文本对的编码层输出进行交互、对比,得到各文本强化后的向量表征,或者直接得到统一的向量表征;(4)融合层:对匹配层输出向量进一步压缩、融合;(5原创 2020-07-21 23:36:47 · 4995 阅读 · 1 评论 -
【文本匹配】表示型模型
基于表示的匹配模型的基本结构包括:(1)嵌入层,即文本细粒度的嵌入表示;(2)编码层,在嵌入表示的基础上进一步编码;(3)表示层:获取各文本的向量表征;(4)预测层:对文本pair的向量组进行聚合,从而进行文本关系的预测对于对称的文本匹配任务,采用共享的编码器和文本表示DNNs无疑是合理的选择,从而也可以获取各文本在统一语义空间的表示方法。基于表示的匹配模型结构紧凑,可变的花样并不多,主要集中在:(1)如何更好的获取文本表征,即图中编码器和DNNs如何构造;(2)如何更好的比较文本表征间的原创 2020-07-20 23:53:47 · 2248 阅读 · 1 评论 -
【文本匹配】概述
文本匹配是NLP中的重要基础任务,宽泛的讲,任何评判两句话之间关系的问题都可视为文本匹配问题。其应用领域包括但不限于:(1)句子相似度(sentence similarity)/句子复述(paraphrase identification)判断两段文本是否为含义相同,这是一个典型的二分类问题(2)然语言推理(Natural Language Inference)/文本蕴含识别(Textual Entailment)判断【前提文本A】(premise)和【假设文本B】(hypothesis)是否构成语原创 2020-07-20 23:25:20 · 1311 阅读 · 0 评论 -
【文本分类】常见文本分类深度学习模型汇总
在深度学习被广泛用于NLP之前,文本分类任务的常见pipeline为:(1)人工/半自动特征抽取:包括one-hot编码、count features、TF-IDF、词性/句法信息等等(2)分类器的构造:包括LR、NB、SVM、Xgboost及模型融合在DNN模型应用于语言模型大获成功,进而提出各类词向量(如word2vector、fasttext、glove)后,一个自然而然的问题就是:**如何表达句子、甚至整个文档? **,这也是将深度学习模型运用于文本分类时的核心步骤。本文按照句子向量编码的En原创 2020-07-17 09:43:53 · 7682 阅读 · 0 评论 -
将CRF应用于文本序列标注问题的实践细节
线性链条件随机场(统称为CRF)几乎是使用神经网络方法解决序列标注问题的标配,相较于直接采用神经网络序列各时间步输出的argmax进行标注(可以理解为贪婪的思想),CRF能够从训练样本中学习到相邻标注间的制约关系,从而使得标注序列更加科学。一、CRF的基本理论本文侧重于对实践细节的讲解,因此对理论部分仅做简单介绍。二、<start>和<end>标注的意义三、emis...原创 2020-05-11 23:30:49 · 1051 阅读 · 1 评论 -
【论文解析】LM-BiLSTM+CRF:让BiLSTM+CRF模型更加强大
在以Bert为代表的大规模预训练模型出来之前,BiLSTM+CRF是解决文本序列标注问题(如分词、POS、NER和句法分析等)的baseline之一,其通过BiLSTM提取word/token-level的句法/语义特征输出,后接CRF层保证序列标注转移的合法性和全局最优化。论文Empower Sequence Labeling with Task-Aware Neural Language M...原创 2020-04-25 22:49:02 · 2523 阅读 · 0 评论 -
【论文解析】Transformer浅析(Attention is All You Need)
Attention is All You Need作为NLPer必须反复阅读和深刻理解的经典论文,提出了Transformer这样一个效果优异的特征抽取器,被广泛应用于后续的预训练模型。网络上关于Transformer的优秀解读很多,本文仅记录了本人的一些思考和理解。一、模型架构解读Transformer是基于经典的机器翻译Seq2Seq框架提出的,区别在于Encoder和Decoder中大...原创 2020-04-18 21:16:01 · 2137 阅读 · 2 评论 -
浅析NLP中的Attention技术
【Reference】遍地开花的 Attention ,你真的懂吗?An Introductory Survey on Attention Mechanisms in NLP Problems原创 2020-04-18 13:25:42 · 1179 阅读 · 0 评论 -
【文本分类】RCNN模型
RCNN模型也是用于文本分类的常用模型,其源论文为Recurrent Convolutional Neural Networks for Text Classification。模型整体结构如下:架构主要包括如下模块:(1)通过双向RNN模型,得到每个token上下文的信息(隐层输出):(2)通过隐层输出与原始embedding的拼接,得到扩展后的token信息;(3)后面接于Text...原创 2020-04-12 11:22:31 · 703 阅读 · 0 评论 -
【论文解析】如何将Bert更好地用于文本分类(How to Fine-Tune BERT for Text Classification?)
论文How to Fine-Tune BERT for Text Classification?基于Bert模型,在6份英文语料和1份中文预料上(包括情感分析、问题分类和主题分类),进行了翔实的文本分类效果对比实验结果,虽然fine-tune的最终效果取决于具体的task,但文中采用的思路和策略仍值得学习和尝试。Bert作为强有力的预训练模型,用作下游任务的常见手段包括:(1)作为特征提取器;(...原创 2020-04-10 08:32:52 · 3289 阅读 · 1 评论 -
利用gensim训练word2vec
1. word2vec简介gensim中的word2vec模块可以基于用户提供的语料快速计算相应词向量,从而用于下游任务。word2vec基于语言学中经典的分布式假设,包含了基于中心词预测周围词的skip-gram和基于周围词预测中心词的CBOW两大类方法,同时为了解决词表庞大带来的softmax计算问题,可分别采用基于Huffman树的层次softmax方法以及基于局部小样本优化的negat...原创 2020-03-30 20:00:54 · 1606 阅读 · 0 评论 -
【文本分类】TextCNN模型
111原创 2020-02-19 12:44:41 · 970 阅读 · 0 评论 -
【文本标注】文本标注工具brat的使用
brat是linux下的一款应用于webserver端的文本标注工具,可用于标注如下类型信息:(1)实体:命名实体,可用于NER;(2)关系:实体间关系,可用于关系抽取;(3)事件:实体参与的事件;(4)属性:事件或实体的属性,常用于知识图谱。本文将依次介绍brat的安装、配置和基本使用。1. brat的安装1.1 基本环境配置【系统环境】brat只能用于linux下,若为win...原创 2020-01-30 13:09:19 · 11287 阅读 · 6 评论