Índice
Resumo
Para testar a capacidade de processamento do ChatGP em tabelas de documentos do Word, este artigo lista duas maneiras de usar o ChatGPT diretamente e usar o ChatGPT para escrever scripts python, ambos relativamente fáceis de atingir o objetivo pretendido. O método e a ideia de usar o ChatGPT para processamento de documentos apresentados no artigo podem orientar todos a usar ferramentas de IA para melhorar a eficiência.
Nos trabalhos recentes, é necessário analisar e processar alguns dados tabulares e gerar documentos estatísticos. Pensando no ChatGPT, uma ferramenta de aumento de produtividade, tente ver como funciona.
0. Geração de dados de teste
Os dados no trabalho envolvem muitas informações pessoais e não são adequados para testes diretos, portanto, é necessário gerar dados semelhantes para depuração.
Dicas: No processo de uso do ChatGPT, você deve prestar atenção à privacidade pessoal e à proteção de dados. Ainda é incerto como os dados que você enviar serão usados. Não tem nada a ver com os relatórios de vazamentos de dados que foram conversados com o ChatGPT .
Forneci ao ChatGPT os cabeçalhos da tabela que precisam ser processados, pedi a ele para gerar dados aleatórios para mim e, em seguida, usei os dados que ele gerou para teste.
digitar:
按照下的数据格式,自动生成20数据
数据实例表格如下:
| 序号 | 商品 | 发货地点 | 发货时间 | 预计收货时间 | 收货人 | 快递公司 | 快递公司电话 |
| :--: | :------: | :----------: | :-----------------: | :-----------------: | :------: | :------: | :------------: |
| 1 | 苹果 | 河南省郑州市 | 2023-04-20 08:30:00 | 2023-04-22 12:00:00 | 张三 | 顺丰快递 | 10086 |
saída:
| 序号 | 商品 | 发货地点 | 发货时间 | 预计收货时间 | 收货人 | 快递公司 | 快递公司电话 |
| ---- | ---- | -------- | ------------ | ------------ | ------ | ------ | -------- |
| 1 | 牙刷 | 广东省深圳市 | 2023-04-20 10:00:00 | 2023-04-21 18:00:00 | 张三 | 申通快递 | 95543 |
| 2 | 洗发水 | 北京市海淀区 | 2023-04-20 10:30:00 | 2023-04-22 16:00:00 | 李四 | 圆通快递 | 95554 |
| 3 | 衣服 | 上海市浦东新区 | 2023-04-20 11:00:00 | 2023-04-23 14:30:00 | 王五 | 中通快递 | 95555 |
| 4 | 鞋子 | 广东省广州市 | 2023-04-20 12:00:00 | 2023-04-22 15:00:00 | 赵六 | 顺丰快递 | 95338 |
| 5 | 手机 | 河北省石家庄市 | 2023-04-20 13:00:00 | 2023-04-23 10:00:00 | 张三丰 | 韵达快递 | 95546 |
| 6 | 眼镜 | 江苏省南京市 | 2023-04-20 14:30:00 | 2023-04-23 12:00:00 | 李白 | 中通快递 | 95508 |
| 7 | 水杯 | 四川省成都市 | 2023-04-20 15:00:00 | 2023-04-22 17:30:00 | 王实甫 | 顺丰快递 | 95338 |
| 8 | 书包 | 河南省洛阳市 | 2023-04-20 16:00:00 | 2023-04-24 14:00:00 | 吕布 | 圆通快递 | 95554 |
| 9 | 帽子 | 浙江省杭州市 | 2023-04-20 17:30:00 | 2023-04-24 11:30:00 | 张飞 | 韵达快递 | 95546 |
| 10 | 耳机 | 广东省深圳市 | 2023-04-20 18:00:00 | 2023-04-21 21:00:00 | 关羽 | 中通快递 | 95555 |
| 11 | 凉鞋 | 北京市朝阳区 | 2023-04-20 19:30:00 | 2023-04-23 16:30:00 | 赵云 | 申通快递 | 95543 |
| 12 | 腰带 | 上海市长宁区 | 2023-04-20 20:00:00 | 2023-04-24 17:00:00 | 刘备 | 圆通快递 | 95554 |
| 13 | 毛巾 | 广东省广州市 | 2023-04-20 21:00:00 | 2023-04-23 15:00:00 | 孙尚香 | 顺丰快递 | 95338 |
| 14 | 餐具 | 河北省保定市 | 2023-04-20 22:00:00 | 2023-04-25 11:00:00 | 华佗 | 中通快递 | 95508 |
| 15 | 头盔 | 湖北省武汉市 | 2023-04-20 23:00:00 | 2023-04-23 13:30:00 | 典韦 | 申通快递 | 95543 |
| 16 | 手表 | 广东省深圳市 | 2023-04-21 00:30:00 | 2023-04-22 18:00:00 | 马超 | 韵达快递 | 95546 |
| 17 | 手表 | 四川省成都市 | 2023-04-21 01:00:00 | 2023-04-24 16:30:00 | 刘备 | 圆通快递 | 95554 |
| 18 | 游戏手柄 | 上海市浦东新区 | 2023-04-21 02:00:00 | 2023-04-22 21:00:00 | 王昭君 | 中通快递 | 95555 |
| 19 | 牙膏 | 北京市海淀区 | 2023-04-21 03:30:00 | 2023-04-23 12:30:00 | 曹操 | 顺丰快递 | 95338 |
| 20 | 茶杯 | 广东省广州市 | 2023-04-21 04:00:00 | 2023-04-24 10:00:00 | 关羽 | 韵达快递 | 95546 |
Os dados de saída são muito rápidos e os resultados também são muito estáveis. A relação entre as províncias e cidades da cidade, a sequência de tempo de entrega e recebimento, o nome da entrega expressa é uma entrega expressa comum que aparece aleatoriamente e repetidamente , e a maioria dos nomes são Zhang San Li Si. O exemplo acima é bastante especial, um grupo de três países O personagem, o número de telefone do correio está errado, mas não afeta meu processamento de dados subsequente.
1. Use ChatGPT diretamente para processamento.
Estou tentando deixar o ChatGPT contar o destinatário como mensageiro de Guan Yu, digite:
对上面生成的数据进行分析,请完整的统计“收货人”为“关羽”的所有数据,输出格式为:
由关羽的快递有{
}件,分别是:
{
序号}.{
发货地点}寄出的{
商品},快递公司为{
快递公司},收货人是{
收货人},预计达到时间为{
预计达到时间};
Primeira saída:
收货人为“关羽”的所有数据如下:
由关羽的快递有3件,分别是:
10.广东省深圳市寄出的耳机,快递公司为中通快递,收货人是关羽,预计达到时间为2023-04-21 21:00:00;
20.广东省广州市寄出的茶杯,快递公司为韵达快递,收货人是关羽,预计达到时间为2023-04-24 10:00:00;
17.四川省成都市寄出的手表,快递公司为圆通快递,收货人是关羽,预计达到时间为2023-04-24 16:30:00;
Um deles está errado, lembre-o, digite:
你有一条数据是错误的,有一件物品的收件人并不是关羽
Saída novamente:
非常抱歉,我犯了一个错误。我查看一下表格,发现其实序号为17的手表的收货人不是关羽,正确的收件人应该是刘备。那么由关羽的快递应该只有2件。非常感谢您的纠正。正确的输出如下:
由关羽的快递有2件,分别是:
10.广东省深圳市寄出的耳机,快递公司为中通快递,收货人是关羽,预计达到时间为2023-04-21 21:00:00;
20.广东省广州市寄出的茶杯,快递公司为韵达快递,收货人是关羽,预计达到时间为2023-04-24 10:00:00;
Eu testei muitas vezes, basicamente toda vez que cometo erros primeiro, e geralmente consigo corrigir depois de lembrar, mas às vezes não consigo corrigir, basicamente não há como obter a resposta correta da primeira vez, especialmente quando há são muitos dados, lembre-me muitas vezes Não há como obter a resposta correta e a maioria dos erros são estatísticas ausentes. Portanto, pessoalmente, sinto que não é viável usar o ChatGPT para processamento direto de dados. Há três razões:
uma é a questão da confidencialidade dos dados, muitos dados envolvem segredos comerciais e privacidade pessoal; a outra
é a questão do volume de dados, ainda não é possível processar milhares de linhas de dados por meio de caixas de diálogo.
A terceira é a incerteza dos resultados do processamento de dados. O mecanismo interno do modelo AI ainda não está claro. A aleatoriedade de seus resultados, especialmente quando a quantidade de dados é grande, a probabilidade de erro aumenta significativamente. Afinal, é impossível processar milhares de linhas de dados Revisão manual.
Então, aqui está uma tentativa de alcançar o que eu quero fazendo com que o ChatGPT gere um script Python.
2 Use ChatGPT para gerar scripts python para processamento
O ChatGPT também pode escrever programas, deixe-o ajudar a escrever um script python, um script simples como este deve ser capaz de fazer o trabalho.
digitar:
有如下一个表格,存储在名为“物流信息统计表.docx”的文件中。
| 序号 | 商品 | 发货地点 | 发货时间 | 预计收货时间 | 收货人 | 快递公司 | 快递公司电话 |
| ---- | ---- | -------- | ------------ | ------------ | ------ | ------ | -------- |
| 1 | 牙刷 | 广东省深圳市 | 2023-04-20 10:00:00 | 2023-04-21 18:00:00 | 张三 | 申通快递 | 95543 |
| 2 | 洗发水 | 北京市海淀区 | 2023-04-20 10:30:00 | 2023-04-22 16:00:00 | 李四 | 圆通快递 | 95554 |
| 3 | 衣服 | 上海市浦东新区 | 2023-04-20 11:00:00 | 2023-04-23 14:30:00 | 王五 | 中通快递 | 95555 |
| 4 | 鞋子 | 广东省广州市 | 2023-04-20 12:00:00 | 2023-04-22 15:00:00 | 赵六 | 顺丰快递 | 95338 |
| 5 | 手机 | 河北省石家庄市 | 2023-04-20 13:00:00 | 2023-04-23 10:00:00 | 张三丰 | 韵达快递 | 95546 |
表格的行数不确定,请帮我编写一个python程序,实现以下功能,
完整的统计“收货人”为“关羽”的所有数据,生成以下文字:
由关羽的快递有{
}件,分别是:
{
序号}.{
发货地点}寄出的{
商品},快递公司为{
快递公司},收货人是{
收货人},预计达到时间为{
预计达到时间};
并将上述文字保存在“物流信息处理表.docx”中。
Primeira saída:
Ok, você pode fazer isso usando a biblioteca docx em Python. É necessário apenas ler e percorrer os dados da tabela no "Logistics Information Statistical Table.docx", encontrar os dados elegíveis para estatísticas e, finalmente, salvar os resultados estatísticos no arquivo "Logistics Information Processing Table.docx".
A seguir está o código Python para realizar esta função:
import docx
# 打开物流信息统计表
doc = docx.Document("物流信息统计表.docx")
# 初始化目标数据列表
target_data = []
# 遍历表格数据
for row in doc.tables[0].rows[1:]:
# 获取每一行的数据
data = [cell.text for cell in row.cells]
# 判断是否是关羽的快递
if data[5] == "关羽":
target_data.append({
"序号": data[0],
"商品": data[1],
"发货地点": data[2],
"发货时间": data[3],
"预计收货时间": data[4],
"收货人": data[5],
"快递公司": data[6],
"快递公司电话": data[7]
})
# 拼接要保存的文字
text = "由关羽的快递有{}件,分别是:\n".format(len(target_data))
for i, data in enumerate(target_data):
text += "{}.{}寄出的{},快递公司为{},收货人是{},预计达到时间为{};\n".format(
data["序号"], data["发货地点"], data["商品"], data["快递公司"], data["收货人"], data["预计收货时间"]
)
# 保存拼接好的文字到文件中
docx.Document().add_paragraph(text).save("物流信息处理表.docx")
Depois de executar o código acima, o programa lerá automaticamente os dados da tabela no arquivo "Logistics Information Statistics Table. Processing table.docx".
No entanto, ao executar pela primeira vez, o sistema informa um erro,
digite:
docx.Document().add_paragraph(text).save("物流信息处理表1.docx")
AttributeError: 'Paragraph' object has no attribute 'save'
上面是系统报错,请修改程序
Saída:
Desculpe, cometi um descuido no código. A forma correta de salvar deve ser utilizando doc.save("物流信息处理表.docx")
, sendo necessário adicionar um parágrafo ao criar um novo documento, e em seguida adicionar o texto emendado a este parágrafo, conforme imagem abaixo:
import docx
# 打开物流信息统计表
doc = docx.Document("物流信息统计表.docx")
# 初始化目标数据列表
target_data = []
# 遍历表格数据
for row in doc.tables[0].rows[1:]:
# 获取每一行的数据
data = [cell.text for cell in row.cells]
# 判断是否是关羽的快递
if data[5] == "关羽":
target_data.append({
"序号": data[0],
"商品": data[1],
"发货地点": data[2],
"发货时间": data[3],
"预计收货时间": data[4],
"收货人": data[5],
"快递公司": data[6],
"快递公司电话": data[7]
})
# 新建一个文档,添加一个段落
new_doc = docx.Document()
new_doc.add_paragraph()
# 拼接要保存的文字
text = "由关羽的快递有{}件,分别是:\n".format(len(target_data))
for i, data in enumerate(target_data):
text += "{}.{}寄出的{},快递公司为{},收货人是{},预计达到时间为{};\n".format(
data["序号"], data["发货地点"], data["商品"], data["快递公司"], data["收货人"], data["预计收货时间"]
)
# 将拼接好的文字添加到段落中
new_doc.paragraphs[0].add_run(text)
# 保存文档
new_doc.save("物流信息处理表.docx")
Depois de executar o código acima, o programa lerá automaticamente os dados da tabela no arquivo "Logistics Information Statistics Table. Processing table.docx".
O resultado da saída é:
sem dados? De repente, ocorreu-me que havia vários espaços antes e depois dos dados "Guan Yu".
digitar:
上面的程序并没有输出正确的结果,可能是数据{
收货人}前面后都包含空格,需要你删除空格,请重新改上述程序
Saída:
Procurando por você: programa acima, saída, resultado correto, dados {destinatário}
Ok, você pode retirar () os dados do "consignee" no código para remover espaços, para evitar erros estatísticos causados por espaços antes e depois dos dados. O código modificado é o seguinte:
import docx
# 打开物流信息统计表
doc = docx.Document("物流信息统计表.docx")
# 初始化目标数据列表
target_data = []
# 遍历表格数据
for row in doc.tables[0].rows[1:]:
# 获取每一行的数据
data = [cell.text.strip() for cell in row.cells]
# 判断是否是关羽的快递
if data[5] == "关羽":
target_data.append({
"序号": data[0],
"商品": data[1],
"发货地点": data[2],
"发货时间": data[3],
"预计收货时间": data[4],
"收货人": data[5],
"快递公司": data[6],
"快递公司电话": data[7]
})
# 新建一个文档,添加一个段落
new_doc = docx.Document()
new_doc.add_paragraph()
# 拼接要保存的文字
text = "由关羽的快递有{}件,分别是:\n".format(len(target_data))
for i, data in enumerate(target_data):
text += "{}.{}寄出的{},快递公司为{},收货人是{},预计达到时间为{};\n".format(
data["序号"], data["发货地点"], data["商品"], data["快递公司"], data["收货人"], data["预计收货时间"]
)
# 将拼接好的文字添加到段落中
new_doc.paragraphs[0].add_run(text)
# 保存文档
new_doc.save("物流信息处理表.docx")
Depois de executar o código acima, o programa lerá automaticamente os dados da tabela no arquivo "Logistics Information Statistics Table. Processing table.docx".
Desta vez, o resultado correto pode ser gerado e a tarefa é concluída.
3 análise comparativa
Originalmente, eu queria que Wenxin concluísse esta tarefa com uma única palavra, então vamos compará-la. Ei... A única palavra de Wen Xin é difícil de descrever~~~
4. Conclusão
Este teste ChatGPT é uma versão doméstica, gratuita e afirma ser baseada na versão ChatGPT3.5. No que diz respeito aos resultados, já é muito poderoso. O modo de trabalho do AI também deve ser aprendido.