命名实体识别是构建学科知识图谱的重要步骤。近年来,随着深度学习的发展,通用领域、医学等领域命名实体识别的性能得到了很大的提升。Java学科领域知识点繁杂,实体中英文掺杂,并且存在其特有的实体内部特征,因此通用模型在此领域实体识别准确率并不高、不能有效识别实体边界。提出改进的单模结构,在嵌入层融入词边界信息,引入了词性信息和Java领域实体识别的规则信息,以提高模型识别实体边界的准确率。编码层使用BiLSTM和IDCNN进行上下文信息提取,解码层使用CRF得到序列全局最优提取。其次,提出对多个异构单模结果进行融合互补的想法,以提高模型实体识别性能和模型的泛化能力。实验结果显示,基于自主构建的Java领域数据集,新的单模模型相比于主流模型实体识别F1值提高了约2个百分点。多模融合后的实体识别的性能也有明显的提升,表明模型在Java领域命名实体识别任务上有着更好的效果。
由于互联网,人工智能,在线视频等的发展,教育行业衍生出了的各种新生产物,现在的教育形式产生了翻天覆地的变化[1]。
构建Java 领域的知识图谱, 能把零散的知识汇集成一个完整的知识网络体系, 把Java 相关的知识点转换成模块化、结构化、可视化的知识图谱[2]。命名实体识别又是构建Java 领域知识图谱中,不可或缺的一部分。在面向通用领域中,识别人名、地名和机构名等方面的命名实体识别方法的性能有着较大幅度的提升[3]。并且近几年国内在军事文本、医疗、司法等领域实体识别方面也取得了较大的进展[4]。但对于Java 学习领域的相关研究就很少,Java 相关知识点繁冗复杂[5],相关扩展知识、不断更新发展的技术栈也很繁杂,实体往往中英文掺杂,并普遍存在简写缩写现象。因此针对此领域的命名实体识别的研究还处于起步阶段。单纯地基于规则的命名实体识别[6],准确率很高,但是人工成本很高。随着统计机器学习算法的发展,隐马尔可夫模型[7] (Hidden Markov Model, HMM)和条件随机场[8] (Conditional Random Field, CRF)、支持向量机[9] (Support Vector Machines, SVM)渐渐被人们所关注。
但其缺点在于需要构建大规模的标注语料库,费时费力。近几年。深度学习在各领域都取得了不错的成果,其优点在于可以深度学习语义知识并且缓解数据稀疏的问题[10]。
尽管近几年提出了许多新的模型来解决实体识别相关问题,但在Java 学科领域的实体识别仍然面临着很多的挑战,具体体现在: 1) 此领域没有公开数据集,由于缺乏有标注的文本资源,且自主构建数据集费事费力,因此导致此领域研究发展滞后。
2) Java 学科领域的知识点繁杂,中英文混杂,并且实体含有特有的内部特征。现有的实体识别方法