NLP基础任务—序列标注任务

资源下载地址:https://download.csdn.net/download/sheziqiong/86178744
资源下载地址:https://download.csdn.net/download/sheziqiong/86178744

一、思路

本次要完成 nlp 四大基础任务之一的序列标注任务,也叫做命名实体识别。即是在给定文本中能够对词性、人名地名等特定信息进行标注。

实验主要采用循环神经网络进行搭建,每一条样本输入是一条句子(对应的嵌入向量表示),该样本的标签也是一个等长的句子标签,其中每一个元素对应句子中每一个字的标签。如样本为’我 爱 北 京’,则该样本的标签为’O O B-LOC I-LOC’。然后通过循环神经网络再结合交叉熵损失函数进行训练。但根据课上所学知识,我们知道直接用 LSTM 虽然可以完成该任务,但是往往会预测出现一些不可能真实存在的结果,如连续两个 B-LOC 标签。因此我们可以增加条件随机场 CRF 模型在 LSTM 层之后,使用梯度下降自动去学习 CRF 模型的参数,这样可以获得比只使用 LSTM 好的结果。

二、模型概况

Input()Embedding(input_dim=5000, output_dim=50)BiLSTM(units=100)BiLSTM(units=150)CRF(units=7)

三、编程实现

为了实现上述模型我们首先需要对输入进行处理。首先使用 Tokenizer 库进行分词,词典大小设置为 5000,之后对训练样本进行padding(这里选择 maxlength进行padding),之后对标签也要做相应的 padding(这里 padding 的内容直接选用 O 标签)。

使用 keras 库进行模型的搭建,堆叠型模型声明如下

NLP基础任务—序列标注任务

优化器选用 Adam,损失函数使用稀疏交叉熵,batchsize 设为 128,训练 20 轮。之后用训练好的模型,在测试集上测试即可。 www.biyezuopin.vip

; 四、实验结果

1.两层双向 LSTM 结果:

OB-LOCI-LOCB-PERI-PERB-ORGI-ORGPrecision0.99400.90800.92260.90630.90260.81310.8626Recall0.99780.84710.79270.81350.88520.75510.7894F10.99590.87650.85270.85740.89380.78300.8244 With ‘O’Without ‘O’Macro-precision0.90130.8859Macro-recall0.84010.8138Macro-f10.86910.8480

NLP基础任务—序列标注任务

2.三层双向 LSTM 结果,效果提升不明显

With ‘O’Without ‘O’Macro-precision0.88630.8682Macro-recall0.86100.8383Macro-f10.87260.8520

NLP基础任务—序列标注任务

NLP基础任务—序列标注任务
资源下载地址:https://download.csdn.net/download/sheziqiong/86178744
资源下载地址:https://download.csdn.net/download/sheziqiong/86178744

Original: https://blog.csdn.net/newlw/article/details/124728067
Author: biyezuopinvip
Title: NLP基础任务—序列标注任务

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/547889/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球