CN108334491A - 文本分析方法、装置、计算设备及存储介质 - Google Patents
文本分析方法、装置、计算设备及存储介质 Download PDFInfo
- Publication number
- CN108334491A CN108334491A CN201710804065.5A CN201710804065A CN108334491A CN 108334491 A CN108334491 A CN 108334491A CN 201710804065 A CN201710804065 A CN 201710804065A CN 108334491 A CN108334491 A CN 108334491A
- Authority
- CN
- China
- Prior art keywords
- keyword
- node
- text
- character
- template
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (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
本申请公开了文本分析方法、装置、计算设备及存储介质。其中,一种文本分析方法包括:获取一条文本。根据预定的关键词集合并采用至少一种分词模式对文本进行分词操作,以采用至少一种分词模式确定所述文本中的关键词及其所属的类别、非关键词。针对每种分词模式,根据文本在该种分词模式下确定的每个关键词所属的类别,生成与该种分词模式对应的语义表达式。确定至少一种分词模式对应的语义表达式中与预定的模板集合相匹配的代表所述文本语义的至少一个语义表达式。
Description
技术领域
本申请涉及人工智能领域,尤其涉及文本分析方法、装置、计算设备及存储介质。
背景技术
随着人工智能技术的发展,智能音箱或智能机器人等智能终端被逐渐应用在各种场景中。在智能终端向用户提供服务时,理解用户意图是一个核心环节。文本匹配是理解用户意图的一种方式。
发明内容
本申请提出了一种文本分析方法,包括:获取一条文本。根据预定的关键词集合并采用至少一种分词模式分别对所述文本进行分词操作,以采用至少一种分词模式确定所述文本中的关键词及其所属的类别、非关键词并生成语义表达式。其中,该关键词集合包括多个关键词以及每个关键词所属的类别。针对每种分词模式,根据文本在该种分词模式下确定的每个关键词所属的类别,生成与该种分词模式对应的语义表达式。语义表达式包含文本在该种分词模式下确定的所述非关键词和每个关键词所属的类别所对应的类别字符串。确定至少一种分词模式对应的语义表达式中与预定的模板集合相匹配的至少一个语义表达式。其中,相匹配的至少一个语义表达式代表所述文本的语义。在一种分词模式对应的语义表达式与所述模板集合中一个模板一致时,确定该种分词模式对应的语义表达式与所述模板集合相匹配。模板集合包括多个模板。每个模板包括包含至少一个类别字符串和/或至少一个预设文本字符串的语义表达式。
根据本发明又一个方面,提供一种文本分析方法,包括:获取一条文本。根据预定的关键词集合并采用至少一种分词模式分别对所述文本进行分词操作,以采用至少一种分词模式确定所述文本中的关键词及其所属的类别、非关键词并生成与预定的模板集合匹配的语义表达式。其中,该关键词集合包括多个关键词以及每个关键词所属的类别。当采用一种分词模式对所述文本进行分词操作时,依次确定所述文本中的非关键词、关键词及其所属的类别。每当确定出一个词时生成一个语义表达式。该词为非关键词或者关键词。当确定该语义表达式与预定的模板集合不匹配时删除该语义表达式并停止采用该种分词模式对所述文本进行分词操作。该语义表达式包含文本中当前确定的该词之前的非关键词、文本中当前确定的该词之前的关键词所属类别对应的类别字符串。在当前确定的该词为非关键词时,该语义表达式还包括该词。在当前确定的词为关键词时,该语义表达式还包括该词所属类别对应的类别字符串。其中,模板集合包括多个模板。每个模板包括包含至少一个类别字符串和/或至少一个预设文本字符串的语义表达式。在一个语义表达式与所述模板集合中任一个模板都不一致时确定该语义表达式与所述模板集合不匹配。在一个语义表达式与所述模板集合中一个模板一致时确定该语义表达式与所述模板集合匹配。
根据本申请又一个方面,提供一种文本分析装置,包括:获取单元、生成单元和匹配单元。获取单元适于获取一条文本。生成单元适于根据预定的关键词集合并采用至少一种分词模式分别对所述文本进行分词操作,以采用所述至少一种分词模式确定所述文本中的关键词及其所属的类别、非关键词并生成语义表达式。其中,该关键词集合包括多个关键词以及每个关键词所属的类别。其中,针对每种分词模式,生成单元适于根据所述文本在该种分词模式下确定的每个关键词所属的类别,生成与该种分词模式对应的语义表达式。语义表达式包含所述文本在该种分词模式下确定的所述非关键词和每个关键词所属的类别所对应的类别字符串。匹配单元,适于确定所述至少一种分词模式对应的语义表达式中与预定的模板集合相匹配的至少一个语义表达式。其中,相匹配的至少一个语义表达式代表所述文本的语义,在一种分词模式对应的语义表达式与模板集合中一个模板一致时,确定该种分词模式对应的语义表达式与模板集合相匹配。模板集合包括多个模板,每个模板包括包含至少一个类别字符串和/或至少一个预设文本字符串的语义表达式。
在一些实施例中,生成单元适于根据下述方式以根据预定的关键词集合并采用至少一种分词模式分别对所述文本进行分词操作:
根据所述预定的关键词集合,构建第一前缀树,其中,该第一前缀树中根节点存储的字符串为空,每个非根节点存储有一个相应的字符串,所述字符串通过将所述文本与所述预定的关键词集合进行匹配而获得,该第一前缀树中每条第一路径中各节点所存储的字符串组成为一个语义表达式,每条第一路径对应一种分词模式,以所述根节点为起点并以一个对应的叶节点为终点,包括其经过的至少两个节点。
在一些实施例中,生成单元适于根据下述方式构建所述第一前缀树:
创建所述根节点,所述根节点的待匹配字符串包括所述文本中的所有字符;
对于所述第一前缀树中一个节点,在该节点对应的待匹配字符串非空时,执行如下操作:
依次将所述待匹配字符串中字符与所述关键词集合进行匹配,直到确定与所述关键词集合相匹配的第一字符,其中,当所述待匹配字符串包括以所述第一字符为前缀并与所述关键词集合匹配的至少一个关键词时,确定所述第一字符与所述关键词集合相匹配,其中,一个非根节点对应的待匹配字符串包括所述文本中在该节点所存储字符串之后的字符串;
在所述待匹配字符串中第一字符之前存在非空字符串时,创建该节点的一个子节点并在其中存储所述非空字符串;和
在确定不存在所述非空字符串时,针对所述至少一个关键词中每个关键词,创建该节点的两个子节点,在该两个子节点的一个中存储该关键词对应的文本字符串,在另一个子节点中存储该关键词所属类别对应的类别字符串。
在一些实施例中,对于所述节点,在该节点对应的待匹配字符串非空时,所述生成单元还执行如下操作:
在确定不存在所述非空字符串,确定所述第一字符本身非关键词,并且确定第二字符与所述关键词集合匹配时,创建所述节点的一个子节点并在其中存储所述第一字符,其中,在所述文本中所述第二字符处于所述第一字符之后并与其相邻,在所述待匹配字符串包括以所述第二字符为前缀并与所述关键词集合匹配的关键词时,确定所述第二字符与所述关键词集合相匹配。
在一些实施例中,模板集合被设置为第二前缀树,该第二前缀树中每条第二路径中各节点所存储的字符串组成为一个模板,每条第二路径以所述第二前缀树的根节点为起点,并以一个对应的叶节点为终点;
所述匹配单元适于根据下述方式确定所述至少一种分词模式对应的语义表达式中与预定的模板集合相匹配的至少一个语义表达式:
在确定所述第一前缀树中一条第一路径对应的语义表达式与所述第二前缀树中一条第二路径对应的模板一致时,确定该条第一路径对应的语义表达式与所述模板集合匹配。
在一些实施例中,关键词集合被设置为第三前缀树,该第三前缀树中每条第三路径中各节点所存储的字符串组成为一个关键词,每条第三路径以所述第三前缀树的根节点为起点并以一个对应的叶节点为终点,该第三前缀树中每个关键词对应的叶节点还存储有该关键词的类别信息;
所述生成单元适于根据下述方式依次将所述待匹配字符串中字符与所述关键词集合进行匹配,直到确定与所述关键词集合相匹配的第一字符:
在所述待匹配字符串中,以所述第一字符为前缀的至少一个关键词与所述第三前缀树中一条第三路径对应的关键词一致时,确定所述第一字符与所述关键词集合匹配。
在一些实施例中,获取单元适于根据下述方式获取一条文本:接收所输入的一段语音,对这段语音进行语音识别处理,以获取所述文本。
在一些实施例中,模板集合中每个模板关联有预定指令,该装置还包括执行单元,适于:从所述与预定的模板集合相匹配的代表所述文本语义的至少一个语义表达式中,选定一个语义表达式,并根据该语义表达式中关键词执行与该语义表达式匹配的模板所对应的预定指令。
根据本申请又一个方面,提供一种文本分析装置,包括:获取单元和构建单元。获取单元适于获取一条文本。构建单元,适于根据预定的关键词集合并采用至少一种分词模式分别对所述文本进行分词操作,以采用所述至少一种分词模式确定所述文本中的关键词及其所属的类别、非关键词并生成与模板集合匹配的语义表达式。其中,该关键词集合包括多个关键词以及每个关键词所属的类别。当采用一种分词模式对所述文本进行分词操作时,依次确定所述文本中的非关键词、关键词及其所属的类别。每当确定出一个词时生成一个语义表达式。该词为非关键词或者关键词。当确定该语义表达式与预定的模板集合不匹配时删除该语义表达式并停止采用该种分词模式对所述文本进行分词操作。该语义表达式包含所述文本中当前确定的该词之前的非关键词、所述文本中当前确定的该词之前的关键词所属类别对应的类别字符串。在当前确定的该词为非关键词时,该语义表达式还包括该词。在当前确定的词为关键词时,该语义表达式还包括该词所属类别对应的类别字符串。其中,模板集合包括多个模板,每个模板包括包含至少一个类别字符串和/或至少一个预设文本字符串的语义表达式。在一个语义表达式与模板集合中任一个模板都不一致时确定该语义表达式与模板集合不匹配。在一个语义表达式与所述模板集合中一个模板一致时确定该语义表达式与所述模板集合匹配。
在一些实施例中,构建单元适于根据下述方式以根据预定的关键词集合并采用至少一种分词模式分别对所述文本进行分词操作并生成与所述模板集合匹配的语义表达式:
构建第一前缀树,其中,该第一前缀树中根节点所存储字符串为空,每个非根节点存储有一个相应的字符串,所述字符串通过将所述文本与所述预定的关键词集合进行匹配而获得,该第一前缀树中每条第一路径中各节点所存储的字符串组成为一个语义表达式,每条第一路径以所述根节点为起点并以一个对应的叶节点为终点,包括其经过的至少两个节点。
在一些实施例中,构建单元适于根据下述方式构建所述第一前缀树:创建所述根节点,所述根节点的待匹配字符串包括所述文本中的所有字符;对于所述第一前缀树中一个节点,在该节点对应的待匹配字符串非空时,在确定所述根节点至该节点的路径中各节点的字符串所组成的语义表达式与所述模板集合不匹配时删除该节点;在确定所述根节点至该节点的路径中各节点的字符串所组成的语义表达式与所述模板集合匹配时,执行下述操作:
依次将所述待匹配字符串中字符与关键词集合进行匹配,直到确定与所述关键词集合相匹配的第一字符,其中,当所述待匹配字符串包括以所述第一字符为前缀并与所述关键词集合匹配的至少一个关键词时,确定所述第一字符与所述关键词集合相匹配,其中,一个非根节点对应的待匹配字符串包括所述文本中在该节点所存储字符串之后的字符串;
在所述待匹配字符串中第一字符之前存在非空字符串时,创建该节点的一个子节点并在其中存储所述非空字符串;和
在确定不存在所述非空字符串时,针对所述至少一个关键词中每个关键词,创建该节点的两个子节点,在这两个子节点的一个子节点中存储该关键词对应的文本字符串,在另一个子节点中存储该关键词所属类别对应的类别字符串。
在一些实施例中,对于所述节点,在确定该节点对应的待匹配字符串非空,并且确定所述根节点至该节点的路径中各节点的字符串所组成的语义表达式与所述模板集合匹配时,所述构建单元还执行如下操作:
在确定不存在所述非空字符串,确定所述第一字符本身非关键词,并且确定第二字符与所述关键词集合匹配时,创建该节点的一个子节点并在其中存储所述第一字符,其中,所述第二字符在所述待匹配字符串中处于所述第一字符之后并与其相邻,在所述待匹配字符串包括以第二字符为前缀并与所述关键词集合匹配的关键词时,确定所述第二字符与所述关键词集合相匹配。
在一些实施例中,模板集合被设置为第二前缀树,该第二前缀树中每条第二路径中各节点所存储的字符串组成为一个模板,每条第二路径以第二前缀树的根节点为起点,并以一个对应的叶节点为终点,包括其经过的至少两个节点;
所述构建单元适于根据下述方式确定所述根节点至该节点的路径中各节点的字符串所组成的语义表达式与预定的模板集合相匹配:
在所述根节点至该节点的路径中各节点的字符串所组成的语义表达式与所述第二前缀树中一个节点至相应根节点的路径中各节点所存储的字符串所组成的表达式一致时,确定所述语义表达式与所述模板集合匹配。
在一些实施例中,关键词集合被设置为第三前缀树,该第三前缀树中每条第三路径中各节点所存储的字符串组成为一个关键词,每条第三路径以所述第三前缀树的根节点为起点并以一个对应的叶节点为终点,该第三前缀树中每个关键词对应的叶节点还存储有该关键词的类别信息;
所述构建单元适于根据下述方式依次将所述待匹配字符串中字符与所述关键词集合进行匹配,直到确定与所述关键词集合相匹配的第一字符:在所述待匹配字符串中以所述第一字符为前缀的至少一个关键词与所述第三前缀树中一条第三路径对应的关键词一致时,确定所述第一字符与所述关键词集合相匹配。
根据本申请又一个方面,提供一种计算设备,包括:一个或多个处理器、存储器以及一个或多个程序。程序存储在该存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行本申请的文本分析方法的指令。
根据本申请又一个方面,提供一种存储介质,存储有一个或多个程序。所述一个或多个程序包括指令。所述指令当由计算设备执行时,使得所述计算设备执行本申请的文本分析方法。
综上,根据本申请的文本分析方法可以首先根据关键词集合确定一条文本所有可能的语义表达式,然后确定与模板集合匹配的语义表达式,从而可以快速地分析文本(即,确定文本代表的用户意图)。
附图说明
为了更清楚地说明本申请实例中的技术方案,下面将对实例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请一些实施例的应用场景100的示意图;
图2示出了根据本申请一些实施例的文本分析方法200的示意图;
图3示出了根据本申请一个实施例的创建第一前缀树中子节点的方法300的流程图;
图4示出了根据本申请一个实施例的创建第一前缀树中子节点的方法400的流程图;
图5A示出了根据本申请一个实施例的第一前缀树的示意图;
图5B示出了根据本申请一个实施例的第二前缀树的部分结构示意图;
图6示出了根据本申请一些实施例的文本分析方法600的流程图;
图7示出了根据本申请一些实施例的文本分析的方法700的示意图;
图8示出了根据本申请一个实施例的创建第一前缀树中子节点的方法800的流程图;
图9示出了根据本申请一个实施例的第一前缀树的示意图;
图10示出了根据本申请一些实施例的文本分析方法1000的流程图;
图11示出了根据本申请一个实施例的创建第一前缀树中子节点的方法1100的流程图;
图12示出了根据本申请一些实施例的文本分析装置1200的示意图;
图13示出了根据本申请一些实施例的文本分析装置1300的示意图;
图14示出了根据本申请一些实施例的文本分析装置1400的示意图;及
图15示出了一个计算设备的组成结构图。
具体实施方式
下面将结合本申请实例中的附图,对本申请实例中的技术方案进行清楚、完整地描述,显然,所描述的实例仅是本申请一部分实例,而不是全部的实例。基于本申请中的实例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本申请保护的范围。
图1示出了根据本申请一些实施例的应用场景100的示意图。
如图1所示,应用场景100可以包括云服务系统110和终端设备120。终端设备例如可以包括虚拟助理121。这里,云服务系统110可以被实现为独立的物理服务器,也可以被实现为分布式集群,本申请对此不做限制。终端设备例如可以被实现为移动电话、智能音箱、智能手表、智能机器人或车载设备等,但不限于此。虚拟助理(也可称为智能助理或数字助理等)121可以被实现为一个独立应用或者应用的一个组件,本申请对此不作限制。在一个实施例中,虚拟助理121可以接收用户输入的语音信息、文本信息或者手势信息等各种可表示用户意图的输入信息。虚拟助理121可以将所接收的输入信息传输到云服务系统110,以便云服务系统针对该输入信息进行文本分析。在又一个实施例中,虚拟助理121可以在本地对所接收的输入信息进行文本分析。
图2示出了根据本申请一些实施例的文本分析方法200的示意图。在一个实施例中,方法200例如可以在语义识别应用中执行。语义识别应用可以驻留在云服务系统(110)中。在又一个实施例中,方法200可以在虚拟助理(121)中执行。
如图2所示,方法200始于步骤S201,获取一条文本。这里,一条文本为关于自然语言(例如为中文或英文等)的一个字符串。字符串中每个字符例如为一个汉字或者一个英文单词,但不限于此。在一个实施例中,方法200在云服务系统中执行。步骤S201可以接收来自终端设备(120)中虚拟助理的一条语音消息,然后对其进行语音识别处理,以获取一条文本。或者,步骤S201可以接收来自终端设备的一条文本消息。在又一个实施例中,方法200在虚拟助理中执行。步骤S201可以接收用户输入的一段语音(例如:录制的一段包含语音信号的音频和/或视频等的媒体数据),然后对这段语音进行语音识别处理,以获取一条文本。在步骤S201中,语音识别处理可以采用多种技术将数据中的语音信号转换为文本,本申请对于具体采用何种语音识别技术不做限制。在一些实施例中,对一条文本进行文本分词的方式为:将该文本与一个模板库中模板依次进行正则匹配,以确定相匹配的模板。然后,根据相匹配的模板确定待匹配词。在此基础上,将待匹配词与词典进行匹配判断。如果每个相匹配模板对应的待匹配词与词典均不匹配,则可以认为本次文本分析失败。不同于这些实施例,方法200可以执行步骤S202和步骤S203。
在步骤S202中,根据预定的关键词集合并采用至少一种分词模式分别对文本进行分词操作,以采用至少一种分词模式确定文本中的关键词及其所属的类别、非关键词。其中,该关键词集合包括多个关键词以及每个关键词所属的类别。关键词集合也可以被称为一个词典。在一个例子中,关键词集合中关键词的类别包括地域、歌手和歌曲名称。属于地域类型的关键词例如包括“香港”、“台湾”和“内地”。歌曲名称例如可以包括“国歌”和“生日快乐”。在一种分词模式下,关键词的数量可以有零个、一个或多个。非关键词是指文本中关键词之外的剩余字符。
针对每种分词模式,步骤S202可以根据文本在该种分词模式下确定的每个关键词所属的类别,生成与该种分词模式对应的语义表达式。语义表达式包含文本在该种分词模式下确定的非关键词和每个关键词所属的类别所对应的类别字符串。简而言之,步骤S202基于关键词集合,生成文本对应的至少一个语义表达式。在将一个语义表达式的字符串与文本相比时,该语义表达式中类别字符串与文本中关键词相对应,并且语义表达式中非关键词与文本中非关键词一致。为了便于理解,下面通过实施例对步骤S202进一步说明。
在一些实施例中,步骤S202需要构建第一前缀树,以获取至少一个语义表达式。这里,第一前缀树中根节点存储的字符串为空。每个非根节点存储有一个相应的字符串。第一前缀树中每条第一路径中各节点所存储的字符串组成为一个语义表达式。每条第一路径对应一种分词模式,以根节点为起点并以一个对应的叶节点为终点,包括其经过的至少两个节点。
具体而言,首先创建根节点。根节点的待匹配字符串包括文本中的所有字符。对于第一前缀树中任一个节点而言,在该节点对应的待匹配字符串非空时,可以执行如图3所示的方法300。
如图3所示,在步骤S301中,依次将待匹配字符串中字符与关键词集合进行匹配,直到确定与关键词集合相匹配的第一字符。其中,当待匹配字符串包括以第一字符为前缀并与关键词集合匹配的至少一个关键词时,确定第一字符与关键词集合相匹配。一个非根节点对应的待匹配字符串包括文本中在该节点所存储字符串之后的字符串。在一个实施例中,关键词集合被设置为第三前缀树。该第三前缀树中每条第三路径中各节点所存储的字符串组成为一个关键词。每条第三路径以第三前缀树的根节点为起点并以一个对应的叶节点为终点。该第三前缀树中每个关键词对应的叶节点还存储有该关键词的类别信息。在本实施例中,在待匹配字符串中,以第一字符为前缀的至少一个词与第三前缀树中一条第三路径对应的关键词一致时,确定第一字符与关键词集合匹配。如上所述,通过将关键词集合建成前缀树结构,可以提高确定第一字符的效率,从而提高本申请的文本分析的速度。另外说明的是,关键词集合并不限于前缀树结构,也可以是哈希表等各种数据结构,这里不再赘述。
在步骤S302中,在待匹配字符串中第一字符之前存在非空字符串时,创建该节点的一个子节点并在其中存储该非空字符串。
在不存在上述非空字符串时,方法300可以执行步骤S303。在步骤S303中,针对以第一字符为前缀的每个关键词,创建该节点的两个子节点。在该两个子节点的一个中存储该关键词对应的文本字符串,在另一个子节点中存储该关键词所属类别对应的类别字符串。特别说明的是,在包含存储关键词的节点的语义表达式中,这个节点中关键词没有被作为该语义表达式的关键词。另外,在包含存储类别字符串的节点的语义表达式中,这个类别字符串对应的关键词被作为本语义表达式的关键词。
综上,针对第一前缀树中任一个节点,通过执行方法300建立该节点的子节点。应当理解,通过多次执行方法300可以完成对第一前缀树的构建。
在又一个实施例中,针对第一前缀树中任一个节点,在该节点对应的待匹配字符串非空时,步骤S202可以通过执行方法400创建这个节点的子节点。
如图4所示,方法400包括步骤S401-S403。步骤S401至S403的实施方式与步骤S301至S303一致,这里不再赘述。另外,方法400还包括步骤S404。在步骤S404中,在确定第一字符本身非关键词,并且确定第二字符与关键词集合匹配时,创建该节点的一个子节点并在其中存储第一字符。其中,第二字符在文本中处于第一字符之后并与其相邻。在待匹配字符串包括以第二字符为前缀并与关键词集合匹配的关键词时,步骤S404确定第二字符与关键词集合相匹配。为了更容易理解,下面结合图5A对步骤S202进一步说明。
图5A示出了根据本申请一个实施例的第一前缀树的示意图。图5A中第一前缀树对应的文本为“播放A1A2A3B1B2B3”。该文本中A1、A2、A3、B1、B2和B3分别代表一个汉字。即,图5A对应的文本共有8个汉字。关键词集合(词典)包括歌手类型和歌曲类型。其中,歌手类型对应的类别字符串例如为[singer],但不限于此。歌曲类型对应的类别字符串为[song]。歌手类型的关键词包括“A1A2A3”、“A1A2”和“A2A3”。歌曲类型的关键词包括“B1B2B3”。
如图5A所示,第一前缀树的根节点a0不存储字符串,为一个空节点。对于根节点a0而言,待匹配字符串为“播放A1A2A3B1B2B3”。通过依次将字符与关键词集合进行匹配,步骤S202可以确定“播”和“放”均不匹配于关键词集合。而A1与关键词集合匹配(即,“A1A2A3”和“A1A2”这两个关键词均以A1为前缀)。A1之前的非空字符串为“播放”。因此,步骤S202可以创建根节点a0的一个子节点,即a1。节点a1中存储的字符串为“播放”。
对于节点a1而言,待匹配字符串为“A1A2A3B1B2B3”。A1为节点a1对应的第一字符。A1之前不存在非空字符串。步骤S202可以针对“A1A2A3”生成节点a1的两个子节点,即,节点a2和a3。节点a2存储字符串“A1A2A3”。节点a3存储“A1A2A3”对应的类别字符串“[singer]”。另外,针对“A1A2”生成节点a1的两个子节点,即节点a4和a5。节点a4存储字符串“A1A2”。节点a5存储“A1A2”对应的类别字符串“[singer]”。另外,A1本身非关键词。在节点a1的待匹配字符串“A1A2A3B1B2B3”中,A2处于A1之后并相邻。以A2为前缀的“A2A3”与关键词集合匹配。A2为第二字符。因此,步骤S202可以生成节点a1的又一个子节点,即节点a6,并在其中存储“A1”。依次类推,步骤还可以生成节点a7至节点a23。其中,叶节点包括:a7至a10、a17至a23。第一前缀树共有12条第一路径。例如,节点a0、a1、a2和a7组成一条第一路径,这条第一路径对应的语义表达式为:“播放A1A2A3B1B2”。
综上,步骤S202可以基于关键词集合并通过构建前缀树的方式来确定文本所有可能的语义表达式。但不限于此,步骤S202还可以采用其他实施方式来确定文本对应的所有可能的语义表达式,而这些实施方式都应落入步骤S202的范围。
在确定文本对应的所有可能语义表达式(即步骤S202中所述的至少一个语义表达式)时,方法200可以执行步骤S203。在步骤S203中,确定与预定的模板集合相匹配的语义表达式。其中,模板集合包括多个模板,每个模板包括包含至少一个类别字符串和/或至少一个预设文本字符串的语义表达式。例如一个模板是“播放[singer][song]”。在该模板中,“播放”为预设文本字符串。[singer]为歌手类型对应的类比字符串,[song]为歌曲类型对应的类别字符串。在语义表达式与一条模板完全一致时,该语义表达式与模板集合相匹配。在一个实施例中,模板集合被设置为第二前缀树。该第二前缀树中每条第二路径中各节点所存储的字符串组成为一个模板。每条第二路径以第二前缀树的根节点为起点,并以一个对应的叶节点为终点。步骤S203可以在确定第一前缀树中一条第一路径对应的语义表达式与第二前缀树中一条第二路径对应的模板一致时,确定该条第一路径对应的语义表达式与模板集合匹配。为了便于理解,下面结合图5B对步骤S203进一步说明。
图5B示出了根据本申请一个实施例的第二前缀树的部分结构示意图。如图5B所示,第二前缀树的根节点b0不存储字符串。图5B示出了第二前缀树的3条第二路径。第1条包括节点b0、b1、b3和b7,对应的模板为:“播放[singer][song]”。第2条包括节点b0、b1和b4,对应的模板为:“播放[song]”。第3条包括b0、b2、b5和b8,对应的模板为:“找一下[singer]的歌”。以图5A和图5B为例,步骤S203可以确定包含节点a0、a1、a3和a10的第一路径对应的语义表达式与包含节点b0、b1、b3和b7的第二路径对应的模板相匹配。
综上,根据本申请的方法200可以首先根据关键词集合确定一条文本所有可能的语义表达式,然后确定与模板集合匹配的语义表达式,从而可以快速地分析文本(即,确定文本代表的用户意图)。特别是,方法200通过构建语义表达式的第一前缀树和模板集合的第二前缀树,可以极大提高匹配语义表达式与模板集合的速度。这里,方法200通过构建双前缀树,使得确定语义表达式与模板集合是否匹配的时间复杂度为O(1)。由此可见,模板匹配的时间复杂度与模板集合中模板数量无关,从而使得本申请中模板集合的规模可以被任意设定而不会影响与模板匹配的速度。模板集合的规模越大,方法200的文本分析能力也会越强(即降低文本分析失败的可能性)。因此,本申请的方法200可以极大提高确定文本意图(即文本分析)的效率和提高文本分析能力。
图6示出了根据本申请一些实施例的文本分析方法600的流程图。如图6所示,方法600包括步骤S601至S603。步骤S601至S603的实施方式与步骤S201至S203一致,这里不再赘述。另外说明的是,模板集合中每个模板与一种用户意图相关。模板集合中每个模板关联有预定指令。在此基础上,方法600还可以包括步骤S604。在步骤S604中,从与预定的模板集合相匹配的至少一个语义表达式中,选定一个语义表达式并根据该语义表达式中关键词,执行与该语义表达式匹配的模板所对应的预定指令。步骤S604可以采用多种预定策略来选定语义表达式。例如,步骤S604根据关键词的权重对语义表达式进行排序,从而选定权重最高的语义表达式来代表文本的意图。又例如,模板集合中每个模板还包括权重参数。这样,步骤S604可以根据模板的权重参数,选定一个模板,进而选定相应的语义表达式。在一个应用场景中,方法600在云服务系统中执行。步骤S601所获取的文本来自终端设备的虚拟助理。被选定的语义表达式为“播放[singer][song]”,该语义表达式中各类别字符串对应的关键词包括“A1A2A3”和“B1B2B3”。步骤S604执行预定指令为:搜索歌手“A1A2A3”的歌曲“B1B2B3”。在获取歌曲“B1B2B3”时,将其发送到虚拟助理,以便虚拟助理播放该歌曲。基于上述示例性说明,本领域技术人员应当理解,本申请的文本分析方法600可以被应用在各种人工智能(AI)场景中,这里不再赘述。
图7示出了根据本申请一些实施例的文本分析的方法700的示意图。方法700例如可以语义识别应用中执行。语义识别应用例如可以驻留在云服务系统(110)或者终端设备中。
如图7所示,方法700始于步骤S701,获取一条文本。步骤S701更具体实施方式与步骤S201一致,这里不再赘述。
在步骤S702中,根据预定的关键词集合并采用至少一种分词模式分别对所述文本进行分词操作,以采用至少一种分词模式确定所述文本中的关键词及其所属的类别、非关键词,并生成与模板集合匹配的语义表达式。其中,该关键词集合包括多个关键词以及每个关键词所属的类别。模板集合包括多个模板,每个模板包括包含至少一个类别字符串和/或至少一个预设文本字符串的语义表达式。
具体而言,当采用一种分词模式对文本进行分词操作时,依次确定所述文本中的非关键词、关键词及其所属的类别,每当确定出一个词时生成一个语义表达式。该词为非关键词或者关键词。当确定该语义表达式与预定的模板集合不匹配时删除该语义表达式并停止采用该种分词模式对文本进行分词操作。需要说明的是,在确定出一个词(文本中在该词之后还存在非空的待匹配字符串)时,所生成的语义表达式在与模板集合中一个模板的一段(即,从该模板的第一个字符开始的连续字符串)匹配时,可以被认为与模板集合匹配。相应的,在确定的另一个词(文本中在该词之后不存在非空的待匹配字符串)时,所生成的语义表达式在与模板集合中一个模板的字符串完全一致时,可以被认为与模板集合匹配。该语义表达式包含所文本中当前确定的该词之前的非关键词、文本中当前确定的该词之前的关键词所属类别对应的类别字符串。在当前确定的该词为非关键词时,该语义表达式还包括该词。在当前确定的词为关键词时,该语义表达式还包括该词所属类别对应的类别字符串。在一个语义表达式与模板集合中任一个模板都不一致时确定该语义表达式与所述模板集合不匹配。在一个语义表达式与所述模板集合中一个模板一致时确定该语义表达式与所述模板集合匹配。
根据本申请一些实施例,步骤S702可以在进行分词操作时,通过构建第一前缀树来确定与模板集合匹配的语义表达式。其中,第一前缀树中根节点所存储字符串为空。每个非根节点存储有一个相应的字符串。第一前缀树中每条第一路径中各节点所存储的字符串组成为一个代表文本语义的语义表达式。每条第一路径以根节点为起点并以一个对应的叶节点为终点,包括其经过的至少两个节点。在步骤S702中,首先创建根节点。根节点的待匹配字符串包括文本中的所有字符。
在一个实施例中,对于第一前缀树中任一个节点,在该节点对应的待匹配字符串非空时,步骤S702可以执行图8所示的方法800。
在步骤S801中,在确定根节点至该节点的路径中各节点的字符串所组成的语义表达式与预定的模板集合不匹配时,删除该节点。其中,模板集合包括多个模板。每个模板包括包含至少一个类别字符串和/或至少一个预设文本字符串的语义表达式。在一个实施例中,模板集合被设置为第二前缀树。第二前缀树中每条第二路径中各节点所存储的字符串组成为一个模板。每条第二路径以第二前缀树的根节点为起点,并以一个对应的叶节点为终点,包括其经过的至少两个节点。在步骤S801中,在确定语义表达式与第二前缀树中一个节点至相应根节点的路径中各节点所存储的字符串所组成的表达式一致时,确定语义表达式与模板集合匹配。反之,如果模板集合不存在第二前缀树中一个节点至相应根节点的路径中各节点所存储的字符串所组成的表达式表达式,则步骤S801可以删除该节点,并不生成该节点的子节点。通过步骤S801,方法800可以在在生成第一前缀树的过程中,判断包含一个所生成节点的语义表达式是否与模板结合匹配。如果不匹配,步骤S801可以删除该节点。这样,方法800通过在构建第一前缀树的过程中修建分支(即删除节点),可以避免生成与模板集合不匹配的语义表达式,从而提高生成第一前缀树的速度。
在确定根节点至该节点的路径中各节点的字符串所组成的表达式与模板集合匹配时,方法800可以执行步骤S802。
在步骤S802中,依次将待匹配字符串中字符与关键词集合进行匹配,直到确定与关键词集合相匹配的第一字符。其中,该关键词集合包括多个关键词以及每个关键词所属的类别。当待匹配字符串包括以第一字符为前缀并与关键词集合匹配的至少一个关键词时,步骤S802可以确定第一字符与关键词集合相匹配。其中,一个非根节点对应的待匹配字符串包括文本中在该节点所存储字符串之后的字符串。在一个实施例中,关键词集合被设置为第三前缀树。第三前缀树中每条第三路径中各节点所存储的字符串组成为一个关键词。每条第三路径以第三前缀树的根节点为起点并以一个对应的叶节点为终点。该第三前缀树中每个关键词对应的叶节点还存储有该关键词的类别信息。步骤802在确定待匹配字符串中以第一字符为前缀的至少一个关键词与第三前缀树中一条第三路径对应的关键词一致时,确定第一字符与关键词集合相匹配。需要说明的是,关键词集合的数据结构并不限于前缀树,还可以是例如哈希表等各种适合进行关键词匹配的数据结构,这里不再赘述。
在待匹配字符串中第一字符之前存在非空字符串时,方法800可以执行步骤S803,创建该节点的一个子节点并在其中存储该非空字符串。
在确定不存在上述非空字符串时,方法800可以执行步骤S804,针对上述以第一字符为前缀的至少一个关键词中每个关键词,创建该节点的两个子节点。步骤S804在这两个子节点的一个子节点中存储该关键词对应的文本字符串,在另一个子节点中存储该关键词所属类别对应的类别字符串。
综上,本申请的文本分析方法700在生成语义表达式的过程中,通过判断一个节点对应的语义表达式是否与模板集合是否匹配,从而可以修剪与模板集合不匹配的分支,进而可以避免生成与模板集合不匹配的语义表达式。这样,本申请的方法700可以极大提高生成第一前缀树的速度,并且使得第一前缀树所生成每个语义表达式均与模板集合匹配。另外,通过将模板集合设置为第二前缀树,方法700可以进一步提高与模板集合进行匹配的效率。
为了更形象说明,图9示出了方法700所构建的第一前缀树。如图9所示,第一前缀树包括一条第一路径,即包含节点a0、a1、a3和a10的路径。这条第一路径与第二前缀树匹配。而在生成第一前缀树过程中,节点a2、a4、a9、和a12均被删除。由此可见,方法700生成的前缀树只包括与模板匹配的语义表达式,而与模板集合不匹配的分支(即节点a2、a4、a9、和a12所代表的分支)均已被放弃,从而极大提高了文本分析速度。
图10示出了根据本申请一些实施例的文本分析方法1000的流程图。
如图10所示,方法1000始于步骤S1001,获取一条文本。步骤S1001更具体实施方式与步骤S201一致,这里不再赘述。
在步骤S1002中,构建关于文本的第一前缀树。其中,第一前缀树中根节点所存储字符串为空。每个非根节点存储有一个相应的字符串。第一前缀树中每条第一路径中各节点所存储的字符串组成为一个代表文本语义的语义表达式。每条第一路径以根节点为起点并以一个对应的叶节点为终点,包括其经过的至少两个节点。在步骤S1002中,首先创建根节点。根节点的待匹配字符串包括文本中的所有字符。
在一个实施例中,对于第一前缀树中任一个节点,在该节点对应的待匹配字符串非空时,步骤S1002可以执行图11所示的方法1100。
方法1100包括步骤S1101至S1104。这里,步骤S1101至S1104分别与步骤S801至S804一致,这里不再赘述。另外,方法1100还包括步骤S1105,在确定不存在非空字符串,确定第一字符本身非关键词,并且确定第二字符与关键词集合匹配时,创建该节点的一个子节点并在其中存储所述第一字符。其中,第二字符在待匹配字符串中处于第一字符之后并与其相邻。步骤S1105在待匹配字符串包括以第二字符为前缀并与关键词集合匹配的关键词时,确定第二字符与关键词集合相匹配。
图12示出了根据本申请一些实施例的文本分析装置1200的示意图。装置1200适于驻留在云服务系统中或者终端设备的虚拟助理中,但不限于此。如图12所示,装置1200包括获取单元1201、生成单元1202和匹配单元1203。
获取单元1201适于获取一条文本。在一个实施例中,获取单元1201适于接收所输入的一段语音,对这段语音进行语音识别处理,以获取文本。
生成单元1202适于根据预定的关键词集合对文本进行分词操作,以采用至少一种分词模式确定文本中的关键词及其所属的类别、非关键词。其中,该关键词集合包括多个关键词以及每个关键词所属的类别。针对每种分词模式,生成单元1202可以根据文本在该种分词模式下确定的每个关键词所属的类别,生成与该种分词模式对应的语义表达式。这里,语义表达式包含文本在该种分词模式下确定的非关键词和每个关键词所属的类别所对应的类别字符串。
在一些实施例中,生成单元1202可以构建第一前缀树。其中,第一前缀树中根节点存储的字符串为空。每个非根节点存储有一个相应的字符串。该第一前缀树中每条第一路径中各节点所存储的字符串组成为一个语义表达式。每条第一路径对应一种分词模式,以根节点为起点并以一个对应的叶节点为终点,包括其经过的至少两个节点。生成单元1202构建所述第一前缀树的具体过程如下。
首先,生成单元1202创建根节点。根节点的待匹配字符串包括文本中的所有字符。对于所述第一前缀树中一个节点,在该节点对应的待匹配字符串非空时,生成单元1202依次将待匹配字符串中字符与关键词集合进行匹配,直到确定与所述关键词集合相匹配的第一字符。其中,当待匹配字符串包括以第一字符为前缀并与关键词集合匹配的至少一个关键词时,确定第一字符与关键词集合相匹配。其中,一个非根节点对应的待匹配字符串包括文本中在该节点所存储字符串之后的字符串。在一个实施例中,关键词集合被设置为第三前缀树。该第三前缀树中每条第三路径中各节点所存储的字符串组成为一个关键词,每条第三路径以第三前缀树的根节点为起点并以一个对应的叶节点为终点,该第三前缀树中每个关键词对应的叶节点还存储有该关键词的类别信息。在本实施例中,在确定待匹配字符串中,以第一字符为前缀的至少一个关键词与所述第三前缀树中一条第三路径对应的关键词一致时,生成单元1202确定第一字符与关键词集合匹配。
在待匹配字符串中第一字符之前存在非空字符串时,生成单元1202创建该节点的一个子节点并在其中存储所述非空字符串。在确定不存在非空字符串时,生成单元1202针对所述至少一个关键词中每个关键词,创建该节点的两个子节点。生成单元1202在该两个子节点的一个中存储该关键词对应的文本字符串,在另一个子节点中存储该关键词所属类别对应的类别字符串。
在又一个实施例中,生成单元1202除了可以执行上述操作以外,还可以在确定不存在所述非空字符串,确定所述第一字符本身非关键词,并且确定第二字符与所述关键词集合匹配时,创建所述节点的一个子节点并在其中存储所述第一字符。其中,在文本中第二字符处于第一字符之后并与其相邻,在待匹配字符串包括以第二字符为前缀并与所述关键词集合匹配的关键词时,确定第二字符与所述关键词集合相匹配。
匹配单元1203,适于确定至少一种分词模式对应的语义表达式中与预定的模板集合相匹配的代表所述文本语义的至少一个语义表达式。其中,在一种分词模式对应的语义表达式与模板集合中一个模板一致时,确定该种分词模式对应的语义表达式与模板集合相匹配。模板集合包括多个模板,每个模板包括包含至少一个类别字符串和/或至少一个预设文本字符串的语义表达式。
在一个实施例中,模板集合被设置为第二前缀树。该第二前缀树中每条第二路径中各节点所存储的字符串组成为一个模板。每条第二路径以第二前缀树的根节点为起点,并以一个对应的叶节点为终点。在本实施例中,匹配单元1203在确定第一前缀树中一条第一路径对应的语义表达式与第二前缀树中一条第二路径对应的模板一致时,确定该条第一路径对应的语义表达式与模板集合匹配。装置1200更具体的实时方式与方法200一致,这里不再赘述。
图13示出了根据本申请一些实施例的文本分析装置1300的示意图。
如图13所示,装置1300包括获取单元1301、生成单元1302、匹配单元1303和执行单元1304。其中,获取单元1301、生成单元1302、匹配单元1303的实施方式分别与获取单元1201、生成单元1202、匹配单元1303一致,这里不再赘述。另外说明的是,模板集合中每个模板关联有预定指令。执行单元1304适于从与预定的模板集合相匹配的代表文本语义的至少一个语义表达式中,选定一个语义表达式,并根据该语义表达式中关键词执行与该语义表达式匹配的模板所对应的预定指令。装置1300更具体的实施方式与方法600一致,这里不再赘述。
图14示出了根据本申请一些实施例的文本分析装置1400的示意图。如图14所示,装置1400包括获取单元1401和构建单元1402。获取单元1401适于获取一条文本。
构建单元1402适于根据预定的关键词集合并采用至少一种分词模式分别对所述文本进行分词操作,以采用至少一种分词模式确定所述文本中的关键词及其所属的类别、非关键词,并生成与模板集合匹配的语义表达式。其中,该关键词集合包括多个关键词以及每个关键词所属的类别。模板集合包括多个模板,每个模板包括包含至少一个类别字符串和/或至少一个预设文本字符串的语义表达式。
具体而言,当采用一种分词模式对文本进行分词操作时,构建单元1402依次确定所述文本中的非关键词、关键词及其所属的类别,每当确定出一个词时生成一个语义表达式。该词为非关键词或者关键词。当确定该语义表达式与预定的模板集合不匹配时,构建单元1402删除该语义表达式并停止采用该种分词模式对文本进行分词操作。该语义表达式包含所文本中当前确定的该词之前的非关键词、文本中当前确定的该词之前的关键词所属类别对应的类别字符串。在当前确定的该词为非关键词时,该语义表达式还包括该词。在当前确定的词为关键词时,该语义表达式还包括该词所属类别对应的类别字符串。在一个语义表达式与模板集合中任一个模板都不一致时,构建单元1402确定该语义表达式与模板集合不匹配。在一个语义表达式与所述模板集合中一个模板一致时,构建单元1402确定该语义表达式与所述模板集合匹配。
在根据本申请一些实施例中,构建单元1402可以在进行分词操作操作时,通过构建第一前缀树来生成与模板集合匹配的语义表达式。其中,该第一前缀树中根节点所存储字符串为空。每个非根节点存储有一个相应的字符串。该第一前缀树中每条第一路径中各节点所存储的字符串组成为一个代表文本语义的语义表达式。每条第一路径以所述根节点为起点并以一个对应的叶节点为终点,包括其经过的至少两个节点。
具体而言,构建单元1402首先创建根节点。根节点的待匹配字符串包括所述文本中的所有字符。对于所述第一前缀树中一个节点,在该节点对应的待匹配字符串非空时,构建单元1402在确定根节点至该节点的路径中各节点的字符串所组成的语义表达式与预定的模板集合不匹配时删除该节点。其中,模板集合包括多个模板,每个模板包括包含至少一个类别字符串和/或至少一个预设文本字符串的语义表达式。
在一个实施例中,模板集合被设置为第二前缀树,该第二前缀树中每条第二路径中各节点所存储的字符串组成为一个模板。每条第二路径以第二前缀树的根节点为起点,并以一个对应的叶节点为终点,包括其经过的至少两个节点。在本实施例中,构建单元1402在确定语义表达式与第二前缀树中一个节点至相应根节点的路径中各节点所存储的字符串所组成的表达式一致时,确定该语义表达式与模板集合匹配。
在确定根节点至该节点的路径中各节点的字符串所组成的表达式与模板集合匹配时,构建单元1402依次将待匹配字符串中字符与关键词集合进行匹配,直到确定与所述关键词集合相匹配的第一字符。其中,关键词集合包括多个关键词以及每个关键词所属的类别。在一个实施例中,关键词集合被设置为第三前缀树。该第三前缀树中每条第三路径中各节点所存储的字符串组成为一个关键词。每条第三路径以所述第三前缀树的根节点为起点并以一个对应的叶节点为终点。该第三前缀树中每个关键词对应的叶节点还存储有该关键词的类别信息。在本实施例中,构建单元1402适于在确定待匹配字符串中以第一字符为前缀的至少一个关键词与第三前缀树中一条第三路径对应的关键词一致时,确定第一字符与关键词集合相匹配。
当待匹配字符串包括以第一字符为前缀并与所述关键词集合匹配的至少一个关键词时,构建单元1402确定第一字符与关键词集合相匹配。其中,一个非根节点对应的待匹配字符串包括文本中在该节点所存储字符串之后的字符串。在待匹配字符串中第一字符之前存在非空字符串时,构建单元1402创建该节点的一个子节点并在其中存储非空字符串。在确定不存在非空字符串时,针对至少一个关键词中每个关键词,创建该节点的两个子节点,在这两个子节点的一个子节点中存储该关键词对应的文本字符串,在另一个子节点中存储该关键词所属类别对应的类别字符串。
在又一个实施例中,构建单元1402还可以在确定不存在所述非空字符串,第一字符本身非关键词,并且第二字符与关键词集合匹配时,创建该节点的一个子节点并在其中存储所述第一字符。其中,第二字符在待匹配字符串中处于第一字符之后并与其相邻。在确定待匹配字符串包括以第二字符为前缀并与关键词集合匹配的关键词时,构建单元1402确定第二字符与关键词集合相匹配。装置1400更具体的实施方式与方法1100一致,这里不再赘述。
图15示出了一个计算设备的组成结构图。如图15所示,该计算设备包括一个或者多个处理器(CPU)1502、通信模块1504、存储器1506、用户接口1510,以及用于互联这些组件的通信总线1508。
处理器1502可通过通信模块1504接收和发送数据以实现网络通信和/或本地通信。
用户接口1510包括一个或多个输出设备1512,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口1510也包括一个或多个输入设备1514,其包括诸如,键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机或其他输入按钮或控件等。
存储器1506可以是高速随机存取存储器,诸如DRAM、SRAM、DDR RAM、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。
存储器1506存储处理器1502可执行的指令集,包括:
操作系统1516,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
应用1518,包括用于实现上述文本分析方法的各种程序,这种程序能够实现上述各实例中的处理流程,比如可以包括根据本发明的虚拟助理。虚拟助理可以包括图12所示的文本分析装置1200、图13所示的装置1300或图14所示的装置1400。
另外,上述计算设备可以被实现为一个智能音箱,包括:一个或多个处理器、存储器以及一个或多个程序。程序存储在该存储器中并被配置为由所述一个或多个处理器执行。所述一个或多个程序包括用于执行根据本申请的文本分析方法的指令。
另外,本申请的每一个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
因此本申请还公开了一种非易失性存储介质,其中存储有数据处理程序,该数据处理程序用于执行本申请上述方法的任何一种实例。
另外,本申请所述的方法步骤除了可以用数据处理程序来实现,还可以由硬件来实现,例如,可以由逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌微控制器等来实现。因此这种可以实现本申请所述方法的硬件也可以构成本申请。
以上所述仅为本申请的较佳实例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (18)
1.一种文本分析方法,其特征在于包括:
获取一条文本;
根据预定的关键词集合并采用至少一种分词模式分别对所述文本进行分词操作,以采用所述至少一种分词模式确定所述文本中的关键词及其所属的类别、非关键词并生成语义表达式,其中,该关键词集合包括多个关键词以及每个关键词所属的类别;
其中,针对每种分词模式,根据所述文本在该种分词模式下确定的每个关键词所属的类别,生成与该种分词模式对应的语义表达式,所述语义表达式包含所述文本在该种分词模式下确定的所述非关键词和每个关键词所属的类别所对应的类别字符串;以及
确定所述至少一种分词模式对应的语义表达式中与预定的模板集合相匹配的至少一个语义表达式,其中,所述相匹配的至少一个语义表达式代表所述文本的语义,在一种分词模式对应的语义表达式与所述模板集合中一个模板一致时,确定该种分词模式对应的语义表达式与所述模板集合相匹配,所述模板集合包括多个模板,每个模板包括包含至少一个类别字符串和/或至少一个预设文本字符串的语义表达式。
2.如权利要求1所述的方法,其中,所述根据预定的关键词集合并采用至少一种分词模式分别对所述文本进行分词操作的步骤包括:
根据所述预定的关键词集合,构建第一前缀树,其中,该第一前缀树中根节点存储的字符串为空,每个非根节点存储有一个相应的字符串,所述字符串通过将所述文本与所述预定的关键词集合进行匹配而获得,该第一前缀树中每条第一路径中各节点所存储的字符串组成为一个语义表达式,每条第一路径对应一种分词模式,以所述根节点为起点并以一个对应的叶节点为终点,包括其经过的至少两个节点。
3.如权利要求2所述的方法,其中,所述根据所述预定的关键词集合,构建第一前缀树,包括:
创建所述根节点,所述根节点的待匹配字符串包括所述文本中的所有字符;
对于所述第一前缀树中一个节点,在该节点对应的待匹配字符串非空时,执行如下操作:
依次将所述待匹配字符串中字符与所述关键词集合进行匹配,直到确定与所述关键词集合相匹配的第一字符,其中,当所述待匹配字符串包括以所述第一字符为前缀并与所述关键词集合匹配的至少一个关键词时,确定所述第一字符与所述关键词集合相匹配,其中,一个非根节点对应的待匹配字符串包括所述文本中在该节点所存储字符串之后的字符串;
在确定所述待匹配字符串中第一字符之前存在非空字符串时,创建该节点的一个子节点并在其中存储所述非空字符串;和
在确定不存在所述非空字符串时,针对所述至少一个关键词中每个关键词,创建该节点的两个子节点,在该两个子节点的一个中存储该关键词对应的文本字符串,在另一个子节点中存储该关键词所属类别对应的类别字符串。
4.如权利要3所述的方法,其中,对于所述节点,在该节点对应的待匹配字符串非空时,还执行如下操作:
在确定不存在所述非空字符串,确定所述第一字符本身非关键词,并且确定第二字符与所述关键词集合匹配时,创建所述节点的一个子节点并在其中存储所述第一字符,其中,在所述文本中所述第二字符处于所述第一字符之后并与其相邻,在所述待匹配字符串包括以所述第二字符为前缀并与所述关键词集合匹配的关键词时,确定所述第二字符与所述关键词集合相匹配。
5.如权利要求2所述的方法,其中,所述模板集合被设置为第二前缀树,该第二前缀树中每条第二路径中各节点所存储的字符串组成为一个模板,每条第二路径以所述第二前缀树的根节点为起点,并以一个对应的叶节点为终点;
所述确定所述至少一种分词模式对应的语义表达式中与预定的模板集合相匹配的至少一个语义表达式的步骤包括:
在确定所述第一前缀树中一条第一路径对应的语义表达式与所述第二前缀树中一条第二路径对应的模板一致时,确定该条第一路径对应的语义表达式与所述模板集合匹配。
6.如权利要求3所述的方法,其中,所述关键词集合被设置为第三前缀树,该第三前缀树中每条第三路径中各节点所存储的字符串组成为一个关键词,每条第三路径以所述第三前缀树的根节点为起点并以一个对应的叶节点为终点,该第三前缀树中每个关键词对应的叶节点还存储有该关键词的类别信息;
所述依次将所述待匹配字符串中字符与所述关键词集合进行匹配,直到确定与所述关键词集合相匹配的第一字符,包括:
在所述待匹配字符串中,以所述第一字符为前缀的至少一个关键词与所述第三前缀树中一条第三路径对应的关键词一致时,确定所述第一字符与所述关键词集合匹配。
7.如权利要求1所述的方法,其中,所述获取一条文本的步骤包括:
接收所输入的一段语音,对这段语音进行语音识别处理,以获取所述文本。
8.如权利要求1所述的方法,其中,所述模板集合中每个模板关联有预定指令,该方法还包括:
从所述与预定的模板集合相匹配的代表所述文本语义的至少一个语义表达式中,选定一个语义表达式,并根据该语义表达式中关键词执行与该语义表达式匹配的模板所对应的预定指令。
9.一种文本分析方法,其特征在于包括:
获取一条文本;
根据预定的关键词集合并采用至少一种分词模式分别对所述文本进行分词操作,以采用所述至少一种分词模式确定所述文本中的关键词及其所属的类别、非关键词,并生成与预定的模板集合匹配的语义表达式,其中,该关键词集合包括多个关键词以及每个关键词所属的类别,所述模板集合包括多个模板,每个模板包括包含至少一个类别字符串和/或至少一个预设文本字符串的语义表达式;
其中,当采用一种分词模式对所述文本进行分词操作时,依次确定所述文本中的非关键词、关键词及其所属的类别,每当确定出一个词时生成一个语义表达式,该词为非关键词或者关键词,当确定该语义表达式与预定的模板集合不匹配时删除该语义表达式并停止采用该种分词模式对所述文本进行分词操作,该语义表达式包含所述文本中当前确定的该词之前的非关键词、所述文本中当前确定的该词之前的关键词所属类别对应的类别字符串,在当前确定的该词为非关键词时,该语义表达式还包括该词,在当前确定的词为关键词时,该语义表达式还包括该词所属类别对应的类别字符串;其中在一个语义表达式与所述模板集合中任一个模板都不一致时确定该语义表达式与所述模板集合不匹配,在一个语义表达式与所述模板集合中一个模板一致时确定该语义表达式与所述模板集合匹配。
10.如权利要求9所述的方法,其中,所述根据预定的关键词集合并采用至少一种分词模式分别对所述文本进行分词操作的步骤包括:
根据所述预定的关键词集合,构建第一前缀树,其中,该第一前缀树中根节点所存储字符串为空,每个非根节点存储有一个相应的字符串,所述字符串通过将所述文本与所述预定的关键词集合进行匹配而获得,该第一前缀树中每条第一路径中各节点所存储的字符串组成为一个语义表达式,每条第一路径以所述根节点为起点并以一个对应的叶节点为终点,包括其经过的至少两个节点。
11.如权利要求10所述的方法,其中,所述根据所述预定的关键词集合,构建第一前缀树,包括:
创建所述根节点,所述根节点的待匹配字符串包括所述文本中的所有字符;
对于所述第一前缀树中一个节点,在该节点对应的待匹配字符串非空时,在确定所述根节点至该节点的路径中各节点的字符串所组成的语义表达式与所述模板集合不匹配时删除该节点;
在确定所述根节点至该节点的路径中各节点的字符串所组成的语义表达式与所述模板集合匹配时,执行下述操作:
依次将所述待匹配字符串中字符与关键词集合进行匹配,直到确定与所述关键词集合相匹配的第一字符,其中,当所述待匹配字符串包括以所述第一字符为前缀并与所述关键词集合匹配的至少一个关键词时,确定所述第一字符与所述关键词集合匹配,其中,一个非根节点对应的待匹配字符串包括所述文本中在该节点所存储字符串之后的字符串;
在所述待匹配字符串中第一字符之前存在非空字符串时,创建该节点的一个子节点并在其中存储所述非空字符串;和
在确定不存在所述非空字符串时,针对所述至少一个关键词中每个关键词,创建该节点的两个子节点,在这两个子节点的一个子节点中存储该关键词对应的文本字符串,在另一个子节点中存储该关键词所属类别对应的类别字符串。
12.如权利要求11所述的方法,其中,对于所述节点,在确定该节点对应的待匹配字符串非空,并且确定所述根节点至该节点的路径中各节点的字符串所组成的语义表达式与所述模板集合匹配时,还执行如下操作:
在确定不存在所述非空字符串,确定所述第一字符本身非关键词,并且确定第二字符与所述关键词集合匹配时,创建该节点的一个子节点并在其中存储所述第一字符,其中,所述第二字符在所述待匹配字符串中处于所述第一字符之后并与其相邻,在所述待匹配字符串包括以第二字符为前缀并与所述关键词集合匹配的关键词时,确定所述第二字符与所述关键词集合相匹配。
13.如权利要求10所述的方法,其中,所述模板集合被设置为第二前缀树,该第二前缀树中每条第二路径中各节点所存储的字符串组成为一个模板,每条第二路径以第二前缀树的根节点为起点,并以一个对应的叶节点为终点,包括其经过的至少两个节点;
所述确定所述根节点至该节点的路径中各节点的字符串所组成的语义表达式与所述模板集合匹配,包括:
在所述根节点至该节点的路径中各节点的字符串所组成的语义表达式与所述第二前缀树中一个节点至相应根节点的路径中各节点所存储的字符串所组成的表达式一致时,确定所述语义表达式与所述模板集合匹配。
14.如权利要求11所述的方法,其中,所述关键词集合被设置为第三前缀树,该第三前缀树中每条第三路径中各节点所存储的字符串组成为一个关键词,每条第三路径以所述第三前缀树的根节点为起点并以一个对应的叶节点为终点,该第三前缀树中每个关键词对应的叶节点还存储有该关键词的类别信息;
所述依次将所述待匹配字符串中字符与所述关键词集合进行匹配,直到确定与所述关键词集合相匹配的第一字符,包括:
在所述待匹配字符串中以所述第一字符为前缀的至少一个关键词与所述第三前缀树中一条第三路径对应的关键词一致时,确定所述第一字符与所述关键词集合相匹配。
15.一种文本分析装置,其特征在于包括:
获取单元,适于获取一条文本;
生成单元,适于根据预定的关键词集合并采用至少一种分词模式分别对所述文本进行分词操作,以采用所述至少一种分词模式确定所述文本中的关键词及其所属的类别、非关键词并生成语义表达式,其中,该关键词集合包括多个关键词以及每个关键词所属的类别;
其中,针对每种分词模式,所述生成单元适于根据所述文本在该种分词模式下确定的每个关键词所属的类别,生成与该种分词模式对应的语义表达式,所述语义表达式包含所述文本在该种分词模式下确定的所述非关键词和每个关键词所属的类别所对应的类别字符串;以及
匹配单元,适于确定所述至少一种分词模式对应的语义表达式中与预定的模板集合相匹配的至少一个语义表达式,其中,所述相匹配的至少一个语义表达式代表所述文本的语义,在一种分词模式对应的语义表达式与所述模板集合中一个模板一致时,确定该种分词模式对应的语义表达式与所述模板集合相匹配,所述模板集合包括多个模板,每个模板包括包含至少一个类别字符串和/或至少一个预设文本字符串的语义表达式。
16.一种文本分析装置,其特征在于包括:
获取单元,适于获取一条文本;
构建单元,适于根据预定的关键词集合并采用至少一种分词模式分别对所述文本进行分词操作,以采用所述至少一种分词模式确定所述文本中的关键词及其所属的类别、非关键词,并生成与预定的模板集合匹配的语义表达式,其中,该关键词集合包括多个关键词以及每个关键词所属的类别,所述模板集合包括多个模板,每个模板包括包含至少一个类别字符串和/或至少一个预设文本字符串的语义表达式,
其中,当采用一种分词模式对所述文本进行分词操作时,依次确定所述文本中的非关键词、关键词及其所属的类别,每当确定出一个词时生成一个语义表达式,该词为非关键词或者关键词,当确定该语义表达式与预定的模板集合不匹配时删除该语义表达式并停止采用该种分词模式对所述文本进行分词操作,该语义表达式包含所述文本中当前确定的该词之前的非关键词、所述文本中当前确定的该词之前的关键词所属类别对应的类别字符串,在当前确定的该词为非关键词时,该语义表达式还包括该词,在当前确定的词为关键词时,该语义表达式还包括该词所属类别对应的类别字符串,在一个语义表达式与所述模板集合中任一个模板都不一致时确定该语义表达式与所述模板集合不匹配,在一个语义表达式与所述模板集合中一个模板一致时确定该语义表达式与所述模板集合匹配。
17.一种计算设备,其特征在于包括:
一个或多个处理器;
存储器;以及
一个或多个程序,存储在该存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1-14中任一项所述方法的指令。
18.一种存储介质,存储有一个或多个程序,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行如权利要求1-14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710804065.5A CN108334491B (zh) | 2017-09-08 | 2017-09-08 | 文本分析方法、装置、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710804065.5A CN108334491B (zh) | 2017-09-08 | 2017-09-08 | 文本分析方法、装置、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108334491A true CN108334491A (zh) | 2018-07-27 |
CN108334491B CN108334491B (zh) | 2020-07-31 |
Family
ID=62923107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710804065.5A Active CN108334491B (zh) | 2017-09-08 | 2017-09-08 | 文本分析方法、装置、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108334491B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147433A (zh) * | 2019-05-21 | 2019-08-20 | 北京鸿联九五信息产业有限公司 | 一种基于字典树的文本模板提取方法 |
CN111309851A (zh) * | 2020-02-13 | 2020-06-19 | 北京金山安全软件有限公司 | 一种实体词存储方法、装置及电子设备 |
CN112199959A (zh) * | 2020-10-15 | 2021-01-08 | 中国科学院自动化研究所 | 语义文化机器人系统 |
CN112364660A (zh) * | 2020-10-27 | 2021-02-12 | 中国平安人寿保险股份有限公司 | 语料文本处理方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053993A (zh) * | 2009-11-10 | 2011-05-11 | 阿里巴巴集团控股有限公司 | 一种文本过滤方法及文本过滤系统 |
CN103020052A (zh) * | 2011-09-20 | 2013-04-03 | 北京百度网讯科技有限公司 | 一种识别搜索需求的方法和装置 |
CN103383699A (zh) * | 2013-06-28 | 2013-11-06 | 安徽科大讯飞信息科技股份有限公司 | 字符串检索方法及系统 |
CN105843882A (zh) * | 2016-03-21 | 2016-08-10 | 乐视网信息技术(北京)股份有限公司 | 一种信息匹配方法及装置 |
CN106547753A (zh) * | 2015-09-16 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 一种信息分析方法及电子设备 |
CN106933798A (zh) * | 2015-12-31 | 2017-07-07 | 北京城市网邻信息技术有限公司 | 信息分析的方法及装置 |
-
2017
- 2017-09-08 CN CN201710804065.5A patent/CN108334491B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053993A (zh) * | 2009-11-10 | 2011-05-11 | 阿里巴巴集团控股有限公司 | 一种文本过滤方法及文本过滤系统 |
CN103020052A (zh) * | 2011-09-20 | 2013-04-03 | 北京百度网讯科技有限公司 | 一种识别搜索需求的方法和装置 |
CN103383699A (zh) * | 2013-06-28 | 2013-11-06 | 安徽科大讯飞信息科技股份有限公司 | 字符串检索方法及系统 |
CN106547753A (zh) * | 2015-09-16 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 一种信息分析方法及电子设备 |
CN106933798A (zh) * | 2015-12-31 | 2017-07-07 | 北京城市网邻信息技术有限公司 | 信息分析的方法及装置 |
CN105843882A (zh) * | 2016-03-21 | 2016-08-10 | 乐视网信息技术(北京)股份有限公司 | 一种信息匹配方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147433A (zh) * | 2019-05-21 | 2019-08-20 | 北京鸿联九五信息产业有限公司 | 一种基于字典树的文本模板提取方法 |
CN111309851A (zh) * | 2020-02-13 | 2020-06-19 | 北京金山安全软件有限公司 | 一种实体词存储方法、装置及电子设备 |
CN111309851B (zh) * | 2020-02-13 | 2023-09-19 | 北京金山安全软件有限公司 | 一种实体词存储方法、装置及电子设备 |
CN112199959A (zh) * | 2020-10-15 | 2021-01-08 | 中国科学院自动化研究所 | 语义文化机器人系统 |
CN112199959B (zh) * | 2020-10-15 | 2024-04-12 | 中国科学院自动化研究所 | 语义文化机器人系统 |
CN112364660A (zh) * | 2020-10-27 | 2021-02-12 | 中国平安人寿保险股份有限公司 | 语料文本处理方法、装置、计算机设备及存储介质 |
CN112364660B (zh) * | 2020-10-27 | 2024-05-17 | 中国平安人寿保险股份有限公司 | 语料文本处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108334491B (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11383162B2 (en) | Voice skill game editing method, apparatus, device and readable storage medium | |
CN111046150B (zh) | 人机交互处理系统及其方法、存储介质、电子设备 | |
CN108334491A (zh) | 文本分析方法、装置、计算设备及存储介质 | |
US10854181B2 (en) | Music composition tools on a single pane-of-glass | |
CN106910501A (zh) | 文本实体提取方法及装置 | |
US20190035370A1 (en) | Music composition tools on a single pane-of-glass | |
CN103456314A (zh) | 一种情感识别方法以及装置 | |
US20150254211A1 (en) | Interactive data manipulation using examples and natural language | |
US20230237255A1 (en) | Form generation method, apparatus, and device, and medium | |
CN103440234B (zh) | 自然语言理解系统及方法 | |
CN107589828A (zh) | 基于知识图谱的人机交互方法及系统 | |
CN107609302B (zh) | 一种产品工艺结构生成方法及系统 | |
WO2021238081A1 (zh) | 语音包推荐方法、装置、设备及存储介质 | |
CN101231567A (zh) | 基于手写识别的人机交互方法和系统及运行该系统的设备 | |
US20190205383A1 (en) | Method for intelligent assistance | |
CN108845797A (zh) | 一种语音识别型编程方法、装置及计算机设备 | |
CN110162768A (zh) | 实体关系的获取方法、装置、计算机可读介质及电子设备 | |
CN109922131A (zh) | 基于区块链的数据存储方法、装置、设备及存储介质 | |
CN112800195B (zh) | 一种对话机器人的配置方法及系统 | |
CN108446117A (zh) | 在语音对话平台的产品中配置ui的方法及系统 | |
Matuszewski et al. | Designing movement driven audio applications using a web-based interactive machine learning toolkit | |
CN107656726A (zh) | 一种互联网信息及技术共享平台及方法 | |
US11876756B2 (en) | Graph-based natural language generation for conversational systems | |
CN118613803A (zh) | 多方向生成编辑 | |
Turner et al. | JavaScript for Sound Artists: Learn to Code with the Web Audio API |
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 |