一种语义逻辑处理方法及系统与流程

文档序号:12863810阅读:287来源:国知局
一种语义逻辑处理方法及系统与流程

本发明涉及语义识别技术领域,尤其涉及一种语义逻辑处理方法及系统。



背景技术:

近年来,随着人工智能,物联网技术的快速发展和大数据处理以及计算能力的不断提升,智能助手作为一种结合机器智能和会话的新型产品形态,以更好地连接人和服务,人和信息为目标,通过和用户使用自然语言进行多轮交互的方式,为用户带来了新的人性化服务体验和服务便利,代表如googleassistant,amazonalexa,microsoftcortana以及applesiri等。

目前,智能助手以人机语音交互方式为主,现有技术中,通常是获取用户输入的语音信息,通过语音识别技术将语音转换成文本,再通过语义理解技术理解用户的意图,随后通过对话管理技术,结合上下文和用户信息,生成并执行一系列行为和策略,最后使用文本生成技术和语音合成技术将处理的结果以自然语言形式返回给用户。

其中,语义理解技术是智能助手系统的核心技术之一,现有的语义理解技术也存在许多问题。例如:对于简单的口语短句,通过意图识别和语义槽填充技术能够较好地理解用户的简单需求,但对于较长的句子和复杂的句式,在理解用户的需求时往往忽略了句子的逻辑,从而理解错误。例如,用户输入“我想看日本电影,不要恐怖片”,现有技术会忽略“不要”这一需求,给用户返回包含恐怖片的结果。此外,现有的语义理解技术通常以语音识别的结果作为基础输入,而在语音识别时由于受噪声等多种因素影响,对于多个句子存在没有正确分句、句子边界混淆的问题,往往识别为同一句输出,为后续的语义理解带来较大误差。例如,用户输入的句子为“不想看这个,我要看哈利波特”,语音识别后得到的结果句子为“不想看这个我要看哈利波特”,由于现有语义理解技术通常依赖于依存句法分析,而依存句法分析通常是面向规范的书面句子,对于不规范的口语长句,识别精度不高。

此外,现有的口语理解技术虽然通过预处理技术及序列标注技术能够提取出命名实体,解决口语中存在的重复、停顿、冗余填充词等不连贯口语现象,但没有解决口语长句的句子边界切分问题和句子逻辑理解问题,从而无法深层次理解用户的复杂需求,不足以用于支撑智能助手应用。因此,如何提高语义逻辑理解的精确度是一项亟待解决的问题。



技术实现要素:

本发明提供了一种语义逻辑处理方法,能够提高语义理解和用户需求理解的精确度。

本发明提供了一种语义逻辑处理方法,包括:

获取待语义分析信息;

识别所述待语义分析信息,将所述待语义分析信息转换为目标文本信息;

对所述目标文本信息进行预处理,生成与所述目标文本信息中的实体词相对应的实体标签,并将所述实体标签添加至所述目标文本信息,生成第一文本信息;

对所述第一文本信息进行切分,得到至少一个句子;

对切分后得到的句子进行处理,得到每个句子的意图类别、意图逻辑关系以及语义槽值;

基于所述意图类别、意图逻辑关系以及语义槽值分析所述待语义分析信息的语义。

优选地,所述待语义分析信息包括语音信息,所述识别所述待语义分析信息,将所述待语义分析信息转换为目标文本信息包括:

对所述语音信息进行语音识别,将所述语音信息转换为目标文本信息。

优选地,所述对所述目标文本信息进行预处理,生成与所述目标文本信息中的实体词相对应的实体标签,并将所述实体标签添加至所述目标文本信息,生成第一文本信息包括:

对所述目标文本信息进行分词和词性标注;

对所述目标文本信息的词性标注结果进行修正和转换;

生成经过修正和转换后的目标文本信息中的实体词对应的实体标签;

将所述实体标签添加至所述目标文本信息中对应的实体词后,生成第一文本信息。

优选地,所述对所述第一文本信息进行切分,得到至少一个句子包括:

将用户口语语料库中的句子进行分组,提取每组句子的最大公共长度子序列作为句子模板,生成句子模板库;

训练生成句子边界检测模型;

将所述第一文本信息输入所述句子模板库,判断所述第一文本信息中的句子是否与所述句子模板库中的句子模板匹配;

当所述第一文本信息中的句子与句子模板库中的句子模板不相匹配时,基于所述句子边界检测模型将输入的第一文本信息中的句子进行句子切分。

优选地,所述对切分后得到的句子进行处理,得到意图逻辑关系包括:

当同一组中的句子为两句或两句以上时,将同一组中的句子输入分类器中,以句边界词作为特征,获取句子之间的并列关系或递进关系;

当同一组中的句子为单个句子时,判断所述单个句子是否为否定句式;

当单个句子为否定句式时,则对当前句子进行语义依存分析,判断所述否定句式中的否定词修饰的范畴是否完整涵盖句子意图;

若涵盖句子意图,则基于否定词位置,判断涵盖的是当前句子意图还是上一句句子意图

一种语义逻辑处理系统,包括:

获取模块,用于获取待语义分析信息;

识别模块,用于识别所述待语义分析信息,将所述待语义分析信息转换为目标文本信息;

预处理模块,用于对所述目标文本信息进行预处理,生成与所述目标文本信息中的实体词相对应的实体标签,并将所述实体标签添加至所述目标文本信息,生成第一文本信息;

句子切分模块,用于对所述第一文本信息进行切分,得到至少一个句子;

句子处理模块,用于对切分后得到的句子进行处理,得到每个句子的意图类别、意图逻辑关系以及语义槽值;

分析模块,用于基于所述意图类别、意图逻辑关系以及语义槽值分析所述待语义分析信息的语义。

优选地,所述待语义分析信息包括语音信息,所述识别模块包括:语音识别模块;

所述语音识别模块,用于对所述语音信息进行语音识别,将所述语音信息转换为目标文本信息。

优选地,所述预处理模块包括:

分词和词性标注单元,用于对所述目标语音信息进行分词和词性标注;

修正和转换单元,用于对所述目标文本信息的词性标注结果进行修正和转换;

第一生成单元,用于生成经过修正和转换后的目标文本信息中的实体词对应的实体标签;

第二生成单元,用于将所述实体标签添加至所述目标语音信息中对应的实体词后,生成第一文本信息。

优选地,所述句子切分模块包括:

第三生成单元,用于将用户口语语料库中的句子进行分组,提取每组句子的最大公共长度子序列作为句子模板,生成句子模板库;

第四生成单元,用于训练生成句子边界检测模型;

第一判断单元,用于将所述第一文本信息输入所述句子模板库,判断所述第一文本信息中的句子是否与所述句子模板库中的模板句子匹配;

切分单元,用于当所述第一文本信息中的句子与句子模板库中的句子模板不相匹配时,基于所述句子边界检测模型将输入的第一文本信息中的句子进行句子切分。

优选地,所述句子处理模块包括:

第一获取单元,用于当同一组中的句子为两句或两句以上时,将同一组中的句子输入分类器中,以句边界词作为特征,获取句子之间的并列关系或递进关系;

第二判断单元,用于当同一组中的句子为单个句子时,判断所述单个句子是否为否定句式;

第三判断单元,用于当单个句子为否定句式时,则对当前句子进行语义依存分析,判断所述否定句式中的否定词修饰的范畴是否完整涵盖句子意图;

第四判断单元,用于若涵盖句子意图,则基于否定词位置,判断涵盖的是当前句子意图还是上一句句子意图。

由上述方案可知,本发明提供的一种语义逻辑理解方法,当需要对输入的语音信息进行精确的理解时,首先获取目标语音信息,其中,目标语音信息为待语义分析信息;然后对目标语音信息进行语音识别,转换为目标文本信息,然后对目标文本信息进行预处理,生成与目标文本信息中的实体词相对应的实体标签,并将实体标签添加至目标文本信息,生成第一文本信息;然后基于规则与统计相结合的方法将第一文本信息进行句子切分;将切分后得到的句子基于分类算法进行意图分类,得到每个句子的意图类别;将切分后得到的句子按照意图类别和上下文窗口进行分组,对同一组中的句子进行识别,获取句子的意图逻辑关系;对切分后得到的句子进行语义槽填充;对填充后的语义槽值进行识别,获取语义槽值之间的逻辑关系;最后基于句子的意图逻辑关系和语义槽值之间的逻辑关系,输出目标语义信息的语义理解结果,提高了语义理解和用户需求理解的精确度,为智能助手的应用提供了有效支撑。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明公开的一种语义逻辑处理方法的方法流程图;

图2为本发明公开的一种对目标文本信息进行预处理的方法流程图;

图3为本发明公开的一种对第一文本信息进行切分的方法流程图;

图4为本发明公开的一种语义逻辑处理系统的结构示意图;

图5为本发明公开的一种预处理模块的结构示意图;

图6为本发明公开的一种句子切分模块的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,为本发明公开的一种语义逻辑处理方法实施例1的方法流程图,该方法包括:

s101、获取待语义分析信息;

当需要对用户输入的语音信息进行精确的语义逻辑理解时,首先获取用户输入的待进行语义分析的信息。例如,用户输入的语音信息“搜索花千骨”即可作为待语义分析信息。

s102、识别待语义分析信息,将待语义分析信息转换为目标文本信息;

当获取到待进行语义分析的信息后,将待语义分析信息转换为目标文本信息。其中,将待语义分析信息转换成目标文本信息可以采用端到端的深度学习方法,如卷积神经网络或双向长短期记忆网络等。

s103、对目标文本信息进行预处理,生成与目标文本信息中的实体词相对应的实体标签,并将实体标签添加至目标文本信息,生成第一文本信息;

对目标文本信息进行预处理,例如进行分词、词性标注、实体识别等,生成与目标文本信息中的实体词相对应的实体标签,并将实体标签添加至目标语音信息,生成第一文本信息。例如,语音信息“搜索花千骨”进行预处理后,生成的第一文本信息为“搜索/v花千骨/album_name”,其中v表示“搜索”的词性为动词,album_name表示“花千骨”为剧名实体。

s104、对第一文本信息进行切分,得到至少一个句子;

基于预先建立的用户口语语料库抽取句子模板(即规则),及训练句子边界检测模型,随后采用句子模板和句子边界检测模型进行句子切分,其中,建立用户口语语料库的方法可以为:采集语音搜索用户每日搜索作为候选语料来源;对搜索进行清洗,过滤掉低频搜索,例如,过滤掉频率小于3的搜索,删除搜索中存在的噪声字符,如制表符、换行符等;对搜索进行去重,基于众包的人工审核校对后得到用户口语语料库。

s105、对切分后得到的句子进行处理,得到每个句子的意图类别、意图逻辑关系以及语义槽值;

将切分后得到的每个句子,使用分类算法进行意图分类,具体分类算法可以选择最大熵,支持向量机等算法,特征选取考虑词级别的单个词和两个词,得到每个句子的意图类别。将切分后得到的句子按照意图类别和上下文窗口进行分组,对同一组中的句子进行识别,获取句子的意图逻辑关系;对切分后得到的句子进行语义槽填充;抽取各意图领域对应的信息要素,即语义槽值,每类语义槽用于表征每个意图领域中的核心信息要素,如,电影意图领域的语义槽类型包括:电影名、演员、导演等。例如,用户输入:“我想看天龙八部,黄日华版本的。”,则该句的意图领域为搜索电影,语义槽填充模块抽取出的语义槽值为:movie=天龙八部,actor=黄日华。本实施例中,该问题转换为序列标注问题解决,具体算法可以使用条件随机场,循环神经网络等。

s106、基于意图类别、意图逻辑关系以及语义槽值分析待语义分析信息的语义。

对填充后的语义槽值进行识别,获取语义槽值之间的逻辑关系;

基于句子的意图逻辑关系和语义槽值之间的逻辑关系,输出目标语义信息的语义理解结果。

综上所述,在上述实施例中,当需要对输入的信息进行精确的理解时,首先获取待语义分析信息;然后对待语义分析信息进行识别,转换为目标文本信息,然后对目标文本信息进行预处理,生成与目标文本信息中的实体词相对应的实体标签,并将实体标签添加至目标文本信息,生成第一文本信息;然后对第一文本信息进行切分,得到至少一个句子;对切分后得到的句子进行处理,得到每个句子的意图类别、意图逻辑关系以及语义槽值;基于意图类别、意图逻辑关系以及语义槽值分析待语义分析信息的语义,提高了语义理解和用户需求理解的精确度,为智能助手的应用提供了有效支撑。

具体的,在上述实施例中,获取的待语义分析信息可以包括用户输入的语音信息等,例如,可以是用户通过语音智能助手siri输入的语音信息。当获取到的待语义分析信息为语音信息时,对获取到的语音信息进行语音识别,将语音信息转换为目标文本信息。

具体的,在上述实施例中,将切分后得到的句子按照意图类别和上下文窗口进行分组,对同一组中的句子进行识别,获取句子的意图逻辑关系时,将句子按意图类别和上下文窗口进行分组,对同一组的多个句子,判断是否存在并列或递进关系。转换为关系分类问题解决,分类器可以使用常用分类器如朴素贝叶斯等,分类器的输入为同组句子,以句边界词作为特征,输出为并列关系或递进关系。对于单个句子,则需要判断是否为否定句式,首先基于否定词词典,判断当前句子是否为否定句,若为否定句,则对当前句子进行语义依存分析,判断否定词修饰的范畴是否完整涵盖句子意图,若涵盖句子意图,则基于否定词位置,判断涵盖的是当前句子意图还是上一句句子意图。

其中,语义依存分析方法用于分析句子各个语言单位间的语义关联,并将语义关联以依存结构呈现,将具有直接语义关联的语言单元直接连接依存弧,并标记上对应的语义关系。具体可转换为在有向图中查找最大生成树问题,本实施例中,图的边权重使用online算法求解,搜索算法使用eisner算法。

其中,判断否定词时候完成涵盖句子意图时,主要方法是判断与否定词存在一阶、二阶语义关系的词是否完整涵盖句子意图。具体方法如下,查找与否定词之间存在语义关系的词,记为word1,及与word1存在语义关系的词,记为word2,基于句法分析结果及word2在句中位置,判断word1和word2是否完整表征句子意图。本实施例中,如word1为句子谓语,且word2在句中位置处于句子后半部分,则认为word1和word2完整表征句子意图。例如,“我不看哈利波特”,其中:“不”为否定词,它与“看”之间存在语义依存弧,弧上的关系为neg(否定关系),且“看”为句子谓语,由于“看”与“哈利波特”之间也存在着语义依存弧,且弧上的关系为cont(客事关系),且“哈利波特”位于句子后半部,则认为否定词完整涵盖句子意图。如与否定词存在二阶语义关系的词为代词,则可判断否定词修饰的范畴涵盖上一句句子意图。例如,用户先说:“我想看哈利波特”,然后说“还是不看这个了”,由于“这个”为代词,则可判断当前否定词修饰的范围涵盖上一句子。

具体的,在上述实施例中,对填充后的语义槽值进行识别,获取语义槽值之间的逻辑关系时,若当前句子存在多个同类语义槽值,则基于语义槽之间的连接词和判断语义槽值之间的关系为and或or,对每个语义槽值,基于否定词词典判断语义槽值上下文窗口中存在否定词,再基于语义依存分析结果,判断该否定词的修饰范围是否涵盖语义槽值,如果涵盖则判别该语义槽值为否定式。

如图2所示,为本发明公开的步骤s103的其中一种实现方式,具体可以包括以下步骤:

s201、对目标文本信息进行分词和词性标注;

s202、对目标文本信息的词性标注结果进行修正和转换;

s203、生成经过修正和转换后的目标文本信息中的实体词对应的实体标签;

s204、将实体标签添加至目标文本信息中对应的实体词后,生成第一文本信息。

在对目标文本信息进行预处理,生成与文本信息中的实体词相对应的实体标签,并将实体标签添加至目标文本信息,生成第一文本信息时,分词和词性标注作为联合任务,一体化建模处理,基于隐马尔可夫模型实现文本分词和词性标注。实体识别使用规则与统计相结合的方法,基于隐马尔可夫模型词性标注的结果,利用具有优先级别的规则对命名实体(主要包括:人名、地名、机构名、剧名)标注结果进行修正和转换。例如,用户输入:“搜索花千骨”,经过分词、词性标注、实体识别的结果为“搜索/v花千骨/album_name”,其中v表示“搜索”的词性为动词,album_name表示“花千骨”为剧名实体。随后,基于字符串精确匹配的方法,将识别的实体词对应的实体标签添加至对应的实体词后,生成第一文本信息,例如:“搜索花千骨”添加实体标签后后变为“搜索/v花千骨/album_name”。

如图3所示,为本发明公开的步骤s104的其中一种实现方式,具体可以包括以下步骤:

s301、将用户口语语料库中的句子进行分组,提取每组句子的最大公共长度子序列作为句子模板,生成句子模板库;

s302、训练生成句子边界检测模型;

s303、将第一文本信息输入句子模板库,判断第一文本信息中的句子是否与句子模板库中的句子模板匹配;

s304、当第一文本信息中的句子与句子模板库中的句子模板不相匹配时,基于句子边界检测模型将输入的第一文本信息中的句子进行句子切分。

在基于预先建立的用户口语语料库,将第一文本信息进行句子切分时,以用户口语语料库作为输入,首先对每个句子分词与实体识别,将实体词替换为对应的实体标签,然后将句子聚类或分组,使用基于最大公共长度子序列算法的方法提取每簇句子的最大公共长度子序列作为句子模板入库。句子边界检测模型训练模块将句子边界检测转换为序列标注问题,序列标签为:{句首词、句尾词,句中词},基于条件随机场建模,特征模板的一元特征选取使用当前词的词形和词性,二元特征采用当前词与前后词的词形、词性组合,以用户口语语料库作为训练集,训练生成句子边界检测模型。句子在线切分模块,首先进行模板匹配,如果当前输入与句子模板库中的模板完全精确匹配,则认为当前输入无需分句,否则,使用句子边界检测模型进行句子边界检测,将当前输入切分为多句。

在将句子聚类或分组时,可以采用在用户口语句子语料库上训练深度结构化语义模型,训练完成后,每个句子对应一个低维稠密的向量表示,且相近语义的句子在向量空间中距离相近。随后基于hac聚类算法进行聚类,聚类完成后,每个语料库中的句子会被分到特定的簇,这里的簇可以理解为某个组。例如,“搜索album_name”,”我想搜索album_name”会被分到同一组,“关灯”,“关闭灯”会被分到同一组。

其中,最大长度公共子序列指的是该组句子的最大长度公共子串,例如“我想搜索album_name”和“搜索album_name”的最大长度公共子串是“搜索album_name”。

具体的,在使用句子边界检测模型进行句子边界检测时,可以将句子进行分词和词性标注,抽取一元特征和二元特征,使用训练好的条件随机场模型进行标注,例如:“我想看电影你帮我找一下”,使用条件随机场模型标注后,句子中的每个词都会得到一个对应的标签,如本例结果即为:“我/sentence_begin想/sentence_middle看/sentence_middle电影/sentence_end你/sentence_begin帮/sentence_middle我/sentence_middle找/sentence_middle一/sentence_middle下/sentence_end”,每个被标识为sentence_end的词即为一个句子的结尾词,从而本例结果被切分为两句,如下:句1:我/sentence_begin想/sentence_middle看/sentence_middle电影/sentence_end;句2:你/sentence_begin帮/sentence_middle我/sentence_middle找/sentence_middle一/sentence_middle下/sentence_end。

如图4所示,为本发明公开的一种语义逻辑处理系统的结构示意图,该系统包括:

获取模块401,用于获取待语义分析信息;

当需要对用户输入的语音信息进行精确的语义逻辑理解时,首先获取用户输入的待进行语义分析的信息。例如,用户输入的语音信息“搜索花千骨”即可作为待语义分析信息。

识别模块402,用于识别所述待语义分析信息,将所述待语义分析信息转换为目标文本信息;

当获取到待进行语义分析的信息后,将待语义分析信息转换为目标文本信息。其中,将待语义分析信息转换成目标文本信息可以采用端到端的深度学习方法,如卷积神经网络或双向长短期记忆网络等。

预处理模块403,用于对目标文本信息进行预处理,生成与目标文本信息中的实体词相对应的实体标签,并将实体标签添加至目标文本信息,生成第一文本信息;

对目标文本信息进行预处理,例如进行分词、词性标注、实体识别等,生成与目标文本信息中的实体词相对应的实体标签,并将实体标签添加至目标文本信息,生成第一文本信息。例如,语音信息“搜索花千骨”进行预处理后,生成的第一文本信息为“搜索/v花千骨/album_name”,其中v表示“搜索”的词性为动词,album_name表示“花千骨”为剧名实体。

句子切分模块404,用于对所述第一文本信息进行切分,得到至少一个句子;

基于预先建立的用户口语语料库抽取句子模板(即规则),及训练句子边界检测模型,随后采用句子模板和句子边界检测模型进行句子切分,其中,建立用户口语语料库的方法可以为:采集语音搜索用户每日搜索作为候选语料来源;对搜索进行清洗,过滤掉低频搜索,例如,过滤掉频率小于3的搜索,删除搜索中存在的噪声字符,如制表符、换行符等;对搜索进行去重,基于众包的人工审核校对后得到用户口语语料库。

句子处理模块405,用于对切分后得到的句子进行处理,得到每个句子的意图类别、意图逻辑关系以及语义槽值;

将切分后得到的每个句子,使用分类算法进行意图分类,具体分类算法可以选择最大熵,支持向量机等算法,特征选取考虑词级别的单个词和两个词,得到每个句子的意图类别。将切分后得到的句子按照意图类别和上下文窗口进行分组,对同一组中的句子进行识别,获取句子的意图逻辑关系;对切分后得到的句子进行语义槽填充;抽取各意图领域对应的信息要素,即语义槽值,每类语义槽用于表征每个意图领域中的核心信息要素,如,电影意图领域的语义槽类型包括:电影名、演员、导演等。例如,用户输入:“我想看天龙八部,黄日华版本的。”,则该句的意图领域为搜索电影,语义槽填充模块抽取出的语义槽值为:movie=天龙八部,actor=黄日华。本实施例中,该问题转换为序列标注问题解决,具体算法可以使用条件随机场,循环神经网络等。

分析模块406,用于基于所述意图类别、意图逻辑关系以及语义槽值分析所述待语义分析信息的语义。

对填充后的语义槽值进行识别,获取语义槽值之间的逻辑关系;基于句子的意图逻辑关系和语义槽值之间的逻辑关系,输出目标语义信息的语义理解结果。

综上所述,在上述实施例中,当需要对输入的信息进行精确的理解时,首先获取待语义分析信息;然后对待语义分析信息进行识别,转换为目标文本信息,然后对目标文本信息进行预处理,生成与目标文本信息中的实体词相对应的实体标签,并将实体标签添加至目标文本信息,生成第一文本信息;然后对第一文本信息进行切分,得到至少一个句子;对切分后得到的句子进行处理,得到每个句子的意图类别、意图逻辑关系以及语义槽值;基于意图类别、意图逻辑关系以及语义槽值分析待语义分析信息的语义,提高了语义理解和用户需求理解的精确度,为智能助手的应用提供了有效支撑。

具体的,在上述实施例中,获取的待语义分析信息可以包括用户输入的语音信息等,当获取到的待语义分析信息为语音信息时,通过语音识别模块对获取到的语音信息进行语音识别,将语音信息转换为目标文本信息。

具体的,在上述实施例中,句子处理模块将切分后得到的句子按照意图类别和上下文窗口进行分组,对同一组中的句子进行识别,获取句子的意图逻辑关系时,将句子按意图类别和上下文窗口进行分组,对同一组的多个句子,判断是否存在并列或递进关系。转换为关系分类问题解决,分类器可以使用常用分类器如朴素贝叶斯等,分类器的输入为同组句子,以句边界词作为特征,输出为并列关系或递进关系。对于单个句子,则需要判断是否为否定句式,首先基于否定词词典,判断当前句子是否为否定句,若为否定句,则对当前句子进行语义依存分析,判断否定词修饰的范畴是否完整涵盖句子意图,若涵盖句子意图,则基于否定词位置,判断涵盖的是当前句子意图还是上一句句子意图。

其中,语义依存分析方法用于分析句子各个语言单位间的语义关联,并将语义关联以依存结构呈现,将具有直接语义关联的语言单元直接连接依存弧,并标记上对应的语义关系。具体可转换为在有向图中查找最大生成树问题,本实施例中,图的边权重使用online算法求解,搜索算法使用eisner算法。

其中,判断否定词时候完成涵盖句子意图时,主要方法是判断与否定词存在一阶、二阶语义关系的词是否完整涵盖句子意图。具体方法如下,查找与否定词之间存在语义关系的词,记为word1,及与word1存在语义关系的词,记为word2,基于句法分析结果及word2在句中位置,判断word1和word2是否完整表征句子意图。本实施例中,如word1为句子谓语,且word2在句中位置处于句子后半部分,则认为word1和word2完整表征句子意图。例如,“我不看哈利波特”,其中:“不”为否定词,它与“看”之间存在语义依存弧,弧上的关系为neg(否定关系),且“看”为句子谓语,由于“看”与“哈利波特”之间也存在着语义依存弧,且弧上的关系为cont(客事关系),且“哈利波特”位于句子后半部,则认为否定词完整涵盖句子意图。如与否定词存在二阶语义关系的词为代词,则可判断否定词修饰的范畴涵盖上一句句子意图。例如,用户先说:“我想看哈利波特”,然后说“还是不看这个了”,由于“这个”为代词,则可判断当前否定词修饰的范围涵盖上一句子。

具体的,在上述实施例中,对填充后的语义槽值进行识别,获取语义槽值之间的逻辑关系时,若当前句子存在多个同类语义槽值,则基于语义槽之间的连接词和判断语义槽值之间的关系为and或or,对每个语义槽值,基于否定词词典判断语义槽值上下文窗口中存在否定词,再基于语义依存分析结果,判断该否定词的修饰范围是否涵盖语义槽值,如果涵盖则判别该语义槽值为否定式。

如图5所示,为本发明公开的一种预处理模块的结构示意图,所示预处理模块包括:

分词和词性标注单元501,用于对目标语音信息进行分词和词性标注;

修正和转换502,用于对目标文本信息的词性标注结果进行修正和转换;

第一生成单元503,用于生成经过修正和转换后的目标文本信息中的实体词对应的实体标签;

第二生成单元504,用于将实体标签添加至目标文本信息中对应的实体词后,生成第一文本信息。

在对目标文本信息进行预处理,生成与文本信息中的实体词相对应的实体标签,并将实体标签添加至目标文本信息,生成第一文本信息时,分词和词性标注作为联合任务,一体化建模处理,基于隐马尔可夫模型实现文本分词和词性标注。实体识别使用规则与统计相结合的方法,基于隐马尔可夫模型词性标注的结果,利用具有优先级别的规则对命名实体(主要包括:人名、地名、机构名、剧名)标注结果进行修正和转换。例如,用户输入:“搜索花千骨”,经过分词、词性标注、实体识别的结果为“搜索/v花千骨/album_name”,其中v表示“搜索”的词性为动词,album_name表示“花千骨”为剧名实体。随后,基于字符串精确匹配的方法,将识别的实体词对应的实体标签添加至对应的实体词后,生成第一文本信息,例如:“搜索花千骨”添加实体标签后后变为“搜索/v花千骨/album_name”。

如图6所示,为本发明公开一种句子切分模块的结构示意图,所示句子切分模块可以包括:

第三生成单元601,用于将用户口语语料库中的句子进行分组,提取每组句子的最大公共长度子序列作为句子模板,生成句子模板库;

第四生成单元602,用于训练生成句子边界检测模型;

第一判断单元603,用于将第一文本信息输入句子模板库,判断第一文本信息中的句子是否与句子模板库中的句子模板匹配;

切分单元604,用于当当前输入的第一文本信息中的句子与句子模板库中的句子模板不相匹配时,基于句子边界检测模型将输入的第一文本信息中的句子进行句子切分。

在基于预先建立的用户口语语料库,将第一文本信息进行句子切分时,以用户口语语料库作为输入,首先对每个句子分词与实体识别,将实体词替换为对应的实体标签,然后将句子聚类或分组,使用基于最大公共长度子序列算法的方法提取每簇句子的最大公共长度子序列作为句子模板入库。句子边界检测模型训练模块将句子边界检测转换为序列标注问题,序列标签为:{句首词、句尾词,句中词},基于条件随机场建模,特征模板的一元特征选取使用当前词的词形和词性,二元特征采用当前词与前后词的词形、词性组合,以用户口语语料库作为训练集,训练生成句子边界检测模型。句子在线切分模块,首先进行模板匹配,如果当前输入与句子模板库中的模板完全精确匹配,则认为当前输入无需分句,否则,使用句子边界检测模型进行句子边界检测,将当前输入切分为多句。

在将句子聚类或分组时,可以采用在用户口语句子语料库上训练深度结构化语义模型,训练完成后,每个句子对应一个低维稠密的向量表示,且相近语义的句子在向量空间中距离相近。随后基于hac聚类算法进行聚类,聚类完成后,每个语料库中的句子会被分到特定的簇,这里的簇可以理解为某个组。例如,“搜索album_name”,”我想搜索album_name”会被分到同一组,“关灯”,“关闭灯”会被分到同一组。

其中,最大长度公共子序列指的是该组句子的最大长度公共子串,例如“我想搜索album_name”和“搜索album_name”的最大长度公共子串是“搜索album_name”。

具体的,在使用句子边界检测模型进行句子边界检测时,可以将句子进行分词和词性标注,抽取一元特征和二元特征,使用训练好的条件随机场模型进行标注,例如:“我想看电影你帮我找一下”,使用条件随机场模型标注后,句子中的每个词都会得到一个对应的标签,如本例结果即为:“我/sentence_begin想/sentence_middle看/sentence_middle电影/sentence_end你/sentence_begin帮/sentence_middle我/sentence_middle找/sentence_middle一/sentence_middle下/sentence_end”,每个被标识为sentence_end的词即为一个句子的结尾词,从而本例结果被切分为两句,如下:句1:我/sentence_begin想/sentence_middle看/sentence_middle电影/sentence_end;句2:你/sentence_begin帮/sentence_middle我/sentence_middle找/sentence_middle一/sentence_middle下/sentence_end。

本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1