国科大大数据分析课程第二次作业(NER和LSI)

国科大大数据分析课程第二次作业(NER和LSI)

一、LSI算法

  1. 已知词项文档矩阵 C=国科大大数据分析课程第二次作业(NER和LSI)_第1张图片

​ 利用LSI算法,求词项与文档各自的3维表示。

:将词项文本矩阵进行奇异值分解进行潜在语义分析:
在这里插入图片描述

得到话题空间在这里插入图片描述
,以及文本在话题空间的表示在这里插入图片描述

国科大大数据分析课程第二次作业(NER和LSI)_第2张图片

代码:

import numpy as np
from numpy import linalg as la
from numpy import mat
if __name__=="__main__":
  X = mat([[1, 0, 1, 0, 0, 0], [0, 1, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0], [1, 0, 0, 1, 1, 0], [0, 0, 0, 1, 0, 1]])
  U, S, T = la.svd(X) #SVD降维
  print(U[:,0:3].round(1))
  print(T[0:3,:].round(1))

二、LSTM+CRF和BERT+LSTM+CRF

分别使用LSTM+CRF和BERT+LSTM+CRF方法进行命名实体识别,数据集为conll-2003,最后将两者结果进行对比.

总体实验思路:将此命名实体识别(Named Entity Recognition,NER)问题看作一个序列词性标注(Part-Of-Speech tagging, POS tagging)问题,可以用词性标注的方法来做;

  1. 方法一:词性标注问题可以用长短期记忆神经网络(LSTM)和条件随机场(CRF)来实现,通过LSTM训练出标注序列,使用CRF对模型增加约束,使用向前向后算法计算出损失值Loss,最后使用维特比(Viterbi)算法解码出标记序列,以达到命名实体识别的目的。

  2. 方法一在数据集conll-2003的实验效果:

国科大大数据分析课程第二次作业(NER和LSI)_第3张图片

  1. 方法二:引入BERT对语料进行预训练,之后使用方法一中相同的方法进行命名实体识别,实现算法优化。

  2. 方法二在数据集conll-2003的实验效果:

国科大大数据分析课程第二次作业(NER和LSI)_第4张图片

  1. 实验结果分析:LSTM+CRF的方法进行命名实体识别虽然在训练集上准确率较高,但在测试集上表现并不是很好,在加入BERT预训练优化后,相比LSTM+CRF,BERT+LSTM+CRF的训练集准确率到达了98%,比前者提高了4%,总体召回率提升了20%,无论训练集还是测试集准确率、召回率和F1值都得到了很大的提升。

  2. 结论:BERT果然名不虚传!

  3. 实验代码:https://github.com/2017403603/NER.git

你可能感兴趣的:(大数据系统与大规模数据分析,数据分析,lstm,深度学习,自然语言处理,预编码)