当前位置:   article > 正文

NLP学习笔记(一):数据预处理基础_做自然语言处理时空值怎么办

做自然语言处理时空值怎么办

前言:本系列笔记的学习资源为Shusen Wang老师在Youtube上关于NLP的课程,观看连接为https://www.bilibili.com/video/BV17A411e7qL

数据预处理基础(Data Processing Basics)

处理类别特征(Processing Categorical Features)

在进行机器学习时,我们首先要对数据进行处理。常见的特征有两大类:一种是数值型特征,比如年龄、身高、体重等等,另一种是类别特征,比如国别等。计算机只能处理数值计算,因而在计算机中处理数据时,一定要首先将这些特征转换为数值。

在这里插入图片描述

如上图所示,对于年龄,我们直接用其数值进行存储,对于性别,这是一个二元特征,我们可以用数字0/1来表示,而对于国籍,这是一个典型的类别特征,我们要想办法用数值来表示它。

一个最简单的想法是使用一个标量编号去表示。比如1表示美国,2表示中国,3表示印度……。但这种方式是不太可行的,比如说,我们对标量进行数值计算时,就会有如下情况产生:

1+2=3 ==>
US + China = India?
  • 1
  • 2

是否可以说明美国+中国=印度呢?这显然是不正确的。因而使用一个数值标量去代表这样一个多类别的信息是不靠谱的,我们自然就会想到使用向量。

最简单的一种向量表示方法就是One-Hot表示形式,假设一共有197个国家,那么每个国家仅在自己对应编号的位置上数值为1,其他位置数值为0。同时,我们保留编号0作为未知的类别。经过这样的表示,之前的数据就可以被表示成如下形式:
在这里插入图片描述

并且每一行的信息也可以表示为一个199维向量。

处理文本数据(Processing Text Data)

对于文本数据的处理,我们主要遵循以下三步:

  • Step 1: 分词(Tokenization (Text to Words))
  • Step 2: 统计词频(Count Word Frequencies)
  • Step 3: One-Hot编码(One-Hot Encoding)

首先是分词(Tokenization)。对于分词,这里我们可以简单的理解为将一段连续的字符串切分为一个单词列表。实际上还有很多操作,这里先不详细说明。

在这里插入图片描述
如上图示意。

然后是统计词频。我们需要统计在这段文本中各个单词出现的频次,然后进行降序排列,然后将按顺序给每个单词一个编号/索引。之后,我们可以进行一些处理,比如只保留出现频次最高的前K个单词,去除掉一些频次的单词,这样有以下几点好处:

  1. 低频单词通常含有的意义很少(Infrequent words are usually meaningless),比如里面可能会包含一些人名实体,如“Shusen”;还有许多拼写错误导致的错误单词,如“hemlat”
  2. 减少词表/向量维度,降低计算量和参数个数。比如英语单词可能有十几万个,但大多数都是很不常用的,我们就可以只保留前1万个出现频次最高的单词

在这里插入图片描述

最后进行One-Hot 编码,将每个单词转换为它对应的编号/索引。

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/345831
推荐阅读
相关标签
  

闽ICP备14008679号