0%

命名实体识别与关系抽取

实体关系抽取

需求方提供与糖尿病相关的中文学术论文及糖尿病临床指南。我们从中抽取实体之间的关系。实体之间的关系共十类。

场景

本方案通过枚举所有实体对之间是否有关系建模,所以需要产生所有实体对之间的关系数据(有关系与无关系)。

正样本与负样本:
例子:句子:实体1xxx实体2,xxx实体3。
由上述句子可以生成实体1-实体2,实体1-实体3,实体2-实体3,共三个备选样本,假设实体1-实体2为一个正样本(即这两个样本之间有关系),那么剩余的两种组合即为负样本。当然,这种样本制作方式会带来很高的正负样本比。

数据分析:
通过数据分析,可以得到,两个有关系的实体有71%可能在一个句子中,有21%的可能分布在相邻的两个句子中。

实体含有的信息:实体名字与其表示的向量,实体位置,

数据样本生成:

  1. 如果通过常规的句子切割方式,一来诸如半角符号的存在,无法判断是小数点还是句子结束符。二来通过这样的方式生成的样本长度均值在150左右。
  2. 本方案通过将【实体1xxx实体2】这样的结构作为一条样本,但是,考虑到上下文的重要性,又在这样的样本前后追加20个字符【xx实体1xxx实体2xx】。最后的文本长度控制在100左右。中间文本超阈值范围的不计。
  3. 为了再次降低正负样本比例,清除无关实体构成的句子。

特征制作:

  1. 词性特征:将字的所属词的词性进行embedding.

  2. 词边界特征:通过BIOE标记法获得的标记进行embedding.

  3. 标记实体所在位置。实体位置标记1,其它字标志为0。

  4. 由于疾病最后一个字往往比较重要,所以将标注方式换为B(Begin),I(Inside),O(Outside),E(End),S(Single)。多了E和S。

  5. 实体对之间的距离作为关系。

采用字向量:

  1. 中文的分词困难,特别是医疗领域含有大量的专业词汇。
  2. 对于稀少的专有名词的训练很艰难。
  3. 大量的未登录词,词的覆盖率只有55+%,而字的覆盖率达到90+%

字向量的选择:

  1. Word2Vec获得的字向量本次实验效果优于Glove.但是由于负样本的上下文环境多种多样,所以引进了动态字向量。动态字词向量含有上下文的语义信息。

  2. 由于 Word2Vec 和 Glove 学习得到的字向量是固定不变的,即一个字只有一种字向量,显然不适合用于多义词。而 ELMo 算法使用了深度双向语言模型 (biLM),只训练语言模型,而字向量是在输入句子实时获得的,因此字向量与上下文信息密切相关,可以较好地区分歧义。

  3. ELMo 是一种动态词向量算法,在大型的语料库里训练一个 biLSTM (双向LSTM模型)语言模型。下游任务需要获取单词词向量的时候,将整个被向量化的句子输入biLSTM(在 ELMo 中使用了 CNN-BIG-LSTM 生成的词向量),利用 biLSTM 的输出作为单词的词向量,包含了上下文信息。可以理解成,biLSTM 是一个函数,函数的输入是一个句子,输出是句子中单词的词向量。

  4. biLSTM 中不同层得到的词向量侧重点不同,输入层采用的 CNN-BIG-LSTM 词向量可以比较好编码词性信息,第 1 层 LSTM 可以比较好编码句法信息,第 2 层 LSTM 可以比较好编码单词语义信息。通过多层词向量的融合得到最终词向量,最终词向量可以兼顾多种不同层次的信息。

Loss的设置:

由于负样本的文本模式复杂多样,无规律可循,所以,对于负样本作为一个类别去预测就会很难提取这个类别的共性特征。因此,将10+1类的预测改为10类的预测,然后设置阈值来区分是不是负样本,这样提高了召回率。

预测阶段,设t是模型正负样本的判断阈偵:
1、如果有预测得分人于等于t,则选取最大得分对应的类别为预测类别;
2、如果预测得分均小0,则该样本为负类。

Loss公式:L=log(1+exp(γ(m+sθ(x)y+)))+log(1+exp(γ(m+sθ(x)c)))L=log(1+exp(\gamma(m^+ - s_{\theta(x)_{y^+}}))) + log(1+exp(\gamma(m^- + s_{\theta(x)_{c^-}})))

m+ = 2.5, 指的是正样本的阈值,要大于2.5。

m- = 0.5, 指的是负样本的阈值,要小于0.5。

γ\gamma为模型损失的缩放超参。

sθs_{\theta}是sigmod函数。

cc^-是除了预测正确的类别,第二大预测的分值。

本Loss比交叉熵Loss的准确率低,但召回率高,F1也高。

图谱的功能

查询某一个实体的属性与对应的关系实体。比如疾病与其对应相关的药物,对应的检查方法。关于药物也可以推理出它的用量用法属性。

-------------本文结束感谢您的阅读-------------

欢迎关注我的其它发布渠道