接续上一篇,昨天已经把问答集的内容都爬下来了,再来要把内容整理成下一个阶段(训练模型),方便使用的格式。
完整的程序码可以参考: https://github.com/dreambo4/MOHW-QandA
什麽是 CSV?
逗号分隔值(Comma-Separated Values,CSV),其档案以纯文字形式储存表格资料。纯文字意味着该档案是一个字元序列,不含必须像二进位数字那样被解读的资料。
-- form wiki
看图吧!
原始的 CSV 就只是一个纯文字档,各个栏位以 ,
隔开。不同笔资料,以换行区隔。
首列通常是栏位名称。
特别的是,刚提过 CSV 储存的资料是个表格嘛,所以我们也可以使用 Excel 或 LibreOffice Calc 编辑档案,很方便。
CSV 的优点是好携带 & 好转移,因为是纯文字的关系,比较不会有需要用特定软件开启的状况,一般的文字编辑器(记事本、Sublime、Vim...)就可以开启。本系统资料储存主要使用 CSV 格式,而非资料库的原因是,目前没有需要。爬虫的步骤只会做一次,不需要每次建置模型都爬虫一次取得资料,因此初始的资料集内容基本是固定的。而程序建模型的过程,也只会有「读取全部资料」的动作,没有条件查询、新增、修改、删除。因此评估後,我们使用 CSV 作为资料及储存的格式。
这是本系统未使用资料库的原因,不一定适合你的状况,请自行评估调整。
主要的程序收两个参数,filename
是生成档案的名字;datelist
是要存入档案的内容,型态是 list。
这个 CSV 的套件,提供很多方便的功能。首先写入栏位名称,再用回圈的方式,一笔一笔将内容写入档案。
def writeCsv(filename, dataList):
with open(filename+'.csv', 'w', newline='') as csvfile:
# 定义栏位
fieldnames = ['q', 'a', 'url']
# 将 dictionary 写入 CSV 档
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
# 写入第一列的栏位名称
writer.writeheader()
# 写入资料
for qa in dataList:
writer.writerow(qa)
Colab 另个方便的地方,执行後,档案可以直接下载~
爬虫的文章告一段落,接下来会是 TF-IDF 和模型建置相关的部分。明天见!
接续 Day 15 的 tf.Tramsform 介绍,今日进行实作,先以TensorFlow Tr...
=x= 🌵 CONTACT Page 寄信页的「我不是机器人」验证功能,後端实作。 Google r...
Shimmer iOS Swift的话是类似SkeletonView 一般用在等待的时候 像是API...
目标 今天要来做的是播放速度控制器,可以透过游标移动控制播放速度 Step1 const speed...
大意失荆州,这就是人生,因为以为有写,不小心就断赛了;不过,秉持着坚持的精神,我还是想继续写完。 今...