Assignment #3
A primer on named entity recognition
这一节作业我们会建立几种不同的模型来实现命名实体识别(NER)。NER是信息抽取的一个子任务,旨在将文本中的命名实体定位并分类为预先定义的类别,如人名、组织、地点、时间表达式、数量、货币值、百分比等。对于上下文中给定的一个单词,预测它是否代表下列四个类别中的一个:
- 人名(PER):例如“Martha Stewart”,“Obama”,“Tim Wagner”等等,代词“he”或者“she”不考虑为命名实体。
- 组织(ORG):例如“American Airlines”,“Goldman Sachs”,“Department of Defense”。
- 地点(LOC):例如“Germany”,“Panama Strait”,“Brussels”,不包括未命名地点,比如“the bar”或者“the farm”。
- 其他(MISC):例如“Japanese”,“USD”,“1000”,“Englishmen”。
我们将此定义为一个五分类问题,使用上面的四个类和一个空类(O)来表示不代表命名实体的单词(大多数单词都属于此类别)。对于跨越多个单词的实体(“Department of Defense”),每个单词都被单独标记,并且每个连续的非空标记序列都被视为一个实体。
下面是一个示例句子(),其中每个单词上面都被标记了命名实体(
)以及系统生成的假设预测(
):
在上述例子中,系统错误地预测“American”为MISC类,并且忽视了“Airlines”和“Corp”。总的来说,它预测了三个实体,“American”,“AMR”,“Tim Wagner”。为了评测NER系统输出的质量,我们关注准确率,召回率和F1值。特别地,我们会在token级别和命名实体级别都报告准确率,召回率和F1值。在之前的例子中:
-
准确率计算为预测的正确非空标签与预测的非空标签总数之比(上述例子中,p=3/4)。
-
召回率计算为预测的正确非空标签与正确的非空标签总数之比(上述例子中,r=3/6)。
-
F1是准确率和召回率的调和平均值(上述例子中,F1=6/10)。
对于实体级别的F1:
- 准确率是预测实体名称跨度的分数,与黄金标准评估数据中的跨度完全一致。在我们的示例中,“AMR”将被错误地标记,因为它不包括整个实体,即“AMR Corp.”,而“American”也一样,我们将得到1/3的准确率得分。
- 召回率同样是黄金标准中出现在预测中完全相同位置的名称数量。在这里,我们会得到1/3分的召回率得分。
- 最后,F1值仍然是两者的调和平均值,例子中为1/3。
我们的模型还输出一个单词级别的混淆矩阵。混淆矩阵是一种特定的表格布局,允许可视化分类性能。矩阵的每一列表示预测类别中的实例,而每一行表示实际类别中的实例。这个名字源于这样一个事实,即它可以很容易地看出系统是否混淆了两个类(即通常错误地将一个类标记为另一个类)。
1.A window into NER
让我们来看一个简单的基线模型,它使用来自周围窗口的特征分别预测每个单词的标签。
图1显示了一个输入序列的例子和这个序列的第一个窗口。令为长度为T的输入序列,
为长度为T的输出序列。每个元素
和
都是代表序列中索引为t的单词的one-hot向量。在基于窗口的分类器中,每个输入序列被分割成T个新的数据点,每个点代表一个窗口及其标签。通过将
的左右两侧的w个单词连在一起,从
周围的窗口构造一个新的输入:
,我们继续使用
作为它的标签。对于在句首以标记为中心的窗口,我们在窗口的开头添加特殊的开始标记(<start>),对于在句尾以标记为中心的窗口,我们在窗口的末尾添加特殊的结束标记(<end>)。例如,考虑在上面的句子中围绕“Jim”构建一个窗口,如果窗口大小为1,我们会在窗口中加一个start