命名体识别调研以及数据分析 - dylhhh/2020-LIC-RE- GitHub Wiki
•重点调研了百度LAC
• 缺点:(1)长地点会分开
(2)组织名、地名会识别错误
(1) 带标注的中文数据集进行处理(MSRA、WiKi 、LAC的数据集) (2) 输入到模型中进行训练。 (3)验证以及测试。
将输不带标注的中文句子进行处理,使其可以输入到训练好的模型中进行预测标注,抽取出人名,地名以及机构名并输出(评估的数据集是北京市2018年法院裁决书文本)。
·按字符切割(按64个字符进行切割,针对标点符号缺失的数据集)
·按标点符号切割(针对标点符号齐全的数据)
·def to_paddle_tsv(self)(将数据处理成paddle可以读取的文件格式)
·def deal_paddle(self)(用正则匹配抽出LAC标注的实体和标注)
·def deal_corpus(self)(抽出语料中的实体和标注)
·去除单字实体:由于单字实体容易引发歧义。
·最长匹配原则:若语料中实体未标注而LAC结果中对应实体有标注,则对原始标注进行补全。若百度LAC对实体的标注长于原标注,则对照百度标注进行补全。
·优先级匹配原则:设定优先级 ORG > LOC > PER,当实体标注存在差异时,以优先级高的为准。例如:百度ORG标注的优先级要高于原始标注LOC、PER的优先级。百度LOC标注的优先级高于原始标注PER的优先级。
·read_corpus是把“char”和“label”放在不同的列表中,形成data;
·data的形状为[(['我',在'北','京'],['O','O','B-LOC','I-LOC’])
·vocab_build形成word2id.pkl文件,格式如下:
{'当': 1, '希': 2, '望': 3, '工': 4, '程': 5, …,'<UNK>': 4707, '<PAD>': 0}
·random_embedding形成初始化矩阵
结果对比:
·2019年数据格式
·2020年数据格式
·转换后的2020年数据格式
·存在的问题:用两种方法统计,结果不同
·按照第一种方法统计的dic,存在简单object