当前位置 : 主页 > 编程语言 > 其它开发 >

处理文本数据(上):词袋

来源:互联网 收集:自由互联 发布时间:2022-06-04
我们讨论过表示数据属性的两种类型的特征:连续特征与分类特征,前者用于描述数量,后者是固定列表中的元素。 第三种类型的特征:文本 文本数据通常被表示为由字符组成的字符

我们讨论过表示数据属性的两种类型的特征:连续特征与分类特征,前者用于描述数量,后者是固定列表中的元素。
第三种类型的特征:文本

  • 文本数据通常被表示为由字符组成的字符串。
1、用字符串表示的数据类型

文本通常只是数据集中的字符串,但并非所有的字符串特征都应该被当作文本来处理。

字符串特征有时可以表示分类变量。在查看数据之前,我们无法知道如何处理一个字符串特征。

⭐四种类型的字符串数据:

  • 1、分类数据

    • 分类数据(categorical data)是来自固定列表的数据。
  • 2、可以在语义上映射为类别的自由字符串

    • 你向用户提供的不是一个下拉菜单,而是一个文本框,让他们填写自己最喜欢的颜色。
    • 许多人的回答可能是像 “黑色” 或 “蓝色” 之类的颜色名称。其他人可能会出现笔误,使用不同的单词拼写(比如 “gray” 和 “grey” ),或使用更加形象的具体名称 (比如 “午夜蓝色”)。
    • 可能最好将这种数据编码为分类变量,你可以利用最常见的条目来选择类别,也可以自定义类别,使用户回答对应用有意义。
  • 3、结构化字符串数据

    • 手动输入值不与固定的类别对应,但仍有一些内在的结构(structure),比如地址、人名或地名、日期、电话号码或其他标识符。
  • 4、文本数据

    • 例子包括推文、聊天记录和酒店评论,还包括莎士比亚文集、维基百科的内容或古腾堡计划收集的 50 000 本电子书。所有这些集合包含的信息大多是由单词组成的句子。
2、示例应用:电影评论的情感分析

作为本章的一个运行示例,我们将使用由斯坦福研究员 Andrew Maas 收集的 IMDb (Internet Movie Database,互联网电影数据库)网站的电影评论数据集。

数据集链接:http://ai.stanford.edu/~amaas/data/sentiment/

这个数据集包含评论文本,还有一个标签,用于表示该评论是 “正面的”(positive)还是 “负面的” (negative)。

IMDb 网站本身包含从 1 到 10 的打分。为了简化建模,这些评论打分被归纳为一个二分类数据集,评分大于等于 7 的评论被标记为 “正面的”,评分小于等于 4 的评论被标记为 “负面的”,中性评论没有包含在数据集中。

将数据解压之后,数据集包括两个独立文件夹中的文本文件,一个是训练数据,一个是测试数据。每个文件夹又都有两个子文件夹,一个叫作 pos,一个叫作 neg。

pos 文件夹包含所有正面的评论,每条评论都是一个单独的文本文件,neg 文件夹与之类似。scikit-learn 中有一个辅助函数可以加载用这种文件夹结构保存的文件,其中每个子文件夹对应于一个标签,这个函数叫作 load_files。我们首先将 load_files 函数应用于训练数据:

  from sklearn.datasets import load_files
  from sklearn.model_selection import train_test_split


  reviews_train = load_files("../../datasets/aclImdb/train/")
  # load_files 返回一个 Bunch 对象,其中包含训练文本和训练标签

  #加载数据
  text_train,y_train = reviews_train.data,reviews_train.target

  #查看数据
  print("type of text_train: {}".format(type(text_train)))
  print("length of text_train: {}".format(len(text_train)))
  print("text_train[6]:\n{}".format(text_train[6]))

  '''
  ```
  type of text_train: <class 'list'>
  length of text_train: 25000
  text_train[6]:
  b"This movie has a special way of telling the story, at first i found it rather odd as it jumped through time and I had no idea whats happening.<br /><br />Anyway the story line was although simple, but still very real and touching. You met someone the first time, you fell in love completely, but broke up at last and promoted a deadly agony. Who hasn't go through this? but we will never forget this kind of pain in our life. <br /><br />I would say i am rather touched as two actor has shown great performance in showing the love between the characters. I just wish that the story could be a happy ending."
  ```
  '''

上一篇:测试平台系列(96) 如何停止测试任务执行
下一篇:没有了
网友评论