CN102023854B - 一种基于模板的语义变量抽取方法 - Google Patents
一种基于模板的语义变量抽取方法 Download PDFInfo
- 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
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所述的基于模板的语义变量抽取方法,其特征在于:所述语义匹配度计算采用最大匹配原则。
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)
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)
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 | 张琰亮 | 一种智能互动式问答系统 |
-
2009
- 2009-09-18 CN CN200910195882.0A patent/CN102023854B/zh not_active Expired - Fee Related
Patent Citations (4)
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 |