第一周

2023年8月3日

上午读入MATH23K.json时用Python自带的json库无法读入,因为该文件格式不是标准的json,整体并不是一个完整的list,且每个dict之间没有逗号。但每个dict占用7行,因此也不是jsonl格式。根据读入的报错查询了多种解决办法均无果,最后从数据集入手,查询使用它的相关论文,在github上找到开源代码,定位到数据读取的函数,问题解决。(其实可以自己写函数读文件,但是懒)

2023年8月4日

今日无事,原来工作是真的会摸鱼的。下班之后骑自行车回的学校,一路上有夕阳相伴,幸福。

2023年8月5日

上午去公司听了讲座,感觉人工智能的发展空间还是蛮大的。不得不承认大量语料库的堆积就是会提升语言模型的性能,同时了解到安全问题其实很重要,功能越强大的平台越可能被从多方面攻击。

第二周

2023年8月7日

今日依旧无事,又深入研究了一下机器学习的数据集划分和特征选择。需要给自己白天找点事情做了。(想做雅思但在电脑上看阅读太过于明目张胆了)

2023年8月8日

在进行MMCU数据集清洗的时候,发现它dev部分的数据远少于test部分的数据,鉴于一般train : test=7 : 3的疑惑,上网搜索这个数据集,发现该数据集就是一个测试集:few-shot开发集每个主题有5个问题,共有55个问题;测试集共有11845个问题。

中午和叔叔聊天,说目前AI领域活的就是大模型开发,不论是CV 还是NLP,多模态将是未来研究的热点。

2023年8月9日

今日无事。认真读书,背单词,用远控做了阅读,还学了神经网络的模型。晚上在单位吃了饭,回学校游了泳,很充实。

2023年8月10日

今天处理的数据集是扫描的PDF文档,要将其转换为给定格式的.docx。

遇到的第一个问题其实是下载数据集,学长提供的是是服务器的地址,第一下有点懵,后来通过scp连上了,还了解了几个APP,不错,打算总结到新文章里。

明天看看怎么识别文字吧。

2023年8月11日

今天进展不错,通过PDF转PNG,再给PNG去水印,再用OCR识别文字。

去水印蛮有意思,是通过遍历图片的每一个像素点,如果像素符合条件就把它替换掉。我处理的文档里面水印是红色RGB=(255, x, x),文字是黑色RGB=(0, 0, 0)也就是说遇到这样的点就让他变白RGB=(255, 255, 255),刚开始还不知道只要是红色RGB的第一项就是拉满的,调了好久。

OCR识别遇到的第一个问题竟然是因为挂了代理所以模型git不到:

1
SSLError: HTTPSConnectionPool(host='huggingface.co', port=443)

最后是直接去Hugging Face上下载模型,放到相应的文件夹里(从报错中找到的文件夹位置)。后来是发现有水印的时候识别结果有一点混乱,所以才添加了前文所说的去水印的步骤。

目前遇到的问题是因为靠的是OCR识别,一行一行识别,格式比较混乱,但数据量比较大,手动改格式不太现实,还没想好怎么解决。

第三周

2023年8月14日

今天总算是找到了第一本书的数据清洗方式,因为OCR识别是一行一行识别,我们利用这个特性,在text[0]=='A'的内容前面加上 “选项:”,同时设定如果该行文字以数字开头则换行,这样写进文档的内容就有了一定的格式,我们再将文本按章节分段,放入不同的文本让你文件,每行一道题,就成功将题目与答案对齐。同时在pycharm中通过Ctrl + Windows + Shift实现多光标多行同时编辑,大大提高了效率。

2023年8月15日

处理数据集,进入机械化操作阶段。pycharm的Ctrl + FCtrl + R 做文本替换大大提高效率。(偏个题,100DAYHAPPY)

2023年8月16日

继续处理数据集,发现右手食指左侧有一小块发紫,希望不是按鼠标按的。

2023年8月17日

处理完了最后一个,感觉OCR识别真的是全靠汉字形状,如果能添加语义信息的话或许效果会更高,减少错别字啊,还有莫名其妙多出来的汉字啊等等。一个小小的设想。

2023年8月18日

今日无事,身体不适。才知道调休不扣钱。

第四周

2023年8月22日

今天收到了新的数据集,这次终于是提取正常的PDF的文字和图片了,我采用的是pdfplumber库。

一般PDF不同行不同段落之间都以"\n"结尾,因此在读取PDF的时候最常见的问题就是同一段被换了很多次行。

因为pdfplumber库中的.extract_text()函数可以定位每一个字段的起始和结束的坐标位置,在多次试验后,我发现首行缩进两字符后字段的起始位置(x0=102.0)为定值,因此,借助此特征,我只需要将x0==102.0的字段被append之前加入换行符,成功解决该问题。(起初考虑每一段中前面每行都是写满的,没写满的后面就要加换行符,但此方法漏洞太多)。

除此之外,根据文档的格式,我还加了一些其他的筛选条件,最终结果很好。注意ifelif最后一定要有else

最终代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for word in words:
# 102.0是首行缩进的位置
if word['x0'] == 102.0:
lines.append("\n" + word['text'])
elif word['text'][0] in {'第', '【'}:
lines.append("\n" + word['text'])
elif len(word['text']) > 1:
if word['text'][0] in {'一', '二', '三', '四', '五', '六', '六', '七', '八', '九', '十'} and word['text'][1] == '、':
lines.append("\n" + word['text'])
elif word['text'][0] == '(' and word['text'][1] in {'一', '二', '三', '四', '五', '六', '六', '七', '八', '九', '十'}:
lines.append("\n" + word['text'])
else:
lines.append(word['text'])
else:
lines.append(word['text'])

2023年8月23日

进入对文档表格的处理,由于该文件中的表格全都是以图片的形式存在,因此表格提取的步骤为:读取PDF文件中的所有图片——通过OCR识别文字——通过Typora将文字打入表格并保存为markdown格式。

首先安装typora,第一次在Linux上安装,修改配置文件的时候需要在sudo -i 进入root之后进行。

之后就是重复的Ctrl+C Ctul+V操作了。

2023年8月24日

处理了一天表格,终于结束!

2023年8月25日

新的数据集,MNBVC)(Massive Never-ending BT Vast Chinese corpus)

还蛮有意思,也在里面看到了自己之前提出的NLP辅助OCR识别。

2023年8月26日

努力起床去听了培训,今天讲的是NLP概述,但那个老师讲了不到40min就没话说了。

后来大家就开始闲聊,感觉其实关于CV和NLP以至于说机器学习,最重要的其实是数据集,数据集的质量决定整个模型的上限,我们虽然创造了很多很多的模型,设置了很多不同的细节,但如果基本的数据集质量不行,最后得到的东西也不会好到哪去。

除此之外这还说明数据集是AI领域很关键的内容,ChatGPT就是因为数据集很庞大,数据质量高,所以最后的效果才很好。

第五周

2023年8月28日

.csv.jsonl文件处理起来快速且顺利。

但最近遇到的文件都很大(类似2GB),本来想将文件全部读入再转换格式,但电脑直接卡了,说系统内存不足。最后采用了边读边写入的方式,问题解决。

但目前不太清楚卡住的时候到底是哪里的内存满了,明天研究一下。

2023年8月29日

内存探究在另一篇文章中,今天处理的文件没有难度,快快完成。

2023年8月30日

一直到下午四点左右才收到任务,最近处理的数据集都蛮大的,要注意内存的使用。

2023年8月31日

八月的最后一天,今天筛选数据的时候感受到了python中if之后的多个elif顺序的重要性,因为条件是依次检查的,如果if后的条件有交叉,不同的顺序会导致不同的结果。不太知道python读取文件夹中所有文件时文件是怎么排序的。

2023年9月1日

今日无事,摸鱼。学了英语。

第六周

2023年9月4日

还有两周就要考雅思了,急急急。下午收到了新任务,是要处理一个公务员考试的数据集,内容特别多,学长处理了很久才处理了5个省份,但好处是我们在处理之前就有了脚本。了解了一个新的操作word文件的库,叫Python-docxhttps://www.osgeo.cn/python-tutorial/docx-read.html。此库只能处理`.docx`的文件,但不能处理`.doc`。上网查询两种文件区别:

.doc文件是Microsoft Word 97-2003二进制文件格式的扩展名。
.docx文件是Microsoft Word 2007及更高版本的XML文档格式的扩展名。具有更好的兼容性

看懂学长代码也花了点时间,但他利用纯文本文件的题号匹配真的是我之前没想到的。

2023年9月5日

今天一口气把黑龙江的数据处理完了,对学长的代码反复需要修改的内容进行了变量化,提高效率。两个函数分别对应题目和答案在一起和分开两种情况。

2023年9月6日

头疼,请假了,睡到十点多,很满足。

2023年9月7日

果然人还是需要充足的睡眠,今天状态很好,一天处理完了两个省份的数据,但其中有一些像1+1=3这样匪夷所思的错题,对数据集质量表示担忧。晚上去商场吃了饭,有人明天开学。

2023年9月8日

今天只处理完了一个省份,但数据量很大,并且格式太混乱了,整理了很久。发现快捷键Ctrl+Ctrl按住+上下键快速添加同一列光标。也成功利用正则表达式把文字版的页数去掉了,满意。

第六周

2023年9月11日—-2023年9月15日

接着上周的工作用两天时间完成了剩下的四个省份,周三周四偷偷学英语,周五请假没去,在学校学英语。

第七周

2023年9月18日

早上提交了离职申请,下午完成了学校要求的实习报告,刚写完我的账号就被注销了(这么急干嘛),又借用同事的号请老师帮忙签了导师意见,因为在内网上发的东西不能外传,只能明天麻烦同事帮忙打印一下再去盖章。对了,中午屠叔叔和部长请我们几个实习生吃了自助,聊的还蛮开心,对未来生活充满期待。

2023年9月19日

倒数第二天,请同事帮忙打印了文件,在系统上申请了盖章,又从三号楼跑到六号楼去盖章。从人事系统上能看到离职进程,发现卡在了工作交接表双方签字提交的步骤,又自己去联系天津的导师,结果导师让我自己写,我??最后找了南京的另一个指导过我们的老师,帮我写了,打印出来交给了负责人。除此之外,还自己去找负责人完成了资产清算(我就没资产😢)。今天结束。

2023年9月20日

最后一天!上午把考勤确认了。下午把鼠标键盘终端显示器都原封不动塞回了盒子里,去六号楼三楼交还工卡,打电话删除门禁卡权限,结束。

PS.感觉离职比入职还麻烦。