CN107193843B - 一种基于ac自动机和后缀表达式的字符串筛选方法及装置 - Google Patents

一种基于ac自动机和后缀表达式的字符串筛选方法及装置 Download PDF

Info

Publication number
CN107193843B
CN107193843B CN201610147573.6A CN201610147573A CN107193843B CN 107193843 B CN107193843 B CN 107193843B CN 201610147573 A CN201610147573 A CN 201610147573A CN 107193843 B CN107193843 B CN 107193843B
Authority
CN
China
Prior art keywords
character string
character strings
expression
suffix
screening
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.)
Active
Application number
CN201610147573.6A
Other languages
English (en)
Other versions
CN107193843A (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610147573.6A priority Critical patent/CN107193843B/zh
Publication of CN107193843A publication Critical patent/CN107193843A/zh
Application granted granted Critical
Publication of CN107193843B publication Critical patent/CN107193843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

本申请公开了一种基于Aho‑Corasick(AC)自动机和后缀表达式的字符串筛选方法及装置,用以解决现有技术中在检测客服服务质量的场景下使用的字符串筛选方式成本较高,实时性也较差的问题。该方法包括:获取预定的字符串筛选规则,所述字符串筛选规则由一个或多个逻辑表达式组成;将组成所述字符串筛选规则的各所述逻辑表达式转换为后缀表达式;根据转换得到的各所述后缀表达式,提取关键词字符串;根据提取出的各所述关键词字符串,构建AC自动机;根据所述AC自动机和各所述后缀表达式,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串。

Description

一种基于AC自动机和后缀表达式的字符串筛选方法及装置
技术领域
本申请涉及信息技术领域,尤其涉及一种基于Aho-Corasick(AC)自动机和后缀表达式的字符串筛选方法及装置。
背景技术
随着互联网的高速发展,很多行业都可以通过网络便利地为用户提供服务,为了提高竞争力,吸引更多用户,很多服务提供方越来越重视用户口碑和服务质量,其中,服务提供方的客服服务质量是服务提供方关注点之一。
客服通常通过语音对话(比如通过电话对话)方式或文字对话(比如通过即时通讯应用对话)方式为用户提供服务,相应地,可以根据客服服务过程中的对话内容(简称为:服务对话),检测客服服务质量。
具体地,可以对服务对话进行检测,当发现服务对话中包含某些预定的不应当出现的词语时,或者,当发现服务对话中不包含某些预定的应当出现的词语时,等等,可以将对应部分的语句筛选出来,确定为问题对话,若问题对话出现,则意味着客服服务质量可能存在问题,筛选出的问题对话越多,客服服务质量可能越差。一般可以将服务对话记录为一个或多个字符串文本,比如,对于中文服务对话,字符串文本中的字符串可以为中文语句,然后将预定的应当和/或不应当出现的词语在字符串文本中进行匹配,并基于匹配结果,筛选出字符串文本中匹配的字符串,作为问题对话。
在现有技术中,一般采用机器学习的方式进行上述的字符串筛选。这种方式以人工标注大规模的服务对话记录为输入,运用业界现有的贝叶斯、神经网络等分类算法进行训练得到模型,并用该模型进行字符串筛选。
但是,上述现有技术中进行字符串筛选的方式需要投入大量时间和精力去做语料的积累和标注,以及训练模型,成本较高,实时性也较差。
发明内容
本申请实施例提供一种基于AC自动机和后缀表达式的字符串筛选方法及装置,用以解决现有技术中在检测客服服务质量的场景下使用的字符串筛选方式成本较高,实时性也较差的问题。
本申请实施例提供的一种基于AC自动机和后缀表达式的字符串筛选方法,包括:
获取预定的字符串筛选规则,所述字符串筛选规则由一个或多个逻辑表达式组成;
将组成所述字符串筛选规则的各所述逻辑表达式转换为后缀表达式;
根据转换得到的各所述后缀表达式,提取关键词字符串;
根据提取出的各所述关键词字符串,构建AC自动机;
根据所述AC自动机和各所述后缀表达式,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串。
本申请实施例提供的一种基于AC自动机和后缀表达式的字符串筛选装置,包括:
获取模块,用于获取预定的字符串筛选规则,所述字符串筛选规则由一个或多个逻辑表达式组成;
转换模块,用于将组成所述字符串筛选规则的各所述逻辑表达式转换为后缀表达式;
提取模块,用于根据所述转换模块转换得到的各所述后缀表达式,提取关键词字符串;
构建模块,根据所述提取模块提取出的各所述关键词字符串,构建AC自动机;
筛选模块,用于根据所述AC自动机和各所述后缀表达式,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串。
本申请实施例通过上述至少一种技术方案,可以基于后缀表达式的形式,获得预定的字符串筛选规则对应的关键词字符串和逻辑,并可以基于关键词字符串构建的AC自动机实现对各待筛选字符串快速地匹配,以及将匹配结果结合获得的逻辑进行逻辑运算,从而可以从各待筛选字符串中筛选符合字符串筛选规则的字符串,本申请的方案相比于现有技术,无需投入大量时间和精力去做语料的积累和标注,以及训练模型,成本较低,实时性也较好,因此,可以部分或全部地解决现有技术中的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的基于AC自动机和后缀表达式的字符串筛选方法的过程;
图2为本申请实施例提供的在检测客服服务质量的场景下,本申请的方案的一种示意图;
图3为本申请实施例提供的基于AC自动机和后缀表达式的字符串筛选装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
除了背景技术中提到的问题以外,现有技术采用的另一种方案也存在问题。具体地,如前所述,在筛选问题对话的过程中,可能需要对多个字符串进行匹配,所述另一种方案是:基于正则表达式实现对多个字符串进行的匹配。所述另一种方案的问题是:正则表达式的匹配方式的时间复杂度比较高,一般是非线性的,当字符串的数据量较大时,耗时过多,效率低下。而本申请的方案可以部分或全部地解决上述现有技术中两种方案的问题,下面对本申请的方案进行说明。
图1为本申请实施例提供的基于AC自动机和后缀表达式的字符串筛选方法的过程,该过程的执行主体可以是终端或服务器。所述终端包括但不限于:用作终端的个人计算机、手机、平板电脑、智能手表、车载移动台等;所述服务器包括但不限于:用作服务器的个人计算机、大中型计算机、计算机集群等。执行主体并不构成对本申请的限定。
图1中的过程可以包括以下步骤:
S101:获取预定的字符串筛选规则,所述字符串筛选规则由一个或多个逻辑表达式组成。
在本申请实例中,字符串筛选规则用于:指定从一个或多个待筛选字符串中筛选特定字符串时所遵循的筛选规则。在字符串筛选规则中可以对所述特定字符串进行描述,也可以对具体筛选方法进行描述。
字符串筛选规则中可以包含的规则包括但不限于以下几种:
若待筛选字符串中出现一个或多个指定字符串时,将该待筛选字符串或该待筛选字符串的指定部分(该指定部分一般包含有所述指定字符串)筛选出来;
若待筛选字符串中未出现一个或多个指定字符串时,将该待筛选字符串或该待筛选字符串的指定部分筛选出来;
若待筛选字符串中出现了一个或多个指定字符串,且出现次数超过指定次数时,将该待筛选字符串或该待筛选字符串的指定部分筛选出来;
若有一个或多个指定字符串在待筛选字符串中的位置符合指定要求(指定要求可以对单个指定字符串的位置提出要求,也可以对至少两个指定字符串相互之间的位置关系提出要求)时,将该待筛选字符串或该待筛选字符串的指定部分筛选出来。
本申请对所述的字符串对应的字符类型并不做限定,可以是中文字符、英文字符、其他类型的字符等。本申请对所述的待筛选字符串的长度和内容也不进行限定,一般地,待筛选字符串可以由一个或多个有语义的语句组成,当然,待筛选字符串也可以不具有语义。
在本申请实施例中,字符串筛选规则由一个或多个逻辑表达式组成,这些逻辑表达式及反映了字符串筛选规则包含的各规则。所述的逻辑表达式可以是使用现有逻辑运算符的逻辑表达式,也可以是使用自定义逻辑运算符的逻辑表达式,对于后者,可以用相应的配置信息去解释自定义逻辑运算符的实际意义。
需要说明的是,上面对字符串筛选规则可以包含的规则用文字形式进行了示例描述,在实际应用中,可以基于特定信息处理方式,根据诸如上述文字形式的规则描述内容,对应生成各逻辑表达式,作为字符串筛选规则;当然,也可以直接指定(比如,人工输入)各逻辑表达式,作为字符串筛选规则。
S102:将组成所述字符串筛选规则的各所述逻辑表达式转换为后缀表达式。
一般地,逻辑表达式是以便于人类阅读的方式表示的,但是,这种表示形式并不便于机器处理,机器擅长对应的信息表示方式至少可以包括后缀表达式这种表示方式。后缀表达式是将人的逻辑运算转换为便于机器识别处理的一种表示形式。
例如,假定某个逻辑表达式为“(邮箱or email)and快捷”,该逻辑表达式可以转换为后缀表达式“邮箱email or快捷and”,该后缀表达式是便于机器识别处理的,而且并未损失该逻辑表达式所包含的任何信息。其中,“邮箱”、“email”、“快捷”为操作数,“or”、“and”为逻辑运算符。
在本申请实施例中,结合上述说明,逻辑表达式转换为后缀表达式的目的可以是:为了使执行主体(机器)可以通过后缀表达式,效率较高地提取出后缀表达式对应的逻辑表达式中包含的各类信息,以用于后续字符串筛选过程。需要说明的是,假定步骤S101中的逻辑表达式已经表示成了后缀表达式的形式,则也可以不执行步骤S102,而是继续执行步骤S103~S105,且步骤S103和S105中的后缀表达式即为步骤S101中的逻辑表达式。
S103:根据转换得到的各所述后缀表达式,提取关键词字符串。
在本申请实施例中,关键词字符串可以是上面针对步骤S101的说明中提到的指定字符串,也可以是根据指定字符串和后缀表达式中的逻辑,生成的新字符串。本申请实施例可以基于这些关键词字符串,对各待筛选字符串进行匹配以及筛选。
S104:根据提取出的各所述关键词字符串,构建AC自动机。
在本申请实施例中,AC自动机是一种多模式串的字符匹配算法,所述模式串可以为所述关键词字符串。
AC自动机的优点是即使关键词字符串数量再多,待筛选字符串数据量再大,也只需要将待筛选字符串数据量用AC自动机遍历一遍,即可确定出待筛选字符串中包含有哪些关键词字符串,和/或确定出待筛选字符串与哪些关键词字符串匹配。相比于现有技术中基于正则表达式匹配的方案,AC自动机匹配的时间复杂度较低,一般是线性的,因此,本申请的方案可以部分或全部地解决现有技术中的问题。
S105:根据所述AC自动机和各所述后缀表达式,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串。
在本申请实施例中,筛选字符串除了需要进行字符串匹配以外,还要考虑筛选出的字符串需符合字符串筛选规则中的逻辑。如前所述,通过AC自动机可以进行字符串匹配这部分工作,而基于后缀表达式,则可以提取出字符串筛选规则中的逻辑,这又构成另一部分工作,结合这两部分工作可以实现:从各待筛选字符串中筛选符合字符串筛选规则的字符串。
通过图1中的方法,可以基于后缀表达式的形式,获得预定的字符串筛选规则对应的关键词字符串和逻辑,并可以基于关键词字符串构建的AC自动机实现对各待筛选字符串快速地匹配,以及将匹配结果结合获得的逻辑进行逻辑运算,从而可以从各待筛选字符串中筛选符合字符串筛选规则的字符串,本申请的方案相比于现有技术,无需投入大量时间和精力去做语料的积累和标注,以及训练模型,成本较低,实时性也较好,因此,可以部分或全部地解决背景技术提到的现有技术中的问题。
相比于现有技术中正则表达式的方案,本申请的方案还具有时间复杂度较低,效率较高的优点。
不仅如此,由于是基于AC自动机和反映字符串筛选规则的后缀表达式,实现字符串筛选的,因此,筛选的准确性也较高。
基于图1中的方法,本申请实施例还提供了图1中的方法的一些具体实施方案,以及扩展方案,下面进行说明。
在本申请实施例中,上面对字符串筛选规则中可以包含的一些规则用文字形式进行了示例性描述。相应地,本申请实施例也提供了一些可以用于组成字符串筛选规则的逻辑表达式的示例,这些逻辑表达式的示例主要有以下几种,如下表1所示,其中,key1、key2、key3可以为上述的指定字符串:
表1
Figure BDA0000942088340000071
Figure BDA0000942088340000081
需要说明的是,表1中的逻辑表达式只是示例,而且,表1中的逻辑表达式中的逻辑运算符也只是示例,并不构成对本申请中所述的逻辑表达式的限定。比如,表1中的第一个逻辑表达式“key1,key2,key3”中逻辑运算符“,”实际上是作为或逻辑运算符使用的,表1中的第二个逻辑表达式““key1 key2”~N”中的逻辑运算符““”~”是则一种自定义的新逻辑运算符,在现有逻辑运算符中,可能并不存在与该新逻辑运算符含义相同的逻辑运算符,等等。
在本申请实施例中,对于步骤S102,将组成所述字符串筛选规则的各所述逻辑表达式转换为后缀表达式,具体可以包括:确定组成所述字符串筛选规则的各所述逻辑表达式中包含的逻辑运算符,以及作为操作数的字符串,所述逻辑运算符包括与逻辑运算符、或逻辑运算符、非逻辑运算符、异或逻辑运算符、自定义逻辑运算符中的至少一种;根据确定的各所述逻辑运算符和各所述作为操作数的字符串,将各所述逻辑表达式转换为后缀表达式。比如,对于表1中的逻辑表达式“key1 AND key2”,可以对应转换为后缀表达式“key1key2AND”。
在实际应用中,将逻辑表达式转换为后缀表达式的具体方式,与将算术表达式转换为后缀表达式的具体方式类似。例如,假定某个算术表达式为“a+b*c-(d+e)”,该算术表达式可以转换为后缀表达式“abc*+de+-”,其中,“a”、“b”、“c”、“d”、“e”为操作数,“+”、“*”、“-”为算术运算符。
无论是逻辑表达式还是算术表达式,可以按照以下方式,将它们转换为后缀表达式,该方式可以包括以下步骤1~7:
1、设定运算符栈;
2、假定表达式的结束符为“#”,则预设运算符栈底元素为“#”;
3、扫描表达式,若当前字符是操作数,则直接发送给后缀表达式;
4、若当前字符为运算符且优先级大于栈顶运算符,则进栈,否则退出栈顶运算符并将其发送给后缀表达式。然后将当前运算符放入栈中;
5、若当前字符是结束符,则将栈中的全部运算符依次发送给后缀表达式;
6、若当前字符为“(”,进栈;
7、若当前字符为“)”,则从栈顶起,依次将栈中运算符出栈发送给后缀表达式,直到碰到“(”。将栈中“(”出栈,不需要发送给后缀表达式。然后继续扫描表达式。
其中,步骤1~7中的表达式可以是逻辑表达式,也可以是算术表达式,相应地,步骤1~7中的运算符可以是逻辑运算符,也可以是算术运算符。
需要说明的是,步骤1~7只是将逻辑表达式或算术表达式转换为后缀表达式的一种实施方法,在实际应用中,还可以有其他的实施方法。
例如,可以按照表达式的运算顺序,将表达式中的每一步最小运算步骤相关的操作数和运算符分别用括号包括,再分别将每个运算符的位置调整至该运算符对应的括号右侧的第一个字符处,再去掉所有括号,剩下的就是转换得到的后缀表达式。比如,对于表达式“a+b*c-(d+e)”,在添加括号后转换为表达式“((a+(b*c))-(d+e))”,在调整运算符位置后转换为表达式“((a(bc)*)+(de)+)-”,在去掉括号后即可转换为后缀表达式“abc*+de+-”。
在本申请实施例中,对于步骤S103,根据转换得到的各所述后缀表达式,提取关键词字符串,具体可以包括:将转换得到的各所述后缀表达式包含的作为操作数的字符串提取出来,作为提取出的关键词字符串,和/或,根据各所述后缀表达式包含的操作数的字符串和逻辑运算符,生成反映所述后缀表达式中的部分或全部逻辑的字符串,作为提取出的关键词字符串。
沿用表1为例进行说明,对于逻辑表达式“key1,key2,key3”对应的后缀表达式,可以提取出3个关键词字符串,分别为“key1”、“key2”、“key3”;而对于逻辑表示式““key1key2”~N”对应的后缀表达式,除了可以提取出“key1”、“key2”这两个关键字字符串以外,还可以提取出反映该后缀表达式中的部分或全部逻辑的字符串,比如,当N=5时,可反映该后缀表达式中的部分或全部逻辑的字符串可以是诸如“key1*****key2”这样的字符串,在“key1*****key2”中,“*”可以用于表示任意一个字符,“*”也可以为空。则“key1*****key2”可以反映出“key1与key2之间间隔的字符数量不超过5”这样的逻辑。
除了上面的提取关键词字符串的方式以外,还可以采用诸如基于语义识别的算法,从后缀表达式中提取关键词字符串,等等。
在本申请实施例中,对于步骤S104,根据提取出的各所述关键词字符串,构建AC自动机,具体可以包括:将提取出的各所述关键词字符串中的部分或全部关键词字符串构建为字典树;根据所述字典树,构建AC自动机。
其中,所述部分或全部关键词字符串即作为AC自动机的模式串。
例如,假定模式串集合为P={p1,...,pk},则可以按照以下三个步骤构建AC自动机:
将模式串P={p1,...,pk}构建为字典树;
从一个仅有的根节点开始,依次插入模式串pi:从根节点出发,随着值为pi中当前字符的边一直走下去,对于终节点pk,设置out(pk)=pi;对于根节点出发不存在值为a的边,设置g(0,a)=0;
广度优先搜索(Breadth First Search,BFS)遍历字典树,遍历过程中计算出fail和out函数。
其中,k为不小于1的整数,i为不小于1且不大于k的整数;
对步骤中涉及的三个函数定义如下:
g(q,a):返回从当前状态q走到值为a的边后所到达的状态,如果从根节点出发没有值为a的边,那么g(0,a)=0;如果有一条边到达状态v,那么g(q,a)=v。
fail(q):返回从状态q(q!=0)匹配错误时要转移到的状态,如果L(v)是L(q)的一个后缀,且是最长后缀,则fail(q)=v。其中,L(v)={从根节点到节点v的路径上的所有边的值的序列}。
out(q):输出在状态q时,所有匹配的模式串。
在本申请实施例中,对于步骤S105,根据所述AC自动机和各所述后缀表达式,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串,具体包括:将各待筛选字符串在所述AC自动机中进行匹配;根据匹配结果和各所述后缀表达式包含的逻辑运算符,对所述匹配结果进行相应的逻辑运算;根据所述逻辑运算结果,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串。
例如,假定字符串筛选规则仅包含一个逻辑表达式“key1 AND key2”,转换为后缀表达式“key1 key2 AND”,提取出的关键词字符串为“key1”和“key2”,根据这两个关键词字符串构建AC自动机。
在构建该AC自动机后,假定通过将某待筛选字符串在该AC自动机中进行匹配,确定待筛选字符串中包含key1(可以视为第一个匹配结果),待筛选字符串中包含key2(可以视为第一个匹配结果),根据“key1 key2 AND”可确定应当对这两个匹配结果进行与逻辑运算,显然,该与逻辑运算的结果为是,进而,可以将该待筛选字符串或该待筛选字符串中的指定部分筛选出来,作为符合所述字符串筛选规则的字符串。
在本申请实施例中,当关键词字符串为反映所述后缀表达式中的部分或全部逻辑的字符串时,也可能只需要进行AC自动机匹配即可筛选出符合字符串筛选规则的字符串,而可以不用再进行额外的逻辑运算,可以节省处理资源。
如上所述,对于步骤S105,当各所述关键词字符串为反映各所述后缀表达式中的全部逻辑的字符串时,根据所述AC自动机和各所述后缀表达式,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串,具体可以包括:将各待筛选字符串在AC自动机中进行匹配;根据匹配结果,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串。
本申请的方案可适用于多种场景,包括但不限于背景技术中的检测客服服务质量的场景。在检测客服服务质量的场景下,本申请中所述的待筛选字符串可以是客服服务过程中的服务对话,所述的符合所述字符串筛选规则的字符串可以是被认为影响所述客服服务质量的问题对话。
为了便于理解,本申请实施例还提供了在检测客服服务质量的场景下,本申请的方案的一种示意图,如图2所示。
在图2中,所述的规则可以是字符串筛选规则,后缀表达式语法解析器可以是用于将字符串筛选规则装换为后缀表达式,以及用于提取关键词字符串的功能模块或设备。
以上为本申请实施例提供的基于AC自动机和后缀表达式的字符串筛选方法,基于同样的思路,本申请实施例还提供相应的基于AC自动机和后缀表达式的字符串筛选装置,如图3所示。
图3为本申请实施例提供的基于AC自动机和后缀表达式的字符串筛选装置结构示意图,具体包括:
获取模块301,用于获取预定的字符串筛选规则,所述字符串筛选规则由一个或多个逻辑表达式组成;
转换模块302,用于将组成所述字符串筛选规则的各所述逻辑表达式转换为后缀表达式;
提取模块303,用于根据转换模块302转换得到的各所述后缀表达式,提取关键词字符串;
构建模块304,根据提取模块303提取出的各所述关键词字符串,构建AC自动机;
筛选模块305,用于根据所述AC自动机和各所述后缀表达式,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串。
通过图3中的装置,可以基于后缀表达式的形式,获得预定的字符串筛选规则对应的关键词字符串和逻辑,并可以基于关键词字符串构建的AC自动机实现对各待筛选字符串快速地匹配,以及将匹配结果结合获得的逻辑进行逻辑运算,从而可以从各待筛选字符串中筛选符合字符串筛选规则的字符串,而无需投入大量时间和精力去做语料的积累和标注,以及训练模型,成本较低,实时性也较好,因此,可以部分或全部地解决现有技术中的问题。
可选地,转换模块302具体用于:确定组成所述字符串筛选规则的各所述逻辑表达式中包含的逻辑运算符,以及作为操作数的字符串,所述逻辑运算符包括与逻辑运算符、或逻辑运算符、非逻辑运算符、异或逻辑运算符、自定义逻辑运算符中的至少一种;根据确定的各所述逻辑运算符和各所述作为操作数的字符串,将各所述逻辑表达式转换为后缀表达式。
可选地,提取模块303具体用于:将转换模块302转换得到的各所述后缀表达式包含的作为操作数的字符串提取出来,作为提取出的关键词字符串,和/或,
根据各所述后缀表达式包含的操作数的字符串和逻辑运算符,生成反映所述后缀表达式中的部分或全部逻辑的字符串,作为提取出的关键词字符串。
可选地,构建模块304具体用于:将提取模块303提取出的各所述关键词字符串中的部分或全部关键词字符串构建为字典树;根据所述字典树,构建AC自动机。
可选地,筛选模块305具体用于:将各待筛选字符串在AC自动机中进行匹配;根据匹配结果和各所述后缀表达式包含的逻辑运算符,对所述匹配结果进行相应的逻辑运算;根据所述逻辑运算结果,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串。
可选地,所述待筛选字符串可以是客服服务过程中的服务对话,所述符合所述字符串筛选规则的字符串可以是被认为影响所述客服服务质量的问题对话。
具体的上述如图3所示的装置可以位于终端或服务器上。
以上对本申请实施例提供的基于AC自动机和后缀表达式的字符串筛选方法进行了详细说明。进一步地,基于同样的思路,在实际应用中,还可以基于与后缀表达式类似的、便于机器处理的其他形式的表达式(比如,前缀表达式等),进行字符串筛选。在这种情况下,可以将本申请的方案中所述的后缀表达式,均用所述其他形式的表达式替代,从而形成本申请的一种扩展方案,该扩展方案也与图1中的方案思路相同,也可以达到与图1中的方案类似的技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (12)

1.一种基于AC自动机和后缀表达式的字符串筛选方法,其特征在于,包括:
获取预定的字符串筛选规则,所述字符串筛选规则由一个或多个逻辑表达式组成;
将组成所述字符串筛选规则的各所述逻辑表达式转换为后缀表达式;
根据转换得到的各所述后缀表达式,提取关键词字符串;
根据提取出的各所述关键词字符串,构建AC自动机;
根据所述AC自动机和各所述后缀表达式,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串。
2.如权利要求1所述的方法,其特征在于,将组成所述字符串筛选规则的各所述逻辑表达式转换为后缀表达式,具体包括:
确定组成所述字符串筛选规则的各所述逻辑表达式中包含的逻辑运算符,以及作为操作数的字符串,所述逻辑运算符包括与逻辑运算符、或逻辑运算符、非逻辑运算符、异或逻辑运算符、自定义逻辑运算符中的至少一种;
根据确定的各所述逻辑运算符和各所述作为操作数的字符串,将各所述逻辑表达式转换为后缀表达式。
3.如权利要求1所述的方法,其特征在于,根据转换得到的各所述后缀表达式,提取关键词字符串,具体包括:
将转换得到的各所述后缀表达式包含的作为操作数的字符串提取出来,作为提取出的关键词字符串,和/或,
根据各所述后缀表达式包含的操作数的字符串和逻辑运算符,生成反映所述后缀表达式中的部分或全部逻辑的字符串,作为提取出的关键词字符串。
4.如权利要求1所述的方法,其特征在于,根据提取出的各所述关键词字符串,构建AC自动机,具体包括:
将提取出的各所述关键词字符串中的部分或全部关键词字符串构建为字典树;
根据所述字典树,构建AC自动机。
5.如权利要求1所述的方法,其特征在于,根据所述AC自动机和各所述后缀表达式,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串,具体包括:
将各待筛选字符串在所述AC自动机中进行匹配;
根据匹配结果和各所述后缀表达式包含的逻辑运算符,对所述匹配结果进行相应的逻辑运算;
根据所述逻辑运算结果,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串。
6.如权利要求1~5任一项所述的方法,其特征在于,所述待筛选字符串为客服服务过程中的服务对话,所述符合所述字符串筛选规则的字符串为被认为影响所述客服服务质量的问题对话。
7.一种基于AC自动机和后缀表达式的字符串筛选装置,其特征在于,包括:
获取模块,用于获取预定的字符串筛选规则,所述字符串筛选规则由一个或多个逻辑表达式组成;
转换模块,用于将组成所述字符串筛选规则的各所述逻辑表达式转换为后缀表达式;
提取模块,用于根据所述转换模块转换得到的各所述后缀表达式,提取关键词字符串;
构建模块,根据所述提取模块提取出的各所述关键词字符串,构建AC自动机;
筛选模块,用于根据所述AC自动机和各所述后缀表达式,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串。
8.如权利要求7所述的装置,其特征在于,所述转换模块具体用于:确定组成所述字符串筛选规则的各所述逻辑表达式中包含的逻辑运算符,以及作为操作数的字符串,所述逻辑运算符包括与逻辑运算符、或逻辑运算符、非逻辑运算符、异或逻辑运算符、自定义逻辑运算符中的至少一种;根据确定的各所述逻辑运算符和各所述作为操作数的字符串,将各所述逻辑表达式转换为后缀表达式。
9.如权利要求7所述的装置,其特征在于,所述提取模块具体用于:将所述转换模块转换得到的各所述后缀表达式包含的作为操作数的字符串提取出来,作为提取出的关键词字符串,和/或,
根据各所述后缀表达式包含的操作数的字符串和逻辑运算符,生成反映所述后缀表达式中的部分或全部逻辑的字符串,作为提取出的关键词字符串。
10.如权利要求7所述的装置,其特征在于,所述构建模块具体用于:将所述提取模块提取出的各所述关键词字符串中的部分或全部关键词字符串构建为字典树;根据所述字典树,构建AC自动机。
11.如权利要求7所述的装置,其特征在于,所述筛选模块具体用于:将各待筛选字符串在所述AC自动机中进行匹配;根据匹配结果和各所述后缀表达式包含的逻辑运算符,对所述匹配结果进行相应的逻辑运算;根据所述逻辑运算结果,从各待筛选字符串中筛选符合所述字符串筛选规则的字符串。
12.如权利要求7~11任一项所述的装置,其特征在于,所述待筛选字符串为客服服务过程中的服务对话,所述符合所述字符串筛选规则的字符串为被认为影响所述客服服务质量的问题对话。
CN201610147573.6A 2016-03-15 2016-03-15 一种基于ac自动机和后缀表达式的字符串筛选方法及装置 Active CN107193843B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610147573.6A CN107193843B (zh) 2016-03-15 2016-03-15 一种基于ac自动机和后缀表达式的字符串筛选方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610147573.6A CN107193843B (zh) 2016-03-15 2016-03-15 一种基于ac自动机和后缀表达式的字符串筛选方法及装置

Publications (2)

Publication Number Publication Date
CN107193843A CN107193843A (zh) 2017-09-22
CN107193843B true CN107193843B (zh) 2020-08-28

Family

ID=59871870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610147573.6A Active CN107193843B (zh) 2016-03-15 2016-03-15 一种基于ac自动机和后缀表达式的字符串筛选方法及装置

Country Status (1)

Country Link
CN (1) CN107193843B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107679036A (zh) * 2017-10-12 2018-02-09 南京网数信息科技有限公司 一种错别字监测方法及系统
CN107943911A (zh) * 2017-11-20 2018-04-20 北京大学深圳研究院 数据抽取方法、装置、计算机设备及可读存储介质
CN110197672B (zh) * 2018-02-27 2021-09-21 招商信诺人寿保险有限公司 一种语音通话质量检测方法、服务器、存储介质
CN108628966B (zh) * 2018-04-20 2019-06-14 武汉绿色网络信息服务有限责任公司 一种基于字符串的快速匹配识别方法和装置
CN109462598B (zh) * 2018-12-11 2021-08-17 江苏省未来网络创新研究院 一种从网络报文中提取账号信息的方法
CN110058848A (zh) * 2019-02-27 2019-07-26 贵州力创科技发展有限公司 一种智能表达式解析平台及方法
CN110750691A (zh) * 2019-10-10 2020-02-04 腾讯云计算(北京)有限责任公司 计算机安全管理的方法和装置
CN111026929B (zh) * 2019-12-27 2023-07-21 咪咕文化科技有限公司 文本审批方法、装置及存储介质
CN111768767B (zh) * 2020-05-22 2023-08-15 深圳追一科技有限公司 用户标签提取方法和装置、服务器、计算机可读存储介质
CN111627461A (zh) * 2020-05-29 2020-09-04 平安医疗健康管理股份有限公司 一种语音质检方法、装置、服务器及存储介质
CN111861708A (zh) * 2020-07-20 2020-10-30 中国工商银行股份有限公司 金融业务指标的计算方法及装置
CN112784127B (zh) * 2021-03-12 2023-12-05 清华大学 多字符串模式匹配方法、装置、计算机设备及存储介质
CN115146118B (zh) * 2022-07-15 2024-08-20 平安科技(深圳)有限公司 信息检索方法、装置、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499094B (zh) * 2009-03-10 2010-09-29 焦点科技股份有限公司 一种数据压缩存储并检索的方法及系统
US10635719B2 (en) * 2013-12-23 2020-04-28 British Telecommunications Plc Pattern matching machine with mapping table
CN109815498A (zh) * 2019-01-25 2019-05-28 深圳市小赢信息技术有限责任公司 一种中文地址标准化方法、装置及电子设备

Also Published As

Publication number Publication date
CN107193843A (zh) 2017-09-22

Similar Documents

Publication Publication Date Title
CN107193843B (zh) 一种基于ac自动机和后缀表达式的字符串筛选方法及装置
CN106776544B (zh) 人物关系识别方法及装置和分词方法
US11170064B2 (en) Method and system to filter out unwanted content from incoming social media data
US10007658B2 (en) Multi-stage recognition of named entities in natural language text based on morphological and semantic features
US10198432B2 (en) Aspect-based sentiment analysis and report generation using machine learning methods
RU2618374C1 (ru) Выявление словосочетаний в текстах на естественном языке
US11875125B2 (en) System and method for designing artificial intelligence (AI) based hierarchical multi-conversation system
CN113255331B (zh) 文本纠错方法、装置及存储介质
US11416539B2 (en) Media selection based on content topic and sentiment
CN111143551A (zh) 文本预处理方法、分类方法、装置及设备
CN112860896A (zh) 语料泛化方法及用于工业领域的人机对话情感分析方法
CN109508448A (zh) 基于长篇文章生成短资讯方法、介质、装置和计算设备
CN115840808A (zh) 科技项目咨询方法、装置、服务器及计算机可读存储介质
US11436249B1 (en) Transformation of composite tables into structured database content
CN113051384B (zh) 基于对话的用户画像抽取方法及相关装置
CN112801721B (zh) 信息处理方法、装置、电子设备及存储介质
CN113934834A (zh) 一种问句匹配的方法、装置、设备和存储介质
CN113743432A (zh) 一种图像实体信息获取方法、设备、电子设备和存储介质
CN111783482A (zh) 一种文本翻译方法、装置、计算机设备及存储介质
CN115828862A (zh) 数据处理方法、文本显示方法、数据处理系统及设备
CN110597765A (zh) 一种大零售呼叫中心异构数据源数据处理方法及装置
CN112214494B (zh) 检索方法及装置
CN111768767B (zh) 用户标签提取方法和装置、服务器、计算机可读存储介质
CN116757203B (zh) 一种自然语言匹配方法、装置、计算机设备及存储介质
CN112579768A (zh) 一种情感分类模型训练方法、文本情感分类方法及装置

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201013

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201013

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.