download:Kubernetes/K8s架构师实战集训营【2020最新】 1. 为啥要有预处置? NLP(Natural Language Processing)指的是自然言语处置,就是研讨计算机理解人类言语的一项技术。 要研讨言语处置,那么首先得有言语文本。之前讲过应用固定格式的文本中止序列化处置。 在序列化之前,如何把这些文本按照一定的格式处置好,也是一项基础的工作,这一步叫数据的预处置。 2. 文本存储的几种载体 普通直接可读的文本数据会存储在这么几种文件里: 数据库:sqlite、mysql…… 表格文件:csv、excel…… 纯文本文件:txt、json…… 下面我们就挨个来讲一下,如何读写这些文件。 2.1 数据库 数据库存储文本信息,有很多优势: 支持大数据量存储 查询高效 支持复杂的关联关系 拿sqlite数据库举例子,看一下如何中止数据的读取。 下面有一个数据库文件,大小为8KB。 数据库里面有一张称号叫"ci"的表,数据结构和内容如下: 表里面存储了25条数据,是25篇宋词,每条数据包含序号(value)、词牌名(rhythmic)、作者(author)、内容(content)。 假定,我们要运用每首词的内容作为锻炼集,那么我们该如何组织数据呢? # 导入sqlite的支持 import sqlite3 # 保管每首词的内容 str_array = [] # 指定文件位置(同级目录data下的data.db文件)树立衔接 conn = sqlite3.connect('./data/data.db') # 执行查询语句,只获取author, content两个字段,获得游标(内含结果) cursor = conn.execute("SELECT author, content from ci;") # 循环结果 for row in cursor: # 获取结果(0 author, 1 content)中索引为1的数据 ci = row[1] # 参与内容列表 str_array.append(ci) # 关闭操作 cursor.close() conn.close() # 打印结果 print(str_array) 复制代码 最终打印结果如下: [ '出砒霜,价钱可。\r\n赢得拨灰兼弄火。\r\n畅杀我。', '丞相有才裨造化,圣皇宽诏养疏顽。\r\n赢取十年闲。', '归。\r\n十万人家儿样啼。\r\n公归去,何日是来时。', '归。\r\n数得宣麻拜相时。\r\n秋前後,公衮更莱衣。', '百尺长藤垂到地,千株乔木密参天。\r\n只在郡城边。', '巍峨万丈与天高。\r\n物轻人意重,千里送鹅毛。\r\n\r\n' …… ] 复制代码 其中\r\n是回车换行。我们看看巍峨万丈与天高。\r\n物轻人意重,千里送鹅毛。\r\n\r\n在文本框的展示,能够辅佐你更好天文解。 延伸学问:sqlite3的写入 数据的写入很简单,和数据读取类似。也是先树立衔接,然后执行sql语句,这里多一个commit提交,最后断开衔接。 下面举例说明,连续插入2条数据。 # 导入sqlite的支持 import sqlite3 # %% 数据表数据的写入 conn = sqlite3.connect('./data/data.db') for t in[(9998,"称号1","作者1","正文1"),(9999,"称号2","作者2","正文2")]: conn.execute("insert into ci values (?,?,?,?)", t) conn.commit() conn.close() 复制代码 2.2 表格文档 相比于数据库,表格类文档(csv、excel)也是一种很好的文本存储方式。 它双击就能翻开,可以直接操作内容,也能应用自带的工具做一些数据处置。 下面有一个csv文件,里面有很多行,每一行是一首宋词,前三列分别是:词牌名、作者、内容。 假定,我们要运用每首词的内容作为锻炼集,那么我们该如何组织数据呢? import csv # 树立存储内容的数组 str_array = [] # 构建阅读器,指定文件位置(同级目录data下的data.csv文件),指定编码格式 csv_reader = csv.reader(open("./data/data.csv",encoding="gbk")) # 循环每一行 for row in csv_reader: # 取出索引为2的列(第3列),存入数组 str_array.append(row[2]) # 打印数据 print(str_array) 复制代码 最终打印结果如下: [ '出砒霜,价钱可。\r\n赢得拨灰兼弄火。\r\n畅杀我。', '丞相有才裨造化,圣皇宽诏养疏顽。\r\n赢取十年闲。', '归。\r\n十万人家儿样啼。\r\n公归去,何日是来时。', '归。\r\n数得宣麻拜相时。\r\n秋前後,公衮更莱衣。', '百尺长藤垂到地,千株乔木密参天。\r\n只在郡城边。', '巍峨万丈与天高。\r\n物轻人意重,千里送鹅毛。\r\n\r\n' …… ] 复制代码 这样,这个数组数据就可以运用了。 延伸学问:csv的写入 数据的写入和数据读取类似。先构建一个写入器 ,写入数据,最后需求关闭翻开的文件。 下面举例说明,新建一个csv文件,然后插入1条数据。 import csv # 以写入的方式翻开(新建)一个文件,指定编码 f_csv = open('./data/data2.csv','w',encoding='gbk', newline='') # 获取这个文件的写入器 csv_writer = csv.writer(f_csv) # 写入一行数据 csv_writer.writerow(['第一列','第二列','第三列']) # 关闭文件 f_csv.close() 复制代码 代码执行后,会在同级的data目录下新建一个data2.csv文件,然后写入一行3列的数据。 2.3 文本文档 文本文档(txt)是最轻量级的一种文本存储方式。 它不像数据库或者表格文件那样有关联关系,它只能罗列一段段文本,它也无法承载太多的数据,普通上万行文本就会招致它读取困难。 但是,它也是有优势的。那就是——运用便当。 翻开文件往里面输入字符就可以了。 由于没有行列条数的概念,普通文本文档要存储数据集,都是以特殊字符作为区分,例如回车换行符,一行就是一条数据。 下面有一段文本,我们看看如何读取它。
易搜网络技术公司 » Kubernetes/K8s架构师实战集训营【2020最新】cujguc