CN112732743B - 一种基于中文自然语言的数据分析方法及装置 - Google Patents
一种基于中文自然语言的数据分析方法及装置 Download PDFInfo
- Publication number
- CN112732743B CN112732743B CN202110036807.0A CN202110036807A CN112732743B CN 112732743 B CN112732743 B CN 112732743B CN 202110036807 A CN202110036807 A CN 202110036807A CN 112732743 B CN112732743 B CN 112732743B
- Authority
- CN
- China
- Prior art keywords
- data analysis
- analyzed
- text
- word
- semantic
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/243—Natural language query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Machine Translation (AREA)
Abstract
本发明提供一种基于中文自然语言的数据分析方法及装置,所述方法包括:接收客户端发送的查询请求,并根据所述查询请求获得待分析文本;对所述待分析文本进行数据分析信息提取,获得所述待分析文本的数据分析信息;根据所述数据分析信息生成查询信息,并基于所述查询信息获得待分析数据;根据所述数据分析信息从分析模型库中,获得所述待分析文本对应的数据分析模型;根据所述待分析文本对应的数据分析模型以及所述待分析数据,获得所述待分析文本对应的数据分析结果并将所述待分析文本对应的数据分析结果返回给所述客户端。所述装置用于执行上述方法。本发明实施例提供的基于中文自然语言的数据分析方法及装置,提高了数据分析的效率。
Description
技术领域
本发明涉及人工智能技术领域,具体涉及一种基于中文自然语言的数据分析方法及装置。
背景技术
基于自然语言处理技术,可以识别用户语言描述的操作意图,获得用户需要分析的数据,进行数据分析。
现有技术中,对于数据的分析,包括基于传统的数据仓库建模体系的数据分析展现方法和全自助式可视化分析方法。基于传统的数据仓库建模体系的数据分析展现方法利用现代数据仓库技术,通过建模体系对数据、元数据、数据之间的关系进行描述,利用现代可视化展现技术进行数据分析的一种方法。但是,基于传统的数据仓库建模体系的数据分析展现方法存在数据处理链条过长、处理过程复杂、技术门槛高、响应时间长等缺点。全自助式可视化分析方法通过敏捷BI工具,直接访问数据库或者文本中的数据,再借由相应的可视化工具,进行自主的数据分析和可视化展现。但是,全自助式可视化分析方法在应用中需要用户具有一定的技术背景,比如会写SQL,会一些简单的脚本。同时还要有业务背景,需要了解底层数据的逻辑,数据的存储结构等等,具有一定的技术门槛,并且在数据分析过程中需要人工干预,降低了数据分析的效率。
发明内容
针对现有技术中的问题,本发明实施例提供一种基于中文自然语言的数据分析方法及装置,能够至少部分地解决现有技术中存在的问题。
一方面,本发明提出一种基于中文自然语言的数据分析方法,包括:
接收客户端发送的查询请求,并根据所述查询请求获得待分析文本;
对所述待分析文本进行数据分析信息提取,获得所述待分析文本的数据分析信息;
根据所述数据分析信息生成查询信息,并基于所述查询信息获得待分析数据;
根据所述数据分析信息从分析模型库中,获得所述待分析文本对应的数据分析模型;
根据所述待分析文本对应的数据分析模型以及所述待分析数据,获得所述待分析文本对应的数据分析结果并将所述待分析文本对应的数据分析结果返回给所述客户端。
另一方面,本发明提供一种基于中文自然语言的数据分析装置,包括:
接收单元,用于接收客户端发送的查询请求,并根据所述查询请求获得待分析文本;
提取单元,用于对所述待分析文本进行数据分析信息提取,获得所述待分析文本的数据分析信息;
生成单元,用于根据所述数据分析信息生成查询信息,并基于所述查询信息获得待分析数据;
获得单元,用于根据所述数据分析信息从分析模型库中,获得所述待分析文本对应的数据分析模型;
分析单元,用于根据所述待分析文本对应的数据分析模型以及所述待分析数据,获得所述待分析文本对应的数据分析结果并将所述待分析文本对应的数据分析结果返回给所述客户端。
再一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述基于中文自然语言的数据分析方法的步骤。
又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述基于中文自然语言的数据分析方法的步骤。
本发明实施例提供的基于中文自然语言的数据分析方法及装置,能够接收客户端发送的查询请求,并根据查询请求获得待分析文本,对待分析文本进行数据分析信息提取,获得待分析文本的数据分析信息,根据数据分析信息生成查询信息,并基于查询信息获得待分析数据,根据数据分析信息从分析模型库中,获得待分析文本对应的数据分析模型,根据待分析文本对应的数据分析模型以及待分析数据,获得待分析文本对应的数据分析结果并将待分析文本对应的数据分析结果返回给所述客户端,通过用户输入的意图,自动获得相应的数据并进行数据分析,提高了数据分析的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明第一实施例提供的基于中文自然语言的数据分析***的结构示意图。
图2是本发明第二实施例提供的基于中文自然语言的数据分析方法的流程示意图。
图3是本发明第三实施例提供的基于中文自然语言的数据分析方法的流程示意图。
图4是本发明第四实施例提供的基于中文自然语言的数据分析方法的流程示意图。
图5是本发明第五实施例提供的语义网络的结构示意图。
图6是本发明第六实施例提供的基于中文自然语言的数据分析方法的流程示意图。
图7是本发明第七实施例提供的基于中文自然语言的数据分析方法的流程示意图。
图8是本发明第八实施例提供的语义规则状态机的结构示意图。
图9是本发明第九实施例提供的词向量与语义规则状态机中的每条识别分支进行匹配的流程图。
图10是本发明第十实施例提供的基于中文自然语言的数据分析装置的结构示意图。
图11是本发明第十一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明实施例提供的基于中文自然语言的数据分析方法,能够解决传统数据分析,在实施过程中,存在的配置过程复杂,成本过高的问题。还能够解决传统数据分析门槛高和需求响应慢等问题。
图1是本发明第一实施例提供的基于中文自然语言的数据分析***的结构示意图,如图1所示,本发明实施例提供的基于中文自然语言的数据分析***包括客户端1和服务器2,其中:
客户端1与服务器2通信连接。其中,客户端1包括但不限于移动终端、笔记本电脑和台式机。
用户通过客户端1向服务器2发送查询请求,服务器2执行本发明实施例提供的基于中文自然语言的数据分析方法对根据所述查询请求获得的待分析文本进行数据分析,获得所述待分析文本对应的数据分析结果并返回给客户端1。
图2是本发明第二实施例提供的基于中文自然语言的数据分析方法的流程示意图,如图2所示,本发明实施例提供的基于中文自然语言的数据分析方法,包括:
S201、接收客户端发送的查询请求,并根据所述查询请求获得待分析文本;
具体地,用户通过客户端向服务器发送查询请求,所述查询请求可以包括用户输入到所述客户端的文字信息或者语音信息。所述服务器会接收所述查询请求,如果所述查询请求包括用户输入的文字信息,那么所述服务器可以直接获取用户输入的文字信息作为待分析文本。如果所述查询请求包括用户输入的语音信息,那么所述服务器可以通过语音识别技术将语音信息转换成文本信息,将转换获得的文本信息作为待分析文本。其中,本发明实施例提供的基于中文自然语言的数据分析方法的执行主体包括但不限于服务器。
例如,用户通过键盘向台式机输入“我想看看今年销售收入大于100万的销售部门有哪些”,台式机会将上述用户输入文本携带在查询请求中发送给服务器,服务器从查询请求中获取上述输入文本:我想看看今年销售收入大于100万的销售部门有哪些,作为待分析文本。
例如,用户通过麦克风说出“我想看看今年销售收入大于100万的销售部门有哪些”,用户的智能手机接收用户的语音输入,生成对应的语音信息,将生成的语音信息携带在查询请求中发送给服务器。服务器从智能手机发送的查询请求中获取语音信息,通过语音识别技术将语音信息转换成文本信息:我想看看今年销售收入大于100万的销售部门有哪些,将转换后的文本信息作为待分析文本。
S202、对所述待分析文本进行数据分析信息提取,获得所述待分析文本的数据分析信息;
具体地,所述服务器在获得所述待分析文本之后,会对所述待分析文本进行数据分析信息提取,从所述待分析文本提取出用于后续数据查询和分析的词语以及相关信息,作为所述待分析文本的数据分析信息。对所述待分析文本进行数据分析信息提取的具体过程详见下文所述,此处不进行赘述。
S203、根据所述数据分析信息生成查询信息,并基于所述查询信息获得待分析数据;
具体地,所述服务器可以基于所述数据分析信息,获得词语对应的查询字段和数据表,作为要查询的字段和数据表,并基于查询字段和数据表的对应关系确定关联方式,所述服务器基于上述查询字段、数据表以及关联方式生成查询信息。所述服务器根据上述查询信息访问数据库,查询对应的数据表,可以获得待分析数据。其中,所述数据分析信息还可以包括比较类的词语和/或时间范围等词语,所述服务器可以基于上述比较类的词语和/或时间范围等词语,获得过滤条件,然后基于上述查询字段、数据表、关联方式以及过滤条件生成查询信息。可理解的是,所述查询信息可以通过数据库查询语句表达,例如生成的查询信息为SQL查询语句。
S204、根据所述数据分析信息从分析模型库中,获得所述待分析文本对应的数据分析模型;
具体地,所述服务器可以根据所述数据分析信息包括的词语,从分析模型库中进行数据分析模型的匹配,将匹配获得的数据分析模型,作为所述待分析文本对应的数据分析模型,所述待分析文本对应的数据分析模型可以包括一个数据分析模型,两个数据分析模型或者两个以上的数据分析模型。其中,所述分析模型库是预设的,包括多个数据分析模型。所述数据分析模型根据实际需要进行设置,本发明实施例不做限定。
例如,数据分析模型可以分为如下几类:
趋势分析模型:用于分析一段时期以来某些维度、某些指标在一定条件下的变化情况。
对比分析模型:用于分析各维度项某些指标在一定条件下的对比情况。
结构/占比分析模型:用于分析各维度项以及子项的各种占比情况。
相关性分析模型:用于分析不同维度项不同指标组合下的分布情况。
排名分析模型:用于分析各维度项、各维度项某个指标、各地区等不同条件下的排名情况。
定值分析模型:用于分析某些特定条件下的指标数值以及相关的属性。
明细查询模型:用于根据不同语义要素,生成明细结果集。
S205、根据所述待分析文本对应的数据分析模型以及所述待分析数据,获得所述待分析文本对应的数据分析结果并将所述待分析文本对应的数据分析结果返回给所述客户端。
具体地,所述服务器在获得所述待分析文本对应的数据分析模型和所述待分析数据之后,通过所述待分析文本对应的数据分析模型对所述待分析数据进行数据分析,获得的分析结果作为所述待分析文本对应的数据分析结果。所述服务器在获得所述待分析文本对应的数据分析结果之后,会将所述待分析文本对应的数据分析结果返回给所述客户端,所述客户端会显示所述待分析文本对应的数据分析结果以供用户查看。其中,所述待分析文本对应的数据分析结果可以以图表、文字以及语音播报等方式进行展示,根据实际需要进行设置,本发明实施例不做限定。
本发明实施例提供的基于中文自然语言的数据分析方法,能够接收客户端发送的查询请求,并根据查询请求获得待分析文本,对待分析文本进行数据分析信息提取,获得待分析文本的数据分析信息,根据数据分析信息生成查询信息,并基于查询信息获得待分析数据,根据数据分析信息从分析模型库中,获得待分析文本对应的数据分析模型,根据待分析文本对应的数据分析模型以及待分析数据,获得待分析文本对应的数据分析结果并将待分析文本对应的数据分析结果返回给所述客户端,通过用户输入的意图(文字或者语音),自动获得相应的数据并进行数据分析,提高了数据分析的效率。此外,在数据分析的过程中,无需用户的人工干预,降低了数据分析的门槛,提高了适用范围并进一步提高了数据分析的效率。
图3是本发明第三实施例提供的基于中文自然语言的数据分析方法的流程示意图,如图3所示,在上述各实施例的基础上,进一步地,所述对所述待分析文本进行数据分析信息提取,获得所述待分析文本的数据分析信息包括:
S2021、通过第一词库和第二词库对所述待分析文本进行分词处理,获得所述待分析文本的词向量;其中,所述第二词库是预先获得的;
具体地,所述服务器会通过第一词库对所述待分析文本进行分词,获得所述待分析文本包括的每个词语,然后对每个词语进行词性标注,获得每个词语的词性。所述服务器还会通过第二词库对通过第一分词获得分词结果进行修正,即进行词语的合并和/或拆分,并对修正后的分词结果中包括的词语进行分类标注,再将修正后的分词结果中包括的每个词语按照阅读顺序进行排序,获得所述待分析文本的词向量。所述待分析文本的词向量包括各个词语的排列顺序、每个词语、每个词语的词性和/或每个词语的分类。可理解的是,对于第一词库中没有的词语,词语的词性可以标注为空或不标注,对于第二词库中没有的词语,词语的分类可以标注为空或不标注。其中,所述第二词库是预先获得的。所述第一词库为在当前业界已形成标准词库,本发明直接使用业界的标准词库作为第一词库。
S2022、根据所述词向量以及语义规则状态机,获得所述待分析文本对应的特征要素,每个特征要素对应所述语义规则状态机中的一条识别分支;其中,所述语义规则状态机是预先生成的,包括多条识别分支;
具体地,所述服务器在获得所述待分析文本的词向量之后,可以根据所述词向量和语义规则状态机,获得所述待分析文本对应的特征要素,所述待分析文本对应的特征要素可以有一个,两个或者两个以上的特征要素。每个特征要素与所述语义规则状态机中的一条识别分支匹配,每个特征要素与匹配的识别分支对应。其中,所述语义规则状态机是预先生成的,包括多条识别分支。可理解的是,如果没有获得所述待分析文本对应的特征要素,那么所述待分析文本的特征信息的提取失败。
例如,所述语义规则状态机可以通过特征语义文法文件生成,所述特征语义文法文件是预设的。所述特征语义文法文件可以通过语义特征识别文法语言(SemanticFeature Recognition Grammar Language,简称F语言)进行定义,F语言能够以脚本化的方式定义特征语义文法文件,用于对自然语言文本进行识别和特征提取,易于理解和维护且执行效率高。
S2023、根据每个特征要素以及每个特征要素对应的识别分支所对应的转化规则,获得所述待分析文本的数据分析信息。
具体地,所述服务器在获得所述待分析文本对应的特征要素之后,对于每个特征要素,根据每个特征要素以及每个特征要素对应的识别分支所对应的转化规则,获得每个特征要素对应的特征信息,各个特征要素对应的特征信息构成所述待分析文本的特征信息。其中,识别分支所对应的转化规则是预设的。
图4是本发明第四实施例提供的基于中文自然语言的数据分析方法的流程示意图,如图4所示,在上述各实施例的基础上,进一步地,所述通过第一词库和第二词库对所述待分析文本进行分词处理,获得所述待分析文本的词向量包括:
S401、通过所述第一词库对所述待分析文本进行分词和词性标注,获得分词结果;
具体地,所述服务器可以通过所述第一词库对所述待分析文本进行分词,并对分词之后获得的每个词语进行词性标注,获得分词结果。所述分词结果包括各个词语以及每个词语的词性。
例如,所述服务器基于第一词库对待分析文本“我想看看2018年以来各地区销售收入的变化情况?”进行分词,获得如下分词结果:
我想看看2018年以来各地区销售收入的变化情况?
在对上述分词结果中的每个词语进行词性标注,获得表1所示的分词结果。
表1分词结果
S402、通过所述第二词库对所述分词结果进行修正和分类,获得所述待分析文本的词向量。
具体地,所述服务器在获得所述分词结果之后,通过第二词库对分词结果进行修正,即对词语进行合并和/或拆分,并对修正后的分词结果中包括的词语进行分类标注,再将修正后的分词结果中包括的每个词语按照阅读顺序进行排序,获得所述待分析文本的词向量。其中,所述第二词库是预先获得的。
其中,第二词库中的词语可以通过语义网络获得,语义网络是一种用图来表示知识的结构化方式。在一个语义网络中,信息被表达为一组节点,结点通过一组带标记的有向直线彼此相连,用于表示节点间的关系。
在本发明中,语义网络的节点由概念和实体两种节点构成,节点之间的连线表示节点之间的所属关系。概念用于描述数据分析中的业务对象,比如数据表、维度、度量、指标等;实体是业务对象的具体成员,比如地区是概念,其中的北京、上海、广州等成员则是概念包括的实体对象;实体之间可以含有层级关系。语义网络在软件实现中以有向图的形式缓存于内存中,以加速使用效率。
对于某些应用场景,可以预先构造语义网络图,通过语义网络生成第二词库,语义网络中的概念和实体作为词语组合成第二词库,概念和实体根据实际需要进行定义,本发明实施例不做限定。通过第二词库进行分词修正后,为词语标注分类,分类包括概念和实体。在第二词库的分类中,概念根据来源的业务对象不同,又可以分为下面几类,:
1)维度:对应维度实体,维度实体例如单位、科目、产品等等;
2)数据表:对应的是数据表实体,数据表实体例如现金流量表、销售合同表等等;
3)度量:对应的是度量实体,度量实体例如销售收入、合同回款额等等。
图5是本发明一实施例提供的语义网络的结构示意图,如图5所示,经营情况为概念,地区、销售收入和销售成本为概念,地区为维度概念,销售收入和销售成本为度量概念,北京、上海和天津为地区包括的实体,海淀和朝阳北京的下一级实体。
例如,服务器通过第二词库对表1所示的分词结果进行修正并标注分类之后,获得表2所示的词向量。如表2所示,销售收入为第二词库中的词语,将通过第一词库分词获得的两个词语销售和收入合并为一个词语,并标注分类为概念,细分为度量;地区既为第一词库中的词语,又是第二词库中的词语,对地区添加分类,为概念,细分为维度。表2中的序号,表示词语的排列顺序,也可以代表词语在待分析文本中的位置。可理解的是,对于第二词库中没有的词语,不标注分类。
表2词向量
序号 | 词 | 词性 | 分类 |
1 | 我 | r/代词 | |
2 | 想 | v/动词 | |
3 | 看看 | v/动词 | |
4 | 2018 | m/数词 | |
5 | 年 | t/时间词 | |
6 | 以来 | t/时间词 | |
7 | 各 | r/代词 | |
8 | 地区 | n/名词 | 概念:维度 |
9 | 销售收入 | - | 概念:度量 |
10 | 的 | u/助词 | |
11 | 变化 | v/动词 | |
12 | 情况 | n/名词 | |
13 | ? | w/标点 |
图6是本发明第六实施例提供的基于中文自然语言的数据分析方法的流程示意图,如图6所示,在上述各实施例的基础上,进一步地,所述根据所述词向量以及语义规则状态机,获得所述待分析文本对应的特征要素包括:
S601、将所述词向量与所述语义规则状态机中的每条识别分支进行匹配;
具体地,所述服务器会将所述词向量与所述语义规则状态机中的每条识别分支进行匹配,以确定所述词向量中是否存在词语与每条识别分支匹配,即可以确定所述词向量中的哪些词语与所述识别分支匹配,或者确定所述词向量中不存在与所述识别分支匹配的词语。可理解的是,如果所述词向量与所述语义规则状态机中的所有识别分支都不匹配,那么所述服务器可以输出无法获取特征要素的提示信息。
S602、若判断获知所述词向量包括的词语与所述识别分支匹配,则将与所述识别分支匹配的词语作为与所述识别分支对应的特征要素。
具体地,所述服务器如果判断出所述词向量包括的词语与所述识别分支匹配,那么将与所述识别分支匹配的词语作为所述识别分支对应的特征要素。可理解的是,所述词向量包括的词语中可以获得一个词语与所述识别分支匹配,也可以获得多个词语与所述识别分支匹配。
在上述各实施例的基础上,进一步地,所述将所述词向量与所述语义规则状态机中的每条识别分支进行匹配包括:
按照所述词向量包括的词语的排列顺序,根据每个词语的词语信息以及语义匹配规则将每个词语与每条识别分支包括的第一个语义单元进行匹配;其中,每条识别分支包括至少一个语义单元;其中,所述词语信息包括所述词语、所述词语的词性或者所述词语的分类中的至少一个信息;其中,所述语义匹配规则是预设的。
具体地,所述服务器可以按照所述词向量包括的词语的排列顺序,将每个词语与每条识别分支包括的第二个语义单元进行匹配,在匹配的时候,可以根据所述词语的词语信息以及所述语义匹配规则,判断所述词语与所述第二个语义单元是否匹配。所述词语信息包括所述词语、所述词语的词性或者所述词语的分类中的至少一个信息。所述语义单元根据实际需要进行设置,本发明实施例不做限定。每条识别分支包括至少一个语义单元。所述语义匹配规则是预设的。
例如,所述语义单元为常量语义单元,包括至少一个常量,所述常量为设定的数值。所述语义单元为单词语义单元,包括至少一个词对象的词性。所述语义单元为截止语义单元,在指定的语义前截止,参数传入截止的语义单元声明,语义为词对象。所述语义单元为到达语义单元,到指定的语义截止,参数传入截止的语义单元声明,语义为词对象。所述语义单元为排除语义单元,指定的语义不允许出现。所述语义单元为分句语义单元,对指定的模式进行匹配,匹配之后将模式所属的整个语句提取出来。所述语义单元为字典语义单元,字典语义单元按引用的字典进行词语匹配。所述语义单元为开始语义单元,用于判断当前词语是否为词向量的第一个词语。所述语义单元为结束语义单元,用于当前词语是否为词向量的最后一个词语。所述语义单元为引用语义单元,用于引用其他的语义单元。所述语义单元为条目编号语义单元,用于识别当前词语是否为条目或目录编号。所述语义单元为概念语义单元,概念语义单元定义概念,用于指定语义网络中的概念。所述语义单元为实体语义单元,实体语义单元用于指定语义网络中的实体。其中,所述语义为词对象,所述词对象为词语,根据实际需要进行设置,本发明实施例不做限定。所述模式根据实际需要进行设置,本发明实施例不做限定。
例如,所述语义匹配规则包括至少一个匹配条件,每个语义单元对应一个匹配条件。
对于常量语义单元,对应的匹配条件为:词语与一个常量相同,那么词语与常量语义单元匹配;或者,词语与常量的开头部分相同,那么继续比较下一个词语,如果连续几个词语的组合能够与常量相同,那么这几个词语与常量语义单元匹配。
对于单词语义单元,可以用word表示,对应的匹配条件为:按声明的词性匹配当前词语的词性,例如word(m),在当前词词性为m(数词)时匹配成功。
对于截止语义单元,可以用before表示,表达式为before(next),对应的匹配条件为:从当前词语的位置P1开始,对next语义单元进行后续匹配,如果next从位置P2开始匹配成功,则从P1(包含)到P2(不包含)之间的位置的词语为匹配结果,词向量当前位置移动至P2-1。其中,next表示截止的语义单元或引用语义单元。
对于到达语义单元,可以用until表示表达式为until(next):从当前词语的位置P1开始,对next语义单元进行后续匹配,如果next从位置P2对应的词向量开始匹配成功,则从P1(包含)到P2(包含)之间的位置的词向量为匹配结果,词向量的当前位置移动至P2。其中,next表示到达语义单元或引用语义单元。
对于排除语义单元,可以用not表示:排除语义单元不进行实际的匹配,但会对后续的语义单元进行限制,在后续语义单元与词向量进行匹配时禁止出现排除语义元设定的词向量。
对于分句语义单元,可以用sentence表示,表达式为sentence(expr),对应的匹配条件为:从当前词语开始对expr进行匹配,如果成功匹配expr位置为从P1(包含)到P2(不包含)。那么,从P1往前搜索任一标点符号“,。!?”出现的位置,记为S1(不存在时记为-1);从P2往后搜索任一标点符号“,。!?”出现的位置,记为S2(不存在时记录最末尾位置)。分句语义单元匹配的范围则为从S1+1(包含)到S2+1(不包含)之间的词向量。其中,expr表示语义单元或者引用语义单元。
对于字典语义单元,可以用dict表示,对应的匹配条件为:加载指定的字典的脚本文件,如果当前词语在字典中出现,则匹配成功,否则当前词语没有出现在字典中,那么匹配不成功。
对于开始语义单元,可以用bof表示,对应的匹配条件为:当前词语为词向量的第一个词语时,匹配成功,否则,当前词语不是词向量的第一个词,匹配不成功。
对于结束语义单元,可以用eof表示,对应的匹配条件为:当前已经读取到词向量的末尾(没有当前词语)时,匹配成功,否则读取到词向量的末尾,还能获得当前词语,匹配不成功。
对于引用语义单元,对应的匹配条件为:将当前词语与引用的语义单元进行匹配,如果匹配成功,在进行后续识别;如果匹配不成功,当前词语匹配不成功。例如某个识别分支time_after中引用的语义单元time_year_spec,识别时从当前词语位置开始对语义单元time_year_spec进行递归识别,匹配成功后再进行后续识别。
对于条目编号语义单元,可以用CatagoryID表示,对于的匹配条件为:穷举文档中目录和条目编号可能出现的表示形式,进行匹配,表示形式例如为“一、”、“(1)”、“1.”、“1.1.2”等等。如果当前词语与列举的一种表现形式相同,那么匹配成功,如果当前词语与列举的所有表现形式都不相同,那么匹配失败。
对于概念语义单元,可以用concept表示,对应的匹配条件为:在当前词语的分类为概念时,匹配成功,否则当前词语的分类不为概念,匹配不成功。
对于实体语义单元,可以用entity表示,对应的匹配条件为:在当前词分类为实体时,匹配成功,否则当前词语的分类不为实体,匹配不成功。
在上述各实施例的基础上,进一步地,本发明实施例提供的基于中文自然语言的数据分析方法还包括:
若判断获知所述词语与所述识别分支包括的第一个语义单元匹配,则从所述词语的下一个词语开始按照所述词向量包括的词语的排列顺序依次将每个词语与所述识别分支包括的剩余语义单元进行匹配,直到完成所述识别分支的匹配。
具体地,所述服务器在判断获知所述词语与所述识别分支包括的第一个语义单元匹配之后,那么会根据所述修正后的词向量包括的词语的排列顺序,获得所述词语的下一个词语作为当前词语,并获取第一个语义单元的下一个语义单元作为当前语义单元,然后将所述当前词语与当前语义单元进行匹配,如果匹配成功,那么获取当前词语的下一个词语作为当前词语,并获取当前语义单元的的下一个语义单元作为当前语义单元,继续进行匹配。如果匹配不成功,那么获取当前词语的下一个词语作为当前词语,与当前语义单元重新进行匹配。不断重复上述过程,将当前词语与当前语义单元进行匹配,直到完成所述识别分支的匹配。其中,所述识别分支包括的剩余语义单元是指所述识别分支中除了第一个语义单元以外的语义单元。
在上述各实施例的基础上,进一步地,每个数据分析模型包括必要匹配项;相应地,所述根据所述数据分析信息从分析模型库中,获得所述待分析文本对应的数据分析模型包括:
若判断获知所述数据分析信息对应所述数据分析模型的所有必要匹配项,则将所述数据分析模型作为所述待分析文本对应的一个数据分析模型。
具体地,所述数据分析模型可以包括必要匹配项和非必要匹配项,必要匹配项是所述数据分析模型进行数据分析时必不可少的参数,所述非必要匹配项是所述数据分析模型进行数据分析时的可选参数。所述必要匹配项和非必要匹配项是预先设置的。
所述服务器根据所述数据分析信息包括的每个词语,可以查询获得每个词语对应的查询参数,将所述数据分析信息包括的各个词语对应的查询参数与所述数据分析模型的所有必要匹配项进行比较,如果所述数据分析信息包括的各个词语对应的查询参数与所述数据分析模型的所有必要匹配项对应,那么所述数据分析模型可以用于对所述数据分析信息进行数据分析,将所述数据分析模型作为所述待分析文本对应的一个数据分析模型。如果所述数据分析信息包括的各个词语对应的查询参数中缺少所述数据分析模型的任何一个必要匹配项,那么所述数据分析模型不适于对所述数据分析信息进行数据分析,不会将所述数据分析模型作为所述待分析文本对应的一个数据分析模型。其中,每个词语与查询参数的对应关系是预设的。所述查询参数可以为数据表和字段,根据实际需要进行设置,本发明实施例不做限定。其中,查询参数与必要匹配项对应的判断,根据实际需要进行设置,本发明实施例不做限定。
例如,数据分析模型A包括必要匹配项销售额指标、销售额指标对应的数据表、部门维度、部门维度对应的数据表。数据分析信息B包括词语销售收入和销售部门,销售收入对应的查询参数为销售额指标以及ZB_DATA表,销售部门对应的查询参数为部门维度以及DIM_BM表。其中,ZB_DATA表为销售额指标对应的数据表,DIM_BM表为部门维度对应的数据表。
所述服务器将数据分析信息B包括的销售收入和销售部门对应的查询参数与数据分析模型A包括的必要匹配项进行比较,可以判断出词语销售收入对应的销售收入指标,与必要匹配项销售收入指标相同,ZB_DATA表为销售收入指标对应的数据表,销售部门对应的部门维度与必要匹配项部门维度相同,DIM_BM表为部门维度对应的数据表,因此,数据分析信息B包括的词语销售和和销售部门对应的查询参数与数据分析模型A的所有必要匹配项对应,可以将数据分析模型A作为获得数据分析信息B的待分析文本的一个数据分析模型。
例如,当查询参数与必要匹配项相同时,确定查询参数与必要匹配项对应;当查询参数与必要匹配项属于相同的概念或者实体,确定查询参数与必要匹配项对应;当查询参数与必要匹配项的类型相同,比如都是数据表类型,确定查询参数与必要匹配项对应。
图7是本发明第七实施例提供的基于中文自然语言的数据分析方法的流程示意图,如图7所示,在上述各实施例的基础上,进一步地,每个数据分析模型还包括非必要匹配项;相应地,所述方法还包括:
S701、若判断获知所述待分析文本对应的数据分析模型有多个,则根据每个数据分析模型与所述数据分析信息对应的必要匹配项和非必要匹配项计算每个数据分析模型与所述待分析文本的匹配度;
具体地,所述数据分析模型可以包括必要匹配项和非必要匹配项,必要匹配项是所述数据分析模型进行数据分析时必不可少的参数,所述非必要匹配项是所述数据分析模型进行数据分析时的可选参数。所述必要匹配项和非必要匹配项是预先设置的。
所述服务器在获得所述待分析文本对应的数据分析模型之后,可以统计所述待分析文本对应的数据分析模型中的数据分析模型的数量,如果数据分析模型的数量大于等于2,那么判断出所述待分析文本对应的数据分析模型有多个。然后,所述服务器根据每个数据分析模型与所述数据分析信息对应的必要匹配项和非必要匹配项计算每个数据分析模型与所述待分析文本的匹配度。
例如,待分析文本X对应数据分析模型C和数据分析模型D,数据分析模型C有2个必要匹配项和3个非必要匹配项,数据分析模型D有3个必要匹配项和2个非必要匹配项。待分析文本X对应的数据分析信息与数据分析模型C有2个必要匹配项和一个非必要匹配项对应,待分析文本X对应的数据分析信息与数据分析模型D有3个必要匹配项和0个非必要匹配项对应。设定一个必要匹配项对应的匹配值为2,一个非必要匹配项对应的匹配值为1,那么数据分析模型C与待分析文本X的匹配度为2+2+1=5,数据分析模型D与待分析文本X的匹配度为2+2+2=6。
S702、按照所述匹配度由高到低的顺序依次根据所述数据分析模型以及所述待分析数据进行数据分析。
具体地,所述服务器按照所述匹配度由高到低的顺序依次根据所述数据分析模型以及所述待分析数据进行数据分析,即先通过匹配度最高的数据分析模型对所述待分析数据进行数据分析,然后在通过匹配度次高的数据分析模型对所述待分析数据进行数据分析,以此类推,直到完成所述待分析文本对应的数据分析模型中每个数据分析模型都对所述待分析数据进行了数据分析。
可理解的是,如果所述待分析文本对应的数据分析模型中的数据分析模型的数量较多,可以选择预设数量的匹配度较高的数据分析模型对所述待分析数据进行数据分析。其中,所述预设数量根据实际需要进行设置,本发明实施例不做限定。
可理解的是,在将所述待分析文本对应的数据分析结果返回给所述客户端时,在使用当前数据分析模型进行数据分析时,可以返回通过上一个数据分析模型获得的数据分析结果给所述客户端,以提高数据分析的响应效率。
在上述各实施例的基础上,进一步地,所述待分析文本对应的数据分析结果包括图表数据、文本数据以及语音播报数据。
具体地,所述服务器在获得所述待分析文本对应的数据分析结果之后,可以基于所述待分析文本对应的数据分析结果获得图表数据、文本数据已经语音播报数据,图表数据即将数据分析结果中的部分或者全部内容通过图表展示对应的数据,所述文本数据即将数据分析结果中的部分或者全部内容通过文字展示对应的数据,语音播报数据即数据分析结果中可以通过语音展现的文字对应的数据。客户端在接收到包括图表数据、文本数据已经语音播报数据的数据分析结果之后,会将图表数据以图表的形式在屏幕上显示出来,会以文本的方式显示文本数据,会以语音播报的方式输出语音播报数据。
下面一个具体的实施例来说明本发明实施例提供的基于中文自然语言的数据分析方法的实现过程。
用户通过客户端向服务器发送的查询请求中包括:我想看看2018年以来各地区销售收入的变化情况?的文本信息,服务器会获取上述文本信息作为待分析文本。
服务器基于包括第一词库的分词引擎对上述待分析文本进行分词,并标记每个词的词性,获得分词结果。然后,基于包括第二词库的分词引擎在分词结果的基础上,进行修正和分类,对于匹配的分词结果中的词语进行分类标注,对匹配的分词结果中的多个词语进行合并与分类标注,获得上述待分析文本的词向量如表2所示。其中,“地区”被标记为概念,且细分为维度;“销售”和“收入”被合并一个词语并标记为概念,且细分为度量。
预先通过F语言编写特征语义文法文件,命名为dataquery.f,dataquery.f脚本文件的内容如下:
//基础语义单元定义
word_auxiliary="的"|"得"|"地";
all_range="所有"|"全部";
//方法定义
#method_trend(TREND)="变化"word_auxiliary?("情况"|"趋势");
//时间定义
@time_year_spec(YEAR)=word(m)("年"|"年度");
@time_after(TIME.AFTER)=("自从"|"从")?time_year_spec("以来"|"以后");
//概念定义
@all_concept=all_range concept;
@concpet_list=concept+;
上述bidding.f脚本文件通过F语言编写,F语言是一种形式文法语言,语法包括如下要素:
(1)文件
1)脚本规则文件:以.f为扩展名,定义语义单元主体内容;
2)字典文件:以.dict为扩展名,定义查找字典,字典词之间以空白字符分隔。
脚本之间支持引用,通过import关键字引入。
(2)引用
F语言支持脚本之间或字典的引用,引用语法如下:
import"<file_name>";
引用时需要指定扩展名:.f表示引用脚本;.dict表示引用字典。
例如:
import"sys/times.f";
import"name_prefixs.dict";
(3)语义单元
语义单元是语法定义中的一个语法片段,描述一定的语法逻辑。语义单元可以嵌套;语义单元可以公布为语义入口,也可以仅作为内部使用。语义单元的标识不允许重复。语义单元分为查询要素、过滤、分析方法等类型。
语义单元语法为:
[@|$|#]<element_id>[(sign[,param=value])]=<expr>
1)等号定义语义单元,左侧为单元标识,右侧为表达式;
2)以@、$或#符号为前缀对语义单元进行公开,@符号表示为查询要素,$符号表示为过滤,#符号表示分析方法;
3)语义单元标识声明时,可在后缀括号内声明内部标识,用于统一化多种语义单元使用;
4)语义单元引用时,可在后缀括号内传入属性,用于进行个性化识别;
5)等号右侧引用语义单元时,可以使用范围符(..),表示按脚本出现顺序的所有语义单元都进行或组合。
例如:
more_equal(>=)=“不小于”|“不少于”|“超过”;
range_all=“全部”|“所有”;
@concept_all=range_all{0,1}concept;
time_all=time1..time2;
***内置了部分语义单元,内置语义单元可附加语义限定,语法为:
<element_id>[(restriction+)]
其中,***语义单元可以通过限定参数进行控制,如果存在限定参数,仅有一个参数为默认参数,其它参数必须使用<param_name>=<param_value>的模式指定。
(4)运算符
F语言定义的运算符如下:
1)import引用运算符,用于引入依赖的F脚本文件或字典文件;
2)=语义单元定义运算符,定义语义单元的模式规则;
3)@要素语义单元修饰符,表示该语义单元公开且为要素语义;
4)$限定语义单元修饰符,表示该语义单元公开且为限定语义;
5)#分析方法语义单元修饰符,表示该语义单元公开且为分析方法语义;
6)|可选语义组合运算符,匹配指定的任意一种语义单元;
7)..可选语义范围运算符,按照语义单元声明的顺序,对指定范围内出现的语义单元进行匹配,匹配任一语义单元即可;
8)""字符串标识符,表示字面常量值;
9)?可选匹配运算符,表示指定的语义单元可以出现0次或1次;
10)*任意匹配运算符,表示指定的语义单元可以出现多次或不出现;
11)+多次匹配运算符,表示指定的语义单元至少出现一次,不限制重复次数;
12){n,m}限次匹配运算符,表示指定的语义单元至少出现n次,最多出现m次;
13)//正则匹配运算符,反斜杠之间为正则表达式,按给出的正则表达式规则进行匹配;
14)()语义分段运算符,括号内的语义单元组合为一段语义;
15);语义分隔符,分隔语义单元定义语句;
(5)注释
F语言支持为脚本添加注释,支持两种注释方式:
1)行注释:以//开头,注释到行末;
2)块注释:以/*开头,以*/结束,中间的内容为注释
在bidding.f脚本文件中,title.dict为字典文件,是预先定义的,title.dict字典文件包括如下内容:
//条目标题字典
采购单位名称单位名称地址联系人电话集中采购机构询价时间中标金额中标单位名称中标单位地址
//表示行注释,注释到行末,采购单位名称、单位名称、地址、联系人、电话、集中采购机构、询价时间、中标金额、中标单位名称和中标单位地址为定义的词语。
通过F语言解析引擎解析dataquery.f脚本文件,解析其中的语义单元定义,为公开的语义单元生成语义规则状态机,如图8所示。
在如图8所示的语义规则状态机中,
1)从左向右箭头的连线为匹配分支,从右向左箭头的分支为循环分支。
2)小圆点的节点为占位节点,用于进行分支占位或循环占位使用,匹配时需要根据后续的内容匹配。对于占位节点(图8中的圆点):依次识别当前节点出发的后续语义单元,以第一个与当前词语匹配成功的节点为匹配结果,且标记该分支路径为当前分支路径,状态机后续从该分支路径读取下一个语义单元。
3)从同一节点出发的匹配分支为或关系,仅匹配满足条件的第一条分支即可。
4)循环分支可以指定循环次数:
a)?:表示出现一次或者不出现(0次);
b)+:表示至少循环一次,可无限多次;
c)*:表示可以不出现(0次)或出现任意多次;
d){n,m}:表示至少出现n次,最多出现m次
5)虚框表示语义单元的引用,当匹配到引用语义单元时,跳转到被引用语义单元匹配成功后,再继续后续匹配。
6)从开始节点出发的分支,仅为公开的语义单元(以@#$标识符开头的语义单元),非公开的语义单元,会被内联到引用处(嵌入到引用语义单元中)以优化效率。
图8中,语义规则状态机包括@time_afte,@time_year_spec,@all_concept,@concept_list和#method_trend五个识别分支。
服务器根据表2所示的词向量和图8所示的语义规则状态机,可以获得上述待分析文本对应的特征要素。
图9是本发明第九实施例提供的词向量与语义规则状态机中的每条识别分支进行匹配的流程图,如图9所示,服务器将词向量与语义规则状态机中的每条识别分支进行匹配的具体流程如下:
第一步、初始化当前词向量位置为1。
第二步、判断当前词向量位置是否为末尾:
a)如果当前位置为词向量末尾时,结束匹配流程;
b)如果当前位置不是词向量末尾时,继续第三步。
第三步、标记当前词位置,记为P。
第四步、读取语义规则状态机中的识别分支。
第五步、判断识别分支读取状态是否成功:
a)读取成功时,继续第六步;
b)读取的识别分支不存在时,跳转至第十二步。
第六步、获取识别分支的第一个语义单元。
第七步、匹配当前词语与当前语义单元。其中,基于语义匹配规则匹配当前词语与当前语义单元。
第八步、判断第七步的匹配结果:
a)匹配成功时,继续第九步;
b)匹配失败时,跳转至第十三步。
第九步、获取当前识别分支的当前语义单元的下一个语义单元作为当前语义单元。
第十步、判断第九步获取下一个语义单元时是否到达当前识别分支的末尾:
a)如果到达当前识别分支的末尾时,继续第十一步;
b)如果未到达当前识别分支的末尾,跳转至第十五步。
第十一步、记录匹配结果,当前识别分支匹配成功,将从位置P到当前位置对应的词语作为匹配结果,即识别分支对应的特征要素。
第十二步、当前词语位置增加1,跳转至第二步。
第十三步、重置当前词语位置为P。
第十四步、读取语义规则状态机的下一个识别分支,跳转至第五步。
第十五步、当前词位置增加1。
第十六步、判断当前词向量位置是否为末尾:
a)当前词向量位置为词向量末尾时,跳转至第十三步;
b)当前词向量位置不是词向量末尾时,跳转至第七步。
服务器获得的上述待分析文本对应的特征要素如下:
1)@time_after(TIME.AFTER)time_after:匹配的特征要素为“2018年以来”,词语位置:4~6。其中,引用语义单元time_year_spec匹配(“2018年)”,词语位置:4~5。其中,词语位置为表2中的序号。
2)@all_concept:匹配的特征要素为“各地区”,词语位置:7~8。其中,“地区”词被标记为维度概念
3)@concept_list:匹配的特征要素为“销售收入”,词语位置:9。其中,“销售收入”被标记为度量概念
4)#method_trend(TREND):匹配的特征要素为“变化情况”,词语位置:11~12。
根据数据查询的场景特征,预先为识别分支的语义单元定义对应的转化规则,定义的转化规则如下:
1)查询要素识别:以@开头的未标识的语义单元为要素列表,提取匹配的词向量中分类为概念或实体的词语,生成查询要素。
2)TIME.AFTER:标识为TIME.AFTERD的语义单元为时间范围语义。提取匹配词向量中数词(2018)的值,结合当前***日期(2020年),记录查询时间范围;
3)TREND:标识为TREND的语义单元为查询方法,直接记录查询方法为“趋势分析”。
基于如上的转化规则,服务器获得上述待分析文本的特征信息如下:
1)查询时间:从2018年到2020年
2)查询要素:各地区
3)查询要素:销售收入
4)查询方法:趋势分析
服务器会将查询时间:从2018年到2020年作为过滤条件,将地区在语义网络中所对应的实体(北京、上海、天津等)和销售收入作为查询字段,将销售收入对应的数据表作为目标数据表,在目标数据表中根据北京、上海、天津等各个地区对应的实体以及销售收入,查询获得从2018年到2020年各个实体三年的销售收入,作为待分析数据。其中,销售收入与数据表的对应关系是预设的。
服务器会根据趋势分析从分析模型库中,初步确定采用趋势分析模型进行数据分析,然后根据销售收入对应的查询参数为销售额指标以及ZB_DATA表,获得必要匹配项为销售额指标和销售额指标对应的数据表的一个或者几个趋势分析模型,作为上述待分析文本对应的数据分析模型。其中,销售额指标和ZB_DATA表与销售收入的对应关系是预设的。
服务器根据上述待分析文本对应的数据分析模型对上述待分析数据进行数据分析,可以获得上述待分析文本对应的数据分析结果,然后发送给客户端进行展示。
本发明实施例提供的基于中文自然语言的数据分析方法,大大降低了用户进行数据分析的门槛。用户无需了解具体的数据结构,不需要有相关技术背景,也不需要进行复杂的软件配置,仅通过语言和文字描述想要做的数据分析,通过本发明实施例提供的基于中文自然语言的数据分析方法能够自动的进行数据分析,并将数据分析结果进行展现。
图10是本发明第十实施例提供的基于中文自然语言的数据分析装置的结构示意图,如图10所示,本发明实施例提供的基于中文自然语言的数据分析装置包括接收单元1001、提取单元1002、生成单元1003、获得单元1004和分析单元1005,其中:
接收单元1001用于接收客户端发送的查询请求,并根据所述查询请求获得待分析文本;提取单元1002用于对所述待分析文本进行数据分析信息提取,获得所述待分析文本的数据分析信息;生成单元1003用于根据所述数据分析信息生成查询信息,并基于所述查询信息获得待分析数据;获得单元1004用于根据所述数据分析信息从分析模型库中,获得所述待分析文本对应的数据分析模型;分析单元1005用于根据所述待分析文本对应的数据分析模型以及所述待分析数据,获得所述待分析文本对应的数据分析结果并将所述待分析文本对应的数据分析结果返回给所述客户端。
具体地,用户通过客户端向接收单元1001发送查询请求,所述查询请求可以包括用户输入到所述客户端的文字信息或者语音信息。接收单元1001会接收所述查询请求,如果所述查询请求包括用户输入的文字信息,那么接收单元1001可以直接获取用户输入的文字信息作为待分析文本。如果所述查询请求包括用户输入的语音信息,那么接收单元1001可以通过语音识别技术将语音信息转换成文本信息,将转换获得的文本信息作为待分析文本。
在获得所述待分析文本之后,提取单元1002会对所述待分析文本进行数据分析信息提取,从所述待分析文本提取出用于后续数据查询和分析的词语以及相关信息,作为所述待分析文本的数据分析信息。
生成单元1003可以基于所述数据分析信息,获得词语对应的查询字段和数据表,作为要查询的字段和数据表,并基于查询字段和数据表的对应关系确定关联方式,所述服务器基于上述查询字段、数据表以及关联方式生成查询信息。生成单元1003根据上述查询信息访问数据库,查询对应的数据表,可以获得待分析数据。其中,所述数据分析信息还可以包括比较类的词语和/或时间范围等词语,生成单元1003可以基于上述比较类的词语和/或时间范围等词语,获得过滤条件,然后基于上述查询字段、数据表、关联方式以及过滤条件生成查询信息。可理解的是,所述查询信息可以通过数据库查询语句表达,例如生成的查询信息为SQL查询语句。
获得单元1004可以根据所述数据分析信息包括的词语,从分析模型库中进行数据分析模型的匹配,将匹配获得的数据分析模型,作为所述待分析文本对应的数据分析模型,所述待分析文本对应的数据分析模型可以包括一个数据分析模型,两个数据分析模型或者两个以上的数据分析模型。其中,所述分析模型库是预设的,包括多个数据分析模型。所述数据分析模型根据实际需要进行设置,本发明实施例不做限定。
在获得所述待分析文本对应的数据分析模型和所述待分析数据之后,分析单元1005通过所述待分析文本对应的数据分析模型对所述待分析数据进行数据分析,获得的分析结果作为所述待分析文本对应的数据分析结果。分析单元1005在获得所述待分析文本对应的数据分析结果之后,会将所述待分析文本对应的数据分析结果返回给所述客户端,所述客户端会显示所述待分析文本对应的数据分析结果以供用户查看。其中,所述待分析文本对应的数据分析结果可以以图表、文字以及语音播报等方式进行展示,根据实际需要进行设置,本发明实施例不做限定。
本发明实施例提供的基于中文自然语言的数据分析装置,能够接收客户端发送的查询请求,并根据查询请求获得待分析文本,对待分析文本进行数据分析信息提取,获得待分析文本的数据分析信息,根据数据分析信息生成查询信息,并基于查询信息获得待分析数据,根据数据分析信息从分析模型库中,获得待分析文本对应的数据分析模型,根据待分析文本对应的数据分析模型以及待分析数据,获得待分析文本对应的数据分析结果并将待分析文本对应的数据分析结果返回给所述客户端,通过用户输入的意图(文字或者语音),自动获得相应的数据并进行数据分析,提高了数据分析的效率。此外,在数据分析的过程中,无需用户的人工干预,降低了数据分析的门槛,提高了适用范围并进一步提高了数据分析的效率。
本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图11是本发明第十一实施例提供的电子设备的实体结构示意图,如图11所示,该电子设备可以包括:处理器(processor)1101、通信接口(Communications Interface)1102、存储器(memory)1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信。处理器1101可以调用存储器1103中的逻辑指令,以执行如下方法:接收客户端发送的查询请求,并根据所述查询请求获得待分析文本;对所述待分析文本进行数据分析信息提取,获得所述待分析文本的数据分析信息;根据所述数据分析信息生成查询信息,并基于所述查询信息获得待分析数据;根据所述数据分析信息从分析模型库中,获得所述待分析文本对应的数据分析模型;根据所述待分析文本对应的数据分析模型以及所述待分析数据,获得所述待分析文本对应的数据分析结果并将所述待分析文本对应的数据分析结果返回给所述客户端。
此外,上述的存储器1103中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收客户端发送的查询请求,并根据所述查询请求获得待分析文本;对所述待分析文本进行数据分析信息提取,获得所述待分析文本的数据分析信息;根据所述数据分析信息生成查询信息,并基于所述查询信息获得待分析数据;根据所述数据分析信息从分析模型库中,获得所述待分析文本对应的数据分析模型;根据所述待分析文本对应的数据分析模型以及所述待分析数据,获得所述待分析文本对应的数据分析结果并将所述待分析文本对应的数据分析结果返回给所述客户端。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收客户端发送的查询请求,并根据所述查询请求获得待分析文本;对所述待分析文本进行数据分析信息提取,获得所述待分析文本的数据分析信息;根据所述数据分析信息生成查询信息,并基于所述查询信息获得待分析数据;根据所述数据分析信息从分析模型库中,获得所述待分析文本对应的数据分析模型;根据所述待分析文本对应的数据分析模型以及所述待分析数据,获得所述待分析文本对应的数据分析结果并将所述待分析文本对应的数据分析结果返回给所述客户端。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于中文自然语言的数据分析方法,其特征在于,包括:
接收客户端发送的查询请求,并根据所述查询请求获得待分析文本;
对所述待分析文本进行数据分析信息提取,获得所述待分析文本的数据分析信息;
根据所述数据分析信息生成查询信息,并基于所述查询信息获得待分析数据;
根据所述数据分析信息从分析模型库中,获得所述待分析文本对应的数据分析模型;
根据所述待分析文本对应的数据分析模型以及所述待分析数据,获得所述待分析文本对应的数据分析结果并将所述待分析文本对应的数据分析结果返回给所述客户端;
其中,所述对所述待分析文本进行数据分析信息提取,获得所述待分析文本的数据分析信息包括:
通过第一词库和第二词库对所述待分析文本进行分词处理,获得所述待分析文本的词向量;其中,所述第二词库是预先获得的;
根据所述词向量以及语义规则状态机,获得所述待分析文本对应的特征要素,每个特征要素对应所述语义规则状态机中的一条识别分支;其中,所述语义规则状态机是预先生成的,包括多条识别分支;
根据每个特征要素以及每个特征要素对应的识别分支所对应的转化规则,获得所述待分析文本的数据分析信息;
其中,所述根据所述词向量以及语义规则状态机,获得所述待分析文本对应的特征要素包括:
将所述词向量与所述语义规则状态机中的每条识别分支进行匹配;
若判断获知所述词向量包括的词语与所述识别分支匹配,则将与所述识别分支匹配的词语作为与所述识别分支对应的特征要素;
其中,所述将所述词向量与所述语义规则状态机中的每条识别分支进行匹配包括:
按照所述词向量包括的词语的排列顺序,根据每个词语的词语信息以及语义匹配规则将每个词语与每条识别分支包括的第一个语义单元进行匹配;其中,每条识别分支包括至少一个语义单元;其中,所述词语信息包括所述词语、所述词语的词性或者所述词语的分类中的至少一个信息;其中,所述语义匹配规则是预设的;
若判断获知所述词语与所述识别分支包括的第一个语义单元匹配,则从所述词语的下一个词语开始按照所述词向量包括的词语的排列顺序依次将每个词语与所述识别分支包括的剩余语义单元进行匹配,直到完成所述识别分支的匹配。
2.根据权利要求1所述的方法,其特征在于,所述通过第一词库和第二词库对所述待分析文本进行分词处理,获得所述待分析文本的词向量包括:
通过所述第一词库对所述待分析文本进行分词和词性标注,获得分词结果;
通过所述第二词库对所述分词结果进行修正和分类,获得所述待分析文本的词向量。
3.根据权利要求1所述的方法,其特征在于,每个数据分析模型包括必要匹配项;相应地,所述根据所述数据分析信息从分析模型库中,获得所述待分析文本对应的数据分析模型包括:
若判断获知所述数据分析信息包括所述数据分析模型的所有必要匹配项,则将所述数据分析模型作为所述待分析文本对应的一个数据分析模型。
4.根据权利要求3所述的方法,其特征在于,每个数据分析模型还包括非必要匹配项;相应地,所述方法还包括:
若判断获知所述待分析文本对应的数据分析模型有多个,则根据每个数据分析模型与所述数据分析信息对应的必要匹配项和非必要匹配项计算每个数据分析模型与所述待分析文本的匹配度;
按照所述匹配度由高到低的顺序依次根据所述数据分析模型以及所述待分析数据进行数据分析。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述待分析文本对应的数据分析结果包括图表数据、文本数据以及语音播报数据。
6.一种基于中文自然语言的数据分析装置,其特征在于,包括:
接收单元,用于接收客户端发送的查询请求,并根据所述查询请求获得待分析文本;
提取单元,用于对所述待分析文本进行数据分析信息提取,获得所述待分析文本的数据分析信息;
生成单元,用于根据所述数据分析信息生成查询信息,并基于所述查询信息获得待分析数据;
获得单元,用于根据所述数据分析信息从分析模型库中,获得所述待分析文本对应的数据分析模型;
分析单元,用于根据所述待分析文本对应的数据分析模型以及所述待分析数据,获得所述待分析文本对应的数据分析结果并将所述待分析文本对应的数据分析结果返回给所述客户端;
其中,提取单元包括:
第一获得子单元,用于通过第一词库和第二词库对所述待分析文本进行分词处理,获得所述待分析文本的词向量;其中,所述第二词库是预先获得的;
第二获得子单元,用于根据所述词向量以及语义规则状态机,获得所述待分析文本对应的特征要素,每个特征要素对应所述语义规则状态机中的一条识别分支;其中,所述语义规则状态机是预先生成的,包括多条识别分支;
第三获得子单元,用于根据每个特征要素以及每个特征要素对应的识别分支所对应的转化规则,获得所述待分析文本的数据分析信息;
其中,第二获得子单元具体用于将所述词向量与所述语义规则状态机中的每条识别分支进行匹配;若判断获知所述词向量包括的词语与所述识别分支匹配,则将与所述识别分支匹配的词语作为与所述识别分支对应的特征要素;按照所述词向量包括的词语的排列顺序,根据每个词语的词语信息以及语义匹配规则将每个词语与每条识别分支包括的第一个语义单元进行匹配;其中,每条识别分支包括至少一个语义单元;其中,所述词语信息包括所述词语、所述词语的词性或者所述词语的分类中的至少一个信息;其中,所述语义匹配规则是预设的;若判断获知所述词语与所述识别分支包括的第一个语义单元匹配,则从所述词语的下一个词语开始按照所述词向量包括的词语的排列顺序依次将每个词语与所述识别分支包括的剩余语义单元进行匹配,直到完成所述识别分支的匹配。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110036807.0A CN112732743B (zh) | 2021-01-12 | 2021-01-12 | 一种基于中文自然语言的数据分析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110036807.0A CN112732743B (zh) | 2021-01-12 | 2021-01-12 | 一种基于中文自然语言的数据分析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732743A CN112732743A (zh) | 2021-04-30 |
CN112732743B true CN112732743B (zh) | 2023-09-22 |
Family
ID=75590471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110036807.0A Active CN112732743B (zh) | 2021-01-12 | 2021-01-12 | 一种基于中文自然语言的数据分析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732743B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113239206B (zh) * | 2021-06-18 | 2023-05-12 | 广东博维创远科技有限公司 | 一种裁判文书精准化数据归类分析方法及计算机可以读取的存储装置 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470701A (zh) * | 2007-12-29 | 2009-07-01 | 日电(中国)有限公司 | 支持基于有限状态机的语义规则的文本分析器及其方法 |
CN103077164A (zh) * | 2012-12-27 | 2013-05-01 | 新浪网技术(中国)有限公司 | 文本分析方法及文本分析器 |
CN104008090A (zh) * | 2014-04-29 | 2014-08-27 | 河海大学 | 一种基于概念向量模型的多主题提取方法 |
CN106056207A (zh) * | 2016-05-09 | 2016-10-26 | 武汉科技大学 | 一种基于自然语言的机器人深度交互与推理方法与装置 |
CN106055538A (zh) * | 2016-05-26 | 2016-10-26 | 达而观信息科技(上海)有限公司 | 主题模型和语义分析相结合的文本标签自动抽取方法 |
CN109145152A (zh) * | 2018-06-28 | 2019-01-04 | 中山大学 | 一种基于查询词的自适应智能生成图文视频缩略图方法 |
CN109299248A (zh) * | 2018-12-12 | 2019-02-01 | 成都航天科工大数据研究院有限公司 | 一种基于自然语言处理的商业情报收集方法 |
CN111090730A (zh) * | 2019-12-05 | 2020-05-01 | 中科数智(北京)科技有限公司 | 智能语音调度***及方法 |
CN111709235A (zh) * | 2020-05-28 | 2020-09-25 | 上海发电设备成套设计研究院有限责任公司 | 一种基于自然语言处理的文本数据统计分析***及方法 |
CN111753060A (zh) * | 2020-07-29 | 2020-10-09 | 腾讯科技(深圳)有限公司 | 信息检索方法、装置、设备及计算机可读存储介质 |
CN111753527A (zh) * | 2020-06-29 | 2020-10-09 | 平安科技(深圳)有限公司 | 基于自然语言处理的数据分析方法、装置和计算机设备 |
AU2020103004A4 (en) * | 2020-10-25 | 2020-12-24 | Tang, Chia MR | Method to build a document semantic and entity relationship model |
CN112131885A (zh) * | 2019-06-24 | 2020-12-25 | 北京猎户星空科技有限公司 | 语义识别方法、装置、电子设备及存储介质 |
CN112148751A (zh) * | 2019-06-28 | 2020-12-29 | 北京百度网讯科技有限公司 | 用于查询数据的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9767091B2 (en) * | 2015-01-23 | 2017-09-19 | Microsoft Technology Licensing, Llc | Methods for understanding incomplete natural language query |
US9647968B2 (en) * | 2015-03-25 | 2017-05-09 | Pypestream Inc | Systems and methods for invoking chatbots in a channel based communication system |
-
2021
- 2021-01-12 CN CN202110036807.0A patent/CN112732743B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470701A (zh) * | 2007-12-29 | 2009-07-01 | 日电(中国)有限公司 | 支持基于有限状态机的语义规则的文本分析器及其方法 |
CN103077164A (zh) * | 2012-12-27 | 2013-05-01 | 新浪网技术(中国)有限公司 | 文本分析方法及文本分析器 |
CN104008090A (zh) * | 2014-04-29 | 2014-08-27 | 河海大学 | 一种基于概念向量模型的多主题提取方法 |
CN106056207A (zh) * | 2016-05-09 | 2016-10-26 | 武汉科技大学 | 一种基于自然语言的机器人深度交互与推理方法与装置 |
CN106055538A (zh) * | 2016-05-26 | 2016-10-26 | 达而观信息科技(上海)有限公司 | 主题模型和语义分析相结合的文本标签自动抽取方法 |
CN109145152A (zh) * | 2018-06-28 | 2019-01-04 | 中山大学 | 一种基于查询词的自适应智能生成图文视频缩略图方法 |
CN109299248A (zh) * | 2018-12-12 | 2019-02-01 | 成都航天科工大数据研究院有限公司 | 一种基于自然语言处理的商业情报收集方法 |
CN112131885A (zh) * | 2019-06-24 | 2020-12-25 | 北京猎户星空科技有限公司 | 语义识别方法、装置、电子设备及存储介质 |
CN112148751A (zh) * | 2019-06-28 | 2020-12-29 | 北京百度网讯科技有限公司 | 用于查询数据的方法和装置 |
CN111090730A (zh) * | 2019-12-05 | 2020-05-01 | 中科数智(北京)科技有限公司 | 智能语音调度***及方法 |
CN111709235A (zh) * | 2020-05-28 | 2020-09-25 | 上海发电设备成套设计研究院有限责任公司 | 一种基于自然语言处理的文本数据统计分析***及方法 |
CN111753527A (zh) * | 2020-06-29 | 2020-10-09 | 平安科技(深圳)有限公司 | 基于自然语言处理的数据分析方法、装置和计算机设备 |
CN111753060A (zh) * | 2020-07-29 | 2020-10-09 | 腾讯科技(深圳)有限公司 | 信息检索方法、装置、设备及计算机可读存储介质 |
AU2020103004A4 (en) * | 2020-10-25 | 2020-12-24 | Tang, Chia MR | Method to build a document semantic and entity relationship model |
Non-Patent Citations (1)
Title |
---|
自然语言处理发展与应用概述;高源;《中国新通信》;117-118 * |
Also Published As
Publication number | Publication date |
---|---|
CN112732743A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11475209B2 (en) | Device, system, and method for extracting named entities from sectioned documents | |
US11232270B1 (en) | Applied artificial intelligence technology for using natural language processing to train a natural language generation system with respect to numeric style features | |
CN110399457B (zh) | 一种智能问答方法和*** | |
CN108287858B (zh) | 自然语言的语义提取方法及装置 | |
CN107315737B (zh) | 一种语义逻辑处理方法及*** | |
CN109388795B (zh) | 一种命名实体识别方法、语言识别方法及*** | |
CN106776544B (zh) | 人物关系识别方法及装置和分词方法 | |
CN102479191B (zh) | 提供多粒度分词结果的方法及其装置 | |
US20190114479A1 (en) | Method, device, and system, for identifying data elements in data structures | |
CN112035599B (zh) | 基于垂直搜索的查询方法、装置、计算机设备及存储介质 | |
CN111831911A (zh) | 查询信息的处理方法、装置、存储介质和电子装置 | |
CN113961685A (zh) | 信息抽取方法及装置 | |
CN116628173B (zh) | 一种基于关键字提取的智能客服信息生成***及生成方法 | |
CN112860896A (zh) | 语料泛化方法及用于工业领域的人机对话情感分析方法 | |
CN117708157A (zh) | 一种sql语句生成方法和装置 | |
CN111831624A (zh) | 数据表创建方法、装置、计算机设备及存储介质 | |
US20130013604A1 (en) | Method and System for Making Document Module | |
CN112732743B (zh) | 一种基于中文自然语言的数据分析方法及装置 | |
CN109933787B (zh) | 文本关键信息的提取方法、装置及介质 | |
CN111881695A (zh) | 一种审计知识的检索方法及装置 | |
CN101089841B (zh) | 基于知识编码的精确搜索方法和*** | |
CN115203206A (zh) | 数据内容搜索方法、装置、计算机设备及可读存储介质 | |
CN114817498A (zh) | 用户意图识别方法、装置、设备及存储介质 | |
CN114661892A (zh) | 稿件摘要生成方法和装置、设备及存储介质 | |
CN113901219A (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 |