上一节课,我们重新整理了样本文件,接下来就可以定义Dataset类,来加载数据了。为了让模型也可以适用于,一个句子有多个实体的情况,我们把样本中相邻两个句子合并,用最小的代价,模拟出多个实体的场景。
本专栏主要用于,发布 CV / NLP / 推荐算法等领域的实战项目讲义,目前是 Pytorch 实现,后续会加上 TensorFlow 相关的课程内容。
上一节课,我们重新整理了样本文件,接下来就可以定义Dataset类,来加载数据了。为了让模型也可以适用于,一个句子有多个实体的情况,我们把样本中相邻两个句子合并,用最小的代价,模拟出多个实体的场景。
上节课给大家详细介绍了模型结构,这节课,我们就开始做数据预处理了。数据预处理阶段,我们需要完成两个任务,一个是将样本文件处理成一句一行的形式,方便读取,另一个是,剔除异常数据。
上节课当中,给大家介绍了任务目标,并且演示了项目的最终效果。因为这个模型是一个联合任务,相对复杂,我们还是花一节课时间,给大家详细介绍一下模型结构。另外,论文中模型的配图,不是很好理解,我给大家重新画了一个精简版本,帮助大家更好的理解代码流程。
从这节课开始,我们将一起来学习一个新的项目,叫做属性级情感分析。属性级情感分析(Aspect-based Sentiment Analysis, ABSA)是一类细粒度情感分析任务,常用于评论分析中,帮助商家深入理解用户偏好。
从6月初开始,我就在着手录制一个系列的NLP项目课程,到今天已经全部录完了。下面,我就从4个方面,给大家做一个简短的汇报。
上节课当中,给大家介绍了这个项目需要用到的数据集,并且做了简单的数据预处理,缓存好了关系分类文件。接下来,我们可以定义Dataset类,来加载数据了。这节课,先完成文件加载和分词这两块内容。
前面介绍完 CasRel模型结构,接下来我们看一下数据集,然后做一个简单的预处理。因为是用 Bert 做分词,就省去了自己建词表的过程,只需要把关系解析出来,供后续流程使用,就可以了。
上节课,给大家整体介绍了项目要做的事情,就是从一段文本当中,找到主体、客体、和关系的三元组组合,因为 CasRel 这个模型,设计思路不是很常规,示意图的细节也容易混淆,所以我们单独用一节课时间,来拆解一下这个模型。
关系抽取,是信息检索、智能问答、智能对话等人工智能应用的重要基础,一直受到业界的广泛关注。目前NLP领域的主流研究方向,也在向知识图谱偏移。因为多音字、多义词,加上语境变化,单个字或者词的表征一定是片面的,发现实体之间的联系,往往比自身特征更重要。
上节课,我们做了一个简单的数据预处理,通过观察直方图,定义好了文本的长度参数。现在,假设大家已经看了、并且掌握了前面 Huggingface 的内容,我们接着往下讲自定义 Dataset 和 Bert 分词的内容。
上节课,给大家介绍了 TextCNN 的模型结构,这节课就正式进入代码部分。本节课有两个任务,一是导入数据集,二是要统计待分类的文本长度,因为 TextCNN 在卷积之后,要做批量最大池化操作,所以要求文本长度一致,不够的填充PAD,太长的要进行截取。
从本节课开始,我将带大家来完成一个《Bert+TextCNN新闻文本分类项目》。文本分类是自然语言处理最基础,也是最重要的任务之一,非常适合作为NLP入门的第一个项目。
上节课我们用一个中文句子,给大家演示了 Bert 预训练模型的基本用法。但有些场景下,文本内容可能是中英文混杂的,但目前还没有支持多语言的预训练模型。直接用中文模型进行编码,英文部分会变成[UNK]标记,从而导致BertTokenizer分词不可逆问题。
上一节介绍了transformers的安装,和预训练模型的加载方法,本节我们结合一个例子,来介绍预训练模型的使用过程。使用 BERT 这个预训练模型,主要分为两步:BertTokenizer 进行分词,BertModel 编码。
HuggingFace 是一家专注于自然语言处理(NLP)、人工智能和分布式系统的创业公司,该公司维护的 HuggingFace 的开源社区,是最大的开源模型托管服务的平台,相当于机器学习界的 Github。
上一节用PaddleOCR提取出了,火车票图片的文字和位置信息,并手动打上了对应标签,本节我们将根据带标签的文件中的位置信息,创建一个图结构,并计算标准化的邻接矩阵。
从这节开始,就正式进入GCN项目的代码环节,我们先使用PaddleOCR,识别出火车票上的文字信息,并提取文字所位置,整理后另存为一个csv文件。项目的目的是要做信息抽取,所以对训练和测试数据,需要手动打上标签,供算法学习。
深度学习一直都是被几大经典模型统治着,常见的有CNN、RNN网络,它们在CV和NLP领域都取得了优异的效果。但人们发现了很多CNN、RNN无法解决,或者效果不好的问题——图结构数据,所以就有了GNN网络。
从本节开始,我将带大家完成一个深度学习项目:用图卷积神经网络(GCN),实现一个「火车票文字信息提取」的项目,由于火车票上每个节点文字不是等长的,所以还需要添加一个前置的 LSTM 来提取句子特征。
前文已经定义好了 BiLSTM、Linear 层,最后还需要加一层 CRF,再结合维特比解码,输出目标值。另外一个重要的步骤,就是定义损失函数,CRF 解码后的损失计算,不同于分类任务的交叉熵损失,还需要考虑到顺序的问题。