目录
一、数据预处理简介
在深度学习中,数据预处理是一个重要的步骤。原始训练数据中,由于每一维特征的来源以及度量单位不同,会造成特征值的分布范围差异很大。当计算不同样本之间的欧氏距离时,取值范围大的特征会起到主导作用。因此,对于基于相似度比较的机器学习方法,必须先对样本进行预处理,将各维度特征归一化到同一取值区间,并且消除不同特征之间的相关性,才能获得理想的结果。
数据预处理还可以通过数据增强来增加训练样本的多样性,提高模型鲁棒性,避免过拟合,例如, 翻转、旋转、平移、缩放、随机裁剪或补零,色彩抖动等 ( 这些都是在CV当中的一些情况 );在NLP的任务中,数据预处理又可以通过以下方式来有效地增加训练数据的多样性,避免模型对训练数据的过拟合,提高模型的泛化能力和鲁棒性,例如,同义词替换、随即插入、随即删除、随即交换、随机扰动等,这些方法还可以缓解NLP中数据量不足的问题,提高模型的性能。
二、进行数据预处理的原因
1、文本中含有不必要的信息和噪声
文本数据通常包含大量的无关信息和噪声,如标点符号、HTML标记、停用词、缩写、拼写错误、语法错误等。这些信息和噪声会干扰模型的学习和性能,导致模型预测不准确或低效。通过数据预处理,可以去除这些不必要的信息和噪声,使文本数据更加干净和有用。
2、数据可能不一致或者不太规范
文本数据通常具有多种表现形式和写作风格,如大小写、缩写、单复数、变体词等,在中文中可能存在语义分割的问题,有些词与词之间的界限不清晰、有些词语的多义性和歧义性、还有语法和语义的变化、简体字和繁体字、以及不同民族的文字,所以中文的数据在处理起来可能更加的困难、需要我们更加的小心和细心。这些差异会导致数据不一致和不规范,从而使模型学习变得更加困难。通过数据预处理,可以将文本数据转换为一致和规范的形式,使模型更容易学习和理解。
3、文本需要标记和分词
在NLP中,将文本数据划分为单个标记或单词是很重要的。这可以帮助我们理解文本的含义和结构,以及构建词汇表和语料库。标记化和分词可以将文本数据转换为可操作的形式,从而为模型学习提供基础。这一步中,对中文的处理也比英文要困难,英文的词都是用空格隔开的,而中文的一句话很多时候都是连起来的,所以在分词、词性标注的时候就更加的不容易,不过现在也有像 jieba 这样的比较优秀的中文分词的工具。
4、可能需要词形还原和词干提取 ( 词性标注 )
在NLP中,有时候我们需要将单词转换为它们的基本形式,这被称为词形还原和词干提取,在中文的NLP中其实词形还原和词干提取用的比较少 ( 在机器翻译和信息检索需要形态学分析的时候可能会用到 ),一般来说中文更多的是使用分词技术和词性标注技术来处理。这可以帮助我们理解单词的含义和关系,以及减少词汇量。通过数据预处理,可以将文本数据中的单词转换为它们的基本形式,从而提高模型的性能和效果