自然语言查询和转换控制系统及方法与流程

专利2026-07-25  2


本发明涉及自然语言查询和转换控制,具体为自然语言查询和转换控制系统及方法。


背景技术:

1、自然语言查询语句是指用户用自然语言书写的查询语句,用于向计算机系统提出问题或请求信息。用户可以用自然语言查询语句询问数据库中的信息,然后系统需要将这个自然语言查询转换为sql查询语句,以便从数据库中获取相应的数据。然而,目前对于一些复杂的自然语言到sql语句的转换方案,由于逻辑较为复杂,会出现自然语言到sql的转换不够准确的问题,使用占位符可以在一定程度上增加转换的灵活性和准确性,通过占位符可以先确定语句的基本结构和逻辑,然后再根据具体的输入值来填充占位符,所以对自然语言字段进行分析,根据其结构或复杂程度,判断是否采用占位符方法,进而得到更准确的sql语句至关重要。


技术实现思路

1、本发明的目的在于提供自然语言查询和转换控制系统及方法,以解决上述背景技术中提出的问题。

2、为了解决上述技术问题,本发明提供如下技术方案:

3、自然语言查询和转换控制方法,包括以下步骤:

4、步骤s100:采集若干自然语言的转换记录,转换记录包括自然语言字段以及对应的sql字段,识别出sql字段中的占位sql字段,以及占位sql字段在自然语言字段中对应的占位语言字段;

5、需要说明的是,sql字段为自然语言字段经过转换后得到的数据查询语句。占位sql字段为sql字段中的某一子段,通常是sql字段中结构较为复杂的部分,用来表示sql字段中可用于占位的部分。

6、步骤s200:根据转换记录,得到自然语言字段中的所有特征实体,进而根据特征实体,得到转换记录对应的特征系数,进而得到特征系数阈值;

7、需要说明的是,特征系数阈值是由步骤s100中可进行占位的自然语言字段得到的,所以在本方案中特征系数阈值为判断自然语言字段是否进行占位的重要标准,如下述步骤s300所示,当特征系数不大于特征系数阈值时,不可进行占位。先得到自然语言字段中的所有实体,由于占位语言字段为自然语言字段中的一部分,且与占位sql字段相对应,所以特征实体为占位语言字段中,与占位sql字段中的变量名匹配程度较高的实体。

8、步骤s300:获取目标自然语言字段,得到目标自然语言字段对应的特征系数,将特征系数与特征系数阈值进行比较,进而得出目标自然语言字段中的占位语言字段;

9、步骤s400:将目标自然语言字段和占位语言字段输入到预先训练的语言模型中,将占位语言字段部分用占位符表示,并将目标自然语言字段转换为用占位符表示的sql字段,并根据语言模型,得到占位语言字段对应的sql片段,进而得到完整的sql字段。

10、进一步的,步骤s100包括:

11、步骤s110:获取转换记录nr,转换记录nr包括自然语言字段nf,以及对应的sql字段nsql;获取字段nsql中的所有关键字,关键字中包括若干特征关键字,根据特征关键字将字段nsql分为若干sql子句,每一sql子句均对应若干关键字和变量名;若某一sql子句对应的关键字数量大于第一数量阈值且变量名数量大于第二数量阈值,则将某一sql子句作为字段nsql对应的占位sql字段np;

12、在sql字段中,关键字是具有特定含义和用途、被sql语言预先定义好的单词;特征关键字是关键字中包含特定含义,可将sql字段分为若干sql子句的关键词;变量名是用于标识和引用特定数据值的名称。

13、步骤s120:获取字段np对应的所有变量名,以及字段nf对应的所有实体和定义关系;获取第m个变量名vnm对应的词语定义,并得到词语定义与每一实体的相似度,将相似度进行归一化,并满足其中的最大相似度大于相似度阈值,则将最大相似度对应的实体进行标记;进而得到字段nf对应的若干标记实体;

14、步骤s130:设置所有定义关系的初始权值均为0,若某一定义关系存在一个及以上对应的标记实体,则将所有的标记实体数量进行相加,得到某一定义关系的总权值;若字段nf的首尾处不均存在标记实体,则将最左和最右标记实体之间的字段作为标记实体字段,若标记实体字段之间存在定义关系且对应的总权值大于权值阈值,则将标记实体字段作为字段nf对应的占位语言字段nfl。

15、进一步的,步骤s200包括:

16、步骤s210:获取转换记录nr对应的数据库表,以及数据库表对应的所有列名,若字段nfl中的某一实体与数据库表对应的任一列名的相似度大于相似度阈值,则将某一实体作为特征实体,进而得到字段nf对应的所有特征实体;

17、步骤s220:设置每一特征实体的初始权重均为1,若在字段nf中,存在先对第a个特征实体进行筛选,才能对第b个特征实体进行筛选的情况,则将第a个特征实体的权重加1,进而得到每一特征实体对应的权重;

18、步骤s230:获取特征实体ceq,通过语言模型,得到特征实体ceq对应的若干标识符,根据特征实体ceq对应的权重wq,得到特征实体ceq对应的实体信息量为:evq=k1*wq*dnq,并进行归一化,其中,k1是特征实体ceq对应的信息系数,dnq是特征实体ceq对应的标识符数量;

19、其中,标识符是特征实体ceq对应的数据库名称对象,其中,符号、变量名和数量都可以作为标识符,而特征实体ceq对应的若干标识符为特征实体ceq及其对应的符号和数量。

20、步骤s240:进而根据字段nf对应的每一特征实体的实体信息量,相加求平均值,得到字段nf对应的特征系数;并根据若干转换记录,将转换记录对应的特征系数最小值作为特征系数阈值c0。

21、实体信息量代表了该特征实体的信息丰富程度,如果信息丰富程度较高,说明特征实体对应的字段nf复杂程度较高,进而以每一特征实体的实体信息量,得到特征系数阈值c0,将特征系数阈值c0作为下述目标自然语言字段是否应该使用占位符的重要标准。

22、进一步的,步骤s300中获取目标自然语言字段,得到目标自然语言字段对应的特征系数的步骤包括:

23、步骤s311:获取目标自然语言字段dnl对应的所有目标实体,设置每一目标实体的初始权重均为0,根据字段dnl对应的数据库表的所有列名,若某一目标实体与数据库表对应的任一列名的相似度大于相似度阈值,则将某一目标实体的权重加1,进而得到每一目标实体对应的权重;

24、步骤s312:获取目标实体tep,通过语言模型,得到目标实体tep对应的若干标识符,根据目标实体tep对应的权重wp,得到目标实体tep对应的实体信息量为:evp=k2*wp*dnp,并进行归一化,其中,k2是目标实体tep对应的信息系数,dnp是目标实体tep对应的标识符数量;进而根据每一目标实体对应的实体信息量,获取其中最高的实体信息量,作为字段dnl对应的特征系数c1。

25、特征系数c1体现了字段dnl的复杂程度,若该复杂程度比较大,说明字段dnl逻辑较为复杂,若不采用占位规则可能会出现错乱不准确的情况,此时字段dnl应采用占位规则,若该关系程度比较小,字段dnl逻辑较为简单,没必要使用占位符。

26、进一步的,步骤s300中将特征系数与特征系数阈值进行比较,进而得出目标自然语言字段中的占位语言字段包括:若特征系数c1不大于特征系数阈值c0,则认定字段dnl无对应的占位语言字段;否则,若特征系数c1大于特征系数阈值c0,根据语义分析将字段dnl分为若干语言子句,每一语言子句中存在若干目标实体,并得到字段dnl中的最大实体信息量对应的目标实体,将目标实体对应的子句作为字段dnl的占位语言字段。

27、根据语义分析,将自然语言字段分为的若干子句包括:查询子句(关于要查询哪个列名的子句),表名子句(关于从哪张表中查的子句),条件子句(关于查询条件的子句)。

28、为了方便理解本方案,对整体解释说明:转换记录nr包括自然语言字段nf和字段nsql,根据字段nsql识别出字段nsql中的占位sql字段np,再由占位sql字段np推导出自然语言字段nf中的占位语言字段nfl,即本方案中的s100步骤;然后再由自然语言字段nf和占位语言字段nfl计算出特征系数阈值c0,特征系数阈值c0作为判断自然语言字段是否用占位符表示的标准,即得到本方案中的s200步骤;进一步获取目标自然语言字段dnl,并计算出字段dnl对应的特征系数c1,进而将特征系数c1和特征系数阈值c0进行比较,若c1≯c0,说明此时字段dnl无需用占位符进行表示,若c1>c0,说明此时字段dnl需要用占位符进行表示,并得出字段dnl对应的占位语言字段。

29、在本方案中,先将占位语言字段部分用占位符表示,将目标自然语言字段转换为包含占位符的sql字段,这样做的好处是易于理解,减少错误,然后再对占位语言字段转换为对应的sql片段,进而将sql片段代入到包含占位符的sql字段中,得到完整的sql字段。本发明首先对转换记录进行分析,得到可进行占位的特征系数阈值,然后找出目标自然语言字段中的占位语言字段,进而得到sql字段,根据是否使用占位符,以实现更精准的从自然语言到sql语句的转换。

30、自然语言查询和转换控制系统,包括占位语言字段模块、特征系数阈值模块、目标自然语言字段模块和sql字段模块;

31、占位语言字段模块:用于采集若干自然语言的转换记录,转换记录包括自然语言字段以及对应的sql字段,识别出sql字段中的占位sql字段,以及占位sql字段在自然语言字段中对应的占位语言字段;

32、特征系数阈值模块:用于根据转换记录,得到自然语言字段中的所有特征实体,进而根据特征实体,得到转换记录对应的特征系数,进而得到特征系数阈值;

33、目标自然语言字段模块:用于获取目标自然语言字段,得到目标自然语言字段对应的特征系数,将特征系数与特征系数阈值进行比较,进而得出目标自然语言字段中的占位语言字段;

34、sql字段模块:用于将目标自然语言字段和占位语言字段输入到预先训练的语言模型中,将占位语言字段部分用占位符表示,并将目标自然语言字段转换为用占位符表示的sql字段,并根据语言模型,得到占位语言字段对应的sql片段,进而得到完整的sql字段。

35、进一步的,占位语言字段模块包括占位sql字段单元、标记实体单元和占位语言字段单元;

36、占位sql字段单元:用于用于采集若干自然语言的转换记录,转换记录包括自然语言字段以及对应的sql字段,识别出sql字段中的占位sql字段;

37、标记实体单元:用于获取占位sql字段对应的所有变量名,以及自然语言字段对应的所有实体和定义关系,得到每一标记实体;

38、占位语言字段单元:用于获取占位sql字段在自然语言字段中对应的占位语言字段。

39、进一步的,目标自然语言字段模块包括目标实体权重单元和特征系数单元;

40、目标实体权重单元:用于获取目标自然语言字段对应的所有目标实体,根据目标自然语言字段对应的数据库表的所有列名,得到每一目标实体对应的权重;

41、特征系数单元:用于得到目标自然语言字段对应的特征系数,并进行归一化。

42、与现有技术相比,本发明所达到的有益效果是:本发明提供了自然语言查询和转换控制系统及方法,包括:采集若干自然语言的转换记录,记录包括自然语言字段以及sql字段,识别出占位sql字段和占位语言字段;得到自然语言字段中的所有特征实体,得到特征系数阈值;获取目标自然语言字段,得到目标自然语言字段对应的特征系数,得出目标自然语言字段中的占位语言字段;将目标自然语言字段和占位语言字段输入到预先训练的语言模型中,得到完整的sql字段。本发明首先对转换记录进行分析,得到可进行占位的特征系数阈值,然后找出目标自然语言字段中的占位语言字段,进而得到sql字段,根据是否使用占位符,以实现更精准的从自然语言到sql语句的转换,不仅对于逻辑较简单的目标自然语言字段,节省了时间,并且对于逻辑较为繁琐的目标自然语言字段,提高了准确性。


技术特征:

1.自然语言查询和转换控制方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的自然语言查询和转换控制方法,其特征在于,步骤s100包括:

3.根据权利要求2所述的自然语言查询和转换控制方法,其特征在于,步骤s200包括:

4.根据权利要求3所述的自然语言查询和转换控制方法,其特征在于,步骤s300中获取目标自然语言字段,得到目标自然语言字段对应的特征系数的步骤包括:

5.根据权利要求4所述的自然语言查询和转换控制方法,其特征在于,步骤s300中将特征系数与所述特征系数阈值进行比较,进而得出目标自然语言字段中的占位语言字段包括:若特征系数c1不大于特征系数阈值c0,则认定字段dnl无对应的占位语言字段;否则,若特征系数c1大于特征系数阈值c0,根据语义分析将字段dnl分为若干语言子句,每一语言子句中存在若干目标实体,并得到字段dnl中的最大实体信息量对应的目标实体,将所述目标实体对应的子句作为字段dnl的占位语言字段。

6.自然语言查询和转换控制系统,用于执行权利要求1-5中任意一项所述的自然语言查询和转换控制方法,其特征在于,所述系统包括占位语言字段模块、特征系数阈值模块、目标自然语言字段模块和sql字段模块;

7.根据权利要求6所述的自然语言查询和转换控制系统,其特征在于,所述占位语言字段模块包括占位sql字段单元、标记实体单元和占位语言字段单元;

8.根据权利要求7所述的自然语言查询和转换控制系统,其特征在于,所述目标自然语言字段模块包括目标实体权重单元和特征系数单元;


技术总结
本发明公开了自然语言查询和转换控制系统及方法,属于自然语言查询和转换控制技术领域。包括:采集若干自然语言的转换记录,记录包括自然语言字段以及SQL字段,识别出占位SQL字段和占位语言字段;得到自然语言字段中的所有特征实体,得到特征系数阈值;获取目标自然语言字段,得到目标自然语言字段对应的特征系数,得出目标自然语言字段中的占位语言字段;将目标自然语言字段和占位语言字段输入到预先训练的语言模型中,得到完整的SQL字段。本发明首先对转换记录进行分析,得到可进行占位的特征系数阈值,然后找出目标自然语言字段中的占位语言字段,进而得到SQL字段,根据是否使用占位符,以实现更精准的从自然语言到SQL语句的转换。

技术研发人员:朱策,许丽群,张向飞,陈贝琪,马燕萍,童珊,杨晨辉
受保护的技术使用者:上海市大数据中心
技术研发日:
技术公布日:2024/11/11
转载请注明原文地址: https://tieba.8miu.com/read-23070.html

最新回复(0)