今天使用BERT模型对短文本进行分类,整理好的短文本放在了Excel中,准备使用Excel对短文本进行打标签、数据清洗。
打标签
我使用打标签的方法很简单,由于短文本的辨识度比较高,所以我使用了如下Excel公式组合对短文本打标签(因为数据的私密性,所以我只讲方法,数据采用虚拟数据):
如果A1单元格同时包含字符串“大”、“小”、“20”,则标签打成“有”,否则打成“无”
=IF(AND(ISNUMBER(FIND({"大";"小";"20"},A1))),"有","无")
如果A1单元格包含字符串“大”或“小”或“20”,则标签打成“有”,否则打成“无”
=IF(OR(ISNUMBER(FIND({"大";"小";"20"},A1))),"有","无")
如果A1单元格包含字符串“A”,则标签打成“有”,否则打成“无”,find函数区分大小写
=IF(ISNUMBER(FIND("A",C2)),"有","无")
如果A1单元格包含字符串“A”,则标签打成“有”,否则打成“无”,search函数不区分大小写
=IF(ISNUMBER(SEARCH("A",A1)),"有","无")
若有一条数据占好几行单元格的情况,则使用“取消单元格合并”处理,并“CTRL+G”查找空值,然后使用“CTRL+回车”填充。此方法是为了防止A1占好几行单元格、B1输入公式,B2、B3值异常的情况发生。
数据清洗
- 定位空单元格、空行、空列:选中A11单元格,使用“CTRL+SHIFT+→”、“CTRL+SHIFT+↓”查找Excel表中空白的行、列,并删除。使用“CTRL+G”查找空值来定位空的单元格。之所以删除空白值,是因为BERT在取数据时,若遇到空值,会报数组下标超出范围错误。
- 删除带有明显关键字的脏数据:使用“开始”--“筛选”,选中带有明显关键词的脏数据,然后选中脏数据的列,进行删除。删脏数据的目的是提高模型训练的质量。
- 删除回车、制表符:“CTRL+H”,把光标定位到“查找内容”中,按下“ALT+1+0”键,然后同时松开,点击“替换全部”,这样就可以全部删除回车、制表符。之所以删除制表符,是因为在后续使用Excel另存为“文本文件(制表符分割)(*.txt)”格式时,回车、制表符会发生串行,引起数据紊乱。特别注意:“1”和“0”必须通过小键盘上的数字键位输入,否则不起作用!!!
- 文件另存为“文本文件(制表符分割)(*.txt)”格式,并把扩展名改为.tsv。
- notepad打开.tsv文件,“编码”--“转为UTF-8”编码,保存,防止Python读.tsv文件时发生编码错误。
- 如果Excel第一列为标题,则删除掉。
- 最后一行不要留空行。
打标签、清洗数据工作量很大,也是一项特别细致的工作,这一项如果做不好,轻则程序在运行过程中会报各种各样的错误,重则影响模型训练的质量。