从PDF到CSV:我也做了次数据清洗

in #cn3 months ago

前几天,公司OA上传来一份能源局转发的关于安全生产的文件,内容是一些问答题。文件不到1000个问答,要求大家认真学习。这文件让我思考了一个问题:能不能把这些问答放到我的人工智能对话系统里?

想法是好的,接下来就是实施了。文件是PDF版的,直接读取不太方便,我便利用百度网盘的功能把它转换成Word文档。原来的PDF大约有65兆,但转换成Word后,体积一下子缩小到了500K。细看了一下文件的格式,发现结构还算简单,每个问题都有对应的参考答案。我想着,用Python代码来处理它们应该不难。

于是,我很快写了一个脚本,将这些问答分别提取出来,并生成了JSON和CSV格式的文件。整个过程还算顺利。接下来,我把CSV文件导入了我的智能知识库,并开始模拟调试。

前面几个问题问答还算流畅,但到“如何进行验电”这个问题时,系统突然卡住了,居然给了一个“不知道”的回答。这让我非常诧异,因为这个问题明明在文件里有的。我开始去CSV文件里查找,结果发现这个问题并没有按照问题和答案分割开来,而是和其他的内容混在了一起。这导致系统在提取数据时出了差错。

为了搞清楚问题出在哪里,我重新检查了一下之前转换的Word文档,发现一些错误——例如,回车和空格键被乱用,这是PDF转换成word文档时常见的问题。这样,就让Python在提取数据时出现了问题。我开始做进一步的调试,先是删除这些错误的空格和回车键。调试了两次,情况有了一些改善,但仍然有一些小问题。

最后,我将分类后的Word文档交给ChatGPT,让它根据我给出的规则进行进一步处理。经过ChatGPT的处理,程序最终能够准确地将所有问题和参考答案分开,生成了正确的JSON和CSV文件。

数据清洗完成后,我将清洗后的CSV文件重新导入到知识库,再次进行调试。这次系统的回答流畅了许多,问答也恢复了正常。整个过程,从数据转换到调试成功,只花了不到3个小时,所有问题得到了妥善解决,800个左右的问答题库顺利完成导入

这一趟探索虽然有波折,但让我收获颇丰,尤其是在应对文档格式处理和数据清洗方面的经验大增。如今,系统中的问答题已经可以流畅地进行查询和回答了。