在中文文本数据中进行实体抽取相比英文文本数据而言难度更大,首先是因为英语中的实体命名有非常明显的形式标志,每个单词之间用空格隔开,并且实体的每个词第一个字母是大写,所以识别的难度相对容易。而中文没有类似英文文本中空格之类的边界标识符,所以要做命名实体第一步是要确定词与词之间的边界,将词与词之间间隔开来,这个过程称之为分词。
第二点是命名实体本身的构成比较复杂,不断会有新的实体名称出现,例如新的人名,地名,物品名等,而且命名实体的长度也没有限制,不同的实体可能会有不同的结构,例如少数民族人名或者翻译的外国人名,难以建立大而全的实体数据库,分词技术对于这部分的实体识别相对来说难度会高很多。
第三点是在不同的文本资料中,命名实体之间可能会出现嵌套的情况,互相交叉以及相互包含,需要根据上下文才能推断出命名实体真实的意思。例如“北京大学的学生参加了运动会”,可以划分为“北京大学/的/学生/参加/了/运动/会/”,也可以划分为“北京/大学/的/学生/参加/了/运动会”,不同的划分方法会造成实体识别的不同。
关于分词,我们会在后续的自然语言处理章节详细讲解。这里仅对命名实体的常用技术方法做一个概述。目前对于命名实识别的主要方法分为三种:基于规则和词典的方法、基于统计和机器学习的方法以及前两者混合使用的方法。
基于规则和词典的方法是由语言学家或业务专家手工构造规则模板,定义好需要抽取的命名实体,以字符串的匹配作为主要的手段,这是命名实体抽取最早使用的方法,提取的结果非常精准,但是这类系统大多依赖于知识库和词典,系统的泛化性不高,对于不同的系统需要重新编写规则,而且人力投入过大,建设的时间周期也较长,只适合于那些不会有太多新实体的领域知识图谱构建。
基于统计和机器学习的方法主要包括隐马尔可夫模型(HMM)、条件随机场(CRF)、长短期记忆网络(LSTM)、最大熵模型(MaxEnt)等方法。这类实体抽取的方法对于特征的选择要求较高,需要从文本中选择对该项任务有影响的各种特征,并将这些特征加入到特征向量中。
依据特定命名实体识别的特征,考虑选择能有效反映该类实体特性的特征集合。主要做法是通过对训练预料所包含的语言信息进行统计和分析,从训练预料中挖掘出特征。有关特征可以分为具体的单词特征、上下文特征、词典及词性特征、停用词特征、核心词特征以及语义特征等。
基于统计的方法对语料库依赖比较大,但可以用来建设和评估命名实体识别系统的大规模通用语料库又比较少,一般是使用维基百科或主流纸媒的标注作为基础训练语料,这类语料库虽然在权威性和正确性上有保障,但是在时效性上交叉,对于新词的识别能力较差。
实体识别技术经历了多次迭代,从早期的基于规则和字典的方法,到传统的机器学习方法,再到深度学习方法,以及近期的迁移学习和半监督学习方法。
目前,将神经网络与CRF模型结合的CNN/RNN-CRF是实体识别的主流模型,基于神经网络结构的实体识别方法,继承了深度学习方法的优点,无需大量人工特征,只需词向量和字向量就能达到主流水平,加入高质量的词典特征能够进一步提升效果,而在未来,迁移学习和半监督学习进行实体识别技术方向研究的重点。
(2)实体消歧
不论是英语还是汉语,构成文本的基本单位都是词,但是同一个词在不同的上下文中可能代表不同的含义,例如英语的“play”就有玩、扮演、播放、比赛等含义,而汉语的“打”字除了用作介词和量词之外,用作动词时就有25个不同的意思。实体消歧就是明确多义词在文中具体指代意思的技术,通过实体消歧,就可以根据当前的语境,准确建立实体链接。
实体消歧可以看做是基于上下文的分类问题,同其他自然语言处理的任务一样,早起的实体消歧也是采用基于规则和词典的方法。但这种方法的局限性太大,后续逐渐被机器学习的方法取代。我们知道机器学习分为有监督学习和无监督学习,应用在实体消歧上也分为有监督的实体消歧方法和无监督的实体消歧方法。
基于有监督的学习实质上是通过建立分类器,通过划分多义词的上下文类别的方法来区分多义词的词义,常见的方法有基于互信息的消歧方法,基于贝叶斯分类器的消歧方法以及基于最大熵的消歧方法。
举例来说,“苹果”一词有时指水果,有时指科技公司,但如果与“吃”组成上下文,那么就可以根据贝叶斯概率计算出这个词应该是指水果而不是科技公司。
无监督的实体消歧主要采用聚类算法进行,先对每个实体不同的意思抽取其上下文的特征组成特征向量并进行聚类,当遇到需要进行实体消除的文本时,让文本与之前构建好的特征向量聚类之间的相似度计算来辨别实体的意思。
在一项测试实验中,采用KNN(k=1)方法进行实体消歧的相似度计算,最终取得了平均正确率83.13%的结果。这种方法本质上还是基于词袋模型(bag of words),并没有考虑上下文之间的联系,所以对于一些复杂的实体辨别上效果不佳。
不论是采用有监督的学习还是无监督的学习,实体消歧最终的结果都依赖于训练集数据的完整性和准确性,所以目前在这一领域还未形成非常完善的解决方案,如何能够提高实体消歧的准确度有待专家学者的进一步研究。
(3)指代消解
在我们日常用语中大量的存在指代词,用来简化语言增加沟通的效率。例如有这样一段文本:“乔布斯在2007年发布了第一代iPhone,他表示这款手机领先其他手机五年”,在这句话中的“他”指代的是“乔布斯”,而“这款手机”指代的是“第一代iPhone”。
明确这些代词所指代的具体含义,将这些指代项关联到正确的实体对象中的技术过程就是指代消解,又称共指消解或参照消解。为了让知识抽取更加准确且不遗漏文本中的相关信息,必须对文本中的指代词进行指代消解。代消解不仅在知识抽取中起着重要的作用,而且在机器翻译,文本摘要等自然语言应用中最基础的一项技术。