本发明涉及一种bot系统,具体是一种用于bot系统的实体抽取方法。
背景技术:
在bot对话系统中,实体识别/抽取在用户意图识别/问题语义解析方面都起着重要的作用。但是bot系统用户通常来自不同的领域,每个领域都有大量新的专有实体名词,比如新的公司名、新的产品名。这些专有名词使用的实体识别/抽取方法会失效。
当前的实体识别/抽取主要有词典方法、基于机器学习方法和基于规则模板的方法。
现有技术一的实现方案
基于词典的实体识别/抽取方法主要通过用户问题匹配实体词库中的实体词得到。
现有技术一的缺点:
没有泛化能力,不能冷启动。需要bot系统用有实体标注的专业知识,同时需要花费大量的人力进行实体整理,然后加入到实体词库。
现有技术二的实现方案
基于机器学习方法主要使用序列标注算法,比如hmm、crf以及深度学习想结合的算法cnn+bilstm+crf等。
现有技术二的缺点:
没有泛化能力,不能冷启动。需要bot系统用有实体标注的专业知识,同时需要花费大量的人力进行实体整理,然后加入到实体词库。
现有技术三的实现方案
基于规则模板的方法主要从问题中提取句法/文法规则。先对问题进行词性标注、依存句法分析,然后结合问题中的关系词和词性标注/依存句法分析结果提取模板。
现有技术三的缺点:
由于bot系统中的对话篇口语化,规则分析往往失效。同时对新领域的大量新词,词性标注和依存句法分析错误率很高。
技术实现要素:
本发明的目的在于提供一种用于bot系统的实体抽取方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种用于bot系统的实体抽取方法,通过new_entity_extract模块从bot_chat的问答日志中发现新实体并将新发现实体加入到知识管理系统bot_kms的实体词典中,提供给词典识别ahocorasick模块使用。
作为本发明再进一步的方案:还包括在bot的实体识别模块,加入从问答日志中抽取共现词的方式发现新实体,并将新发现的实体加入到bot_kms中,提供给实体识别模块使用。
与现有技术相比,本发明的有益效果是:本发明通过识别/抽取问答对中共现词的方式,主要克服了bot系统面对新领域用户冷启动问题,自动从bot日志中发现新实体,补充已有实体识别系统的不足,不需要耗费人力进行大量人工标注,并且抽取高效。
具体实施方式
下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,一种用于bot系统的实体抽取方法,通过new_entity_extract模块从bot_chat的问答日志中发现新实体并将新发现实体加入到知识管理系统bot_kms的实体词典中,提供给词典识别ahocorasick模块使用。
还包括在bot的实体识别模块,加入从问答日志中抽取共现词的方式发现新实体,并将新发现的实体加入到bot_kms中,提供给实体识别模块使用。
实施例1:
假设问答对中问题为q(其中qi表示问题中第i个字,i∈(1..n)),问题对应的问答为a(其中aj表示问题中第j个字,j∈(1..m))。令l[i,j]表示以q[i]和a[j]为结尾的相同子串的最大长度。若q[i+1]和a[j+1]不同,那么l[i+1,j+1]自然是0,因为任何以它们为结尾的子串都不可能完全相同;而如果s[i+1]和t[j+1]相同,那么就只要在以q[i]和a[j]结尾的最长相同子串之后分别添上这两个字符即可,这样就可以让长度增加一位。合并上述两种情况,也就得到l[i+1,j+1]=(a[i]==a[j]?l[i,j]+1∶0)。最后遍历l即可得到问答对的共现词。过滤掉单个共现词的情况。将发现的共现词加入到知识库模块的实体词典中进行管理,提供给实体识别模块使用。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。