CN117743526A - 一种基于大语言模型和自然语言处理的表格问答方法 - Google Patents
一种基于大语言模型和自然语言处理的表格问答方法 Download PDFInfo
- Publication number
- CN117743526A CN117743526A CN202311551970.6A CN202311551970A CN117743526A CN 117743526 A CN117743526 A CN 117743526A CN 202311551970 A CN202311551970 A CN 202311551970A CN 117743526 A CN117743526 A CN 117743526A
- Authority
- CN
- China
- Prior art keywords
- language model
- data
- columns
- large language
- information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000003058 natural language processing Methods 0.000 title claims abstract description 12
- 238000012549 training Methods 0.000 claims description 18
- 239000013598 vector Substances 0.000 claims description 7
- 238000007781 pre-processing Methods 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Machine Translation (AREA)
Abstract
本发明公开了一种基于大语言模型和自然语言处理的表格问答方法。方法包括基于规则提取原始表格数据的显式信息;根据transformer模型提取表格的隐式信息;将完整的表格信息以及用户的自然语言输入到大语言模型中,调试大语言模型的prompt,然后生成python代码;执行python代码处理表格任务,生成符合用户查询要求的新表格并返回结果。发明由于大语言模型看到了表格的整体、完整的信息,大语言模型具有更好的模糊匹配能力,同时,大大提高了通过自然语言处理表格任务的准确率,更加智能,更接近实际的使用场景。
Description
技术领域
本发明属于表格处理技术领域,尤其是涉及了一种基于大语言模型和自然语言处理的表格内容提取方法。
背景技术
世界上许多信息都是以表格形式存储的,这些表格见诸于网络、数据库或文件中。它们包括消费产品的技术规格、金融和国家发展统计数据、体育赛事结果等等。目前,要想找到问题的答案,人们仍需以人工方式查找这些表格,或使用能提供特定问题(比如关于体育赛事结果的问题)的答案的服务。如果可通过自然语言来查询这些信息,那么取用这些信息会容易很多。
表格问答具有广泛的应用场景,最早的方法有数据库自然语言接口NLIDB,NLIDB是一种允许用户通过输入某种自然语言表示的请求来访问存储在数据库中的信息的系统。它们完全依赖于规则与模板,对自然语言的约束较多,语言理解能力差,不具备较强的泛化能力。最近比较流行方法有NL2SQL,基于深度学习的方法实现相较于NLIDB有明显的进步。但是目前NL2SQL的方法只是把表头信息输入给模型,模型只了解表格的局部信息,很难对用户的问题做出精准的回答,在实际的使用场景准确率不高。
以往的方法在理解表格的时候往往太拘泥于每一格中的具体信息,而忽略了全局。急需让模型掌握表格的全局信息,提高表格问答的准确率,也更接近实际的使用的场景。
发明内容
为了解决背景技术中存在的问题,本发明的目的在于提供一种基于大语言模型和自然语言处理的表格问答方法。本发明设计了一种将表格数据信息输入到大语言模型并通过自然语言处理表格任务的方法,以解决现有方法大模型不能看到表格的整体信息,无法理解用户输入的自然语言,导致准确率低的问题。
本发明所采用的技术方案如下,包括如下步骤:
步骤S01、从用于问答的原始表格中提取出原始表格数据的显式信息;
步骤S02、对原始表格数据进行向量化处理,得到原始表格数据的隐式信息,隐式信息即为包含所有原始表格数据信息的特征向量;
步骤S03、将原始表格数据的显式信息、隐式信息和用户问题同步输入到大语言模型中,大语言模型中生成python代码文本;
步骤S04、根据原始表格数据和python代码文本,通过执行python代码文本查询得到用户问题对应的答案并提供给用户。
所述的步骤S01具体为:
步骤S0101、根据数据类型对原始表格数据进行分类处理,以提取出原始表格数据中的连续列(数值类型)、离散列(字符型)和时间序列(时间戳);
步骤S0102、对连续列和离散列进行数据预处理,得到预处理后的连续列和离散列;
步骤S0103、从预处理后的连续列和离散列,以及时间序列中提取出原始表格数据的显式信息;
所述原始表格数据的显式信息包括连续列的最小值、中位数和最大值,离散列中出现频率前十的数据类别,离散列中的起始时间和结束时间。
所述的步骤S02具体为:将原始表格输入到transformer模型中,transformer模型输出包含所有原始表格数据信息的特征向量,即隐式信息;
所述的步骤S03具体为:
步骤S0301、首先,将原始表格数据的显式信息和隐式信息进行组合,得到原始表格数据的完整数据信息;
步骤S0302、利用多个用户问题以及用户问题所对应的答案构建训练数据集;
步骤S0303、将原始表格数据的完整数据信息输入到待训练的大语言模型中,再利用训练数据集和prompt对大语言模型进行训练,得到训练后的大语言模型;
步骤S0304、根据训练好的大语言模型,输出解决用户问题所对应的python代码文本。
所述的步骤S04具体为:
步骤S0401、将待查询的用户问题输入到训练好的大语言模型中,大语言模型判断该用户问题是否与原始表格有关:
若用户问题是与原始表格有关,则进入步骤S0402;
否则,大语言模型输出结果“None”,并在前端页面提示用户;
步骤S0402、使用pyflakes对生成的python代码文本进行语法校验:
若生成的python代码文本语法无误,则表明该python代码文本为可执行的代码,进入步骤S0403;
若生成的python代码文本语法错误,则返回步骤S03重新生成新的python代码文本,直到新的python代码文本通过语法校验;
步骤S0403、通过执行python代码文本,大语言模型根据用户问题查询得到用户问题所对应的答案,同时根据问题答案生成新的表格并返回结果。
所述步骤S0102中进行数据预处理的方式具体为:
首先,删除连续列/离散列中缺失比例超过50%的数据;然后利用填充值对连续列/离散列中被删除数据处进行填充;对于所述离散列,采用离散列中出现频率最高的数据类别作为填充值;对于所述连续列,采用该连续列的平均值作为填充值。
所述步骤S0303中,对大语言模型进行训练的具体方式为:将训练数据集和prompt输入到大语言模型中,不断调试大语言模型的prompt,当大语言模型的输出结果与训练数据集中用户问题所对应的答案一致时,将此时的prompt作为大语言模型最终的prompt。
通过将表格信息显式和隐式输入到大模型,大模型可以对表格信息有一个整体的理解,再通过自然语言与大模型交互生成能处理表格任务的python代码。该方法包括:1)基于规则提取原始表格数据的显式信息;2)根据transformer模型提取表格的隐式信息;3)基于表格信息和用户的自然语言输入到大语言模型生成python代码;4)执行python代码处理表格任务。本发明由于大语言模型看到了表格的整体、完整的信息,大大提高了通过自然语言处理表格任务的准确率。
本发明的技术方案概括为:
首先,基于规则、经验提取原始表格数据的显式信息;然后,将原始的表格输入到transformer模型中得到隐式的向量信息;接着,结合原始表格的显式信息和隐式信息以及用户想要查询的问题,一起输入到大模型中生成python代码;最后,结合原始的表格数据以及大模型生成的python代码,执行python代码生成符合用户查询要求的新表格并返回结果。
本发明的有益效果为:
1、本发明的大语言模型由于看到了表格的整体、完整的信息,大语言模型具有更好的模糊匹配能力。可以根据用户输入的问题,在表格信息中找到意义最为接近的列名。表格内容是中文,用户可以用英文来提问;帮用户自动补充列名,拒绝和表格无关的询问。
2、本发明方法大大提高了通过自然语言处理表格任务的准确率,更加智能,更接近实际的使用场景。
附图说明
图1为本发明实施例流程示意图;
图2为提取表格显式信息示意图;
图3为提取表格隐式信息示意图;
图4为生成python代码过程示意图;
图5为大语言模型拒绝回答示意图;
图6为列名相近词词匹配示意图;
图7为列名中英文匹配示意图;
图8为不用通过列名直接提取表格信息示意图。
具体实施方式
下面结合具体实施案例对本发明进行详细说明,以下实施案例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。
本发明的实施例包括以下步骤,如图1所示:
步骤S01、基于规则和经验从用于问答的原始表格中提取出原始表格数据的显式信息;
步骤S02、对原始表格数据进行向量化处理,得到原始表格数据的隐式信息,隐式信息即为包含所有原始表格数据信息的特征向量;
步骤S03、将原始表格数据的显式信息、隐式信息和用户问题同步输入到大语言模型中,大语言模型中生成python代码文本;
具体实施中的用户问题具体为用户的自然语言问题。
步骤S04、根据原始表格数据和python代码文本,通过执行python代码文本根据用户问题查询得到用户问题对应的答案并提供给用户。
步骤S01具体为:
步骤S0101、根据数据类型对原始表格数据进行分类处理,以提取出原始表格数据中的连续列(数值类型)、离散列(字符型)和时间序列(时间戳);
步骤S0102、分别对连续列和离散列进行数据预处理,得到预处理后的连续列和离散列;
步骤S0103、从预处理后的连续列和离散列,以及时间序列中提取出原始表格数据的显式信息;
原始表格数据的显式信息包括连续列的最小值、中位数和最大值,离散列中出现频率前十的数据类别,离散列中的起始时间和结束时间。
具体实施中,提取原始表格数据显式信息的方法如图2所示:对于预处理后的连续列,提取该连续列数据的最小值、中位数以及最大值;对于预处理后的离散列,提取该离散列中数据类别出现频率前10的类别;对于时间序列,提取该时间序列的起始时间和结束时间。
步骤S02具体为:将原始表格输入到transformer模型中,transformer模型输出包含所有原始表格数据信息的特征向量,即隐式信息;
不同于图像、音/视频数据,表格数据具有置换不变性即重新排列行或列不会影响表格中包含的信息。transformer模型正好符合这一特性,基于海量的表格数据训练可以提取整个表格数据集的表征的模型。如图3所示,将用于问答的原始表格输入到transformer模型中,得到一个可以代表整体原始表格信息的512维度的特征向量;
步骤S03具体为:
步骤S0301、首先,将原始表格数据的显式信息和隐式信息进行组合,得到原始表格数据的完整数据信息;
步骤S0302、利用多个用户问题以及用户问题所对应的答案构建训练数据集;
步骤S0303、将原始表格数据的完整数据信息输入到待训练的大语言模型中,再利用训练数据集和prompt对大语言模型进行训练,得到训练后的大语言模型;
步骤S0304、根据训练好的大语言模型,输出解决用户问题所对应的python代码文本。
具体实施中,如图4所示,将prompt、原始表格数据的完整数据信息以及用户问题一起输入到大语言模型中,大语言模型输出能解决用户问题的python代码文本。
步骤S04具体为:
步骤S0401、将待查询的用户问题输入到训练好的大语言模型中,大语言模型判断该用户问题是否与原始表格有关:
若用户问题是与原始表格有关,则进入步骤S0402;
否则,大语言模型输出结果“None”,并在前端页面提示用户,如图5所示;
步骤S0402、使用pyflakes对生成的python代码文本进行语法校验:
若生成的python代码文本语法无误,则表明该python代码文本为可执行的代码,进入步骤S0403;
若生成的python代码文本语法错误,则返回步骤S03重新生成新的python代码文本,直到新的python代码文本通过语法校验;
步骤S0403、通过执行python代码文本,大语言模型根据用户问题查询得到用户问题所对应的答案,同时根据问题答案生成新的表格并返回结果,如图6-图8所示。
步骤S0102中进行数据预处理的方式具体为:
首先,删除连续列/离散列中缺失比例超过50%的数据;然后利用填充值对连续列/离散列中被删除数据处进行填充;对于离散列,采用离散列中出现频率最高的数据类别作为填充值;对于连续列,采用该连续列的平均值作为填充值。
步骤S0303中,利用训练数据集和prompt对大语言模型进行训练的具体方式为:将训练数据集和prompt输入到大语言模型中,不断调试大语言模型的prompt,当大语言模型的输出结果与训练数据集中用户问题所对应的答案均一致时,将此时的prompt作为大语言模型最终的prompt。
大语言模型LLM的能力并不是被设计出来的,需要人不断去探索它的能力边界,A1文本提示词prompt就是一种探索方式,用文本提示的方式让大语言模型可以更好的知道它自己要干什么任务。通过不断实验测试,确定了最合适的prompt。
本发明的核心技术是将表格数据信息输入到大语言模型并通过自然语言处理表格任务,更加贴近实际的使用场景。得益于大语言模型可以看到完整的表格信息,相较于其他方法的优势在于以下几点:
1、可以近义词匹配,如图6所示,名字-->姓名;
2、可以中英文对应,如图7所示,age-->年龄;
3、可以不用通过列名直接提取表格信息,如图8所示,大语言模型知道小李是在姓名列中,不把表格信息输入给大语言模型,该任务是不可能完成的。
本技术领域的人员根据本发明所提供的文字描述、附图以及权利要求书能够很容易在不脱离权利要求书所限定的本发明的思想和范围条件下,可以做出多种变化和改动。凡是依据本发明的技术思想和实质对上述实施例进行的任何修改、等同变化,均属于本发明的权利要求所限定的保护范围之内。
Claims (7)
1.一种基于大语言模型和自然语言处理的表格问答方法,其特征在于,包括以下步骤:
步骤S01、从用于问答的原始表格中提取出原始表格数据的显式信息;
步骤S02、对原始表格数据进行向量化处理,得到原始表格数据的隐式信息;
步骤S03、将原始表格数据的显式信息、隐式信息和用户问题同步输入到大语言模型中,大语言模型中生成python代码文本;
步骤S04、根据原始表格数据和python代码文本,通过执行python代码文本查询得到用户问题对应的答案并提供给用户。
2.根据权利要求1所述的一种基于大语言模型和自然语言处理的表格问答方法,其特征在于:所述的步骤S01具体为:
步骤S0101、根据数据类型对原始表格数据进行分类处理,以提取出原始表格数据中的连续列、离散列和时间序列;
步骤S0102、对连续列和离散列进行数据预处理,得到预处理后的连续列和离散列;
步骤S0103、从预处理后的连续列和离散列,以及时间序列中提取出原始表格数据的显式信息;
所述原始表格数据的显式信息包括连续列的最小值、中位数和最大值,离散列中出现频率前十的数据类别,离散列中的起始时间和结束时间。
3.根据权利要求1所述的一种基于大语言模型和自然语言处理的表格问答方法,其特征在于:所述的步骤S02具体为:将原始表格输入到transformer模型中,transformer模型输出包含所有原始表格数据信息的特征向量。
4.根据权利要求1所述的一种基于大语言模型和自然语言处理的表格问答方法,其特征在于:所述的步骤S03具体为:
步骤S0301、首先,将原始表格数据的显式信息和隐式信息进行组合,得到原始表格数据的完整数据信息;
步骤S0302、利用用户问题以及用户问题所对应的答案构建训练数据集;
步骤S0303、将原始表格数据的完整数据信息输入到待训练的大语言模型中,再利用训练数据集和prompt对大语言模型进行训练,得到训练后的大语言模型;
步骤S0304、根据训练好的大语言模型,输出解决用户问题的python代码文本。
5.根据权利要求1所述的一种基于大语言模型和自然语言处理的表格问答方法,其特征在于:所述的步骤S04具体为:
步骤S0401、将待查询的用户问题输入到训练好的大语言模型中,大语言模型判断该用户问题是否与原始表格有关:
若用户问题是与原始表格有关,则进入步骤S0402;
否则,大语言模型输出结果“None”,并在前端页面提示用户;
步骤S0402、使用pyflakes对生成的python代码文本进行语法校验:
若生成的python代码文本语法无误,则表明该python代码文本为可执行的代码,进入步骤S0403;
若生成的python代码文本语法错误,则返回步骤S03重新生成新的python代码文本,直到新的python代码文本通过语法校验;
步骤S0403、通过执行python代码文本,大语言模型根据用户问题查询得到用户问题所对应的答案,同时根据问题答案生成新的表格并返回结果。
6.根据权利要求2所述的一种基于大语言模型和自然语言处理的表格问答方法,其特征在于:所述步骤S0102中进行数据预处理的方式具体为:
首先,删除连续列/离散列中缺失比例超过50%的数据;然后利用填充值对连续列/离散列中被删除数据处进行填充;对于所述离散列,采用离散列中出现频率最高的数据类别作为填充值;对于所述连续列,采用该连续列的平均值作为填充值。
7.根据权利要求4所述的一种基于大语言模型和自然语言处理的表格问答方法,其特征在于:所述步骤S0303中,对大语言模型进行训练的具体方式为:将训练数据集和prompt输入到大语言模型中,不断调试大语言模型的prompt,当大语言模型的输出结果与训练数据集中用户问题所对应的答案一致时,将此时的prompt作为大语言模型最终的prompt。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311551970.6A CN117743526A (zh) | 2023-11-21 | 2023-11-21 | 一种基于大语言模型和自然语言处理的表格问答方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311551970.6A CN117743526A (zh) | 2023-11-21 | 2023-11-21 | 一种基于大语言模型和自然语言处理的表格问答方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117743526A true CN117743526A (zh) | 2024-03-22 |
Family
ID=90249777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311551970.6A Pending CN117743526A (zh) | 2023-11-21 | 2023-11-21 | 一种基于大语言模型和自然语言处理的表格问答方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117743526A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117972070A (zh) * | 2024-04-01 | 2024-05-03 | 中国电子科技集团公司第十五研究所 | 一种面向大模型表格问答方法 |
CN118069819A (zh) * | 2024-04-22 | 2024-05-24 | 浙江大学 | 一种基于大模型处理数据可视化任务的方法及装置 |
CN118093597A (zh) * | 2024-04-23 | 2024-05-28 | 浙江大学 | 一种表格数据重构方法及装置、问答方法 |
-
2023
- 2023-11-21 CN CN202311551970.6A patent/CN117743526A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117972070A (zh) * | 2024-04-01 | 2024-05-03 | 中国电子科技集团公司第十五研究所 | 一种面向大模型表格问答方法 |
CN118069819A (zh) * | 2024-04-22 | 2024-05-24 | 浙江大学 | 一种基于大模型处理数据可视化任务的方法及装置 |
CN118069819B (zh) * | 2024-04-22 | 2024-07-16 | 浙江大学 | 一种基于大模型处理数据可视化任务的方法及装置 |
CN118093597A (zh) * | 2024-04-23 | 2024-05-28 | 浙江大学 | 一种表格数据重构方法及装置、问答方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111159385B (zh) | 一种基于动态知识图谱的无模板通用智能问答方法 | |
CN117743526A (zh) | 一种基于大语言模型和自然语言处理的表格问答方法 | |
CN110929498B (zh) | 一种短文本相似度的计算方法及装置、可读存储介质 | |
CN112417846B (zh) | 文本自动化生成方法、装置、电子设备及存储介质 | |
CN114547274B (zh) | 多轮问答的方法、装置及设备 | |
CN109522396B (zh) | 一种面向国防科技领域的知识处理方法及系统 | |
CN115827819A (zh) | 一种智能问答处理方法、装置、电子设备及存储介质 | |
CN115525751A (zh) | 一种基于知识图谱的智能问答系统和方法 | |
CN115759254A (zh) | 基于知识增强生成式语言模型的问答方法、系统及介质 | |
CN114185931A (zh) | 一种基于神经网络模型的中文语言处理方法及装置 | |
CN117951249A (zh) | 基于大语言模型的知识库应答方法及系统 | |
CN111831624A (zh) | 数据表创建方法、装置、计算机设备及存储介质 | |
CN114742032A (zh) | 交互式数据分析方法、装置、设备、介质及程序产品 | |
CN118035405A (zh) | 一种基于大模型的知识库问答构建方法及装置 | |
CN112347121B (zh) | 一种可配置的自然语言转sql的方法及系统 | |
CN117828057A (zh) | 知识问答方法、装置、设备和存储介质 | |
CN117932022A (zh) | 一种智能问答方法、装置、电子设备及存储介质 | |
WO2021135103A1 (zh) | 一种语义分析方法、装置、计算机设备及存储介质 | |
CN113157887A (zh) | 知识问答意图识别方法、装置、及计算机设备 | |
CN111898363A (zh) | 文本长难句的压缩方法、装置、计算机设备及存储介质 | |
CN114625759B (zh) | 模型训练方法、智能问答方法、设备、介质及程序产品 | |
CN115730058A (zh) | 一种基于知识融合的推理问答方法 | |
CN113468311B (zh) | 一种基于知识图谱的复杂问句问答方法、装置及存储介质 | |
CN115359486A (zh) | 一种文档图像中自定义信息的确定方法及系统 | |
CN114840657A (zh) | 一种基于混合模式的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 |