bert训练自己的数据集,bert训练数据

  bert训练自己的数据集,bert训练数据

  1.知识图谱介绍1。知识库和三元组2。知识库问答3。知识库问答的主流方法4。基于深度学习的KQ问答2。项目介绍。项目数据集2.1构建命名实体标识数据集2.2构建知识库数据集2.3构建具有相似属性的数据4。数据库数据的构建。模型构造5.1 Bert CRF 5.2 Bert用于层序分类6。模型运行效果

  一、知识地图介绍

  详见知乎专栏。

  1.知识库和三元组“欧巴马出生在陆璐,火奴"勤奋的仙人掌来自中国.""谢霆锋的父亲是一片长满胡须的树叶."

  这些都是知识碎片,大量的知识就变成了知识库。我们可以在维基百科、百度百科等百科中查阅到很多知识。但是这些百科全书的知识形成形式是非结构化的自然语言,非常适合人们阅读但不适合计算机处理。为了便于计算机处理和理解,我们需要一种更正式、更简洁的知识表达方式,即三元组。

  "欧巴马出生在陆璐,火的奴隶."它可以用三个一组来表示(巴拉克奥巴马,出生地点,檀香山)。

  在这里,我们可以简单地把三元组理解为(实体实体,实体关系,实体实体)。再者,如果我们把实体看成节点和实体关系(包括属性、类别等。)作为边,那么包含大量三元组的知识库就会变成一个巨大的知识图谱。

  提取的KBs知识库中涉及的两个关键技术是

  实体链接是指将文档中的实体名称链接到知识库中的特定实体。它主要涉及自然语言处理领域的两个经典问题:实体识别和实体消歧。简单来说就是从文档中识别人名、地名、机构名、电影等命名实体。而且同一个实体名称在不同环境下可能会有歧义,比如苹果。我们需要根据上下文来消除歧义。关系抽取,即从文档中抽取实体关系,主要涉及到一些技术如词性标注、句法分析、依存树、SVM、最大熵模型等。2.知识库问答是指给定的自然语言问题。对问题进行语义理解和分析后,利用知识库进行查询和推理得到答案。

  与对话系统和对话机器人的交互对话不同,KB-QA具有以下特点:

  答案:答案是知识库中的实体或实体关系,或者无答案(也就是这个问题不能用KB回答)。当然这里的答案不一定是唯一的,比如中国有哪些城市?对话系统回复自然语言句子,有时甚至需要考虑上下文。评价标准:召回率、准确率和F1值。对话系统的评价标准主要是人工评价,以及BLEU和困惑。当我们在百度里询问2016年奥斯卡最佳男主角时,百度会根据知识库进行查询推理,返回答案。这其实是KB-QA的一个应用。

  3.关于知识库问答方法,传统的主流方法可以分为三类:

  

语义解析(Semantic Parsing)

:此方法是一种部分语言学方法。主要思想是将自然语言转换成一系列形式化的逻辑形式。通过自下而上的分析逻辑形式,得到一个能够表达整个问题语义的逻辑形式,然后通过相应的查询语句(类似于lambda-Caculus)在知识库中查询,得到答案。红色部分是逻辑形式,绿色部分是自然语言问题,蓝色部分是语义分析的相关操作,语义分析树的根节点是最终的语义分析结果。可以通过查询语句直接查询知识库中的最终答案。

信息抽取(Information Extraction)

:这种方法提取问题中的实体,在知识库中查询实体,得到以实体节点为中心的知识库子图。子图中的每个节点或边都可以作为候选答案。通过观察问题,按照一定的规则或模板提取信息,得到问题的特征向量。通过输入问题的特征向量,建立分类器对候选答案进行筛选,从而得到最终答案。姚X,信息抽取的代表论文,Van Durme B .结构化数据上的信息抽取:用Freebase [C]//ACL的问答(1) .2014: 956-966.

向量建模(Vector Modeling)

:该方法的思想接近信息抽取的思想,根据问题得到候选答案,将问题和候选答案映射成分布式嵌入。分布式嵌入通过训练数据进行训练,使问题的向量表达式和正确答案(通常以点乘的形式)的得分尽可能高,如下图所示。模型训练完成后,根据候选答案的向量表达和问题表达的得分进行筛选即可得到最终答案。4.基于深度学习的KQ问答随着深度学习在自然语言处理领域的快速发展,从15年前开始出现了一系列基于深度学习的KB-QA章节。通过深度学习,对传统方法进行了改进,取得了良好的效果。

  改进了卷积经络对的向量建模方法,改进了卷积经络对的语义分析方法,将短时记忆网络(LSTM)和卷积经络对归入实体关系,将记忆网络和注意机制纳入KB-QA。

  直到2018年底,Bert在NLP上的巨大突破,让BERT进入了KB-QA,取得了不错的成绩。本项目是基于BERT模型实现的。

  二。本项目简介本项目的主要目标是建立一个知识库问答系统,可以从用户提出的问题中搜索知识库,并返回一个确定的答案。没有答案就没有答案。

  1.项目数据集NLPCC是自然语言处理和中文计算会议的全称。它是中国计算机联合会(CCF)信息技术专业委员会的年度学术会议,专注于自然语言处理和中文计算领域的学术和创新。

  本项目数据集采用NLPCC2017的任务5:开放领域问答;它有14,609个问答对的训练集和9,870个问答对的测试集。它还提供了具有6,502,738个实体、587,875个属性和43,063,796个三元组的知识库。

  NLPCC2017_task5

  数据集格式如下:

  2.处理数据集请参考文件preprocess data/createtrainingdata . py。

  它包括两个步骤:1)建立命名实体识别数据集,2)建立相似性训练数据集。

  2.1构建命名实体标识数据集要构建命名实体标识NER数据集,需要根据三元逆向标注问题对问题进行标注。这里只需要识别实体,用[o , b-loc , I-LOC]标记,其中o代表其他非实体,B-LOC实体开头,I-LOC实体不是第一个字母。

  生成的结果放在NERdata文件夹下,点击train.txt可以看到如下NERData结构:

  2.2知识库数据集的构建知识库的构建,主要是提取原始数据集作为知识库,传入数据库进行检索。

  2.3构造属性相似的数据构造正负样本,用于训练问题和属性相似度。当用户输入问题时,通过命名实体标识提取第一个实体,通过查询数据库有可能得到多条信息,因为一个实体会对应很多属性。此时通过问题和属性相似度训练模型进行属性选择,选择与用户输入的问题最接近的属性,返回答案。

  构建的数据集如下:1个正样本,5个负样本。

  其中问题和属性被训练为seq1和seq2输入BertForSequenceClassification。

  4.为Ubuntu mysql安装构建数据库数据。请参考链接:Ubuntu mysql安装。

  请参考Ubuntu mysql用法。

  操作python mysqlubuntu python mysql

  5.模型构造5.1 BERTCRF这个项目使用了变形金刚版本的hunggingface的Bert。

  想法:

  BertModel得到输出,也就是最后一层的hidden_state (shape: batch _ size,seq _ len,hidden_size)。通过线性变换将hidden _ state从hidden _ size变为num_labels。这里num_labels=3是三种类型的命名实体识别[o , b-loc 。i-loc]。此时输出shape (batch _ size,seq _ len,num _ label),我们将这里的输出作为CRF的输入。前一步的输出,作为CRF的输入。变形金刚自带的BERTForTokenClassification正好满足了第一步和第二步的需求。因为这里只需要得到输出的隐藏,不需要计算损失,所以Bert不需要在输入中输入target label。当没有标签输入时,BertForTokenClassification的输出中的第一项就是我们想要的结果发射(batch _ size,seq _ len,num _ labels=3)。请看代码:

  消息=自己。BertModel (input _ ids=input _ ids,attention _ mask=attention _ mask,token _ type _ ids=token _ type _ ids)[0]5.2 BertForSequenceClassification该模型用于从问题中提取属性。

  问题来了,第一步是通过命名实体识别提取实体名称,第二步是确认问题的属性。通过分类模型获得属性的确认。

  模式输入如下:[CLS]问题[SEP]属性[SEP]。

  就是上面构建的相似度数据集。每个阳性样本对应五个阴性样本。

  通过分类模型,进行‘问题’和‘属性’的相似度训练。

  这里采用了变压器自带的BERTForSequenceClassification。这是一个增加了基于Bert的序列分类进行微调的模型。大步骤:1。BertModel得到输出,即最后一层的hidden_state (shape: batch_size,seq _ len,hidden _ size),取最后一层的hidden_state的第一个token进行分类(batch_size,Hidden_size) 2。通过线性变换,将分类令牌由hidden_size改为num_labels,其中num_labels=2为正负样本(0,1),计算与真实标签的交叉熵损失。

  6.模型操作效果

  参考:

  基于知识地图的问答系统介绍——NLP cc 2016 kbqa数据集

  知乎专栏

  基于BERT的QA (2)知识库问答实践

  基于BERT模型的KBQA系统

bert训练自己的数据集,bert训练数据