Mindspore框架CRF条件随机场概率图模型实现文本序列命名实体标注|(一)序列标注与条件随机场的关系
Mindspore框架CRF条件随机场概率图模型实现文本序列命名实体标注|(二)CRF模型构建
Mindspore框架CRF条件随机场概率图模型实现文本序列命名实体标注|(三)双向LSTM+CRF模型构建实现
Mindspore框架CRF条件随机场概率图模型实现文本序列命名实体标注|序列标注与条件随机场的关系
一、序列标注定义
序列标注:指给定输入序列,给序列中每个Token(word)进行标注标签的过程。
序列标注问题:是从文本中进行信息抽取,包括标注分词(Word Segmentation)、词性标注(Position Tagging)、命名实体识别(Named Entity Recognition, NER)等。
"BIOE"标注方法:为命名实体识别的标注方法;是将一个实体(Entity)的开头标注为B,其他部分标注为I,非实体标注为O。表示文本中的每个字符分为四种类型:
- B(Begin)表示一个实体的开始。
- I(Inside)表示实体内部的字符。
- O(Outside)表示不属于任何实体的字符。
- E(End)表示一个实体的结束。
输入序列,输出标注。
标注的作用与意义 :通过这种标注方式,我们可以清晰地识别出句子中的不同实体及其边界 ,这对于自然语言处理中的命名实体识别任务非常有用。BIOE标注法提供了一种标准化的方式来标记文本中的实体,它涉及到从文本中识别出具有特定意义的实体,如人 (PERSON)、地点 (LOCATION)、组织机构 (ORG e.g., 公司、政府机构等)、时间表达式 (DATE) 等。使得机器学习模型能够更容易地学习和识别这些实体,从而提升模型对文本中实体信息的理解和提取能力。
二、条件随机场定义
序列标注不仅仅需要对单个Token进行分类预测,同时相邻Token直接有关联关系 。
CRF
:一种能够学习到这种关联关系的算法-条件随机场概率图模型
线性链条件随机场(Linear Chain CRF
):序列标注问题具有线性序列特点,选择线性链条件随机场。
2.1 Line chain CRF的定义
设 x = { x 0 , . . . , x n } x=\{x_0, ..., x_n\} x={x0,...,xn}为输入序列, y = { y 0 , . . . , y n } , y ∈ Y y=\{y_0, ..., y_n\},y \in Y y={y0,...,yn},y∈Y为输出的标注序列,其中 n n n为序列的最大长度, Y Y Y表示 x x x对应的所有可能的输出序列集合。则输出序列 y y y的概率为:
P ( y ∣ x ) = exp ( Score ( x , y ) ) ∑ y ′ ∈ Y exp ( Score ( x , y ′ ) ) ( 1 ) \begin{align}P(y|x) = \frac{\exp{(\text{Score}(x, y)})}{\sum_{y' \in Y} \exp{(\text{Score}(x, y')})} \qquad (1)\end{align} P(y∣x)=∑y′∈Yexp(Score(x,y′))exp(Score(x,y))(1)
设 x i x_i xi, y i y_i yi为序列的第 i i i个Token和对应的标签,则 Score \text{Score} Score需要能够在计算 x i x_i xi和 y i y_i yi的映射的同时,捕获相邻标签 y i − 1 y_{i-1} yi−1和 y i y_{i} yi之间的关系,因此我们定义两个概率函数:
- 发射概率函数 ψ EMIT \psi_\text{EMIT} ψEMIT:表示 x i → y i x_i \rightarrow y_i xi→yi的概率。
- 转移概率函数 ψ TRANS \psi_\text{TRANS} ψTRANS:表示 y i − 1 → y i y_{i-1} \rightarrow y_i yi−1→yi的概率。
则可以得到 Score \text{Score} Score的计算公式:
Score ( x , y ) = ∑ i log ψ EMIT ( x i → y i ) + log ψ TRANS ( y i − 1 → y i ) ( 2 ) \begin{align}\text{Score}(x,y) = \sum_i \log \psi_\text{EMIT}(x_i \rightarrow y_i) + \log \psi_\text{TRANS}(y_{i-1} \rightarrow y_i) \qquad (2)\end{align} Score(x,y)=i∑logψEMIT(xi→yi)+logψTRANS(yi−1→yi)(2)
设标签集合为 T T T,构造大小为 ∣ T ∣ x ∣ T ∣ |T|x|T| ∣T∣x∣T∣的矩阵 P \textbf{P} P,用于存储标签间的转移概率;由编码层(可以为Dense、LSTM等)输出的隐状态 h h h可以直接视作发射概率,此时 Score \text{Score} Score的计算公式可以转化为:
Score ( x , y ) = ∑ i h i [ y i ] + P y i − 1 , y i ( 3 ) \begin{align}\text{Score}(x,y) = \sum_i h_i[y_i] + \textbf{P}{y{i-1}, y_{i}} \qquad (3)\end{align} Score(x,y)=i∑hi[yi]+Pyi−1,yi(3)