CN110826314B - 一种规则解析方法、装置、电子设备及存储介质 - Google Patents
一种规则解析方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110826314B CN110826314B CN201911080637.5A CN201911080637A CN110826314B CN 110826314 B CN110826314 B CN 110826314B CN 201911080637 A CN201911080637 A CN 201911080637A CN 110826314 B CN110826314 B CN 110826314B
- Authority
- CN
- China
- Prior art keywords
- word
- operator
- text content
- rule
- syntax tree
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query 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)
- Machine Translation (AREA)
Abstract
本申请提供一种规则解析方法、装置、电子设备及存储介质,用于改善基于简单的逻辑符的解析方法难以解析复杂逻辑规则的问题。该方法包括:获得多个规则语句;将多个规则语句的每个规则语句拆分为至少一个词语和至少一个运算符;根据预设语法规范对至少一个词语和至少一个运算符构建抽象语法树,抽象语法树表征至少一个运算符的执行顺序;根据抽象语法树表征的至少一个运算符的执行顺序对至少一个词语在文本内容中进行解析,获得解析结果,解析结果包括:至少一个词语的每个词语在文本内容中的出现位置和出现次数。
Description
技术领域
本申请涉及计算机的技术领域,具体而言,涉及一种规则解析方法、装置、电子设备及存储介质。
背景技术
正则表达式(regular expression),有时又称规则表达式,在代码中常简写为regex、regexp或RE,计算机科学的一个概念,正则表达式通常被用来检索、替换那些符合某个模式(pattern)的文本。正则表达式描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
传统的规则解析方法,主要是基于正则表达式的方式来对规则语句进行解析,或者是基于简单的逻辑符(and、or等)对规则语句进行解析,例如:若将“OR”作为运算符,那么输入数据中的所有单词中包含这个词(例如“ORDER”),将会对运算符的判断造成影响,使程序不能正常解析;因此,在具体的实践中发现,基于简单的逻辑符的解析方法难以解析复杂逻辑规则。
发明内容
本申请实施例的目的在于提供一种规则解析方法、装置、电子设备及存储介质,用于改善基于简单的逻辑符的解析方法难以解析复杂逻辑规则的问题。
本申请实施例提供了一种规则解析方法,包括:获得多个规则语句;将所述多个规则语句的每个规则语句拆分为至少一个词语和至少一个运算符;根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树,所述抽象语法树表征所述至少一个运算符的执行顺序;根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果,所述解析结果包括:所述至少一个词语的每个词语在所述文本内容中的出现位置和出现次数。在上述的实现过程中,通过对规则语句进行分词获得词语和运算符,再根据语法规范对词语和运算符构建抽象语法树,并根据抽象语法树对文本内容进行解析,获得解析结果,从而有效地改善了基于简单的逻辑符的解析方法难以解析复杂逻辑规则的问题。
可选地,在本申请实施例中,在所述根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果之前,还包括:获得语音录音;使用语音识别算法对所述语音录音进行处理,获得所述文本内容。在上述的实现过程中,过对语音录音进行语音识别获得文本内容,即可针对语音录音的语义内容进行解析,极大地扩展了规则解析的范围,同时可以针对录音的内容进行指定的对话内容质量检查。
可选地,在本申请实施例中,所述解析结果还包括所述至少一个词语的每个词语在所述语音录音中的出现时刻,在所述根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果之后,还包括:根据所述至少一个词语的每个词语在所述语音录音中的出现时刻,以及在所述文本内容中出现位置和出现次数,确定所述文本内容的质量类型。在上述的实现过程中,根据词语在语音录音中的出现时刻,以及在文本内容中出现位置和出现次数确定该文本内容的质量类型,有效地提高对文本内容质量检查的效率和质量。
可选地,在本申请实施例中,在所述根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果之前,还包括:获得字符图像;使用图像识别算法对所述字符图像进行处理,获得所述文本内容。在上述的实现过程中,通过对字符图像进行字符图像获得文本内容,即可针对字符图像的语义内容进行解析,极大地扩展了规则解析的范围,同时可以针对图像的内容进行指定的对话内容质量检查。
可选地,在本申请实施例中,所述解析结果还包括所述至少一个词语的每个词语在所述字符图像中的出现坐标,在所述根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果之后,还包括:根据所述至少一个词语的每个词语在所述字符图像中的出现坐标,以及在所述文本内容中出现位置和出现次数,确定所述文本内容的质量类型。在上述的实现过程中,根据词语在文本内容中出现位置和出现次数确定该文本内容的质量类型,有效地提高对文本内容质量检查的效率和质量。
可选地,在本申请实施例中,所述根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树,包括:使用语法预处理器根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树;所述根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果,包括:使用语法分析生成器根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果。在上述的实现过程中,使用语法预处理器构建抽象语法树,以及使用语法分析生成器对词语在文本内容中进行解析获得解析结果,从而有效地提高了解析规则的效率。
可选地,在本申请实施例中,在所述根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树之前,还包括:判断所述至少一个运算符中的每个运算符是否存在于预设定义符列表中;若是,则返回执行所述根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树的步骤。在上述的实现过程中,先判断每个运算符是否都是自定义运算符,若都是自定义运算符,才构建抽象语法树,从而避免了运算符不能解析的情况,有效地提高了对文本内容质量检查的质量。
本申请实施例还提供了一种规则解析装置,包括:语句获得模块,用于获得多个规则语句;语句拆分模块,用于将所述多个规则语句的每个规则语句拆分为至少一个词语和至少一个运算符;语法构建模块,用于根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树,所述抽象语法树表征所述至少一个运算符的执行顺序;结果获得模块,用于根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果,所述解析结果包括:所述至少一个词语的每个词语在所述文本内容中的出现位置和出现次数。
可选地,在本申请实施例中,还包括:录音获得模块,用于获得语音录音;录音处理模块,用于使用语音识别算法对所述语音录音进行识别,获得所述文本内容。
可选地,在本申请实施例中,所述解析结果还包括所述至少一个词语的每个词语在所述语音录音中的出现时刻,还包括:第一确定模块,用于根据所述至少一个词语的每个词语在所述语音录音中的出现时刻,以及在所述文本内容中出现位置和出现次数,确定所述文本内容的质量类型。
可选地,在本申请实施例中,还包括:图像获得模块,用于获得字符图像;图像处理模块,用于使用图像识别算法对所述字符图像进行处理,获得所述文本内容。
可选地,在本申请实施例中,所述解析结果还包括所述至少一个词语的每个词语在所述字符图像中的出现坐标,还包括:第二确定模块,用于根据所述至少一个词语的每个词语在所述字符图像中的出现坐标,以及在所述文本内容中出现位置和出现次数,确定所述文本内容的质量类型。
可选地,在本申请实施例中,所述语法构建模块,包括:处理构建模块,用于使用语法预处理器根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树;所述结果获得模块,包括:分析解析模块,用于使用语法分析生成器根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果。
可选地,在本申请实施例中,还包括:列表判断模块,用于判断所述至少一个运算符中的每个运算符是否存在于预设定义符列表中;返回执行模块,用于若所述至少一个运算符中的每个运算符存在于预设定义符列表中,则返回执行所述根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树的步骤。
本申请实施例还提供了一种电子设备,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如上所述的方法。
本申请实施例还提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出的本申请实施例提供的规则解析方法流程示意图;
图2示出的本申请实施例提供的运算符进行校验方法的流程示意图;
图3示出的本申请实施例提供的规则解析装置结构示意图;
图4示出的本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。
在介绍本申请实施例中的规则解析方法之前,先介绍本申请实施例所涉及的一些概念,本申请实施例所涉及的一些概念如下:
抽象语法树(AbstractSyntax Tree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示,抽象语法树以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。之所以说语法是“抽象”的,是因为这里的语法并不会表示出真实语法中出现的每个细节。另外,抽象语法树可以表征运算符的执行顺序;例如默认为自顶向下的执行顺序,当然也可以默认为自底向上的执行顺序;又例如深度优先遍历和广度优先遍历等等。比如,嵌套括号被隐含在树的结构中,并没有以节点的形式呈现;而类似于if-condition-then这样的条件跳转语句,可以使用带有两个分支的节点来表示。
语法分析生成器JavaCC(Java Compiler Compiler)是一个用JAVA开发的最受欢迎的语法分析生成器。这个分析生成器工具可以读取上下文无关且有着特殊意义的语法并把它转换成可以识别且匹配该语法的JAVA程序。JavaCC还提供语法预处理器(JJTree工具)来帮助构建语法树,这里的语法树例如:抽象语法树或术语语法树,JJDoc工具为我们的源文件生成巴科斯诺尔范式文档(HTML格式);这里的HTML是指超文本标记语言(HyperTextMarkup Language,HTML),HTML是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。
服务器是指通过网络提供计算服务的设备,服务器例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和UNIX服务器。当然在具体的实施过程中,上述的服务器可以具体选择大型机或者小型机,这里的小型机是指采用精简指令集计算(ReducedInstruction Set Computing,RISC)、单字长定点指令平均执行速度(MillionInstructions Per Second,MIPS)等专用处理器,主要支持UNIX操作系统的封闭且专用的提供计算服务的设备;这里的大型机,又名大型主机,是指使用专用的处理器指令集、操作系统和应用软件来提供计算服务的设备。
需要说明的是,本申请实施例提供的规则解析方法可以由电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者上述的服务器,设备终端例如:智能手机、个人电脑(personal computer,PC)、平板电脑、个人数字助理(personal digitalassistant,PDA)、移动上网设备(mobile Internet device,MID)、网络交换机或网络路由器等。
本申请实施例提供的规则解析方法的应用场景包括:对客服对话录音的服务质量进行检测,以及根据网络客服对话的服务质量进行检测等等。为了便于理解和说明,这里以对服务质量进行检测为例进行说明,例如:检测客服对话录音中是否使用礼貌用语场景,或者是否向客户推销保险业务场景;下面主要以保险行业或者银行行业的业务场景为例进行说明。
可以理解的是,在具体实施过程中,服务质量的载体可以体现为客服对话的语音录音,也可以体现为客服对话的截图图像,也可以体现为客服对话的文本内容,因此,这里的规则解析方法的服务质量的载体不应理解为对本申请实施例的限制。
请参见图1示出的本申请实施例提供的规则解析方法流程示意图;该规则解析方法可以包括如下步骤:
步骤S110:获得多个规则语句。
这里的规则语句是指使用词语和运算符根据预设定义规则构成的语句,例如:在检测录音中客服是否使用礼貌用语的场景中,规则语句为“谢谢您or为您服务or欢迎您”,其中,“or”是运算符,这里的“or”用于表征关联质检词语的关系,即A or B中A或者B有一个命中,则整体命中。当然自定义并不局限于“or”为或者运算,也可以定义其它符号为或者运算,这里的其它符号例如@和¥等等;这里的“谢谢您”、“为您服务”和“欢迎您”都是表征礼貌用语的规则语句。规则语句的具体获得方式例如:第一种方式,通过使用爬虫软件在互联网上爬取规则语句;第二种方式,使用程序开发工作人员编写规则语句软件工具,该软件工具例如可以是能够构建规则语句的建模软件或者建模工具,该软件工具可以辅助规则语句录入业务人员录入规则语句,具体地例如:可以使用该工具软件辅助业务人员正确地建立符合规范的规则语句,业务人员在文本分析平台等辅助工具下,分析文本内容的意图和语义等,根据文本内容的意图和语义构建规则语句。
在步骤S110之后,执行步骤S120:将多个规则语句的每个规则语句拆分为至少一个词语和至少一个运算符。
运算符,是指为了支持解析复杂结构规则而定义的逻辑运算符,除了上面提到的“or”是运算符外,还可以定义运算符例如:and、if、else、elseif等等;这里的复杂结构规则是指包括循环、嵌套、分支等各种自定义语法的规则语句。
词语,是指根据一定分割符对规则语句进行拆分后的语义单位,这里的词语可以是指语义上的词语、短语或者两者组合成的语义单位,具体的例如:谢谢、谢谢您、谢谢您的光临等,其中,这里的“谢谢”是语义上的词语,这里的“谢谢您”是语义上的短语,这里的“谢谢您的光临”语义上的词语和短语组合成的语义单位。经过上面的解释,可以理解的是,若规则语句为“谢谢or谢谢您or谢谢您的光临”,那么“谢谢”、“谢谢您”和“谢谢您的光临”都是这里的词语。
上述的将多个规则语句的每个规则语句拆分为至少一个词语和至少一个运算符的具体实施方式例如:若规则语句为“谢谢您or为您服务or欢迎您”,那么至少一个词语则包括:“谢谢您”、“为您服务”和“欢迎您”,这里的至少一个运算符则包括:“or”。
为了支持解析复杂结构规则,这里以对保险行业的销售的电话录音进行质检为例进行说明,若规则语句为“if(老年or六十or七十or八十){推荐老年保险;}elseif(中年or三十or四十or五十){推荐中年保险;}elseif(青年or二十){推荐青年保险;}”,那么在检测向客户推荐产品时,需要根据客户的年龄、或者购买意愿推荐对应的产品,这里的“推荐老年保险”、“推荐中年保险”和“推荐青年保险”是指文本内容中是否包括上述对应的推荐或者推销内容的方法,而并不一定是具体的词语,具体地,以“推荐老年保险”为例进行说明,推荐中年保险的方法例如:可以在文本内容中检测是否包括“为您推荐这一款中年保险产品”等等。这里的至少一个词语包括:老年、六十、七十、八十、中年、三十、四十、五十、青年和二十;这里的至少一个运算符包括:or、if、else和else if。
在步骤S120之后,执行步骤S130:根据预设语法规范对至少一个词语和至少一个运算符构建抽象语法树。
可以理解的是,抽象语法树不仅可以表征至少一个运算符的执行顺序,抽象语法树还可以表征至少一个词语和至少一个运算符的语法结构,即运算符的执行与不执行、选择性执行等等,具体的常见结构例如:if-else结构、for循环结构、while循环结构和switch选择结构等;该语法结构使得规则解析方法能够解析复杂的语法结构,复杂的语法结构例如:if-else、if、switch、for、while和各种语法嵌套等等。该规则解析方法能够解析复杂的语法结构,使得该规则解析方法能够应用于更多的业务场景,这些业务场景例如:上述的礼貌用语场景和保险推销业务场景等等,又例如:可以根据上下文语义关系检测更加复杂的业务场景,这里的上下文语义关系是指文本内容中的词语之间存在的语义关系,上下文语义关系具体的例如:前后文具有因果关系、推理关系和问答模式等等。
其中,构建抽象语法树的实施方式例如:使用语法预处理器根据预设语法规范对至少一个词语和至少一个运算符构建抽象语法树;这里的语法预处理器例如可以是JJTree工具,这里的JJTree工具是上述语法分析生成器JavaCC的语法预处理器,该JJTree工具用于帮助根据预设语法规范对至少一个词语和至少一个运算符构建抽象语法树。生成的抽象语法树例如:若规则语句为“谢谢您or为您服务or欢迎您”,那么抽象语法树的根节点例如为“root”,根节点的子节点例如为“or”节点,“or”节点的子节点为“谢谢您”、“为您服务”和“欢迎您”。
请参见图2示出的本申请实施例提供的运算符进行校验方法的流程示意图;在具体的实施过程中,在构建抽象语法树之前,还可以对运算符进行校验,确定每个运算符均存在于预设定义符列表中,那么在步骤S130之前,还可以包括如下步骤:
步骤S131:判断至少一个运算符中的每个运算符是否存在于预设定义符列表中。
预设定义符列表,是指预设定义的运算符的列表集合,即上述多个规则语句的每个运算符都应该包括在预设定义符列表中,若没有包括在预设定义符列表中,那么可能就无法解析该规则语句。当然在具体的实施过程中,还可以生成和维护预设定义符列表,在编写规则语句时,参照预设定义符列表中的运算符进行编写,预设定义符列表可以包括多个规则语句中的所有运算符。
判断至少一个运算符中的每个运算符是否存在于预设定义符列表中的实施方式例如:预设定义符列表为[or、and、if、else、else if];若运算符为match,那么该match运算符则不存在预设列表中;若运算符为or,那么该or运算符则存在预设列表中,同理可知,运算符and、if、else和else if均存在预设列表中。
步骤S132:若至少一个运算符中的每个运算符均存在于预设定义符列表中,则返回执行步骤S130。
其中,至少一个运算符中的每个运算符均存在于预设定义符列表中的实施方式的具体原理与步骤S131类似,因此,这里不再对该步骤进行描述。
在步骤S130之后,执行步骤S140:根据抽象语法树表征的至少一个运算符的执行顺序对至少一个词语在文本内容中进行解析,获得解析结果。
其中,抽象语法树表征的至少一个运算符的执行顺序的确定方式有很多种,例如:自顶向下的执行顺序,当然也可以为自底向上的执行顺序;又例如深度优先遍历的执行顺序和广度优先遍历的执行顺序等等,因此,这里的抽象语法树表征的至少一个运算符的执行顺序可以根据实际情况进行设置,这里的抽象语法树表征的至少一个运算符的执行顺序不应理解为对本申请实施例的限制。
针对文本内容的服务质量进行质量检查,这里的解析结果可以包括:至少一个词语的每个词语在文本内容中的出现位置和出现次数,这里的出现位置是指该词语在文本内容的多个字中出现在哪个字之后,或者出现在文本内容的多个字中出现在哪个字之前,这个字的索引号则可以理解为该词语在文本内容中的出现位置。当然,在具体的实施过程中,针对不同的对象,解析结果可以包括不同的内容,针对语音录音进行质量检查,解析结果还可以包括至少一个词语的每个词语在语音录音中的出现时刻,这里的出现时刻是指从语音录音开始为零秒,该词语在语音录音中的出现时刻为多少秒的数值;针对字符图像进行质量检查,解析结果还包括至少一个词语的每个词语在字符图像中的出现坐标,这里的出现坐标是指该词语相对于字符图像中的具体坐标为多少数值。
获得解析结果的实施方式例如:使用语法分析生成器根据抽象语法树表征的至少一个运算符的执行顺序对至少一个词语在文本内容中进行解析,获得解析结果;这里的语法分析生成器例如可以是上述的JavaCC,这里的JavaCC是一个用JAVA开发的最受欢迎的语法分析生成器;这个分析生成器工具可以读取上下文无关且有着特殊意义的语法并把它转换成可以识别且匹配该语法的JAVA程序;使用JAVACC语法分析,可以编写需要解析的规则语句,并是JJTree来构建抽象语法树,从而辅助复杂逻辑分析,可以方便的实现多层循环、嵌套、分支、判断等语法的解析。在上述的实现过程中,使用语法预处理器构建抽象语法树,以及使用语法分析生成器对词语在文本内容中进行解析获得解析结果,从而有效地提高了解析规则的效率。
可以理解的是,在获得解析结果之后,还可以根据该解析结果获得上述的语音录音的质量检查报告,或者根据该解析结果获得上述的字符图像的质量检查报告,质量检查报告可以包括:每个词语在文本内容中的出现位置和出现次数,以及出现次数在预设范围内为预设层次,出现次数在预设范围内为预设层次的实施方式例如:出现次数大于10次,则该语音录音的服务质量层次为优,或者,出现次数大于10次,则该字符图像的服务质量层次为优等等。
在上述的实现过程中,通过对规则语句进行分词获得词语和运算符,再根据语法规范对词语和运算符构建抽象语法树,并根据抽象语法树对文本内容进行解析,获得解析结果,从而有效地改善了基于简单的逻辑符的解析方法难以解析复杂逻辑规则的问题。
在本申请实施例中,获得上述的文本内容有很多种方式:第一种方式,通过对语音录音进行语音识别获得文本内容;第二种方式,通过对字符图像进行图像识别获得文本内容;第三种方式,通过使用爬虫软件在互联网上爬取文本内容;第四种方式,使用文字工作人员录入文本内容等。当然,在具体的实施过程中,除了上述的四种方式,还有很多种方式,这里不再列举。这里仅对第一种方式和第二种方式进行详细的说明,若这里的文本内容的方式为第一种方式,即通过对语音录音进行语音识别获得文本内容,那么在步骤S140之前,第一种方式还可以包括如下步骤:
步骤S141:获得语音录音。
语音录音的具体获得方式包括:第一种方式,客服在打电话为客户提供服务时,通过语音录音软件对电话的对话内容进行录音获得;第二种方式,从互联网上使用下载工具或者爬虫工具获取公开的语音录音;第三种方式,通过移动存储介质从通讯运营商授权拷贝获得等等方式。
步骤S142:使用语音识别算法对语音录音进行处理,获得文本内容。
语音识别(Voice Recognition),是指与机器进行语音交流相关的技术或者学科,即让机器明白人类说的话,这里的语音识别算法是指通过对语音录音进行处理获得文本内容的算法。语音识别技术所涉及的领域包括:信号处理、模式识别、概率论和信息论、发声机理和听觉机理、前端处理等等。
使用语音识别算法对语音录音进行处理,获得文本内容的具体实施方式例如:使用循环神经网络(Recurrent Neural Network,RNN)和连接时间分类(ConnectionistTemporal Classification,CTC)结合的方法对语音录音进行处理获得文本内容;这里的循环神经网络是指一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neuralnetwork);这里的连接时间分类是指用来解决输入序列和输出序列难以一一对应的问题的方法。又例如:使用高斯混合模型(Gaussian Mixture Model,GMM)对语音录音进行处理获得文本内容;这里的高斯混合模型是相对于单高斯模型来说的,是多个单高斯分布进行混合,理论上可以拟合出所有的分布曲线,主要应用于聚类算法。
在上述的实现过程中,过对语音录音进行语音识别获得文本内容,即可针对语音录音的语义内容进行解析,极大地扩展了规则解析的范围,同时可以针对录音的内容进行指定的对话内容质量检查。
在本申请实施例中,若通过对语音录音进行语音识别获得文本内容,那么在步骤S140之后,第一种方式还可以包括如下步骤:
步骤S143:根据至少一个词语的每个词语在语音录音中的出现时刻,以及在文本内容中出现位置和出现次数,确定文本内容的质量类型。
这里的解析结果除了可以包括至少一个词语的每个词语在文本内容中的出现位置和出现次数之外,还可以包括至少一个词语的每个词语在语音录音中的出现时刻,这里的出现时刻是指从语音录音开始为零秒,该词语在语音录音中的出现时刻为多少秒的数值。
质量类型是指文本内容中的服务质量的类型,这里的服务质量的类型例如:优、良、中和差等,服务质量类型的确定方式例如:多条规则中的每条规则中应该匹配的词语出现位置有多个,且出现时刻在语音录音的靠前面位置,即出现次数有多次且出现时刻在语音录音的靠前面位置,那么可以将该文本内容的质量类型确定为优;又例如:多条规则中只有一半的规则中应该匹配的词语出现位置有多个,且出现时刻在语音录音的靠中间位置,其余的仅出现一次或者没有出现且出现时刻在语音录音的靠中间位置,那么可以根据具体情况,将该文本内容的质量类型确定为良或中;多条规则中全部规则应该匹配的词语出现位置仅有一次或者没有出现,且出现时刻在语音录音的靠后面位置,那么可以根据具体情况,将该文本内容的质量类型确定为差。
在上述的实现过程中,根据词语在语音录音中的出现时刻,以及在文本内容中出现位置和出现次数确定该文本内容的质量类型,有效地提高对文本内容质量检查的效率和质量。
如上面描述的,获得文本内容有很多种方式,上面介绍了获得文本内容的第一种方式,下面介绍获得文本内容的第二种方式,即通过对字符图像进行图像识别获得文本内容,那么在步骤S140之前,第二种方式还可以包括如下步骤:
步骤S144:获得字符图像。
字符图像的具体获得方式包括:第一种方式,客服在为客户提供服务对话的过程中,通过截屏软件获得的对话内容的图像;第二种方式,从互联网上使用下载工具或者爬虫工具获取公开的客服为客户提供服务对话的字符图像。
步骤S145:使用图像识别算法对字符图像进行处理,获得文本内容。
使用图像识别算法对字符图像进行处理获得文本内容的实施方式例如:使用图像分类模型对字符图像进行处理获得文本内容,这里的图像分类模型是指对神经网络进行训练后获得的用于图像分类的神经网络模型,即将图像作为图像分类神经网络模型的输入获得概率列表的输出,这里概率列表是指,将路面图像经过上述的图像分类神经网络模型进行计算获得的多个概率,这里的概率是指路面图像归属于各个分类的概率,常见的图像分类神经网络模型例如:卷积神经网络(Convolutional neural network,CNN)和深度神经网络(Deep Neural Networks,DNN)等等。
上述的获得文本内容的实施方式又例如:使用文本卷积网络层对字符图像进行处理获得文本内容,这里的文本卷积网络层(Text-CNN)是指一种利用卷积神经网络对文本进行分类的算法,是由Yoon Kim在《卷积神经网络在句子分类中的应用》文章中提出的算法。
在上述的实现过程中,通过对字符图像进行字符图像获得文本内容,即可针对字符图像的语义内容进行解析,极大地扩展了规则解析的范围,同时可以针对图像的内容进行指定的对话内容质量检查。
在本申请实施例中,若通过对字符图像进行图像识别获得文本内容,那么在步骤S140之后,第二种方式还可以包括如下步骤:
步骤S146:根据至少一个词语的每个词语在字符图像中的出现坐标,以及在文本内容中出现位置和出现次数,确定文本内容的质量类型。
这里的解析结果除了可以包括至少一个词语的每个词语在文本内容中的出现位置和出现次数之外,还包括至少一个词语的每个词语在字符图像中的出现坐标,这里的出现坐标是指该词语相对于字符图像中的具体坐标为多少数值。
可以理解的是,步骤S146的实施原理与步骤S143的实施原理类似,不清楚的地方可以参见步骤S143的实施方式,两者区别仅在于,步骤S143是根据至少一个词语的每个词语在语音录音中的出现时刻,以及在文本内容中出现位置和出现次数,来确定文本内容的质量类型;而步骤S146是根据至少一个词语的每个词语在字符图像中的出现坐标,以及在文本内容中出现位置和出现次数,来确定文本内容的质量类型;具体地例如:多条规则中的每条规则中应该匹配的词语出现位置有多个,且出现坐标在字符图像的靠上面偏左,即出现坐标有多次且出现时刻在字符图像的靠上面偏左,那么可以将该文本内容的质量类型确定为优,将该文本内容的质量类型确定为良、中和差的具体实施原理参见步骤S143的实施方式。
在上述的实现过程中,根据词语在文本内容中出现位置和出现次数确定该文本内容的质量类型,有效地提高对文本内容质量检查的效率和质量。
请参见图3示出的本申请实施例提供的规则解析装置结构示意图;本申请实施例提供了一种规则解析装置200,包括:
语句获得模块210,用于获得多个规则语句。
语句拆分模块220,用于将多个规则语句的每个规则语句拆分为至少一个词语和至少一个运算符。
语法构建模块230,用于根据预设语法规范对至少一个词语和至少一个运算符构建抽象语法树,抽象语法树表征至少一个运算符的执行顺序。
结果获得模块240,用于根据抽象语法树表征的至少一个运算符的执行顺序对至少一个词语在文本内容中进行解析,获得解析结果,解析结果包括:至少一个词语的每个词语在文本内容中的出现位置和出现次数。
可选地,在本申请实施例中,该装置还包括:
录音获得模块,用于获得语音录音。
录音处理模块,用于使用语音识别算法对语音录音进行识别,获得文本内容。
可选地,在本申请实施例中,解析结果还包括至少一个词语的每个词语在语音录音中的出现时刻,还包括:
第一确定模块,用于根据至少一个词语的每个词语在语音录音中的出现时刻,以及在文本内容中出现位置和出现次数,确定文本内容的质量类型。
可选地,在本申请实施例中,还可以包括:
图像获得模块,用于获得字符图像。
图像处理模块,用于使用图像识别算法对字符图像进行处理,获得文本内容。
可选地,在本申请实施例中,解析结果还包括至少一个词语的每个词语在字符图像中的出现坐标,还包括:
第二确定模块,用于根据至少一个词语的每个词语在字符图像中的出现坐标,以及在文本内容中出现位置和出现次数,确定文本内容的质量类型。
可选地,在本申请实施例中,语法构建模块,包括:
处理构建模块,用于使用语法预处理器根据预设语法规范对至少一个词语和至少一个运算符构建抽象语法树。
结果获得模块,包括:
分析解析模块,用于使用语法分析生成器根据抽象语法树表征的至少一个运算符的执行顺序对至少一个词语在文本内容中进行解析,获得解析结果。
可选地,在本申请实施例中,该装置还可以包括:
列表判断模块,用于判断至少一个运算符中的每个运算符是否存在于预设定义符列表中。
返回执行模块,用于若至少一个运算符中的每个运算符存在于预设定义符列表中,则返回执行根据预设语法规范对至少一个词语和至少一个运算符构建抽象语法树的步骤。
应理解的是,该装置与上述的方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operating system,OS)中的软件功能模块。
请参见图4示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备300,包括:处理器310和存储器320,存储器320存储有处理器310可执行的机器可读指令,机器可读指令被处理器310执行时执行如上的方法。
本申请实施例还提供了一种存储介质330,该存储介质330上存储有计算机程序,该计算机程序被处理器310运行时执行如上的方法。
其中,存储介质330可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请实施例各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (9)
1.一种规则解析方法,其特征在于,包括:
获得多个规则语句;
将所述多个规则语句的每个规则语句拆分为至少一个词语和至少一个运算符;
根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树,所述抽象语法树表征所述至少一个运算符的执行顺序;
根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果,所述解析结果包括:所述至少一个词语的每个词语在所述文本内容中的出现位置和出现次数;
其中,所述根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树,包括:使用语法预处理器根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树;所述根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果,包括:使用语法分析生成器根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果;其中,所述语法分析生成器是JavaCC,所述语法预处理器是JJTree工具。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果之前,还包括:
获得语音录音;
使用语音识别算法对所述语音录音进行处理,获得所述文本内容。
3.根据权利要求2所述的方法,其特征在于,所述解析结果还包括所述至少一个词语的每个词语在所述语音录音中的出现时刻,在所述根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果之后,还包括:
根据所述至少一个词语的每个词语在所述语音录音中的出现时刻,以及在所述文本内容中出现位置和出现次数,确定所述文本内容的质量类型。
4.根据权利要求1所述的方法,其特征在于,在所述根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果之前,还包括:
获得字符图像;
使用图像识别算法对所述字符图像进行处理,获得所述文本内容。
5.根据权利要求4所述的方法,其特征在于,所述解析结果还包括所述至少一个词语的每个词语在所述字符图像中的出现坐标,在所述根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果之后,还包括:
根据所述至少一个词语的每个词语在所述字符图像中的出现坐标,以及在所述文本内容中出现位置和出现次数,确定所述文本内容的质量类型。
6.根据权利要求1-4任一所述的方法,其特征在于,在所述根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树之前,还包括:
判断所述至少一个运算符中的每个运算符是否存在于预设定义符列表中;
若是,则返回执行所述根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树的步骤。
7.一种规则解析装置,其特征在于,包括:
语句获得模块,用于获得多个规则语句;
语句拆分模块,用于将所述多个规则语句的每个规则语句拆分为至少一个词语和至少一个运算符;
语法构建模块,用于根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树,所述抽象语法树表征所述至少一个运算符的执行顺序;
结果获得模块,用于根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果,所述解析结果包括:所述至少一个词语的每个词语在所述文本内容中的出现位置和出现次数;
其中,所述根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树,包括:使用语法预处理器根据预设语法规范对所述至少一个词语和所述至少一个运算符构建抽象语法树;所述根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果,包括:使用语法分析生成器根据所述抽象语法树表征的所述至少一个运算符的执行顺序对所述至少一个词语在文本内容中进行解析,获得解析结果;其中,所述语法分析生成器是JavaCC,所述语法预处理器是JJTree工具。
8.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如权利要求1-6任一所述的方法。
9.一种存储介质,其特征在于,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1-6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911080637.5A CN110826314B (zh) | 2019-11-07 | 2019-11-07 | 一种规则解析方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911080637.5A CN110826314B (zh) | 2019-11-07 | 2019-11-07 | 一种规则解析方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110826314A CN110826314A (zh) | 2020-02-21 |
CN110826314B true CN110826314B (zh) | 2023-08-22 |
Family
ID=69553039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911080637.5A Active CN110826314B (zh) | 2019-11-07 | 2019-11-07 | 一种规则解析方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110826314B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444727A (zh) * | 2020-04-01 | 2020-07-24 | 神州数码融信软件有限公司 | 一种业务规则解析方法 |
CN111680692B (zh) * | 2020-05-20 | 2022-09-13 | 南京理工大学 | 一种字符偏移检测方法及系统 |
CN113797545A (zh) * | 2021-08-25 | 2021-12-17 | 广州三七网络科技有限公司 | 游戏脚本处理方法、装置、计算机设备和存储介质 |
CN116048526B (zh) * | 2023-02-13 | 2023-11-10 | 中国南方航空股份有限公司 | 一种航路可用性文档处理方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294666A (zh) * | 2013-05-28 | 2013-09-11 | 百度在线网络技术(北京)有限公司 | 语法编译方法、语义解析方法以及对应装置 |
CN104298657A (zh) * | 2014-09-23 | 2015-01-21 | 广东电网公司电网规划研究中心 | 基于表达式的评价指标解析系统 |
CN108962282A (zh) * | 2018-06-19 | 2018-12-07 | 京北方信息技术股份有限公司 | 语音检测分析方法、装置、计算机设备及存储介质 |
CN109726185A (zh) * | 2018-12-28 | 2019-05-07 | 杭州安恒信息技术股份有限公司 | 一种基于语法树的日志解析方法、系统和计算机可读介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10650190B2 (en) * | 2017-07-11 | 2020-05-12 | Tata Consultancy Services Limited | System and method for rule creation from natural language text |
-
2019
- 2019-11-07 CN CN201911080637.5A patent/CN110826314B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294666A (zh) * | 2013-05-28 | 2013-09-11 | 百度在线网络技术(北京)有限公司 | 语法编译方法、语义解析方法以及对应装置 |
CN104298657A (zh) * | 2014-09-23 | 2015-01-21 | 广东电网公司电网规划研究中心 | 基于表达式的评价指标解析系统 |
CN108962282A (zh) * | 2018-06-19 | 2018-12-07 | 京北方信息技术股份有限公司 | 语音检测分析方法、装置、计算机设备及存储介质 |
CN109726185A (zh) * | 2018-12-28 | 2019-05-07 | 杭州安恒信息技术股份有限公司 | 一种基于语法树的日志解析方法、系统和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110826314A (zh) | 2020-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110826314B (zh) | 一种规则解析方法、装置、电子设备及存储介质 | |
CN110096570B (zh) | 一种应用于智能客服机器人的意图识别方法及装置 | |
CN109033305B (zh) | 问题回答方法、设备及计算机可读存储介质 | |
Tran et al. | Parsing speech: a neural approach to integrating lexical and acoustic-prosodic information | |
US11031009B2 (en) | Method for creating a knowledge base of components and their problems from short text utterances | |
CN114547329A (zh) | 建立预训练语言模型的方法、语义解析方法和装置 | |
KR102041621B1 (ko) | 인공지능 음성인식 기반 기계학습의 대규모 말뭉치 구축을 위한 대화형 말뭉치 분석 서비스 제공 시스템 및 구축 방법 | |
CN111639484A (zh) | 坐席通话内容的分析方法 | |
US11120802B2 (en) | Diarization driven by the ASR based segmentation | |
US20220414463A1 (en) | Automated troubleshooter | |
US10831990B1 (en) | Debiasing textual data while preserving information | |
CN108628868B (zh) | 文本分类方法和装置 | |
CN112966106A (zh) | 文本的情绪识别方法、装置、设备及存储介质 | |
CN112185361B (zh) | 一种语音识别模型训练方法、装置、电子设备及存储介质 | |
CN113821605A (zh) | 一种事件抽取方法 | |
CN113051895A (zh) | 语音识别的方法、装置、电子设备、介质和程序产品 | |
KR102206781B1 (ko) | 지식 기반 추론 및 신뢰도 분석을 이용한 가짜뉴스 판별 방법, 이를 수행하기 위한 기록매체 및 장치 | |
CN109710756B (zh) | 基于语义角色标注的文书体裁分类系统及方法 | |
Aina et al. | What do entity-centric models learn? insights from entity linking in multi-party dialogue | |
US10468031B2 (en) | Diarization driven by meta-information identified in discussion content | |
CN113705207A (zh) | 语法错误识别方法及装置 | |
CN109885835B (zh) | 一种获取用户语料中词语之间的关联关系的方法和系统 | |
CN115510192A (zh) | 一种新闻事件脉络关系检测方法及装置 | |
CN114154497A (zh) | 语病识别方法、装置、电子设备和存储介质 | |
WO2022262080A1 (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 |