CN109446298A - 模板匹配方法及装置、计算机设备及可读介质 - Google Patents
模板匹配方法及装置、计算机设备及可读介质 Download PDFInfo
- Publication number
- CN109446298A CN109446298A CN201810960747.XA CN201810960747A CN109446298A CN 109446298 A CN109446298 A CN 109446298A CN 201810960747 A CN201810960747 A CN 201810960747A CN 109446298 A CN109446298 A CN 109446298A
- Authority
- CN
- China
- Prior art keywords
- full dose
- template
- index segment
- input
- matching
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种模板匹配方法及装置、计算机设备及可读介质。其方法包括:根据用户的输入请求,生成用于进行模板匹配的索引段;根据索引段,从预先生成的全量模板库中,搜索与索引段匹配的多个候选全量模板;并根据输入请求、索引段以及各候选全量模板,从多个候选全量模板中匹配与输入请求匹配的目标全量模板。本发明的技术方案,与现有方案相比,不用将所有正则模板加载到进行模板匹配服务的内存中进行在线匹配,从而可以有效地提高模板匹配的CPU和单机消耗,减少模板匹配过程的延时,提高匹配效率。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种模板匹配方法及装置、计算机设备及可读介质。
背景技术
随着互联网技术的发展,各种基于互联网而提供的网络服务产品也越来越多,大大地方便了人们的生活。
例如,现有技术的互联网产品中提供有一种在线精准问答系统,能够对用户在线提出的任何问题给予一定的解答,受到用户的广泛青睐。例如图1为现有技术的互联网中提供的一种在线精准问答系统的架构图。如图1所示,现有的该在线精准问答系统包括客户端(Client)A和服务器B两侧,具体地,在服务器B侧包括有模板(Pattern)匹配服务模块B1、实体识别(Named entity recognition;Ner)服务模块B2和DatabaseB3。DatabaseB3中存储有数以万量级的正则表达形式的正则Pattern。用户通过客户端ClientA向服务器B侧的Pattern匹配服务模块B1发送用户的输入请求,即Query。pattern匹配服务模块B1收到Query之后,由Ner服务模块B2对Query中的type信息进行实体识别。然后由pattern匹配服务模块B1从DatabaseB3中获取所有的正则Pattern,并采用轮循的方式,基于语义理解(Natural Language Understanding;NLU)的基础上,比对每一个正则Pattern与实体识别后的Query,以判断实体识别后的Query中的type的类型是否与对应的Pattern模板中的类型相匹配,若匹配,确定该正则Pattern为与该Query请求匹配的正则Pattern。通过上述方式,Pattern匹配服务模块B1可以获取到与该Query匹配的所有正则Pattern。后续便可以基于与该Query匹配的所有正则Pattern,从答案库中召回对应的答案,并反馈给用户。
但是,上述现有技术中,在Pattern匹配的过程中,Pattern匹配服务模块B1在进行匹配的时候,需要将所有正则Pattern加载到内存中进行在线匹配,会导致进行Pattern匹配的中央处理器(Central Processing Unit;CPU)和单机消耗严重,从而导致模板匹配过程延时较大,匹配效率较低。
发明内容
本发明提供一种模板匹配方法及装置、计算机设备及可读介质,用于减小模板匹配的延时,提高模板匹配效率。
本发明提供一种模板匹配方法,所述方法包括:
根据用户的输入请求,生成用于进行模板匹配的索引段;所述索引段中包括所述输入请求中的字段;
根据所述索引段,从全量模板库中,搜索与所述索引段匹配的多个候选全量模板;
根据所述输入请求、所述索引段以及各所述候选全量模板,从所述多个候选全量模板中匹配与所述输入请求匹配的目标全量模板。
进一步可选地,如上所述的方法中,所述索引段中还包括用于替换所述输入请求中的部分字段的空白占位符。
进一步可选地,如上所述的方法中,根据用户的输入请求,生成用于进行模板匹配的索引段,包括:
对所述输入请求进行实体识别,识别出所述输入请求中的实体;
将所述输入请求中的至少一个实体替换为所述空白占位符,得到所述索引段。
进一步可选地,如上所述的方法中,根据所述索引段,从全量模板库中,搜索与所述索引段匹配的多个候选全量模板之前,所述方法还包括:
定期对正则模板库中的所有的正则模板进行展开,得到多个全量模板,并存入所述全量模板库中。
进一步可选地,如上所述的方法中,根据所述索引段,从全量模板库中,搜索与所述索引段匹配的多个候选全量模板之前,所述方法还包括:
若所述正则模板库中出现增量正则模板,将所述增量正则模板进行展开,得到多个更新的全量模板;
利用所述多个更新的全量模板,更新所述全量模板库。
进一步可选地,如上所述的方法中,利用所述多个更新的全量模板,更新所述全量模板库,包括:
将所述多个更新的全量模板加入至消息队列中;
根据所述消息队列,更新所述全量模板库。
进一步可选地,如上所述的方法中,根据所述索引段,从全量模板库中,搜索与所述索引段匹配的多个候选全量模板,包括:根据所述索引段,采用倒排索引的方式从所述全量模板库中,搜索与所述索引段匹配的所述多个候选全量模板。
进一步可选地,如上所述的方法中,根据所述输入请求、所述索引段以及各所述候选全量模板,从所述多个候选全量模板中匹配与所述输入请求匹配的目标全量模板模式,包括:
获取所述输入请求中、与所述索引段中所述空白占位符对应的词语的可选类型;
获取各所述候选全量模板中所述空白占位符对应的字段的类型;
根据所述输入请求中、与所述索引段中所述空白占位符对应的词语的可选类型,以及各所述候选全量模板中所述空白占位符对应的字段的类型,从所述多个候选全量模板中获取与所述输入请求匹配的目标全量模板。
本发明还提供一种模板匹配装置,所述装置包括:
生成模块,用于根据用户的输入请求,生成用于进行模板匹配的索引段;所述索引段中包括所述输入请求中的字段;
搜索模块,用于根据所述索引段,从全量模板库中,搜索与所述索引段匹配的多个候选全量模板;
匹配模块,还用于根据所述输入请求、所述索引段以及各所述候选全量模板,从所述多个候选全量模板中匹配与所述输入请求匹配的目标全量模板。
进一步可选地,如上所述的装置中,所述索引段中还包括用于替换所述输入请求中的部分字段的空白占位符。
进一步可选地,如上所述的装置中,所述生成模块,用于:
对所述输入请求进行实体识别,识别出所述输入请求中的实体;
将所述输入请求中的至少一个实体替换为所述空白占位符,得到所述索引段。
进一步可选地,如上所述的装置中,还包括:
全量更新模块,用于定期对正则模板库中的所有的正则模板进行展开,得到多个全量模板,并存入所述全量模板库中。
进一步可选地,如上所述的装置中,还包括增量更新模块,用于:
若所述正则模板库中出现增量正则模板,将所述增量正则模板进行展开,得到多个更新的全量模板;
利用所述多个更新的全量模板,更新所述全量模板库。
进一步可选地,如上所述的装置中,所述增量更新模块,用于:
将所述多个更新的全量模板加入至消息队列中;
根据所述消息队列,更新所述全量模板库。
进一步可选地,如上所述的装置中,所述搜索模块,用于根据所述索引段,采用倒排索引的方式从所述全量模板库中,搜索与所述索引段匹配的所述多个候选全量模板。
进一步可选地,如上所述的装置中,所述匹配模块,用于:
获取所述输入请求中、与所述索引段中所述空白占位符对应的词语的可选类型;
获取各所述候选全量模板中所述空白占位符对应的字段的类型;
根据所述输入请求中、与所述索引段中所述空白占位符对应的词语的可选类型,以及各所述候选全量模板中所述空白占位符对应的字段的类型,从所述多个候选全量模板中获取与所述输入请求匹配的目标全量模板。
本发明还提供一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上任一所述的方法。
本发明还提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上任一所述的方法。
本发明的模板匹配方法及装置、计算机设备及可读介质,通过采用上述实施例的技术方案,在模板匹配时,可以直接根据用户的输入请求,生成用于进行模板匹配的索引段;根据索引段,从预先生成的全量模板库中,搜索与索引段匹配的多个候选全量模板;并根据输入请求、索引段以及各候选全量模板,从多个候选全量模板中匹配与输入请求匹配的目标全量模板。本发明的技术方案,与现有方案相比,不用将所有正则模板加载到进行模板匹配服务的内存中进行在线匹配,从而可以有效地提高模板匹配的CPU和单机消耗,减少模板匹配过程的延时,提高匹配效率。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1为现有技术的互联网中提供的一种在线精准问答系统的架构图。
图2为本发明的模板匹配方法实施例的流程图。
图3为本发明的模板匹配方法实施例提供的一种架构图。
图4为本发明的模板匹配装置实施例一的结构示意图。
图5为本发明的模板匹配装置实施例二的结构示意图。
图6示出了根据本发明一实施例可用于实现上述模板匹配方法的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图2为本发明的模板匹配方法实施例的流程图。如图2所示,本实施例的模板匹配方法,具体可以包括如下步骤:
100、根据用户的输入请求,生成用于进行模板匹配的索引段;该索引段中包括输入请求中的字段;
101、根据索引段,从全量模板库中,搜索与索引段匹配的多个候选全量模板;
102、根据输入请求、索引段以及各候选全量模板,从多个候选全量模板中匹配与输入请求匹配的目标全量模板。
本实施例的模板匹配方法应用在一种在线问答系统中,以根据用户的输入请求即Query,获取匹配的目标全量模板,后续进一步可以根据目标全量模板从答案库中召回对应的答案,并反馈给用户,从而实现在线问答。本实施例的模板匹配方法的执行主体可以为模板匹配装置,该模板匹配装置可以设置在在线问答系统的服务器中。服务器接收用户的客户端即Client发送的Query之后,由模板匹配装置获取匹配的目标全量模板。
具体地,本实施例中模板匹配装置接收到用户的Query后,根据用户的Query,生成用于进行Pattern匹配的索引段。这样,该索引段中至少包括Query中的字段。例如可以采用Query作为索引段进行模板匹配,但是这样,由于Query中包括的信息过于详细,可能匹配的Pattern较少,导致在线问答系统的召回率较低。所以,可选地,本实施例中生成的该索引段中还可以包括用于替换Query中的部分字段的空白占位符,即将Query中的某些字段采用空白占位符来替换,这样,空白占位符仅表示该位置有字符,而字符的具体内容不做限制,这样,基于该索引段可以匹配到更多的Pattern,从而可以提高在线问答系统的召回率。
基于以上所述,本实施例中,基于同一个Query可以生成一个、两个甚至多个索引段。在模板匹配时,可以基于每一个索引段获取对应的目标全量模板。例如,若用户通过Client输入的Query为“法国的总统”,对应的可以生成如下的索引段:“法国的总统”、“##的总统”、“法国的##”、“##的##”;其中的“##”为空白占位符,表示索引段中该位置的字段可以采用Query中该位置的字段之外的其他的字段来代替,以提高召回率。
例如,若索引段中包括空白占位符时,对应的步骤100“根据用户的输入请求,生成用于进行模板匹配的索引段”,在实现时可以包括如下步骤:
(a1)对输入请求进行实体识别,识别出输入请求中的实体;
(b1)将输入请求中的至少一个实体替换为空白占位符,得到索引段。
例如,可以采用Ner服务模块识别输入请求即Query中的每一个实体,如“法国的总统”中的“法国”以及“总统”都可以被识别出来。然后可以将法国或者总统替换为空白占位符得到索引段,或者同时将法国和总统分别替换为空白占位符得到索引段。本实施例的Ner服务模块对Query进行实体识别的方式可以参考相关现有技术,在此不再赘述。
根据上述方式,获取到用于模板匹配的索引段之后,可以先基于索引段获取多个候选全量模板。具体地,参考步骤101,根据索引段,可以采用倒排索引的方式,从全量模板库中,获取与索引段匹配的多个候选全量模板。本实施例的全量模板库具体可以采用定期对正则模板库中的所有的正则模板进行展开,得到多个全量模板,并存入全量模板库中得到。即本实施例中将正则模板展开后的每个详尽的模板称为全量模板。本实施例的定期可以根据具体需求来设置,例如可以为一个月一次,也可以为两周或者一周一次,或者也可以为其他时间周期长度,在此不做限定。
例如,如下为本实施例提供的正则模板的示例:【(?:小说|漫画|图书|网文)?#/domain_group/book/book#(?:的)?体裁(?:是)?(?:啥|什么)?(?:啊)?】,或者^#/architecture/building_complex#(?:一共|总共)(?:有)?多少(?:个)?(?:停)?车位$。对于正则模板“^#/architecture/building_complex#(?:一共|总共)(?:有)?多少(?:个)?(?:停)?车位$”,可以穷举展开为如下的全量模板:
^#/architecture/building_complex#一共多少车位$;
^#/architecture/building_complex#一共多少停车位$;
^#/architecture/building_complex#一共多少个车位$;
^#/architecture/building_complex#一共多少个停车位$;
^#/architecture/building_complex#一共有多少车位$;
^#/architecture/building_complex#一共有多少停车位$;
^#/architecture/building_complex#一共有多少个车位$;
^#/architecture/building_complex#一共有多少个停车位$;
^#/architecture/building_complex#总共多少车位$;
^#/architecture/building_complex#总共多少停车位$;
^#/architecture/building_complex#总共多少个车位$;
^#/architecture/building_complex#总共多少个停车位$;
^#/architecture/building_complex#总共有多少车位$;
^#/architecture/building_complex#总共有多少停车位$;
^#/architecture/building_complex#总共有多少个车位$;
^#/architecture/building_complex#总共有多少个停车位$。
采用上述类似的方式,将所有正则模板展开后的多个全量模板集合在一起,便构成本实施例的全量模板库。然后可以便可以根据索引段,从全量模板库中,获取与索引段匹配的多个候选全量模板。例如,本实施例中可以采用倒排索引的方式,从全量模板库中搜索与索引段匹配的多个候选全量模板。也就是说,根据全量模板库中的每个全量模板,可以事先建立有倒排索引表,这样,搜索时,根据每个索引段和预先建立的倒排索引表,可以快速从全量模板库中获取索引段对应的多个候选全量模板。本实施例的该步骤101具体采用一个搜索引擎模块来实现,例如可以采用ha3搜索引擎来实现。该全量模板库可以预先生成并存储在ha3搜索引擎中,对正则模板展开后的每个全量模板生成一个ha3-doc。Ha3-doc为ha3搜索引擎的输入文档单位,doc采用键-值(key-Value;K-V)字段来存储。
例如,在ha3搜索引擎中,本实施例的索引段可以采用如下方式来生成:
Ha3-doc schema格式:
CMD=add^_
PK=c9f771750de56ff0c536a74b4d21f93b^_
slots=/domain_group/book/book^_
slots_num=1^_
keys=体裁^_
str_keys=体裁^_
keys_num=1^_
expand_pattern=^#/domain_group/book/book#体裁$^_
origin_pattern=^(?:小说|漫画|图书|网文)?#/domain_group/book/book#(?:的)?体裁(?:是)?(?:啥|什么)?(?:啊)?$^_
dcs=(!kg:domain_group.book.book.literary_genre kg:guid.{0})^_
no_tag_str=##体裁^_
其中no_tag_str列表示索引段,此列将type信息替换成##,其他字段不变;将其变成空白占位符“##”,可以提高模板匹配效率。若按照现有技术配成type方式,#type#的总统;对于query(法国的总统),其中法国和总统均被识别成实体,然后法国实体有m中类型,总统有n中类型,则需要从ha3搜索引擎中召回匹配的串有4类:法国的总统、#type1#的总统、法国的#type2#、#type1#的#type2#,总共有1+m+n+mn种。若替换成空白占位符“##”,则需要从ha3搜索引擎中召回的串有4种:法国的总统、##的总统、法国的##、##的##。因此,采用本实施例的索引段的设计方式,可以提高检索效率。
另外,可选地,由于定期更新时间周期较长,会导致正则模板库中的增量更新未及时更新至全量模板库中。因此,本实施例中还可以对正则模板库中的增量进行检测,若正则模板库中出现增量正则模板,将增量正则模板进行展开,得到多个更新的全量模板;并利用多个更新的全量模板,更新全量模板库。具体地更新时,可以采用消息队列swift的形式进行更新,例如,将多个更新的全量模板加入至消息队列swift中;然后根据消息队列,更新全量模板库。具体地,按照消息队列swift中的各更新的全量模板的加入顺序,依次将每一个更新的全量模板,更新至全量模板库中,以保证全量模板库中的全量模板能够及时更新。
基于上述步骤,获取到索引段对应的多个候选全量模板后,可以根据Query、索引段以及各候选全量模板,从多个候选全量模板中匹配与Query匹配的目标全量模板。例如,对于未包括空白占位符的索引段,对应的候选全量模板均为与Query匹配的目标全量模板。而对于包括空白占位符的索引段,本实施例中可以采用如下步骤来实现:
(a2)获取输入请求中、与索引段中空白占位符对应的词语的可选类型;
本实施例中,可以预先创建有一个知识图谱,该知识图谱中可以记录有每一个词语的所有可能的类型(type)。例如法国的type可以为国家名称、地理位置、电影类型等等。因此,可以从知识图谱中获取Query中与与索引段中空白占位符对应的词语的所有的可选类型。
(b2)获取各候选全量模板中空白占位符对应的字段的类型;
上述实施例中基于索引段获取候选全量模板时,若索引段中包括空白占位符即slot时,仅考虑索引段中的slot的位置以及slot外的key的精确匹配,而并没有考虑slot的内容,为了进一步从多个候选全量模板中精确匹配出目标全量模板,此时可以进一步获取各候选全量模板中空白占位符对应的字段的类型。
(c3)根据输入请求中、与索引段中空白占位符对应的词语的可选类型,以及各候选全量模板中空白占位符对应的字段的类型,从多个候选全量模板中获取与输入请求匹配的目标全量模板。
基于上述获取的Query对应的索引段中空白占位符对应的词语的可选类型,以及各候选全量模板中空白占位符对应的字段的类型,从多个候选全量模板中,获取候选全量模板中空白占位符对应的字段的类型与Query中对应该空白占位符的词语的可选类型一致的候选全量模板,作为与Query匹配的目标全量模板。通过上述方式,可以得到一个、两个、甚至多个目标全量模板。
本实施例的模板匹配方法,通过索引段的设计方式,可以保证了slot之外的部分即key的精确匹配、slot数量和位置的精确匹配,从而可以在进行匹配服务处理的单机的内存中实现type的精确命中即可。
图3为本发明的模板匹配方法实施例提供的一种架构图。与上述现有技术的图1相比,图3所示的本实施例的上述模板匹配方法中,在服务器B一侧增加ha3搜索引擎模块B4、全量更新模块B5以及增量更新模块B6。当然,ha3搜索引擎模块B4也可以替换为其他类似的搜索引擎模块。
在具体实施过程中,在Web数据更新时,DatabaseB3中的正则模板库中的正则模板会发生更新,全量更新模块B5可以定期对DatabaseB3中的正则模板库中的所有的正则模板进行展开,得到多个全量模板,并存入ha3搜索引擎模块B4中的全量模板库中。在实际使用中,为了提供匹配效率,本实施例的ha3搜索引擎模块B4和Pattern匹配服务模块B1可以分别设置在不同的物理实体设备上,在ha3搜索引擎模块B4中存储全量模板库,该全量模板库中存储有所有的正则模板展开后的全量模板。
另外,由于全量更新模块B5是定期更新,所以若DatabaseB3中的正则模板库中出现增量正则模板,由增量更新模块B6将增量正则模板进行展开,得到多个更新的全量模板;并将多个更新的全量模板加入至消息队列swift中;由ha3搜索引擎模块B4根据swift中的各个更新的全量模板,更新存储的全量模板库。
具体匹配时,Patter匹配服务模块B1接收到ClientA的Query请求后,可以由Ner服务模块B2进行实体识别,然后基于Ner服务模块B2的实体识别结果和ClientA发送的Query,Patter匹配服务模块B1生成多个索引段,例如,某个索引段中可以仅包括Query中的字段,其他索引段中可以采用空白占位符替换Query中的至少一个字段。具体地,各索引段的生成方式可以参考上述实施例的记载,在此不再赘述。
然后,由Patter匹配服务模块B1将生成的索引段发送给ha3搜索引擎模块B4,由ha3搜索引擎模块B4根据倒排索引的方式从存储的全量模板库中搜索与索引段匹配的多个候选全量模板,并发送给Patter匹配服务模块B1,然后Patter匹配服务模块B1根据Query、生成的各索引段以及各候选全量模板,从多个候选全量模板中匹配与输入请求匹配的目标全量模板。其具体实现原理可以参考上述实施例的记载,在此不再赘述。
与上述图1所示的现有的模板匹配方案相比,本实施例的模板匹配方案通过增加ha3搜索引擎模块B4、全量更新模块B5以及增量更新模块B6,由全量更新模块B5以及增量更新模块B6对正则模板库中的正则模板展开得到全量模板,并存储在ha3搜索引擎模块B4中的全量模板库中,然后可以在匹配时,先由Patter匹配服务模块B1获取Query对应的索引段,然后再由ha3搜索引擎模块B4搜索出索引段对应的多个候选全量模板,最后由Patter匹配服务模块B1根据Query和索引段,从多个候选全量模板中匹配与Query匹配的目标全量模板。
与图1的实现方案相比,Patter匹配服务模块B1中不用加载所有的正则模板,来进行匹配,先由ha3搜索引擎模块B4根据索引段获取对应的多个候选全量模板,可以有效地减少Patter匹配服务模块B1进行匹配时所需加载的候选全量模板的数量,从而可以减少匹配耗时,提高匹配效率。
本实施例的模板匹配方法,通过采用上述实施例的技术方案,在模板匹配时,可以直接根据用户的输入请求,生成用于进行模板匹配的索引段;根据索引段,从预先生成的全量模板库中,搜索与索引段匹配的多个候选全量模板;并根据输入请求、索引段以及各候选全量模板,从多个候选全量模板中匹配与输入请求匹配的目标全量模板。本实施例的技术方案,与现有方案相比,不用将所有正则模板加载到进行模板匹配服务的内存中进行在线匹配,从而可以有效地提高模板匹配的CPU和单机消耗,减少模板匹配过程的延时,提高匹配效率。
图4为本发明的模板匹配装置实施例一的结构示意图。如图4所示,本实施例的模板匹配装置,包括:
生成模块10用于根据用户的输入请求,生成用于进行模板匹配的索引段;索引段中包括输入请求中的字段;
搜索模块11用于根据生成模块10生成的索引段,从全量模板库中,搜索与索引段匹配的多个候选全量模板;该搜索模块11在实现时具体可以采用ha3搜索引擎这其他类似的搜索模块,在此不再一一举例赘述。
匹配模块12还用于根据输入请求、生成模块10生成的索引段以及搜索模块11搜索得到的各候选全量模板,从多个候选全量模板中获取与输入请求匹配的目标全量模板。
本实施例的模板匹配装置中,搜索模块11和匹配模块12在使用时可以分别设置不同的物理实体上。例如,可以将生成模块10和匹配模块12放在同一个实体上,实现匹配服务的功能。而搜索模块11放在另一个实体上实现匹配前的候选模板的预选功能。
本实施例的模板匹配装置,通过采用上述模块实现模板匹配的实现原理,与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图5为本发明的模板匹配装置实施例二的结构示意图。如图5所示,本实施例的模板匹配装置在上述图4所示实施例的技术方案的基础上,进一步更加详细地介绍本发明的技术方案。
例如,本实施例的模板匹配装置中,生成模块10根据用户的输入请求,生成用于进行模板匹配的索引段中还包括用于替换输入请求中的部分字段的空白占位符。
进一步可选地,本实施例的模板匹配装置中,生成模块10用于:
对输入请求进行实体识别,识别出输入请求中的实体;例如该部分功能可以采用Ner服务模块来实现。
将输入请求中的至少一个实体替换为空白占位符,得到索引段。
进一步可选地,如图5所示,本实施例的模板匹配装置中,还包括:
全量更新模块13用于定期对正则模板库中的所有的正则模板进行展开,得到多个全量模板,并存入全量模板库中。
进一步可选地,如图5所示,本实施例的模板匹配装置中,还包括增量更新模块14用于:
若正则模板库中出现增量正则模板,将增量正则模板进行展开,得到多个更新的全量模板;
利用多个更新的全量模板,更新全量模板库。
进一步可选地,本实施例的模板匹配装置中,增量更新模块14用于:
将多个更新的全量模板加入至消息队列中;
根据消息队列,更新全量模板库。
对应地,搜索模块11用于根据生成模块10生成的索引段,从全量更新模块13或者增量更新模块14更新的全量模板库中,搜索与索引段匹配的多个候选全量模板。
进一步可选地,本实施例的模板匹配装置中,搜索模块11用于根据生成模块10生成的索引段,采用倒排索引的方式从全量模板库中,搜索与索引段匹配的多个候选全量模板。
进一步可选地,本实施例的模板匹配装置中,匹配模块12用于:
获取输入请求中、与生成模块10生成的索引段中空白占位符对应的词语的可选类型;
获取搜索模块11搜索得到的各候选全量模板中空白占位符对应的字段的类型;
根据输入请求中、与索引段中空白占位符对应的词语的可选类型,以及各候选全量模板中空白占位符对应的字段的类型,从多个候选全量模板中获取与输入请求匹配的目标全量模板。
本实施例的模板匹配装置,通过采用上述模块实现模板匹配的实现原理,与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图6示出了根据本发明一实施例可用于实现上述模板匹配方法的计算设备的结构示意图。
参见图6,计算设备1000包括存储器1010和处理器1020。
处理器1020可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1020可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器1020可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器1010可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器1020或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1010可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器1010上存储有可执行代码,当可执行代码被处理器1020处理时,可以使处理器1020执行上文述及的模板匹配方法。
上文中已经参考附图详细描述了根据本发明的模板匹配。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (18)
1.一种模板匹配方法,其特征在于,所述方法包括:
根据用户的输入请求,生成用于进行模板匹配的索引段;所述索引段中包括所述输入请求中的字段;
根据所述索引段,从全量模板库中,搜索与所述索引段匹配的多个候选全量模板;
根据所述输入请求、所述索引段以及各所述候选全量模板,从所述多个候选全量模板中匹配与所述输入请求匹配的目标全量模板。
2.根据权利要求1所述的方法,其特征在于,所述索引段中还包括用于替换所述输入请求中的部分字段的空白占位符。
3.根据权利要求2所述的方法,其特征在于,根据用户的输入请求,生成用于进行模板匹配的索引段,包括:
对所述输入请求进行实体识别,识别出所述输入请求中的实体;
将所述输入请求中的至少一个实体替换为所述空白占位符,得到所述索引段。
4.根据权利要求1所述的方法,其特征在于,根据所述索引段,从全量模板库中,搜索与所述索引段匹配的多个候选全量模板之前,所述方法还包括:
定期对正则模板库中的所有的正则模板进行展开,得到多个全量模板,并存入所述全量模板库中。
5.根据权利要求4所述的方法,其特征在于,根据所述索引段,从全量模板库中,搜索与所述索引段匹配的多个候选全量模板之前,所述方法还包括:
若所述正则模板库中出现增量正则模板,将所述增量正则模板进行展开,得到多个更新的全量模板;
利用所述多个更新的全量模板,更新所述全量模板库。
6.根据权利要求5所述的方法,其特征在于,利用所述多个更新的全量模板,更新所述全量模板库,包括:
将所述多个更新的全量模板加入至消息队列中;
根据所述消息队列,更新所述全量模板库。
7.根据权利要求1-6任一所述的方法,其特征在于,根据所述索引段,从全量模板库中,搜索与所述索引段匹配的多个候选全量模板,包括:
根据所述索引段,采用倒排索引的方式从所述全量模板库中,搜索与所述索引段匹配的所述多个候选全量模板。
8.根据权利要求1-6任一所述的方法,其特征在于,根据所述输入请求、所述索引段以及各所述候选全量模板,从所述多个候选全量模板中匹配与所述输入请求匹配的目标全量模板模式,包括:
获取所述输入请求中、与所述索引段中所述空白占位符对应的词语的可选类型;
获取各所述候选全量模板中所述空白占位符对应的字段的类型;
根据所述输入请求中、与所述索引段中所述空白占位符对应的词语的可选类型,以及各所述候选全量模板中所述空白占位符对应的字段的类型,从所述多个候选全量模板中获取与所述输入请求匹配的目标全量模板。
9.一种模板匹配装置,其特征在于,所述装置包括:
生成模块,用于根据用户的输入请求,生成用于进行模板匹配的索引段;所述索引段中包括所述输入请求中的字段;
搜索模块,用于根据所述索引段,从全量模板库中,搜索与所述索引段匹配的多个候选全量模板;
匹配模块,还用于根据所述输入请求、所述索引段以及各所述候选全量模板,从所述多个候选全量模板中匹配与所述输入请求匹配的目标全量模板。
10.根据权利要求9所述的装置,其特征在于,所述索引段中还包括用于替换所述输入请求中的部分字段的空白占位符。
11.根据权利要求10所述的装置,其特征在于,所述生成模块,用于:
对所述输入请求进行实体识别,识别出所述输入请求中的实体;
将所述输入请求中的至少一个实体替换为所述空白占位符,得到所述索引段。
12.根据权利要求9所述的装置,其特征在于,所述装置还包括:
全量更新模块,用于定期对正则模板库中的所有的正则模板进行展开,得到多个全量模板,并存入所述全量模板库中。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括增量更新模块,用于:
若所述正则模板库中出现增量正则模板,将所述增量正则模板进行展开,得到多个更新的全量模板;
利用所述多个更新的全量模板,更新所述全量模板库。
14.根据权利要求13所述的装置,其特征在于,所述增量更新模块,用于:
将所述多个更新的全量模板加入至消息队列中;
根据所述消息队列,更新所述全量模板库。
15.根据权利要求9-14任一所述的装置,其特征在于,所述搜索模块,用于根据所述索引段,采用倒排索引的方式从所述全量模板库中,搜索与所述索引段匹配的所述多个候选全量模板。
16.根据权利要求9-14任一所述的装置,其特征在于,所述匹配模块,用于:
获取所述输入请求中、与所述索引段中所述空白占位符对应的词语的可选类型;
获取各所述候选全量模板中所述空白占位符对应的字段的类型;
根据所述输入请求中、与所述索引段中所述空白占位符对应的词语的可选类型,以及各所述候选全量模板中所述空白占位符对应的字段的类型,从所述多个候选全量模板中获取与所述输入请求匹配的目标全量模板。
17.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-8中任何一项所述的方法。
18.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810960747.XA CN109446298A (zh) | 2018-08-22 | 2018-08-22 | 模板匹配方法及装置、计算机设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810960747.XA CN109446298A (zh) | 2018-08-22 | 2018-08-22 | 模板匹配方法及装置、计算机设备及可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109446298A true CN109446298A (zh) | 2019-03-08 |
Family
ID=65530101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810960747.XA Pending CN109446298A (zh) | 2018-08-22 | 2018-08-22 | 模板匹配方法及装置、计算机设备及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109446298A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021174756A1 (zh) * | 2020-03-04 | 2021-09-10 | 深圳壹账通智能科技有限公司 | 应用系统部署方法、装置、计算机设备及存储介质 |
CN117076648A (zh) * | 2023-10-13 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 一种对话文本处理方法、装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7133866B2 (en) * | 2002-10-02 | 2006-11-07 | Hewlett-Packard Development Company, L.P. | Method and apparatus for matching customer symptoms with a database of content solutions |
CN102236664A (zh) * | 2010-04-28 | 2011-11-09 | 百度在线网络技术(北京)有限公司 | 基于语义归一化的检索系统、检索方法以及信息处理方法 |
CN103617290A (zh) * | 2013-12-13 | 2014-03-05 | 江苏名通信息科技有限公司 | 中文机器阅读系统 |
CN105677795A (zh) * | 2015-12-31 | 2016-06-15 | 上海智臻智能网络科技股份有限公司 | 抽象语义的推荐方法、推荐装置及推荐系统 |
CN107203526A (zh) * | 2016-03-16 | 2017-09-26 | 高德信息技术有限公司 | 一种查询串语义需求分析方法及装置 |
CN107992585A (zh) * | 2017-12-08 | 2018-05-04 | 北京百度网讯科技有限公司 | 通用标签挖掘方法、装置、服务器及介质 |
-
2018
- 2018-08-22 CN CN201810960747.XA patent/CN109446298A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7133866B2 (en) * | 2002-10-02 | 2006-11-07 | Hewlett-Packard Development Company, L.P. | Method and apparatus for matching customer symptoms with a database of content solutions |
CN102236664A (zh) * | 2010-04-28 | 2011-11-09 | 百度在线网络技术(北京)有限公司 | 基于语义归一化的检索系统、检索方法以及信息处理方法 |
CN103617290A (zh) * | 2013-12-13 | 2014-03-05 | 江苏名通信息科技有限公司 | 中文机器阅读系统 |
CN105677795A (zh) * | 2015-12-31 | 2016-06-15 | 上海智臻智能网络科技股份有限公司 | 抽象语义的推荐方法、推荐装置及推荐系统 |
CN107203526A (zh) * | 2016-03-16 | 2017-09-26 | 高德信息技术有限公司 | 一种查询串语义需求分析方法及装置 |
CN107992585A (zh) * | 2017-12-08 | 2018-05-04 | 北京百度网讯科技有限公司 | 通用标签挖掘方法、装置、服务器及介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021174756A1 (zh) * | 2020-03-04 | 2021-09-10 | 深圳壹账通智能科技有限公司 | 应用系统部署方法、装置、计算机设备及存储介质 |
CN117076648A (zh) * | 2023-10-13 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 一种对话文本处理方法、装置、电子设备和存储介质 |
CN117076648B (zh) * | 2023-10-13 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 一种对话文本处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101751457B (zh) | 信息处理设备、数据库系统、信息处理方法 | |
US20210097508A1 (en) | System and method for creating, tracking, and transfering non-fungible tokens in the ethereum blockchain | |
CN107391500A (zh) | 文本翻译方法、装置及设备 | |
CN104504001B (zh) | 面向海量分布式关系数据库的游标构造方法 | |
Lehmann et al. | Deqa: deep web extraction for question answering | |
US9245011B2 (en) | Data model versioning for document databases | |
CN102640151A (zh) | 信息系统中转换后的数据的高吞吐量、可靠复制 | |
CN106708993A (zh) | 基于大数据技术的空间数据存储处理中间件框架实现方法 | |
CN105808753B (zh) | 一种区域性数字资源系统 | |
CN109299100A (zh) | 管理内存数据及在内存中维护数据的方法和系统 | |
CN102831121A (zh) | 一种网页信息抽取的方法和系统 | |
CN103294781A (zh) | 一种用于处理页面数据的方法与设备 | |
CN102314440B (zh) | 利用网络维护语言模型库的方法和系统 | |
CN109408590A (zh) | 分布式数据库的扩容方法、装置、设备及存储介质 | |
Silva et al. | Integrating big data into the computing curricula | |
CN109446298A (zh) | 模板匹配方法及装置、计算机设备及可读介质 | |
Akatkin et al. | Data-centricity as the key enabler of digital government: Is Russia ready for digital transformation of public sector | |
CN106547646A (zh) | 一种数据备份及恢复方法、数据备份及恢复装置 | |
CN105069101A (zh) | 分布式索引构建及检索方法 | |
CN110209780A (zh) | 一种问题模板生成方法、装置、服务器及存储介质 | |
CN107729330A (zh) | 获取数据集的方法和装置 | |
KR20230152629A (ko) | 재구성된 질의를 생성하기 위한 방법, 시스템, 및 컴퓨터 판독가능한 기록 매체 | |
CN103198148A (zh) | 地图出版数据一体化管理及多媒介发布方法 | |
CN110472056A (zh) | 一种评论数据分类方法及系统 | |
Perwej et al. | An extensive investigate the mapreduce technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201231 Address after: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 510627 unit 01, 13th floor, Tower B, Pingyun Plaza, 163 xipingyun Road, Huangpu Avenue, Tianhe District, Guangzhou City, Guangdong Province Applicant before: UC MOBILE (CHINA) Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190308 |