CN109446221B - 一种基于语义分析的交互式数据探查方法 - Google Patents
一种基于语义分析的交互式数据探查方法 Download PDFInfo
- Publication number
- CN109446221B CN109446221B CN201811272645.5A CN201811272645A CN109446221B CN 109446221 B CN109446221 B CN 109446221B CN 201811272645 A CN201811272645 A CN 201811272645A CN 109446221 B CN109446221 B CN 109446221B
- Authority
- CN
- China
- Prior art keywords
- query statement
- database
- analysis result
- dependency grammar
- analysis
- 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
Images
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)
- Machine Translation (AREA)
Abstract
本发明公开了一种基于语义的交互式数据探查方法,包括如下步骤:S1、采用依存文法对使用者输入的查询语句进行解析,得到依存文法解析结果;S2、采用深度学习算法对原始查询语句进行解析,得到深度学习算法解析结果;S3、对步骤S2中得到的深度学习算法解析结果和步骤S1中得到的依存文法解析结果进行综合,得到数据库查询语句;S4、使用步骤S3中得到的最终的数据库查询语句从数据库中查出数据,最后用ECharts库进行数据可视化展示。和拖拽组件或者编码的方式相比,通过本发明进行数据查探,不再需要额外的操作,只需要输入提问的语句,大大降低了使用门槛。
Description
技术领域
本发明涉及计算机领域,具体涉及一种基于语义分析的交互式数据探查方法。
背景技术
随着大数据的发展,对于数据的理解很大程度上会影响后续的处理步骤,而对数据进行探查就是理解数据的有效方法。目前进行数据探查主要通过编写统计代码或者配置规则的方式实现。现有的方式主要具有如下几方面的技术缺陷。
a、繁琐、门槛较高,需要使用者具有编码能力或者熟悉规则配置方法,学习成本高,易出错;
b、效率低,进行一次数据探查需要很多操作步骤,比如对于拖拽组件的方式,需要拖动生成图表的维度、指标和过滤条件等,才能生成一张图表。
c、难以管理,后期查看历史数据时很难理解其含义;
d、无论是编码或者配置规则,使用方式机械、不自然。
e、网易有数、Power BI等***有智能问答功能,但是其功能主要用于自动生成报表,并非针对数据探查。并且其支持的查询语句必须非常规范,不够灵活。
发明内容
针对现有技术的不足,本发明旨在提供一种基于语义分析的交互式数据探查方法,可以从灵活多变的自然语言中解析出使用者的意图,而且实现形式多样的数据展现形式。
一种基于语义的交互式数据探查方法,包括如下步骤:
S1、采用依存文法对使用者输入的查询语句进行解析,得到依存文法解析结果;
S2、采用深度学习算法对原始查询语句进行解析,得到深度学习算法解析结果;
S3、对步骤S1中得到的依存文法解析结果和步骤S2中得到的深度学习算法解析结果进行综合,得到数据库查询语句;
S4、使用步骤S3中得到的最终的数据库查询语句从数据库中查出数据,最后用ECharts库进行数据可视化展示。
进一步地,步骤S1具体包括:
S1.1、对使用者输入的原始查询语句进行分词操作;
S1.2、查询步骤S1.1中分词后得到的每个词语对应的数据库语义;
S1.3、依存文法分析:遍历原始查询语句的依存文法树,配合步骤S1.2中查询得到的数据库语义得到数据库查询语句的各个要素,包括查询字段、聚合函数、过滤条件;对数据库查询语句的各个要素进行整理,转化为符合数据库查询语句语法的解析结果。
更进一步地,步骤S1.1中,采用分词库结巴分词进行分词。
更进一步地,步骤S1.3中,具体采用LTP库对原始查询语句进行依存文法分析。
更进一步地,步骤S1.3中,在对原始查询语句进行依存文法分析之后,还对原始查询语句的顺序结构进行解析,如果顺序解析结果和依存文法分析解析结果不一致,则采用顺序解析结果纠正数据库查询语句的各个要素,从而得到纠正后的数据库查询语句的各个要素,再对纠正后的数据库查询语句的各个要素进行整理,转化为符合数据库查询语句语法的解析结果。
进一步地,步骤S2的具体过程为:
采用双向LSTM模型对原始查询语句和字段名进行编码,得到原始查询语句和字段名的编码结果之后,利用softmax分类算法得到聚合函数、查询字段、过滤条件个数,最后通过seq2seq解码得到具体的过滤条件,从而得到深度学习算法解析结果。
更进一步地,对于原始查询语句的编码,用Attention机制结合字段名的编码结果得到最终的原始查询语句编码。
进一步地,步骤S3中,如果步骤S1中的依存文法解析结构已经正常解析就采用依存文法解析结果作为最终的数据库查询语句,否则采用步骤S2中得到的深度学习算法解析结果作为最终的数据库查询语句。
本发明的有益效果在于:
1、和拖拽组件或者编码的方式相比,通过本发明进行数据查探,不再需要额外的操作,只需要输入提问的语句,大大降低了使用门槛。
2、数据的展现形式有折线图、柱状图和饼图等等。***可以从语句中自动识别需要展示的图表类型,提高了用户体验。
3、通过两种解析方法的融合,大大提高了解析准确率,能够支持更加灵活多变的提问方式,而对于复杂而正式的查询语句也能通过句法解析的方式正确解析。
附图说明
图1为本发明方法的总体流程示意图;
图2为实施例1中方法的总体流程示意图;
图3为实施例1中依存文解析的实施示意图。
具体实施方式
以下将结合附图对本发明作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。
如图1所示,一种基于语义的交互式数据探查方法,包括如下步骤:
S1、采用依存文法对使用者输入的查询语句进行解析,得到依存文法解析结果。具体过程为:
S1.1、对使用者输入的原始查询语句进行分词操作。采用的是成熟的分词库结巴分词。
在分词过程中需要根据表的字段名进行一些合词操作。例如,需要合词的情况有:
1)对于时间词需要合并,比如“去年第二季度”等,通过正则表达式匹配实现。
2)对于人名、地名和组织名需要做合词,通过命名实体识别找到实体并合并。
3)表中的字段名需要合并,比如“省份证号”在分词时会分为“省份证”和“号”,需要用字段名对分词结果进行匹配,把分开的词合并起来。
S1.2、查询步骤S1.1中分词后得到的每个词语对应的数据库语义。查询语句中的每个词语都有一定的数据库语义,比如字段名、字段的值、操作符或者其他无关词语。在这个步骤中需要通过和数据库字段的字段名、字段描述以及可以枚举的数据值进行匹配,得到每个词语的数据库语义。
S1.3、对原始查询语句进行依存文法分析:遍历原始查询语句的依存文法树,配合步骤S1.2中查询得到每个词语的数据库语义得到数据库查询语句的各个要素,包括查询字段、聚合函数、过滤条件、分组条件等。
在本实施例中,具体采用LTP库对原始查询语句进行依存文法分析。
在本实施例中,在对原始查询语句进行依存文法分析之后,还要对原始查询语句进行顺序解析。进行顺序解析的目的是为了防止依存文法树对于复杂句子解析效果不好,导致出现最终解析错误的情况。顺序解析的内容有:
(1)在顺序解析中需要修复过滤条件,将解析错的过滤条件纠正过来。这步操作主要基于规则,比如满足“字段名操作符值”的模式的就是一个过滤条件,实例如“气温超过40度”。这里得到的条件如果和依存文法分析解析的不一致,就采用这里的顺序解析结果。
(2)修复查询内容。在依存文法分析解析的过程中会把所有句子中出现的字段添加到查询内容中。在这里需要统计字段名在句子中出现的次数,排除已经全部使用在分组、过滤条件中的字段名。
(3)时间处理。在依存文法分析解析中,只会得到类似“时间大于上个月”的结果,这里需要把“上个月”解析为具体的时间戳。
对得到的数据库查询语句的各个要素进行整理,转化为符合数据库查询语句语法的解析结果。数据库查询语句的要素主要包括查询字段,聚合函数,过滤条件,分组字段等,这些要素和数据库查询语句的语法一一对应,可以直接进行转换,比如查询字段在SQL中是select的内容,分组字段是group的内容。
S2、采用深度学习算法对原始查询语句进行解析,得到深度学习算法解析结果。本实施例中,采用的是有监督的学习算法。具体过程为:
采用双向LSTM模型对原始查询语句和字段名进行编码,得到原始查询语句和字段名的编码结果之后,利用softmax分类算法得到聚合函数、查询字段、过滤条件个数,最后通过seq2seq解码得到具体的过滤条件,从而得到深度学习算法解析结果。
其中,对于原始查询语句编码,具体用Attention机制结合字段名的编码结果得到最终的原始查询语句编码。在对原始查询语句中的某个词进行编码时,需要通过softmax给所有的字段名的编码计算一个权重,然后对所有字段名的编码进行加权平均得到一个综合的编码结果。最后将这个编码与原始查询语句的词编码进行拼接,然后用一层神经网络进行维度转换就得到了最终的词的编码。
S3、对步骤S2中得到的深度学习算法解析结果和步骤S1中得到的依存文法解析结果进行综合,得到数据库查询语句。具体为:如果步骤S1中的依存文法解析结构已经正常解析就采用依存文法解析结果作为最终的数据库查询语句,否则采用步骤S2中得到的深度学习算法解析结果作为最终的数据库查询语句;
S4、使用步骤S3中得到的最终的数据库查询语句从数据库中查出数据,最后用ECharts库进行数据可视化展示。可以自由选择表格、折线图、柱状图等各种可视化展示方式。
实施例1
假定有一张全国居民年度收入表(residents_income_statement),存于MySql数据库中。字段有year、income、citizens_income、citizens_expenditure、rural_income、rural_expenditure、modify_time,字段别名分别是年份、居民人均可支配收入、城镇居民人均可支配收入、城镇居民人均消费支出、农村居民人均可支配收入、农村居民人均消费支出、更新时间。需要从数据库中查出的数据为:居民人均消费支出按年份的占比。
探查方法如图2所示。
首先,语义解析需要以问题和表的字段作为输入,得到的SQL语句为:
select year,income from residents_income_statement;
然后在数据库中查出数据并展示。
而具体语义解析部分的操作步骤为:
1.分词。将原句分为:“居民人均消费支出按年份的占比”。
2.得到数据库语义。
居民人均消费支出:字段名
按:普通词语
年份:字段名
的:普通词语
占比:普通词语
3.解析依存树,得到语义解析结果,如图3所示。
语义解析结果为:
{select:[‘居民人均消费支出’,‘年份’]}
4.纠正步骤,经过检查,无需纠正。
5.前述步骤已经能够解析,不再采用深度学习方法解析提问。
将语义解析结果转化为上述的SQL查询语句。
对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本发明权利要求的保护范围之内。
Claims (6)
1.一种基于语义分析的交互式数据探查方法,其特征在于,包括如下步骤:
S1、采用依存文法对使用者输入的查询语句进行解析,得到依存文法解析结果;
S2、采用深度学习算法对原始查询语句进行解析,得到深度学习算法解析结果;
S3、对步骤S1中得到的依存文法解析结果和步骤S2中得到的深度学习算法解析结果进行综合,得到数据库查询语句;
S4、使用步骤S3中得到的最终的数据库查询语句从数据库中查出数据,最后用ECharts 库进行数据可视化展示;
其中,步骤S1具体包括:
S1.1、对使用者输入的原始查询语句进行分词操作;
S1.2、查询步骤S1.1中分词后得到的每个词语对应的数据库语义;
S1.3、依存文法分析:遍历原始查询语句的依存文法树,配合步骤S1.2中查询得到的数据库语义得到数据库查询语句的各个要素,包括查询字段、聚合函数、过滤条件;对数据库查询语句的各个要素进行整理,转化为符合数据库查询语句语法的解析结果;
步骤S1.3中,在对原始查询语句进行依存文法分析之后,还对原始查询语句的顺序结构进行解析,如果顺序解析结果和依存文法分析解析结果不一致,则采用顺序解析结果纠正数据库查询语句的各个要素,从而得到纠正后的数据库查询语句的各个要素,再对纠正后的数据库查询语句的各个要素进行整理,转化为符合数据库查询语句语法的解析结果。
2.根据权利要求1所述的基于语义分析的交互式数据探查方法,其特征在于,步骤S1.1中,采用分词库结巴分词进行分词。
3.根据权利要求1所述的基于语义分析的交互式数据探查方法,其特征在于,步骤S1.3中,具体采用LTP 库对原始查询语句进行依存文法分析。
4.根据权利要求1所述的基于语义分析的交互式数据探查方法,其特征在于,步骤S2的具体过程为:
采用双向 LSTM 模型对原始查询语句和字段名进行编码,得到原始查询语句和字段名的编码结果之后,利用 softmax 分类算法得到聚合函数、查询字段、过滤条件个数,最后通过 seq2seq 解码得到具体的过滤条件,从而得到深度学习算法解析结果。
5.根据权利要求4所述的基于语义分析的交互式数据探查方法,其特征在于,对于原始查询语句的编码,用 Attention 机制结合字段名的编码结果得到最终的原始查询语句编码。
6.根据权利要求1所述的基于语义分析的交互式数据探查方法,其特征在于,步骤S3中,如果步骤S1中的依存文法解析结构已经正常解析就采用依存文法解析结果作为最终的数据库查询语句,否则采用步骤S2中得到的深度学习算法解析结果作为最终的数据库查询语句。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811272645.5A CN109446221B (zh) | 2018-10-29 | 2018-10-29 | 一种基于语义分析的交互式数据探查方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811272645.5A CN109446221B (zh) | 2018-10-29 | 2018-10-29 | 一种基于语义分析的交互式数据探查方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109446221A CN109446221A (zh) | 2019-03-08 |
CN109446221B true CN109446221B (zh) | 2021-04-30 |
Family
ID=65549160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811272645.5A Active CN109446221B (zh) | 2018-10-29 | 2018-10-29 | 一种基于语义分析的交互式数据探查方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109446221B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019756B (zh) * | 2019-04-01 | 2021-04-30 | 北京百分点科技集团股份有限公司 | 一种针对数据库提问的答案查询方法及装置 |
CN110263155B (zh) * | 2019-05-21 | 2023-02-28 | 创新先进技术有限公司 | 数据分类方法、数据分类模型的训练方法及*** |
CN110457368B (zh) * | 2019-07-26 | 2023-07-21 | 广州市广百物流有限公司 | 一种供应链的可视化方法、***及存储介质 |
CN110489449B (zh) * | 2019-07-30 | 2022-02-22 | 北京百分点科技集团股份有限公司 | 一种图表推荐方法、装置和电子设备 |
CN110990447B (zh) * | 2019-12-19 | 2023-09-15 | 北京锐安科技有限公司 | 一种数据探查方法、装置、设备及存储介质 |
CN111274267A (zh) * | 2019-12-31 | 2020-06-12 | 杭州量之智能科技有限公司 | 一种数据库查询方法、装置及计算机可读取存储介质 |
CN111581431B (zh) * | 2020-04-28 | 2022-05-20 | 厦门市美亚柏科信息股份有限公司 | 基于动态评估的数据探查方法和装置 |
CN115881121A (zh) * | 2020-06-22 | 2023-03-31 | 广州小鹏汽车科技有限公司 | 语音交互方法、服务器和计算机可读存储介质 |
CN112434009A (zh) * | 2020-11-19 | 2021-03-02 | 浙江大华技术股份有限公司 | 端到端的数据探查方法、装置、计算机设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140082003A1 (en) * | 2012-09-17 | 2014-03-20 | Digital Trowel (Israel) Ltd. | Document mining with relation extraction |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309846B (zh) * | 2013-06-26 | 2016-05-25 | 北京云知声信息技术有限公司 | 一种自然语言信息的处理方法及装置 |
CN107451153B (zh) * | 2016-05-31 | 2020-03-31 | 北京京东尚科信息技术有限公司 | 输出结构化查询语句的方法和装置 |
CN106528528A (zh) * | 2016-10-18 | 2017-03-22 | 哈尔滨工业大学深圳研究生院 | 文本情感分析的方法及装置 |
CN107578092A (zh) * | 2017-09-01 | 2018-01-12 | 广州智慧城市发展研究院 | 一种基于情绪和意见挖掘的情感复合分析方法及*** |
-
2018
- 2018-10-29 CN CN201811272645.5A patent/CN109446221B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140082003A1 (en) * | 2012-09-17 | 2014-03-20 | Digital Trowel (Israel) Ltd. | Document mining with relation extraction |
Also Published As
Publication number | Publication date |
---|---|
CN109446221A (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109446221B (zh) | 一种基于语义分析的交互式数据探查方法 | |
US20200334252A1 (en) | Clause-wise text-to-sql generation | |
CN105243129A (zh) | 商品属性特征词聚类方法 | |
CN110287482B (zh) | 半自动化分词语料标注训练装置 | |
US10614126B2 (en) | Textual query editor for graph databases that performs semantic analysis using extracted information | |
CN113191148B (zh) | 一种基于半监督学习和聚类的轨道交通实体识别方法 | |
CN111274267A (zh) | 一种数据库查询方法、装置及计算机可读取存储介质 | |
US10706045B1 (en) | Natural language querying of a data lake using contextualized knowledge bases | |
US10089343B2 (en) | Automated analysis of data reports to determine data structure and to perform automated data processing | |
CN115576984A (zh) | 中文自然语言生成sql语句及跨数据库查询方法 | |
US12032565B2 (en) | Systems and methods for advanced query generation | |
CN113032418B (zh) | 一种基于树状模型的复杂自然语言查询转sql方法 | |
CN109522396B (zh) | 一种面向国防科技领域的知识处理方法及*** | |
CN113127339A (zh) | 一种Github开源平台数据的获取方法及源代码缺陷修复*** | |
CN111767334A (zh) | 信息抽取方法、装置、电子设备及存储介质 | |
CN115525768A (zh) | 一种领域知识图谱可视化构建方法及装置 | |
CN114625748A (zh) | Sql查询语句的生成方法、装置、电子设备及可读存储介质 | |
CN117648093A (zh) | 基于大模型和自定制需求模板的rpa流程自动化生成方法 | |
CN111831624A (zh) | 数据表创建方法、装置、计算机设备及存储介质 | |
CN113032366A (zh) | 基于Flex和Bison的SQL语法树解析方法 | |
CN117271558A (zh) | 语言查询模型构建方法、查询语言获取方法及相关装置 | |
CN115408506B (zh) | 联合语义解析和语义成分匹配的nl2sql的方法 | |
CN116010439A (zh) | 一种可视化中文sql***及构建查询方法 | |
CN115357700A (zh) | 一种基于事理图谱的压缩机故障诊断方法 | |
CN114862233A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100081 No.101, 1st floor, building 14, 27 Jiancai Chengzhong Road, Haidian District, Beijing Applicant after: Beijing PERCENT Technology Group Co.,Ltd. Address before: 100081 16 / F, block a, Beichen Century Center, building 2, courtyard 8, Beichen West Road, Chaoyang District, Beijing Applicant before: BEIJING BAIFENDIAN INFORMATION SCIENCE & TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |