首页 > 解决方案 > 我需要将文本转换为向量,然后将向量输入分类器

问题描述

我有一个名为 movie_reviews.csv 的 csv 文件,里面的数据如下所示:

1 皮克斯经典是有史以来最好的儿童电影之一。1 Apesar de representationar um imenso avanço tecnológico, a força 1 它不会增强体验,因为这部电影的永恒魅力在于出色的角色和精彩的故事讲述;不需要护目镜或噱头的经典之作。1 因此,3D 中的《玩具总动员》永远不会让人难以抗拒。它也不乏味,因为许多最近的 3D 车辆都离得太近而无法舒适。1 新鲜的外观服务于故事,绝不允许压倒它,留下一个精美的判断纱线来放松和吸引新的年轻电影观众。1 不可否认,3D 为皮克斯 1995 年开创性的伙伴电影增添了额外的质感,强调了 Buzz 和 Woody 玩具般的世界观。1 如果有的话,感觉更新鲜,在当今过度研究的人口统计正确的电影制作环境中更有趣,更令人兴奋。1 如果你有一段时间没看过它,你可能已经忘记了它活泼的对话、视觉噱头和真诚的故事是多么美妙。0 人类是木头的,电脑动物有动画动物的那种漂浮、生涩的步态。1 有些刺激,但对小孩子来说可能太过分了。1 与约翰斯顿的其他作品一样,《勇敢者游戏》将生动的人物塑造成可以加快任何孩子脉搏的步伐。1 “这部聪明、恐怖的电影,仍然是最喜欢从“vhs”垃圾箱中掸去尘土的最爱” 0 世界上所有的效果都无法掩饰稀薄的情节。你可能已经忘记了活泼的对话、视觉噱头和真诚的故事是多么美妙。0 人类是木头的,电脑动物有动画动物的那种漂浮、生涩的步态。1 有些刺激,但对小孩子来说可能太过分了。1 与约翰斯顿的其他作品一样,《勇敢者游戏》将生动的人物塑造成可以加快任何孩子脉搏的步伐。1 “这部聪明、恐怖的电影,仍然是最喜欢从“vhs”垃圾箱中掸去尘土的最爱” 0 世界上所有的效果都无法掩饰稀薄的情节。你可能已经忘记了活泼的对话、视觉噱头和真诚的故事是多么美妙。0 人类是木头的,电脑动物有动画动物的那种漂浮、生涩的步态。1 有些刺激,但对小孩子来说可能太过分了。1 与约翰斯顿的其他作品一样,《勇敢者游戏》将生动的人物塑造成可以加快任何孩子脉搏的步伐。1 “这部聪明、恐怖的电影,仍然是最喜欢从“vhs”垃圾箱中掸去尘土的最爱” 0 世界上所有的效果都无法掩饰稀薄的情节。Jumanji 的全部作品中,生动的角色让孩子们心跳加速。1 “这部聪明、恐怖的电影,仍然是最喜欢从“vhs”垃圾箱中掸去尘土的最爱” 0 世界上所有的效果都无法掩饰稀薄的情节。Jumanji 的全部作品中,生动的角色让孩子们心跳加速。1 “这部聪明、恐怖的电影,仍然是最喜欢从“vhs”垃圾箱中掸去尘土的最爱” 0 世界上所有的效果都无法掩饰稀薄的情节。

带有 0 和 1 的第一列是我的标签。

我想首先将 movie_reviews.csv 中的文本转换为向量,然后根据标签拆分我的数据集(所有 1 用于训练,0 用于测试)。然后将向量输入到随机森林等分类器中。

标签: deep-learningclassificationword2veccascade-classifier

解决方案


对于这样的任务,您需要首先使用不同的工具解析数据。首先将所有句子小写。然后删除所有停用词(the, and, or, ...)。标记化(此处介绍:https ://medium.com/@makcedward/nlp-pipeline-word-tokenization-part-1-4b2b547e6a3 )。您还可以使用词干来保留单词的词根,这有助于情感分类。

然后,您将为词汇表中的每个单词分配一个索引,并用这些索引替换句子中的单词:

想象一下你的词汇是:['i', 'love', 'keras', 'pytorch', 'tensorflow']

  • index['None'] = 0 #如果一个新词不在你的词汇表中

  • 索引['i'] = 1

  • 指数['爱'] = 2

  • ...

因此句子:'I love Keras' 将被编码为 [1 2 3]

但是,您必须为句子定义最大长度max_len,并且当句子包含的单词少于max_len时,您将max_len大小的向量补零。

在前面的示例中,如果您的max_len = 5则 [1 2 3] -> [1 2 3 0 0]。

这是一种基本方法。随意检查 NLTK、Pandas 等库提供的预处理工具......


推荐阅读