首页> 中国专利> 一种利用语义依存分析的中文问句语义理解方法

一种利用语义依存分析的中文问句语义理解方法

摘要

本发明涉及一种利用语义依存分析的中文问句语义理解方法,其中,包括:步骤1.收集并整理应用领域问句数据集;步骤2.对于得到的问句数据集进行预处理;步骤3.构建基于BiLSTM的语义依存分析模型;步骤4.构建语义依存结构解析规则;步骤5.将步骤4转换得到的查询三元组列表映射为SPARQL语句中基本图模式,形成三元组模式关系。本发明方法通过语义依存分析技术,结合中文分词技术,能够为用户提供高效语义理解的新方式,在特定应用领域的智能问答、搜索推荐等系统中将发挥重要作用。

著录项

  • 公开/公告号CN112733547A

    专利类型发明专利

  • 公开/公告日2021-04-30

    原文格式PDF

  • 申请/专利权人 北京计算机技术及应用研究所;

    申请/专利号CN202011584513.3

  • 发明设计人 于鸿飞;史玉娟;阮志成;

    申请日2020-12-28

  • 分类号G06F40/30(20200101);G06F40/211(20200101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构11011 中国兵器工业集团公司专利中心;

  • 代理人张然

  • 地址 100854 北京市海淀区永定路51号

  • 入库时间 2023-06-19 10:48:02

说明书

技术领域

本发明涉及计算机语义分析技术,特别涉及一种利用语义依存分析的信息中文问句语义理解方法。

背景技术

句子的语义理解是自然语言处理技术的重要研究方向,在智能问答等领域得到了广泛的应用。由于中文语言具有的复杂性,问句理解方面面临的难度较大、进展缓慢。目前,智能问答中问句的语义理解方法主要包括模板法、关键词法、依存句法分析、语义角色标注等。

模板法将用户输入的问句通过分类器进行归类,如果能被分到这些类中,就能根据每个类对应的模板进行正确的转换处理,但是容易受到模板数量的限制,不能处理无法识别的问题。关键词法通过抽取问句关键词,将问句映射到对应的三元组模板中,只能实现对简单关键词进行正确解释,当出现多个关键词会产生过多的组合需要使用大量的模板。中文句法依存分析能够实现对输入语句句法结构和关系的完整解析,但由于中文处理比英文复杂,存在句法限制少等问题,无法准确标明具体的时态、被动语态以及介词无强烈的语义指示表达作用等。因此,仅仅通过句法依存分析无法完整的表达中文句子的语义信息。语义角色标注针对论元语义角色层面,存在无法涵盖整个论元内部语义关系的缺点。

因此,在中文问句语义理解中,迫切需要一种从能够摆脱问句表层句法结构的约束,可以从深层次的语义角度快速理解分析用户提出的需求问句信息的方法。

发明内容

本发明的目的在于提供一种利用语义依存分析的中文问句语义理解方法,用于解决上述现有技术的问题。

本发明一种利用语义依存分析的中文问句语义理解方法,其中,包括:步骤1.收集并整理应用领域问句数据集;步骤2.对于得到的问句数据集进行预处理,根据BERT模型,采用序列标注的方式对预处理后的数据集通过训练构建中文分词模型,在该中文分词模型中融入领域文本提取的专业词语特征和姓名特征;步骤3.构建基于BiLSTM的语义依存分析模型,将步骤1得到的问句数据集以BiLSTM进行依赖关系解析得到特征表示,同时融入大规模领域文本提取的BERT嵌入向量特征和词语依存关系词典特征,然后结合Eisner解码算法构建语义依存分析模型,从步骤2得到的问句切分结果中解析获取最优的语义依存结构;步骤4.构建语义依存结构解析规则,通过对步骤1整理的问句数据集,挖掘语句的语义依存关系以及结合资源描述框架查询语言的语句语法特点,构建通过解析语义依存结构得到查询三元组的基本规则,用于将步骤3的依存模型解析问句得到的语义依存结构转换为查询三元组列表;步骤5.将步骤4转换得到的查询三元组列表映射为SPARQL语句中基本图模式,形成三元组模式关系。

根据本发明的一种利用语义依存分析的中文问句语义理解方法的一实施例,其中,步骤1具体包括:收集整理应用领域的常见问句数据集,通过标注以及一致性校验操作进行处理,得到能够用于训练测试的问句数据集。

根据本发明的一种利用语义依存分析的中文问句语义理解方法的一实施例,其中,步骤2包括:对步骤1得到的问句数据集进行预处理,将问句数据集通过4-tags标注法转为基于字标注的训练集,再通过序列切分将过长的句子进行分割,不够长度的句子通过添加0进行补足,然后对预处理过的数据进行数据结构转换,使用标记模块进行标记化过后得到新的样本数据结构,其中包含4部分,分别是input_ids、input_mask、segment_ids以及label_ids,input_ids为问句中每个字在词频词典的索引,input_mask为样本中有效词句的标识,有效的为1,补充的为0,segment_ids为区分句子的标识,第一个句子为0,第二个句子为1,label_ids是标签在自定义标签列表中对应的索引;最后在输出向量中融入领域专业词语特征和姓名特征,再添加分类层对标签进行预测评分。

根据本发明的一种利用语义依存分析的中文问句语义理解方法的一实施例,其中,步骤3具体包括:给定已经完成中文分词和词性标注的语句;通过对步骤1得到的问句数据集预处理,创建词频词典以及词性词典,对分词和词性结果进行向量表示,并利用构建的BERT模型对文本数据进行训练得到包含丰富语义信息的BERT嵌入向量,将词语向量和词性向量以及BERT嵌入向量进行拼接输入到第一层LSTM模型中,将第一层的LSTM模型输出的双向向量进行拼接后输入到第二层LSTM模型中;使用Eisner解码算法,同时融入领域文本中提取的词语依存特征,以获取最优得语义依存结构。

根据本发明的一种利用语义依存分析的中文问句语义理解方法的一实施例,其中,通过解析语义依存结构得到查询三元组的5条基本规则,包括解析主谓宾结构、解析描述修饰组合关系、解析并列连接关系以及处理语义依附标记,用于将步骤3解析问句得到的语义依存结构转换为相应的查询三元组形式。

根据本发明的一种利用语义依存分析的中文问句语义理解方法的一实施例,其中,制定将步骤4得到的查询三元组列表映射为SPARQL语句中基本图模式的策略集,策略集包括:如果三元组中主语或者宾语是疑问词,那么用变量替换掉疑问词作为目标词,并且将变量存入查询变量词典中,如果三元组中主语和谓语均为名词性,那么在查询中建立三元组描述两个名词的查询关系,同时用被修饰的名词描述关系,使用变量当作宾语作为查询目标词,并且将变量存入查询变量词典中;如果三元组中谓语是动词性节点,在主语与宾语之间建立查询三元组,并根据谓语实际意义情况进行位置转换,并且将变量存入查询变量词典中;如果三元组中主语是动词,并且为前一个三元组的谓语部分或者三元组的宾语为动词,是后一个三元组的谓语部分,那么拆分原来的查询三元组重新合并生成新的三元组。

本发明方法通过语义依存分析技术,通过结合中文分词技术、SPARQL查询语言等实现对特定领域中文问句的语义理解架构,为用户提供高效语义理解的新方式,在特定应用领域的智能问答、搜索推荐等系统中将发挥重要作用。

附图说明

图1是本发明的一种利用语义依存分析的中文问句语义理解方法的组成示意图。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

如图1所示,本发明提出了一种利用语义依存分析的中文问句语义理解方法,该方法包括以下步骤:

(1)收集并整理特定应用领域(如司法领域智能问答)数据集。收集特定应用领域的常见问题和回答的数据集,然后通过人工标注、一致性校验等操作进行处理得到能够用于训练测试的数据集。

(2)构建基于转换器的双向编码表示(BERT)的中文分词模型。使用BERT模型,以序列标注的方式构建中文分词模型,同时设计特定应用领域词典和中文姓名词典特征的引入方法,以提升分词模型在特定应用领域上的分词性能。

(3)构建基于双层长短时记忆器(BiLSTM)的语义依存分析模型。采用基于图模式(Graph)的思想构建语义依存分析模型,使用BiLSTM进行依赖关系解析得到特征表示,使用Eisner解码算法获取最优得语义依存结构。在模型中融入特定应用语料的BERT嵌入向量,建立特定应用词语依存关系词典,提升模型的性能。

(4)构建语义依存结构解析规则。对中文问句样本进行分析,挖掘语句的语义依存关系,结合资源描述框架查询语言(SPARQL)的语句语法特点,构建通过解析语义依存结构得到查询三元组的基本规则。

(5)构建SPARQL语句转换策略。制定查询三元组关系映射为SPARQL语句中基本图模式的策略,在考虑不同词语词性以及查询三元组成分的情况下,形成适当的三元组模式关系。

如图1所示,本发明的实施流程如下;

(1)收集并整理特定应用领域(如司法领域智能问答)数据集。收集特定应用领域的常见问题数据集,然后通过人工标注、一致性校验等操作进行处理得到能够用于训练测试的数据集。

例如对于中文分词数据集的处理方式如下:将数据集使用4-tag法对字进行标注,b代表begin,m代表middle,e代表end,s代表single。加工过后形成的2个格式一致的样本文件,分别用于训练和验证。例如“山东省人民法院”按照标注分词结果是“山东省-人民-法院”。其中“山东省”的标签是bme,说明“山”作为词语的头部,“东”作为词语的中间部分,而“省”则作为词语的结尾部分。经过预处理后的语料中,任意的字都有一个标签与之对应。对于领域问句语义依存数据集,比如问句“人民检察院公诉部门基本职责有哪些”,根据哈工大语义依存分析标注标准进行人工标注可以得到结果{(1,人民,NN,2,Nmod),(2,检察院,NN,4,Poss),(3,公诉,NN,4,Desc),(4,部门,NN,6,Poss),(5,基本,AD,6,Desc),(6,职责,NN,7,Exp),(7,有,VE,0,Root),(8,哪些,DT,7,mTone)}。其中第一列是词序号,第二列是词语,第三列是词性,第四列是父节点,第五列是当前词语与父节点之间的语义关系。

(2)构建基于转换器的双向编码表示(BERT)的中文分词模型。采用序列标注的思想,使用BERT模型构建中文分词模型。同时设计词典和中文姓名词典特征的引入方法,以提升分词模型在上的分词性能。

具体实施时,首先对输入的数据集进行预处理,将已经分好词的训练集通过4-tags标注法转为基于字标注的训练集,每个字对应着一个标签,同时将分词合并成句子并与字对应的标签序列用空格分隔,比如“山东省-人民-法院”处理后结果为“山东省人民法院-bmebmbm”。然后进行序列切分,设定文本长度为85,将过长的句子进行分割,不够长度的句子通过添加0进行补足。

然后进行数据结构转换,将经过结构转换的数据使用标记模块进行标记化过后得到新的样本数据结构,其中包含4部分,分别是input_ids、input_mask、segment_ids以及label_ids。其中,input_ids为句子中每个字在字典中的索引。input_mask为样本中有效词句的标识,有效的为1,补充的为0。segment_ids为区分句子的标识,第一个句子为0,第二个句子为1。label_ids是标签在自定义标签列表中对应的索引。比如输入“山东省人民法院bmebmbm”,得到结果input_ids=[101 2255 691 4689 782 3696 3791 7368 102 0…],input_mask=[1 1 1 1 1 1 1 1 1 …],segment_ids=[0 0 0 0 0 0 0 0 …],label_ids=[6 2 3 4 2 4 2 4 7 …]。以上构成了BERT的最终输入向量。

最后添加分类层对标签进行预测评分,由于标签包括["s","b","m","e","X","[CLS]","[SEP]"],因此最后的分类层神经元数目为7,同时根据常规损失函数计算最终的模型损失。

(3)构建基于双层长短时记忆器(BiLSTM)的语义依存分析模型。采用基于图的思想构建语义依存分析模型,使用双层BiLSTM算法得到依赖关系解析得特征表示。

具体实施时,首先给定已经完成中文分词和词性标注的语句,其分词结果为w

然后通过对训练语料预处理。创建词频词典、词性词典,对分词和词性结果进行向量表示,每个词语得到100维的词语向量和25维的词性向量。再将词语向量和词性向量进行拼接输入到第一层LSTM模型中,LSTM模型具有一个隐层,神经元节点数目为155,模型的输入向量维度为125。然后将第一层的LSTM模型输出的双向向量进行拼接后输入到第二层LSTM模型中。在模型构建过程中,激活函数选择双曲正切函数tanh。同时选择Adam算法代替传统的梯度下降法作为优化算法,同时在训练样本数据时采用小批量思想,在提高学习速度的同时保证模型的收敛。

最后使用Eisner解码算法获取最优得语义依存结构。并针对训练语料匮乏以及难以融入丰富领域信息的问题,利用本文构建的BERT模型对特定领域文本数据进行训练得到包含丰富语义信息的BERT嵌入向量,在原有模型输入向量的基础上进行简单拼接,以扩充词向量输入,最后输入到基准模型中以提升模型性能。利用构建的语义依存模型分析特定领域大量的短文本数据,得到大量的词语对依存关系信息。然后进行分析统计,保留出现频率较高的词语对、词语对的依存弧类型以及依赖方向,然后持久化到数据文件中。最后对文件通过人工方式进行数据的一致性校验得到最后的特征数据形成依存关系类型词典,然后将特征融入到最后的模型中。

(4)构建语义依存结构解析规则。通过对中文问句的样本研究分析,构建了通过解析语义依存结构得到查询三元组的基本规则,用于将语义依存结构转换为相应的查询三元组形式。

具体实施时,有5个规则,分别是{[1,subject(p,s)-object(p,o)=>],[2,subject(p,s)-system(p,o)=>],[3,compound(x,y)=>yx],[4,constellation(x,y)=>或者],[5,attachment(x,y)=>remove(x,y)]},其中,规则1和规则2是构建主谓宾结构,subject定义为主体、object定义为客体、system定义为系体。规则3是用于描述修饰组合关系的,一般是被归为其他类的角色。其中主要包括描写角色Desc(Description)、名称修饰词Nmod(Name Modified)以及时间修饰语Tmod(Time Modified)等。规则4是以连词连接的短语,在此主要是考虑并列连接,比如eCoo关系。此时查询语句应该创建返回多个查询变量。比如查询原告和被告的姓名,需要返回原告和被告对应的查询变量。规则5主要是针对语义依附标记,依附标记是概念或事件的语义依附的形式标记,在问句集中具体表现为去掉无意义组合的依存结构:去掉尾单词为助词“的”的mAux关系、去掉标点标记的mPucc关系等。

例如:比如对于检务咨询问题“第12025号刑事案件的主诉检察官是谁?”,经过语义依存分析以后得到依存关系如下:

root(Root-0,是)

Nmod(刑事案件,12025号)

mAux(刑事案件,的)

Poss(检察官,刑事案件)

Desc(检察官,主诉)

Exp(是,检察官)

Clas(是,谁)

mPunc(是,?x)

依存关系中,前者是支配词,后者是依存词。依存关系词就是指依存词对支配词的依赖类型。按照上述规则,得到的结果为:

(5)构建SPARQL语句转换策略。制定查询三元组关系映射为SPARQL语句中基本图模式的策略集,考虑不同词语词性以及查询三元组成分的情况下应该形成怎样的三元组模式关系。

具体实施时,如果三元组中主语或者宾语是疑问词,那么直接用变量替换掉疑问词作为目标词,并且将变量存入查询变量词典中,比如三元组<嫌疑人,姓名,什么>,得到的查询语句为<嫌疑人,姓名,?x>。如果三元组中主语和谓语均为名词性,那么在查询中就可以建立三元组描述两个名词的查询关系,同时用被修饰的名词描述关系,使用变量当作宾语作为查询目标词,并且将变量存入查询变量词典中。如果三元组中谓语是动词性节点,在主语与宾语之间建立查询三元组,并根据谓语实际意义情况进行位置转换,并且将变量存入查询变量词典中。

如果三元组中主语是动词,并且为前一个三元组的谓语部分或者三元组的宾语为动词,是后一个三元组的谓语部分,那么拆分原来的查询三元组重新合并生成新的三元组。

最后根据查询变量词典对三元组中关键词进行词语映射,并且通过领域通用词典进行实体和谓词消歧,比如“出生”映射为“生日”,“出生于”映射为“籍贯”等。

例如:对于步骤(4)得到的结果:

经过转换策略,查询三元组变为<12025号刑事案件,主诉检察官,?t>,<?t,姓名,?x>,进而得到最终的查询语句如下:

本发明通过提升分词准确率、改进依存模型的结构以及融入特定领域信息特征等方式,实现语义依存分析任务的高效性和准确性;以语义依存分析为核心,从深层语义角度对中文问句进行解析,再通过分析中文问句集的特点,制定有效的规则和策略,将非结构化的中文问句转换为结构化、机器可读的查询语句,实现了提升中文问句语义理解准确性和自动查询的目的。因此,本发明在特定领域的智能问答系统中将发挥重要作用。

本发明提供一种利用语义依存分析的中文问句语义理解方法,用于快速理解分析用户提出的需求问句信息并进行相应的业务操作,以满足特定领域中高效、准确的问答咨询、搜索推荐等业务需求。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号