自然语言处理(NLP)
文章平均质量分 81
前行的zhu
程序员小白的前行之路
展开
-
python根据文本特征进行切块处理
如下是使用ocr识别出来的病历文本,我想要将之切为“症状”、“检查”和“化验”三部分完整数据及代码如下:lines = ["北京协和医院~病案记录~姓名~任~发~君~2~病案号1~5~40000~2008-9-5~首次病程记录~、本例特点:~1、中年男性,急性起病,病程3月。~2、主要表现为车祸撞伤后乏力、头晕、头痛,嗅觉减退,视力下降,无意识障碍,食欲可。~28~外院检查提示低血钠,血钠最低123mmol/L,尿钠排出增多,经静脉和口服补钠后血钠有所~请~上升,目前未予特殊处理,入院查血钠128mmol原创 2020-09-09 16:36:43 · 453 阅读 · 0 评论 -
fairseq简介
fairseq是一个工具包,里面集成了常见的处理文本的一些网络模型,比如使用self-attention的transformer,使用了CNN的lightconv和dynamicconv。我们这里主要介绍一下fairseq包中使用CNN处理文本的网络模型的整体流程和发展。fairseq包中使用CNN模型的流程图如下所示:主要有以下几个模块组成:1,具有位置信息的词嵌入(Position Embeddings)对于输入端,将含有m个单词的句子x=(x1,…xi…xm)映射到词向量空间形成句子向量w=(原创 2020-07-23 17:14:23 · 15429 阅读 · 1 评论 -
关于错误runtimeerror: CUDA out of memory. Tried to allocate 1.17 GB
错误如题所述,我也尝试了网上其他人的方法,但是可能人家的项目代码相对简单,比较容易找到output = net(…)以及x_train 中的requires_grad=True。可能是我的代码层层调用的关系,反正我是找了半天也找不到这方面的东西,修改了一些我认为类似的但是最后发现没什么用。一开始我是将max_sentences由64设置成32,但是就算设置到4,发现仍然会报错。后来在同事的指导下把max_sentences调小后,又把max_sentences_valid设置为了16,然后再跑一下就跑通了原创 2020-06-18 09:51:43 · 10485 阅读 · 0 评论 -
tf.train.latest_checkpoint()
tf.train.latest_checkpoint()函数的作用查找最新保存的checkpoint文件的文件名(Finds the filename of latest saved checkpoint file.)。tf.train.latest_checkpoint( checkpoint_dir, latest_filename=None)Args:checkpoint_dir: Directory where the variables were saved.;late原创 2020-06-12 16:07:31 · 8318 阅读 · 0 评论 -
一个小例子搞懂transformer中的label smoothing(标签平滑)
我们知道transformer中的正则化除了使用常见的dropout,还使用了label smoothing,也就是标签平滑。关于标签平滑的机制,我在网上也看了一些帖子,总觉得说的不是很透彻,所以自己琢磨了一下,打算以二分类的逻辑回归为例,说明一下具体的标签平滑是如何做的。标签平滑既然作为正则化的一种方式,目的肯定是为了防止模型过拟合。我个人的理解是,加入了标签平滑后可以使得模型不至于过度学习,因为就算一个样本分到某类的概率为十分接近1,目标函数仍然会增加一定的损失,这就减轻了模型过度学习的动力。下面我原创 2020-06-07 19:26:40 · 3406 阅读 · 3 评论 -
Transformer完全图解
在学习Transformer之前,你需要学习一下Seq2Seq Attention的内容,可以参考:几张图彻底搞定Seq2SeqSeq2Seq Attention(这三篇就够了,精心发掘整理)Seq2Seq Attention输入输出维度分析(最全面细致)好了,那下面进入正文Transformer在2017年Google的一篇论文“Attention Is All You Need”被提...原创 2019-10-09 16:24:08 · 7308 阅读 · 2 评论 -
几张图彻底搞定Seq2Seq
Seq2Seq是一个Encoder-Decoder结构,其中Encoder为一个RNN结构,Decoder也为一个RNN结构,当然这里的RNN结构可以替换成为LSTM或者GRU等。我们以机器翻译的例子进行讲解,如下图,我们希望将汉语小明吃苹果翻译成为英文。首先是对汉语进行分词处理得到小明,吃,苹果三个词语,而我们希望输出的是xiao ming eats apples.具体的流程见下图:这里的词...原创 2019-09-26 20:54:43 · 1833 阅读 · 2 评论 -
Seq2Seq Attention输入输出维度分析(最全面细致)
先给出Seq2Seq Attention的计算过程的截图,来源于知乎Yuanche.Sh的题为真正的完全图解Seq2Seq Attention模型的文章,也希望你阅读了我的上一篇文章:Seq2Seq Attention(这三篇就够了,精心发掘整理)这样对Seq2Seq Attention会有一个比较基础全面的认识。为了进一步加深对于Seq2Seq Attention的认识,我们还需要搞懂,Seq...原创 2019-09-26 17:31:22 · 3903 阅读 · 4 评论 -
Seq2Seq Attention(这三篇就够了,精心发掘整理)
作为知识的搬运工,这里介绍三篇我认为关于Seq2Seq Attention,Transformer写的比较好的博客,都是出自知乎大神,特将它们搬运到CSDN。第一篇是真正的完全图解Seq2Seq Attention模型和Transformer模型笔记文章的点赞数达到了500+作者是哥大+悉尼大学的小姐姐,知乎里只有6篇文章,但是偏偏质量都很高。后两篇同样是知乎上的,不过是一个公共号...原创 2019-09-25 20:47:10 · 1767 阅读 · 0 评论 -
玩转Fasttext
Fasttext是Facebook AI Research最近推出的文本分类和词训练工具,其源码已经托管在Github上。Fasttext最大的特点是模型简单,只有一层的隐层以及输出层,因此训练速度非常快,在普通的CPU上可以实现分钟级别的训练,比深度模型的训练要快几个数量级。同时,在多个标准的测试数据集上,Fasttext在文本分类的准确率上,和现有的一些深度学习的方法效果相当或接近。最近一直...转载 2019-09-20 16:39:10 · 328 阅读 · 0 评论 -
FastText与CBOW的联系与区别
FastText是一个文本分类和词向量训练工具,相比于传统的神经网络(DNN)最大的特点就是模型简单,只有一层隐藏层和输出层;结构上与Word2Vec中的CBOW基本类似;所以如果想要深入理解FastText,那么理解Word2Vec中的CBOW是必须的,具体可以参考我的另外一篇介绍Word2Vec的博客:https://blog.csdn.net/weixin_44305115/article/...原创 2019-09-20 16:25:01 · 845 阅读 · 0 评论 -
词向量Word2Vec(深度细致分析)
词向量方法是无监督学习的少数几个成功应用之一优点在于不需要人工进行语料的标注,直接使用未标注的文本训练集作为输入,输出的词向量可以用于下游的业务处理,word2vec可以认为时应用最广泛的词向量转换技术。在了解word2vec之前,首先得了解一下传统的神经网络是如何表示词向量的,传统的神经网络将词表中的词语作为输入(一般输入的是单词的哑编码),输出一个低纬度的向量表示这个词语,然后用反向传播的方...原创 2019-09-19 20:27:09 · 10059 阅读 · 8 评论 -
哑编码(One-Hot),词袋法(BOW),词集法(SOW),词频--逆文档频率(TF-IDF)
哑编码(One-Hot):是一种将非数值型的特征值(或称为属性)转换为数值型的数据的编码方法。一般是将类别数据编码成为对应的数值数据以供后续的算法使用。使用哑编码保证了两两类别(假设类别间相互独立)间的空间距离是相等的,这样避免了人为引入额外的类别差异性,进而有利于后续(比如loss函数)的计算。描述过程为:假设某个变量的取值有k个(也即变量具有k个特征值或者说k个属性),如果对这些特征值用1到...原创 2019-08-27 17:13:10 · 3326 阅读 · 0 评论 -
条件随机场(CRF)
为了引入条件随机场,我们先来了解一下数学相关的基础知识1,随机场:随机场可以看成是一组随机变量的集合,这组随机变量对应同一个样本空间,这些随机变量可能有依赖关系,因为这样才有实际意义。2,马尔科夫随机场(Markov Random Field, 简称MRF):又称为概率无向图模型,无向图上的每一个节点对应一个随机变量,节点之间的边表示变量间的依赖关系。从另一个角度看,马尔科夫随机场反映了先验知...原创 2019-08-27 10:41:31 · 184 阅读 · 0 评论 -
两句话透彻理解HMM(隐马尔科夫模型)
HMM即隐马尔科夫模型,它是处理序列问题的统计学模型,描述过程为:由隐马尔科夫链随机生成不可观测的状态随机序列,然后各个状态分别生成一个观测,从而产生观测随机序列。HMM是关于时序的概率模型,描述一个含有含有未知参数的马尔科夫链所生成的不可观测的状态随机序列,再由各个状态生成观测随机序列的过程,HMM是一个双重随机过程——由马尔科夫链随机生成的不可观测的状态序列和由状态生成的随机的观测序列。另...原创 2019-08-26 15:08:24 · 189 阅读 · 0 评论 -
Windows环境下如何安装并搭建自然语言处理库HanLP
HanLP是由一系列模型与算法组成的工具包,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点;提供词法分析(中文分词、词性标注、命名实体识别)、句法分析、文本分类和情感分析等功能。(以上介绍来自官网:http://www.hanlp.com/#overview 同时也附上GitHub上的地址(这里面介绍更全面):https://gith...原创 2019-08-15 11:22:53 · 631 阅读 · 1 评论