彩票网站注册|如何使用深度学习执行文本实体提取?

企业新闻 | 2020-12-25

本文介绍了如何通过深度自主学习继续提取文本实体。作者尝试用深度自学和传统方法分别提取句子信息,结果深度自学的准确度超过85%,相比之下,超过了现有算法的65%。章节文本实体提取是自然语言处理(NLP)的主要任务之一。

随着近年来深度自学领域发展缓慢,可以将这些算法应用于NLP工作,并得到精度极高的传统方法的结果。为了提取句子信息,分别使用了深度自学和传统方法,深度自学的准确度超过了85%,相比之下,超过了现有算法的65%。

这个项目的目标是将句子中的每个单词标记为四个类别之一:组织、个人、其他。然后在文章中找到最显眼的组织和名字。

深度自我学习模型完成了每个单词的上述标记,然后使用基于规则的方法过滤掉不需要的标签,确认最显眼的名称和组织。感谢GuillaumeGenthial关于顺序标记的文章(https://Guillaumegenthial . github . io/)。这个项目是在这句话上制作的。

模型的高级架构右图是模型的高级架构,用于扩展每个单词的分类显示。建模过程中最需要时间的部分是单词分类。我将说明模型的各个组成部分,并帮助读者对模型组成部分进行全面、高水平的解释。

彩票网站注册

一般来说,模型组件可以分为三个部分。单词是密切相关的。

建模的第一阶段要做的事情是阅读实际的教育单词映射(GloVe)。同时,我们需要从文字中提取一些意思。上下文词密切相关:我们应该利用LSTM,对上下文中的所有单词取得有意义的密切关系。

解码:获得回答词的向量后,可以用于展开预测。Hotencoding深度自主学习算法拒绝只接受数字数据作为输出,不能处理文本数据。要在非大量数字场景中用于深度神经网络,必须将输出数据更改为数字格式。

这个过程就是hotencoding。以下是在部分段落中组成hotencoding的代码示例。word _ counts=counter(words)sorted _ vocab=sorted(word _ counts,key Wordinenumerate (sorted)通常用神经网络写单词映射。此处使用的单词或短语源自词库,必须更改为意外包含的矢量格式。

但是,在数据集上分解单词向量是很昂贵的,因此可以使用实际训练的单词映射来避免这个问题,例如斯坦福大学NLP研究人员获得的GloVe向量。文字映射与文字的向量密切相关,可以用作推理向量。不用于字符映射的原因是,由于没有与许多实体相对应的词典训练词向量,因此必须使用字符向量来计算单词向量。

LSTM传统神经网络对循环神经网络(RNN)循环神经网络(RNN)是一种人工神经网络,用作序列数据(如文本、基因组、手写、口语词汇或传感器、股市和政府机构的数字时间序列数据)的模式识别。可以“解释”文本的上下文意义。

RNN神经元LSTM是一种相似的循环神经网络,可以存储比非常简单的循环神经网络更好的上下文信息。非常简单的RNN和LSTM的主要区别是每个神经元结构不同。对于上下文中的所有单词,我们应该利用LSTM得到与它所处上下文中的意义密切相关的东西。 在条件随机场(CRF)预测显示的最后解码阶段,可以用于softmax函数。

当我们用在softmax函数上时,它会得出单词属于每个分类的概率。但是这种方法产生了局部的自由选择。也就是说,即使从文本上下文中提取部分信息,显示决定过程仍然是本地的。在softmax转录函数中使用时,不用于确定附近单词的显示。

例如,在“纽约”一词中,我们用“纽约”来表示一个地方。事实上,这将有助于我们确认“纽约”那个地方的开始。

在CRF中,我们的输出数据是序列数据。同时,我们在某些数据点展开预测时,要考虑前面文本的上下文。本项目使用线性链CRF。在线性链CRF中,特征只依赖于当前标记和上一个标记,而不是整个句子中给定的标记。

为了这个不道德的建模,句子S单词的方向I当前单词的标签l_i以前单词的标签l_i?1接下来,在每个功能函数f_j上突出显示加权_j。相当于一句S。现在我们可以把S的标记L:句子中所有单词的加权特征加起来,如下所示。

以词性为基础的特征函数范例l_i=ADVERB,第I个单词以“-ly”结尾时,f_1(s,I,l_i,l_i?1)=1,否则取0。如果对应的加权1相同,且非常大,则该特征基本上倾向于用ADVERB表示以“-ly”结尾的单词。如果I=1,l_i=VERB,句子以问号结尾,则f_2(s,I,l_i,l_i?1)=1,否则取0。

如果相应的加权2是结果,并且非常大,则这个特征基本上倾向于用VERB表示疑问句的第一个单词。(案例,“isthisasentencebeginningwithaverb?如果是L_i呢?1=ADJECTIVE和l_i=NOUN时为f_3(s,I,l_i,l_i?1)=1,否则为0。

对应加权是准时的,我们倾向于指出名词跟在形容词后面。如果是L_i呢?1=PREPOSITION和l_i=PREPOSITION时为f_4(s,I,l_i,l_i?1)=1。

这个函数的加权4是负值,响应介词不应该回到其他介词,所以我们要避免这种标记经常出现。最后,通过指数和正则化,可以将该分数转换为0到1之间的概率p(l|s)。

总之,要想创建有条件的随机字段,必须定义一组依赖于整个句子、单词的当前方向和附近单词的显示的功能函数,强调权重,最后,必要时转换为概率形式。说得很简单,必须做两件事:1。

寻找分数最低的标记顺序。2.在整个显示序列中查找概率分布。幸运的是,TensorFlow确保了相关库,以便于构建CRF。

Log _ likelihood,transition _ params=TF . contrib . CRF . CRF _ log _ likelihood(scores,labes此向量与GloVe单词映射我们还可以自由选择特定的神经网络来自动提取这些特征。本文在字符级使用双向LSTM算法。我们将CONLL数据集的所有单词扩展到hot-encode,这些单词都在GloVe单词映射中有对应的实体。如上所述,神经网络只接受向量,不接受文本,所以要将单词转换为向量。

CONLL数据集包含单词及其标注。Hotencoding之后的单词和标注都转换为矢量。 Hotencoding单词及其标记使用的代码:withopen(self . filename)ASF : words,tags=[],[] forlineinf 3360 line=line=用于提取标签和字形矢量的代码:ifvocab _ charsisnotnoneandchars==true 3360 char _ ids=[]forcharinword ignorecharsoutofvocabulard 其中embeddings[i]响应第I个单词的矢量格式。L=tf.variable (embeddings,dtype=tf.float 32,trainable=false)pretrained _ embeddings=ts此处不需要实际的培训字符映射_ char _ embeddings=TF . get _ variable(Name=_ char _ embeddings,dtype=tf.float32,SST self . cn) self . word _ lengths _ tensor State _ is _ tuple=true)Cell _ bw=TF . contrib . rnn . lstmcell(self . confonfle) 可用于只有连接神经网络的矢量。

此向量中的每个项目对应于每个标记的分数。W=tf.get _ variable (w,dtype=tf.float32,shape=[2 * self . config . hidden _ size]Dtype=TF以下代码计算损失并在预测时返回到非常简单的trans_params。Log _ likelihood,_ trans _ params=TF . contrib . CRF . CRF _ log _ likelihood(self . logits)self . sequence运算符:optimizer=TF . train . Adam optimizer(self . lr _ tensor)self . train _ op=optimizer . mizer如何用于培训的模型TensorFlow(威廉莎士比亚、模板、模型、模型、模型、模型、模型、模型、模型)每当需要展开预测时,都可以读取模型权重,因此不需要新的教育。

def save _ session(self)3360 saves session=weightsifnotos . path . exists(self . config . dir _ moots)self . save该算法通过基于规则的方法过滤结果,然后从文本中更准确地提取最显眼的名称和组织,不会超过100%的准确度。_彩票注册。

本文来源:彩票网站-www.menteperversa.com