CN102023854B - 一种基于模板的语义变量抽取方法 - Google Patents

一种基于模板的语义变量抽取方法 Download PDF

Info

Publication number
CN102023854B
CN102023854B CN200910195882.0A CN200910195882A CN102023854B CN 102023854 B CN102023854 B CN 102023854B CN 200910195882 A CN200910195882 A CN 200910195882A CN 102023854 B CN102023854 B CN 102023854B
Authority
CN
China
Prior art keywords
template
segmentation
variable
text
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200910195882.0A
Other languages
English (en)
Other versions
CN102023854A (zh
Inventor
朱胜
张益智
王宝利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI ZHIWEN SOFTWARE CO Ltd
Original Assignee
SHANGHAI ZHIWEN SOFTWARE CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANGHAI ZHIWEN SOFTWARE CO Ltd filed Critical SHANGHAI ZHIWEN SOFTWARE CO Ltd
Priority to CN200910195882.0A priority Critical patent/CN102023854B/zh
Publication of CN102023854A publication Critical patent/CN102023854A/zh
Application granted granted Critical
Publication of CN102023854B publication Critical patent/CN102023854B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Machine Translation (AREA)

Abstract

本发明提出一种基于模板的语义变量抽取方法,通过模板和输入的语句,建立语义变量模板索引链表和分割注释列表,再根据分割注释列表获得分割符号,对输入语句进行分割,建立输入语句分割后的语句索引链列表,最后再对于语句索引链列表和模板索引链,进行比较和基于Levenshtein算法的近似匹配度计算,最终得到自然语言语句中的关键词抽取结果和抽取的匹配度。本发明算法在实际应用中,可作为独立的接口驱动层,能够有效提高应用系统的扩展性和处理能力,满足非电脑专业人员的应用需求。

Description

一种基于模板的语义变量抽取方法
技术领域:
本发明涉及一种计算机信息的处理方法,尤其涉及一种基于语义变量抽取的应用接口的实现方法。
背景技术:
目前的计算机应用程序的接口,绝大多数是基于已有标准规范化的接口的应用,其输入和输出都是带有类型的变量。比如,一个查询账户余额的应用程序接口,可以定义的标准输入是,字符串类型:账号名称,字符串类型:账号密码,输出的是一个浮点数:金额大小。显然,这样的接口比较标准化,很容易实现被其他程序调用。
上述的应用接口,人们的自然语言(比如声音)无法直接调用,因此作为一个完整的面向普通用户的可应用程序,必须提供UI(user interface)界面,告诉用户这里输入账号名称,那里输入密码,点击查询按钮以后,你可以看到账户余额。如果在人们的自然语言和应用程序接口之间,建立一个中间的语义处理层,使得人们通过自然语言就可以调用各种应用程序接口,就会大大方便很多非电脑技术人员对计算机的使用。同时在一些特殊领域也能开展多种应用,如整合语音模块,可以实现基于人类自然语言的智能声控驱动等。
语义处理是计算机信息处理中较难的环节,当前应用教少,仅在部分领域有一些简单的应用。比如,手机的语音拨号系统,其应用是,首先对手机喊“call”,系统语音提示属于电话呼叫,然后通过语音输入电话号码,语音提示确认,确认后自动拨号。这种实现,其实现流程是固定的,触发命令也是固定的,每个环节的语义也较单一,实现起来比较简单。
在当前个性化应用比较多的情形下,基于多应用的考虑,把语义驱动层引入应用系统并提供插件接口,使得各种业务模块能以插件的形式存在,成为一种新的应用需求。在当前的解决方案中,可以采用语义模板实现技术及反问技术等实现方式。语义模板实现技术主要解决一答多问的情形,语义模板通过抽象到具体数据的映射得到数据,结合数据,就渲染出各种不同的具体语义问法。反向技术主要处理语义中间层遇到冲突和矛盾时的处理。
为了能准确有效地实现基于语义的用户接口应用,需提出一种能够根据语义快速分析并提取准确信息的解决方案,根据提取关键词快速驱动应用程序模块,可大大提高应用系统的扩展性和处理能力,实现多种应用中的自然语言交互接口的综合业务。
发明内容:
本发明的目的提供一种基于模板的语义变量抽取方法,通过定义语义变量的标识模板,进行模板比对,最终将用户输入语句中的关键词进行抽取的一种实现方式,本发明所提出的一种基于模板的语义变量抽取方法包含以下步骤:
1、定义变量标识抽取模板;
变量标识抽取模板由描述性的文本(TEXT,简称T)和抽取的变量(VARIABLE,简称V)两部分内容构成。
2、建立变量抽取模板索引链表(Template Index List);
对变量抽取模板按照文本T和变量V进行抽象化的读取,其读取结果为模板索引对象链表。做成链表的数据结构是便于灵活访问模板的要素,供后续程序调用。索引列表为简单的单向链表,每个节点包含以下几个属性内容:
next字段标识后继节点是什么;
type字段标识节点类型,为文本和变量;
value字段标记值。对于变量,记录变量类型;对于text记录文本信息;
Head Value:当type为文本的时候有效。一般记录value分词后的第一个词,也可以记录多个词;
Tail Value:当type为文本的时候有效。一般记录value分词后的最后一个词,也可以记录多个词;
3、获取分割注释列表(Separator Comment List);
进一步对模板索引链表进行分析,得到一个分割节点的集合,其标明了分割的重要信息,称为分割的注释列表。分割注释列表的每个节点包含分割符和分割类型信息。分割符为分割提取时的标识字符,分割类型分为L、R、B三种:
L表示分割符号的右边是一个需要抽取的变量V,左侧是一个文本T;
R表示分割符号的左边是一个需要抽取的变量V,右侧是一个文本T;
B表示分割符号左右都是需要抽取的变量;
4、根据分割注释链表获得分割符号对输入语句进行分割,获得输入语句的语句索引链表(Sentence Index List);
根据步骤3的结果,获得所有可能的分割符号。输入语句通过分割符号进行分割,得到基于分割结果输入语句索引链列表(Sentence Index List)。每一个语句索引对象都是一个单向的链表,包含以下信息:
Place:位置,该分割符号在句子中所处的位置;
Left:分割字符,左边的文本内容;
Right:分割字符,右边的文本内容;
Separator:分割字符;
Separator Type:分割字符类型;
Next:下一个Sentence Index对象节点。
5、按照语句索引链列表和模板索引链表,进行语义匹配度计算和抽取;
每一条语句索引链,利用其分割字符和分割类型,进行所有模板索引链表的对比分析。模板索引链表由抽取变量V和文本内容T两种部分构成,分割字符只能在T中出现,T和T之间至少有一个或者多个V间隔,因此组合的结果可以有以下形式:T、TV...、V...T、TV...T、V...。按照以下原则进行处理:
(1)如果当前模板索引链表节点是T,则后继就只有三种可能:T、TV...T、TV...,可对这三种情况分别处理;
(2)如果模板索引链表起始节点是V,则就额外处理V...、V...T两种情况,处理完毕后把节点移动到T,处理则回到了(1)的情形。
匹配度计算方法为:
(a)若是纯粹的T,则按照全语句相似度计算;若是纯粹的V,则特别标记相似度为1。
(b)若是VT类型,则只计算T部分value和语句索引链表节点后缀(separator+right)的相似度;
(c)若是TV类型,则只计算T部分value和语句索引链表节点后缀(left+separator)的相似度;
(d)若是TVT类型,则分别计算前一个T部分value和语句索引链表节点后缀(left+separator)的相似度,以及后一个T部分的Value和语句索引链表节点后缀(separator+right)相似度,然后累加。
所有分割处都分别计算,除了计算每个抽取变量的单独匹配度,还需对所有匹配度进行累加,最后再进行平均得到总体匹配度。如果不是T开头且T后面存在V,则这个T作为除数的时候需算作2个。
具体的匹配度算法细节可根据需求而异,本发明采用Levenshtein算法,通过计算得到Levenshtein Distance其相对于原输入的最长字符串的长度之比,得到其偏差值,进而得到匹配度(匹配度=1-偏差值)。
变量抽取的逻辑为:
如果是T,不存在抽取的问题;
如果是TV...T,那么V...就等于第一个T对应的语句索引链表节点的Separator+right与第二个T对应的语句索引链表节点的left+Separator的交集。(注:此处交集是指前者逆向,与后者正向的共同的最大匹配。);
如果是TV,抽取变量就是语句索引链表节点的right部分;
如果类型是V...,那么整个语句都是变量;
如果类型是V...T,那么变量内容就是语句索引链表节点的left部分;
在最后,返回抽取的结果,和匹配度的大小,供其他程序调用。按照最大匹配原则,则返回的是其中匹配度最低记录。
附图说明:
图1变量标识抽取模板结构示意图;
图2基于语义变量抽取的应用接口的实现流程图。
具体实施方案:
根据发明内容提供的解决方案,基于语义变量抽取的应用接口的实现的具体实施方案如下:
当用户通过应用终端询问快递业务的费用,假设输入自然语言语句“到杭州快递是多少钱?”,首先根据此语句中的关键词采用变量标识来定义其变量抽取模板。语句“到杭州快递是多少钱?”可以抽象为“到$[city]的快递是多少钱”。其中“$[”是变量标识的前缀,“]”是变量标识的后缀。中间的内容“city”就是变量的名称。前缀和后缀只起到标识作用,是可以被其他符号替换的,并不仅限于“$[”和“]”。在变量抽取模板的定义中,根据输入语句的不同,可以在语句中的不同位置包含多个变量。
建立变量抽取模板索引链表,变量抽取模板由两部分构成:一个是描述性质的文本T,另外一个是需要抽取的变量V。对模板进行次序的抽象化的读取,形成一个单向的链表,链表的每个节点可能是模板中的文本T,也有可能是模板中的变量V.这个链表可以比纯文本更加灵活方便地访问模板的组成要素,供后续程序调用,类似于索引的情形。因此称这个链表为模板索引列表。
其详细的节点属性内容如下:
next字段标识后续节点是什么。type字段标识为节点类型,即文本和变量两种。value字段标记值,对于变量V,记录变量类型;对于文本T,则记录文本信息。Head Value只对文本类型有效,记录value分词后的第一个词,这个字段也可以记录多词,根据不同的需求而定。Tail value只对文本字段有效,记录value分词后的最后一个词。这个字段也可以记录多词,根据不同的需求而定。
进一步对模板索引链表进行分析,可以得到一个分割节点的集合,因为其标明了分割的重要信息,所以称之为分割的注释列表。分割注释列表的每个节点包含分割符和分割类型信息。其中分割类型分为L、R、B三种:
L代表分割符的右边是一个需抽取的变量V,左侧是一个文本T。如模板:我想要到${city},“到”为一个分割符,右侧是变量,则其类型为L;
R代表分割符的左边是一个需抽取的变量V,右侧是一个文本T,如模板:${who}到上海去,“到”是一个分割符,左侧是变量,其类型为R;
B代表分割符左右都是需抽取的变量V,如${who}到${city}多少钱?“到”是一个分割符,左右两侧都是变量,其类型为B。
分割注释列表采用以下方式进行分析:
(1)如果首先是文本,那么标注分割类型为L,保证了下面一个节点如果存在,则一定是V。
(2)查询下一个类型为文本的节点,若查找不到,则标注分割类型为R。
其他情况下:
如果该文本节点下一个节点是变量节点,且该文本节点的Head Value=value,那么可以判断类型为B。否则添加两个分割节点:一个标注为R,分割字符为其headValue.另一个标注为L,分割字符为其tailValue。
在上述的过程中,我们可以对于每一条模板,得到一个分割注释列表,穷尽所有模板,最终的到一个分割注释列表的集合。利用这个集合对输入语句进行分割。一条输入语句,可能没有分割结果,此时这条语句就可以排除。也有可能一条输入语句即使只对应一个模板的分割注释列表,依然有可能得到多个分割结果。只要同一个分割关键词出现多处,其结果就一般是多个。比如“你到学校不能迟到啊。”以“到”作为分割词来,这句话就可以分割为:“你、学校不能迟到”;“你到学校不能迟到、啊”两种可能。因此对于分割处理策略可以是多样的,常见的策略可以有:最先出现,最后出现,最大可能匹配等等。前面两种策略相对实现比较简单,只需要判定分割字符以最先或者最后出现为准即可。本发明采用的是最大可能匹配,即穷尽所有可能的切分方法,寻求到匹配度最大的结果,作为最后的结果。
我们用语句索引链表,来记录一种分割的结果。它是一个单向的链表,每个节点被设计为SentenceIndex对象,其包含以下信息:
Place,表示该分割符号在句子中所处的位置;
left,表示分割字符左边的文本内容;
right,表示分割字符右边的文本内容;
separator为分割字符;
Separator Type,为分割字符的类型;
Next,下一个Sentence Index对象节点。
穷尽所有可能性之后,我们就得到了一个语句索引链表的集合。其作用是对于输入语句做了预先的处理,便于调用和访问,在后续的变量抽取和匹配计算的时候,能够更加方便地得到所需要的文本区间段。
用语句索引链表和前面提到的模板索引链表相结合,就可以进行最后的匹配度计算和关键词抽取。具体做法如下:
对于每一条语句索引链,利用其分割字符和分割类型,做一遍所有模板索引链表的对比分析。由于模板索引链表由抽取变量V和文本内容T两种部分构成,而分割字符只能在T中出现。T和T之间至少有一个或者多个V间隔,因此组合的结果可以穷尽为以下形式:T,TV...,V...T,TV...T,V...,按照以下原则进行处理:
(1)使得当前模板索引链表节点尽可能是T,这样后继就只有三种可能:T、TV...T、TV...可以对这三种情况分别处理;
(2)如果模板索引链表起始节点是V,则就额外处理V...、V...T两种情况,处理完毕后把节点移动到T,处理则回到了(1)的情形。
匹配度计算方法为:
(a)若是纯粹的T,则按照全语句相似度计算;若是纯粹的V,则特别标记相似度为1;
(b)若是VT类型,则只计算T部分value和语句索引链表节点后缀(separator+right)的相似度;
(c)若是TV类型,则只计算T部分value和语句索引链表节点后缀(left+separator)的相似度;
(d)若是TVT类型,则分别计算前一个T部分value和语句索引链表节点后缀(left+separator)的相似度,以及后一个T部分的Value和语句索引链表节点后缀(separator+right)相似度,然后累加。
所有分割处都分别计算,除了计算每个抽取变量的单独匹配度,还对所有匹配度进行累加,最后再进行平均,得到总体匹配度。如果不是T开头且T后面存在V,则这个T作为除数的时候需要算作2个。比如:有模板“到${city}乘坐${train}最快速”,有语句输入“到上海乘坐k498列车最快速呀”,则依次进行模板中的“到”和输入句中的“到”的匹配计算,模板中的“乘坐”和输入句中的“乘坐”的匹配计算,模板中的“乘坐”和输入句中的“乘坐”的匹配计算,“最快速”和“最快速呀”的匹配,匹配累加后再除以4,平均化后得到总体的匹配度。
具体的匹配度算法细节可以根据需求而异,本发明采用Levenshtein算法,通过计算得到Levenshtein Distance及其相对于原输入的最长字符串长度之比,得到其偏差值,进而得到匹配度(匹配度=1-偏差值)。
变量抽取的逻辑为:
如果是T,不存在抽取的问题;
如果是TV...T,那么V...就等于第一个T对应的语句索引链表节点的Separator+right与第二个T对应的语句索引链表节点的left+Separator的交集.(注:这里的交集是指前者逆向,与后者正向的共同的最大匹配。比如:Separator+right为:“到火车站”,left+Separator为“火车站多少钱”,可以知道其相交的最大部分是“火车站”。);
如果是TV,抽取变量就是语句索引链表节点的right部分;
如果类型是V...,那么整个语句都是变量;
如果类型是V...T,那么变量内容就是语句索引链表节点的left部分;
最后返回抽取的结果,和匹配度的大小,供其他程序调用。按照最大匹配原则,则返回的是其中匹配度最低记录。

Claims (7)

1.一种基于模板的语义变量抽取方法,通过定义语义变量的标识模板,进行模板比对,最终将用户输入语句中的关键词进行抽取的一种实现方式,包含以下实现步骤:
(1)定义变量标识抽取模板;
(2)建立模板索引链表:对变量标识抽取模板进行抽象化读取,其读取结果为模板索引链表;
(3)分析模板索引链表,得到一个分割节点的集合,令其为分割注释列表;
(4)根据分割注释列表获得分割符号对输入语句进行分割,令分割结果为语句索引链列表;
(5)按照语句索引链列表和模板索引链表,进行语义匹配度计算和抽取;
(6)根据匹配度计算和抽取结果,调出接口应用程序,实现应用接口驱动。
2.如权利要求1所述的基于模板的语义变量抽取方法,其特征在于:所述变量标识抽取模板由描述性的文本和抽取变量两部分构成。
3.如权利要求1所述的基于模板的语义变量抽取方法,其特征在于:所述分割注释列表的每个节点包含分割符和分割类型信息。
4.如权利要求1所述的基于模板的语义变量抽取方法,其特征在于:所述模板索引链表的每个节点包含以下几个属性内容:
Next,字段标识后继节点是什么;
Type,字段标识节点类型,为文本和变量;
Value,字段标记值,对于变量记录变量类型,对于text记录文本信息;
Head Value,只在节点类型是文本时有效,记录value分词后的第一个词或多个词;
Tail Value,只在节点类型是文本时有效,记录value分词后的最后一个词或多个词。
5.如权利要求1或3所述的基于模板的语义变量抽取方法,其特征在于:所述分割注释列表的分割类型分为L、R、B三种:
L表示分割符号的右边是一个需要抽取的变量V,左侧是一个文本T;
R表示分割符号的左边是一个需要抽取的变量V,右侧是一个文本T;
B表示分割符号左右都是需要抽取的变量。
6.如权利要求1所述的基于模板的语义变量抽取方法,其特征在于:所述的语句索引链列表中每一个语句索引对象都是一个单向的链表,包含以下信息:
Place,分割符号在句子中所处的位置;
Left,分割字符,左边的文本内容;
Right,分割字符,右边的文本内容;
Separator,分割字符;
Separator Type,分割字符类型;
Next,下一个语句索引对象节点。
7.如权利要求1所述的基于模板的语义变量抽取方法,其特征在于:所述语义匹配度计算采用最大匹配原则。
CN200910195882.0A 2009-09-18 2009-09-18 一种基于模板的语义变量抽取方法 Expired - Fee Related CN102023854B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910195882.0A CN102023854B (zh) 2009-09-18 2009-09-18 一种基于模板的语义变量抽取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910195882.0A CN102023854B (zh) 2009-09-18 2009-09-18 一种基于模板的语义变量抽取方法

Publications (2)

Publication Number Publication Date
CN102023854A CN102023854A (zh) 2011-04-20
CN102023854B true CN102023854B (zh) 2015-04-15

Family

ID=43865176

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910195882.0A Expired - Fee Related CN102023854B (zh) 2009-09-18 2009-09-18 一种基于模板的语义变量抽取方法

Country Status (1)

Country Link
CN (1) CN102023854B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2678095C (en) * 2009-09-25 2012-05-01 Ibm Canada Limited - Ibm Canada Limitee Object level compatibility and class resizing utilizing semantic values
CN103000052A (zh) * 2011-09-16 2013-03-27 上海先先信息科技有限公司 人机互动的口语对话系统及其实现方法
CN102546034B (zh) * 2012-02-07 2013-12-18 深圳市纽格力科技有限公司 一种语音信号处理方法及设备
CN110321544B (zh) * 2019-07-08 2023-07-25 北京百度网讯科技有限公司 用于生成信息的方法和装置
CN112000767B (zh) * 2020-07-31 2024-07-23 深思考人工智能科技(上海)有限公司 一种基于文本的信息抽取方法和电子设备
CN112347772A (zh) * 2020-08-14 2021-02-09 北京京东尚科信息技术有限公司 一种语义解析方法和装置
CN114091465A (zh) * 2020-12-29 2022-02-25 北京沃东天骏信息技术有限公司 语义识别方法、语义识别装置、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671425A (en) * 1990-07-26 1997-09-23 Nec Corporation System for recognizing sentence patterns and a system recognizing sentence patterns and grammatical cases
US6910003B1 (en) * 1999-09-17 2005-06-21 Discern Communications, Inc. System, method and article of manufacture for concept based information searching
CN1852302A (zh) * 2005-09-20 2006-10-25 华为技术有限公司 一种在下一代网络中实现语音交互功能的方法
CN101174259A (zh) * 2007-09-17 2008-05-07 张琰亮 一种智能互动式问答系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671425A (en) * 1990-07-26 1997-09-23 Nec Corporation System for recognizing sentence patterns and a system recognizing sentence patterns and grammatical cases
US6910003B1 (en) * 1999-09-17 2005-06-21 Discern Communications, Inc. System, method and article of manufacture for concept based information searching
CN1852302A (zh) * 2005-09-20 2006-10-25 华为技术有限公司 一种在下一代网络中实现语音交互功能的方法
CN101174259A (zh) * 2007-09-17 2008-05-07 张琰亮 一种智能互动式问答系统

Also Published As

Publication number Publication date
CN102023854A (zh) 2011-04-20

Similar Documents

Publication Publication Date Title
CN102023854B (zh) 一种基于模板的语义变量抽取方法
CN109918680B (zh) 实体识别方法、装置及计算机设备
CN106534548B (zh) 语音纠错方法和装置
CN104076944A (zh) 一种聊天表情输入的方法和装置
CN107578769A (zh) 语音数据标注方法和装置
CN106294593A (zh) 结合从句级远程监督和半监督集成学习的关系抽取方法
CN110020424A (zh) 合同信息的提取方法、装置和文本信息的提取方法
CN104268160A (zh) 一种基于领域词典和语义角色的评价对象抽取方法
CN101430623A (zh) 输入笔迹自动转换系统和方法
CN101529500A (zh) 内容概括系统、内容概括的方法和程序
CN109817210A (zh) 语音写作方法、装置、终端和存储介质
CN108304424B (zh) 文本关键词提取方法及文本关键词提取装置
CN110517668B (zh) 一种中英文混合语音识别系统及方法
CN113051384B (zh) 基于对话的用户画像抽取方法及相关装置
CN111046674B (zh) 语义理解方法、装置、电子设备和存储介质
CN110210416A (zh) 基于动态伪标签解码的手语识别系统优化方法及装置
CN103778200A (zh) 一种报文信息源抽取方法及其系统
CN103150294A (zh) 基于语音识别结果的修正方法和系统
CN109978016A (zh) 一种网络用户身份识别方法
CN113326367B (zh) 基于端到端文本生成的任务型对话方法和系统
CN112182156B (zh) 基于文本处理的方面级可解释深度网络评分预测推荐方法
CN116757184B (zh) 融合发音特征的越南语语音识别文本纠错方法及系统
CN112632244A (zh) 一种人机通话的优化方法、装置、计算机设备及存储介质
CN105955953A (zh) 一种分词系统
CN109933773A (zh) 一种多重语义语句解析系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150415

Termination date: 20180918