360 likes | 628 Views
基于 Wikipedia 的中文命名实体识别研究. 中山大学 计算机科学系 潘家铭 指导老师: 汤庸 教授,肖菁 老师. 报告提纲. 报告提纲. 中文命名实体识别的意义. 中文自动分词 (CWR). 命名实体识别 (NER). 中文自然语言处理 中文信息处理 (CNLP). 基础步骤. 重点、难点. 用于 中文信息检索 、 中文文本自动校对 、 机器翻译 、 汉语语音合成 、 语音识别 等等具体应用 [1]. “词”是否有清晰的界定 分词和理解孰先孰后 分词歧义消解 未登录词的处理 文献 [1~12]. 没有天然的识别标志 开放类,内容庞大
E N D
基于Wikipedia的中文命名实体识别研究 中山大学 计算机科学系 潘家铭 指导老师: 汤庸 教授,肖菁 老师 基于Wikipedia的中文命名实体识别研究
中文命名实体识别的意义 中文自动分词 (CWR) 命名实体识别 (NER) 中文自然语言处理 中文信息处理 (CNLP) 基础步骤 重点、难点 用于中文信息检索、中文文本自动校对、机器翻译、汉语语音合成、语音识别等等具体应用[1] “词”是否有清晰的界定 分词和理解孰先孰后 分词歧义消解 未登录词的处理 文献 [1~12] 没有天然的识别标志 开放类,内容庞大 随着时间推移而扩展 形式不统一 多出现歧义 文献[13~18] 流行的应用
本论文的研究目标及工作 使用Wikimedia提供的中文Wikipedia数据库,包括数据Wikipedia文章文本以及链接等数据。 探究非人工标注专用语料库在命名实体识别应用的可行性(引入Wikipedia 数据库)。 使用开源搜索引擎Indri对中文Wikipedia建立索引,并创建结合Wikipedia本身组织特点的词典,作为系统的语料库。 中文命名实体识别研究的意义 对开源百科全书数据库的数据进行提取并建立索引以便提取,作为词典来应用 使用了CRF++开源模型作为建模框架,定义了SYSUNER识别器的中文命名实体识别特征模板和相关的数据结构。使用该模型进行了训练。 中文命名实体识别研究的现状 定义中文命名实体特征,使用CRFs模型进行识别任务的训练和测试。 英文Wikipedia数据库是研究热点 引入了N-最佳选取算法(N-Best)、词典动态更新等机制,提高识别系统的性能。 定义相适应的研究机器学习模型和中文Wikipedia数据库结合应用的方法和效果 对系统进行开放性对比测试和优化,得到实验结果。
中文Wikipedia • 包含人类所有知识领域的百科全书。 • 允许了大众的广泛参与,信息得到及时有效更新。 • 内容开放,便于进行研究 巨大的条目数量及数据量 规范的分类 特殊的标注方法,可用于信息提取
中文Wikipedia的结构特点 消除歧义页 可利用于识别实体的别名 实体分类, 用于辨别命名实体的类型 • 使用几种常用的结构,能获取实体的重要信息 • Wikipedia内容经过规范的标注,能使用程序提取 • 实体之间形成网状关系,可使用迭代方式提取实体关系 重定向页, 可利用提取命名实体 实体间用链接(link)相互指向,链接可被提取
中文Wikipedia源代码转换 Wikipedia标签可被提取, 转换成标注文本的格式 可用于机器学习模型训练的自动标注语料
条件随机场(CRFs) 使用稀疏矩阵来存储特征函数的值。 最优标注序列,结合矩阵表示后的计算公式(P32) 最优标注序列计算公式 (P31)
CRFs的特征函数 二元特征函数的形式
L-BFGS(PQN)算法 初始化变量和计数器 初始化计数器、临时变量和 存储矩阵 算法结束的Wolfe条件[50] 这个条件通过两个不等式作为判断条件。 • 时间和空间复杂度均为: O(L2NMF) [30] • 其中L和N分别为标注和观察序列(句子)的数目,M为句子的平均长度,F为各个标注的序列中活动特征的平均数目。 • 随着标注集的扩大,时间复杂度呈指数级递增则 计算Wolfe条件项 满足Wolfe条件 否 算法更新步骤,用迭代的方式更新存储矩阵M的数据。其中使用到特征函数的结果。 是 更新存储矩阵M 算法结束 迭代次数,这里可追加次数控制机制,避免收敛速度慢的循环影响算法效率
系统架构 中文Wikipedia数据库为数据源,Indri搜索引擎生成索引并进行检索;索引作为CRFs识别模型的词典使用。 CRF++ 工具建立CRFs 模型。包括经过标注的训练语料,特征模板,C++ 的类定义文件,CRFs模型的核心等。 I/O格式转换 利用了N-best筛选算法的附加处理模块。 用于优化输出结果。
Indri搜索引擎及索引建立 …… 配置索引的格式 转换成TREC数据, 并建立索引 INDRI Wikipedia索引 Wikipedia数据库 在索引中检索相关内容,作为训练数据 原始数据,简单XML格式,未经索引 通过调用Runquery()方法,快速获取索引信息。 Indri充当了语料库引擎的角色。
语料格式转换器(P43) 最大匹配粗分词算法对文本进行粗分词。分词过程中只识别词边界,而不必考虑词性。该算法获取最短的词语边界(P46) 使用Boost库的工具,把语料转换成CoNLL三元组格式的语料,提供给CRFs模型进行训练。 使用Boost::Xpressive正则表达式提取相关标签并进行转换
主要数据结构 表示一个单独的字实体,作为CoNLL语料的单独一行里的文本数据 一个包含多个字的词结构,便于模型识别出词语 标记(Token),用于标注数据集后进行数据分析和整合
特征模板 两种特征模板: 一元特征模板、二元特征模板 特征模板通过分析上下文边界特征得到词语特征 L表示输出标注的数目,N表示模板宏替换的可能结果的数目,那么总共生成的特征函数数目为(L*N) 考虑效率,二元特征模板的数目应尽量减少
训练CRFs 训练的过程又称为编码过程(Encoding) 检索相关的条目信息,再使用语料转换器生成CoNLL训练语料。 使用L-BFGS训练算法对模型的参数进行估算。 训练语料分布比例
中文命名实体识别(数据标注) 基于N-最佳标注选取算法,对新词进行收集,并按分组加入到索引词典中;重建索引。 对CRF++ 输出的N个标注结果中选取最佳结果(N最佳标注选取算法);避免标注错误出现。 数据标注流程 对输入的语料进行标注 把CoNLL格式的数据转换成符合自然阅读方式的标注数据。
测试指标 测试的指标包括召回率R (Recall)、准确率P (Precision) 和综合指数F (F-measure) β是R和P之间的平衡因子,通常任务召回率和准确率是同样重要的,故取β =1
测试语料 由于我们使用了Wikipedia生成的语料进行训练,因而只能采用开放性测试方法。
实验设计 综合性能测试。测试SYSUNER 系统在最优条件下的性能。 增量训练集测试。测试训练语料从小到大递增时系统的性能,反映Wikipedia 数据库训练语料在系统中作用的作用。 新词更新测试。测试把新词列表更新至词典索引对系统性能的影响。 对比测试。对比同类典型系统的性能指标。
测试结果(1) 在人名、地名、组织名的识别性能得到了较高的水平。而且,这些方面的性能还有上升的空间。但对于缩写名词的识别并不是很理想。 训练数据涵盖的域信息对系统性能也有影响。使用更大涵盖度的训练语料,能明显提高系统的性能。
测试结果(2) 使用新词更新策略后,测试的结果有一定的提高。 与同类系统对比,使用Wikipedia数据库作为训练语料的SYSU表现处于中上水平。
讨论 CRFs 模型在显示了训练精度精度优势的同时,也暴露了训练复杂度高的明显缺点。 弥补基于Wikipedia 建立的词典索引的词汇量不足,可以尝试引入的外部命名实体词典。 SYSUNER 对命名实体缩写的识别效果并不理想。 使用最大匹配分词算法来进行粗分词,因为词语边界歧义的存在,会导致分词错误,进而影响系统的性能。
主要贡献和结论 INDRI 贡献:Wikipedia到索引的转换 Wikipedia索引 工作:Indri建立索引与检索 √训练精度 贡献:证实CRF模型的性能 语料格式转换器 CRF++ I/O格式转换器 √ 序列标注适应性 Approved √ 准确度 粗分词算法 CRF++ N-Best 算法 新词更新策略 Wikipedia索引 其他标注语料 × √ 工作:定义的模型工作顺利 贡献:仅使用Wikipedia作为单一数据源的尝试。
未来工作 Wikipedia 的很多特性还可以被利用。 CRFs的训练对系统的计算和存储能力的要求都很高,这点不利于我们的方法在PC系统的使用。 粗分词算法的缺陷会带来系统局部分词错误,在极端条件下,错误还有可能扩展到整个句子,今后需要引入更有效的分词算法和歧义处理方法,提高粗分词的正确率。 针对一些词性识别的错误,需要探究原因,并对特征或模型本身进行改进。
致谢 感谢我的导师汤庸老师,指导老师肖菁老师,在成文过程中,他们给了很多技术性的指导。 感谢我的亲人、同学和朋友。 特别感谢,余峰、黄永钊两位优秀同学的帮助。 感谢评委们的辛勤劳动。
谢谢观看 欢迎指正批评 基于Wikipedia的中文命名实体识别研究