本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处!

Word文档如何更好地提取表格内容给ChatGPT做知识库,这属于文本预处理工作。

本文只讲思路、测试结果,技术实现用Python和Java都能完成,下一篇文章再贴源码。

预处理的思路:

  1. 源文件建议采用DOCX文档而非PDF文档,因为PDF文档会多出冗余的"\n\n"
  2. 把DOCX文件转为Markdown格式,因为Markdown格式可以包含表格数据,而且Markdown格式本质是文本便于修改
  3. 把Markdown格式表格转为CSV表格,对于格式复杂表格,ChatGPT对CSV表格理解能力最强
  4. 用CSV表格替换掉Markdown格式的表格作为预处理后的新文件,因为两者都是文本格式

总结一下,DOCX转Markdown文件 -> Markdown表格转CSV表格->CSV表格替换掉Markdown表格->embedding->ChatGPT

原表格如下,signMsg部分格式复杂:

参数名称

参数含义

长度

可否为空

参数说明

mchntid

商户编号

15

不可空

统一分配给商户的商户编号,用以区分不同商户。

orderId

订单编号

16

不可空

商户提交给系统的交易订单编号。

每个商户提交的订单号,必须在自身账户交易中唯一。

reserved

商户保留域

60

可空

商户通过此字段向支付系统发送信息,其将依原样填充返回给商户。

signMsg

数字签名

32

不可空

以上所有参数及其值与密钥组合,经MD5 加密生成并转化为大写的32 位字符串。

对于所有值的参数及对应值,按照如上顺序和如下规则组成字符串,其中key为密钥:

参数1={参数1}&参数2={参数2}&……&参数n={参数n}&key={key}

然后进行32位算法的MD5 加密后,将结果转化为大写。

signMsg=MD5(参数1={参数1}&参数2={参数2}&……&参数n={参数n}&key={key})

childMchntid

子商户号

15

可空

支付系统统一分配给商户的子商户编号,不参与验签

对比Markdown表格与CSV表格的文本体积:

Markdown表格的文本体积超过4K,冗余浪费Token

商户向支付系统的支付接入地址(http)提交订单信息,提交页面中应该包括如下信息(注意各字段的大小写):

+-------------+-------------+-----+--------+-------------------------+
| *           | *           | *   | **可否 | **参数说明**            |
| *参数名称** | *参数含义** | *长 | 为空** |                         |
|             |             | 度  |        |                         |
|             |             | **  |        |                         |
+=============+=============+=====+========+=========================+
| mchntid     | 商户编号    | 15  | 不可空 | 统一分配给商户的商户编  |
|             |             |     |        | 号,用以区分不同商户。  |
+-------------+-------------+-----+--------+-------------------------+
| orderId     | 订单编号    | 16  | 不可空 | 商户提交                |
|             |             |     |        | 给系统的交易订单编号。  |
|             |             |     |        |                         |
|             |             |     |        | 每个                    |
|             |             |     |        | 商户提交的订单号,必须  |
|             |             |     |        | 在自身账户交易中唯一。  |
+-------------+-------------+-----+--------+-------------------------+
| bgUrl       | 后台        | 80  | 不可空 | 后台接收应答地          |
|             | 交易接收Url |     |        | 址,用于商户记录交易信  |
|             |             |     |        | 息和处理,对于使用者是  |
|             |             |     |        | 不可见的。需URLEncoder  |
|             |             |     |        | \"UTF-8\"处理           |
+-------------+-------------+-----+--------+-------------------------+
| productName | 商品名称    | 60  | 可空   | 需URLEncoder            |
|             |             |     |        | \"UTF-8\"处理           |
+-------------+-------------+-----+--------+-------------------------+
| productNum  | 商品数量    | 8   | 可空   |                         |
+-------------+-------------+-----+--------+-------------------------+
| productDesc | 商品描述    | 100 | 可空   | 需URLEncoder            |
|             |             |     |        | \"UTF-8\"处理           |
+-------------+-------------+-----+--------+-------------------------+
| reserved    | 商户保留域  | 60  | 可空   | 商户通过此字段向        |
|             |             |     |        | 支付系统发送信息,其将  |
|             |             |     |        | 依原样填充返回给商户。  |
+-------------+-------------+-----+--------+-------------------------+
| signMsg     | 数字签名    | 32  | 不可空 | 以上所有参数            |
|             |             |     |        | 及其值与密钥组合,经MD5 |
|             |             |     |        | 加                      |
|             |             |     |        | 密生成并转化为大写的32  |
|             |             |     |        | 位字符串。              |
+-------------+-------------+-----+--------+-------------------------+
|             | 对于        |     |        |                         |
|             | 所有值的参  |     |        |                         |
|             | 数及对应值  |     |        |                         |
|             | ,按照如上  |     |        |                         |
|             | 顺序和如下  |     |        |                         |
|             | 规则组成字  |     |        |                         |
|             | 符串,其中  |     |        |                         |
|             | key为密钥: |     |        |                         |
|             |             |     |        |                         |
|             | 参数1       |     |        |                         |
|             | ={参数1}&参 |     |        |                         |
|             | 数2={参数2  |     |        |                         |
|             | }&......&参 |     |        |                         |
|             | 数n={参数n  |     |        |                         |
|             | }&key={key} |     |        |                         |
|             |             |     |        |                         |
|             | 然后进行32  |     |        |                         |
|             | 位算法的MD5 |     |        |                         |
|             | 加密后      |     |        |                         |
|             | ,将结果转  |     |        |                         |
|             | 化为大写。  |     |        |                         |
|             |             |     |        |                         |
|             | signMs      |     |        |                         |
|             | g=MD5(参数1 |     |        |                         |
|             | ={参数1}&参 |     |        |                         |
|             | 数2={参数2  |     |        |                         |
|             | }&......&参 |     |        |                         |
|             | 数n={参数n} |     |        |                         |
|             | &key={key}) |     |        |                         |
+-------------+-------------+-----+--------+-------------------------+
| c           | 子商户号    | 15  | 可空   | 支付                    |
| hildMchntid |             |     |        | 系统统一分配给商户的子  |
|             |             |     |        | 商户编号,不参与验签。  |
+-------------+-------------+-----+--------+-------------------------+

CSV表格的文本体积精简

商户向支付系统的支付接入地址(http)提交订单信息,提交页面中应该包括如下信息(注意各字段的大小写):

参数名称,参数含义,长度,可否为空,参数说明
mchntid,商户编号,15,不可空,统一分配给商户的商户编号,用以区分不同商户。
orderId,订单编号,16,不可空,商户提交给系统的交易订单编号。
,,,,每个商户提交的订单号,必须在自身账户交易中唯一。
reserved,商户保留域,60,可空,商户通过此字段向支付系统发送信息,其将依原样填充返回给商户。
signMsg,数字签名,32,不可空,以上所有参数及其值与密钥组合,经MD5 加密生成并转化为大写的32 位字符串。
,对于所有值的参数及对应值,按照如上顺序和如下规则组成字符串,其中key为密钥:,,,
,参数1={参数1}&参数2={参数2}&……&参数n={参数n}&key={key},,,
,然后进行32位算法的MD5 加密后,将结果转化为大写。,,,
,signMsg=MD5(参数1={参数1}&参数2={参数2}&……&参数n={参数n}&key={key}),,,
childMchntid,子商户号,15,可空,支付系统统一分配给商户的子商户编号,不参与验签。

ChatGPT答复的结果

ChatGPT | Word文档如何更好地提取表格内容给ChatGPT相关推荐

  1. Python3-word文档操作(十):利用docx库创建word文档,添加段落,添加表格,添加图片,设置文字粗体,斜体

    1 简介: 作为一个综合例子,本篇主要显示docx库的一些基本操作: 利用docx库创建word文档,添加段落,添加表格,添加图片,设置文字粗体,斜体. 2 举例: 对word文档进行属性的设置,以及 ...

  2. 将word文档中所有文本框中的内容转换成普通段落

    某些pdf转word工具生成的word文档,会将很多内容放在文本框中,以至于编辑word文档不太方便,例如想全选所有段落中的文字再调整某些格式,文本框中的文字有时候不能像普通段落中的文字一样产生同样的 ...

  3. java操作word文档(文字,图片,表格添加以及替换操作)

    注:本文由于个人工作需要,有对多个他人博文进行借鉴,但是多数博文都只是讲到了小部分,例如图片/表格的操作,都只有根据书签进行替换,比较片面,本人有总结到根据文字进行图片/表格的替换,希望可以帮到更多有 ...

  4. 小菜鸟的Python笔记001:将Word文档中数据汇总到Excel表格

    将Word文档中数据汇总到Excel表格 前言 一.应用场景 二.程序思路及准备工作 思路如下: 准备工作: 三.程序代码 1.主程序 2.获取Word文档列表 3.提取文档内数据 4.导入到Exce ...

  5. 使用iText在word文档中插入复杂的Table表格

    iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档和word文档的一个java类库.通过iText不仅可以生成PDF或rtf 的文档,而且可以将XML.Html文件转 ...

  6. easypoi导出word表格_拒绝加班,批量将word文档中的信息高效率提取出来存储到Excel中...

    最近,有小伙伴跟我提了一个需求,小伙伴是做扶贫工作的,从扶贫系统里面可以批量的导出每一户的信息到一个word文档中,导出的内容是在word中是以表格的形式存在的.小伙伴的需求是如何批量的将每个word ...

  7. 计算机怎么把文字转换成表格,Word文档如何将文字转换成表格形式

    一.将Word中文字转换成表格(以Word2003为例) 将文字转换成表格(表格:一或多列储存格,通常用于显示数字及其他项目,以供快速参照及分析.表格中项目的组织形式是列及行)时,要以逗点.tab或其 ...

  8. C# - 生成Word文档(包含插入行,表格,图片,合并等)

    转自:https://blog.csdn.net/lj102800/article/details/6106451 1.引入COM组件 在解决方案中"引用"->"添 ...

  9. 如何对多个版本的Word文档对比,查找变动删减的内容

    重要的方案.报价.合同类的文档,可能会编辑多个版本,那要如何才能了解两个文档版本的差异,总不能同时打开了,一个个对着看吧.那怎么办?这时候,我们可以利用Word强大的"文档比较"功 ...

最新文章

  1. Python中的find()
  2. 无限的Bash历史[关闭]
  3. 第5章 线性回归算法
  4. HTTP常用头部信息
  5. UML学习笔记(4)——类图之间的关系
  6. 重新上手c语言的一些坑
  7. 和公婆住在一起是什么体验?
  8. 长春工业大学计算机组成原理考试开卷考吗,计算机组成原理期末复习资料
  9. Deep Learning快速学习方法
  10. 【ACL2021】BERT也能做生成?利用多个BERT模型分离对话生成和对话理解
  11. Android wm指令的用法笔记
  12. 【气动学】基于matlab导弹拦截计算方法【含Matlab源码 982期】
  13. GBase数据库安装前一般检查
  14. 《算法》-1.5-并查集算法
  15. 02.使用fmod实现QQ变声效果
  16. 使用vsftpd 搭建ftp 服务器
  17. word标题前面存在竖线
  18. docker容器时间错误解决方案
  19. 发邮件时提示连接服务器失败,发送邮件时经常出现发送失败或是连接超时什么原因...
  20. 区块链学习笔记4——BTC实现

热门文章

  1. 简单聊聊网络空间测绘纵横之道
  2. 浏览器g.xxx333xxx.com 跳转2345问题解决方法
  3. 手持终端的功能特点有哪些?
  4. 2021年重庆国际医用消毒用品展览会
  5. AI时尚前沿趋势,时尚黑客聚集ing |FashionHack专栏
  6. oracle数据库下载免费下载,oracle数据库下载地址
  7. 使用RSS地址订阅微信公众账号的文章~
  8. 电脑——关机、睡眠、混合睡眠、休眠,如何选择
  9. vue + canvas绘制背景图、矩形
  10. 去英国工作也是个不错的选择