Handsome_zhou 发表于 2022-10-11 16:07:15

BiLSTM-CRF命名实体识别

本帖最后由 Handsome_zhou 于 2022-10-15 21:53 编辑

        命名实体识别属于序列标注问题,序列标注问题指的是模型的输入是一个序列,输出是针对输入序列的每一个单元,输出一个特定的标签。
        序列标注问题包括自然语言处理中的很多任务,包括语音识别,中文分词,机器翻译,命名实体识别等。常见的序列标注模型包括HMM,CRF,RNN,LSTM,GRU等。

        普通的BiLSTM最后接的一个softmax层,在处理序列标注问题的时候,softmax也没有考虑到序列结果,如连续出现两个动词,在一句话中是不太可能的。
所以后面接一层CRF,CRF是使得最终的出现的结果序列Loss最小,从而能应用于序列标注问题上。

BiLSTM-CRF的结构图如下:








    首先,在句子中每个词,x被表达为一个向量,向量由包含词的字嵌入和词嵌入组成。字的嵌入是随机初始化的。词嵌入通常是来自于预训练的词嵌入模型文件。在整个训练过程中所有的嵌入将会被细粒度的调优。
    其次,BiLSTM-CRF模型的输入是那些嵌入向量,输出是对于句子x中词的预测标签
    BiLSTM层的输出是一个类别的logist(就是softmax之间的Z),然后输入CRF层,CRF根据所有输入的Z,计算一条最有可能的路径(类似于维特比算法计算条件概率最大的那条路径),最后得到一整段输出。

如果不加CRF层
    如果没有CRF层,单独训练一个BiLSTM做NER。对于每一个单词,BiLSTM模型的输出是各种标签的分数,我们可以对于每个单词选择有最高分数的标签。但是很容易会出现像:
I-Organization I-Person 和 I-Organization I-Person 这样的错误,很明显这些输出是无效的。

CRF层可以从训练数据学习限制
    CRF层可以加一些限制给最后的预测标签取确保它们是有效的。这些限制通过训练过程可以被CRF层从训练数据中自动学到,这些限制是:
    1)句子开头首个词的标签应该是 B- 或 O,而不是 I-。
    2)B-label1 I-label2 I-label3 I-..., 在这个模式中,label1, label2, label3...应该是同样类别的命名实体标签。例如,B-Person I-Person 是有效的,但B-Person I-Organization是无效的。有了这些限制,无效的标签数量会急剧的下降。
页: [1]
查看完整版本: BiLSTM-CRF命名实体识别