目录
之前学习过数据数据属性的两种类型的特征:连续特征和分类特征,前者用于描述数量,后者是固定列表中的元素。
在许多应用中还可以见到第三种类型的特征:文本。文本数据通常被表示为由字符组成的字符串,大部分例子中,文本数据的长度都不相同,这个特征显然与之前学习过的数值特征有很大不同,我们需要先处理数据,然后才能对其使用机器学习算法。
文本通常只是数据集中的字符串,但并非所有的字符串特征都应该被当作文本来处理,字符串变量有时可以表示分类变量。在查看数据之前,我们无法知道如何处理一个字符串特征。
一般情况下,会遇到一下四种类型的字符串数据:
1、分类数据;
2、可以在语义上映射为类别的自由字符串;
3、结构化字符串数据;
4、文本数据。
下面分别来解释:
分类数据
分类数据是来自固定列表的数据。比如通过调查人们最喜欢的颜色来收集数据,你向他们提供了一个下拉菜单,可以从红色、黑色、绿色等颜色中选择。这样就会得到一个包含多种不同取值的数据集,这几种不同取值表示的显然是分类变量。我们可以通过观察来判断数据是不是分类数据,并通过计算数据集中的唯一值并绘制其出现次数的直方图来验证判断结果。
可以在语义上映射为类别的自由字符串
仍是收集最喜欢颜色的例子,如果现在提供的不是下拉菜单,而是一个文本框,每个人都自己填写,这种情况下,有些人会常规填写,但有些人会拼写错误、或使用更加形象的描述词(比如"午夜蓝色"),甚至会有些奇怪的答案,有时很难将一些名称与颜色自动对应(甚至完全无法对应)。这种从文本框得到的回答就属于可以在语义上映射为类别的自由字符串。可能最好是将这种数据编码为分类变量,可以利用最常见的条目来选择类别,也可以自定义类别,使用户回答对应用有意义。这样就会得到一些标准颜色类别、"多色"类别、其他类别。这种字符串预处理过程可能会需要大量人力,并且不容易自动化。如果能够改变数据的收集方式,那么对于分类变量能够更好表示的改变,不要使用手动输入值。
结构化字符串数据
通常来说,手动输入值不与固定的类别对应,但仍有一些内在的结构,比如地址、人名地名、日期或其他标识符。这种类型的字符串通常难以解析,其处理方法也强烈依赖于上下文和具体领域。
文本数据
自动格式的文本数据 ,由短语或句子组成。例子包括推文、聊天记录、评论等。所有这些集合包含的信息大多数是由单词组成的句子。在文本分析的语境中,数据集通常被称为语料库 ,每个由单个文本表示的数据点被称为文档。这些属于来自于信息检索和自然语言处理的社区,它们主要针对文本数据。