我们已经导入了spaCy , 但是我们也想要pandas并scikit-learn帮助进行分析 。加载数据中上面 , 我们看了一些使用进行文本分析的简单示例spaCy , 但是现在我们将使用进行一些Logistic回归分类scikit-learn 。为了使这一点更加现实 , 我们将使用真实的数据集-这组Amazon Alexa产品评论 。
该数据集以制表符分隔的文件(.tsv)的形式出现 。它已经有五列:rating , date , variation , verified_reviews , feedback 。rating表示每个用户给Alexa的评分(满分5分) 。date指示审查日期 , 并variation描述用户审查的型号 。verified_reviews包含每个评论的文本 , 并feedback包含一个情感标签 , 其中1表示正面情绪(用户喜欢) , 0表示负面情绪(用户不喜欢) 。
该数据集包含消费者对亚马逊Echos , Echo Dots , Alexa Firesticks等Alexa产品的评论 。我们要做的是开发一个分类模型 , 该模型查看评论文本并预测评论是正面还是负面 。由于此数据集已在该feedback列中包含评论是肯定的还是否定的 , 因此我们可以使用这些答案来训练和测试我们的模型 。
我们的目标是生成一个准确的模型 , 然后将其用于处理新的用户评论 , 并快速确定它们是正面还是负面 。首先 , 将数据读取到数据pandas框中 , 然后使用pandas的内置函数来帮助我们仔细查看数据 。使用标记数据 spaCy现在我们知道我们正在使用什么 , 让我们使用创建一个自定义标记器函数spaCy 。我们将使用此功能自动从每个评论中剥离不需要的信息 , 例如停用词和标点符号 。
我们将从导入所需的英语模型spaCy以及Python的string模块开始 , 该模块包含一个有用的清单 , 其中列出了我们可以在中使用的所有标点符号string.punctuation 。我们将创建包含要删除的标点符号和停用词的变量 , 以及一个通过spaCy英文模块运行输入的解析器 。然后 , 我们将创建一个spacy_tokenizer()函数 , 该函数接受一个句子作为输入 , 并将该句子处理为标记 , 执行词形化 , 小写并删除停用词 。
这类似于我们在大数据分析Python中spaCy文本分类使用教程前面的示例中所做的操作 , 但是现在我们将所有内容放到一个函数中 , 以预处理要分析的每个用户评论 。定义自定义变压器为了进一步清除文本数据 , 我们还需要创建一个自定义转换器 , 以删除开头和结尾的空格并将文本转换为小写形式 。在这里 , 我们将创建一个predictors继承TransformerMixin类的自定义类 。
该类重写transform , fit和get_parrams方法 。我们还将创建一个clean_text()删除空格并将文本转换为小写字母的函数 。矢量化特征工程(TF-IDF)在对文本进行分类时 , 最终得到的是与相应标签匹配的文本片段 。但是我们不能在我们的机器学习模型中简单地使用文本字符串 。我们需要一种将文本转换为可以用数字表示的内容的方法 , 就像标签(正数为1 , 负数为0)一样 。
在正面和负面标签中对文本进行分类称为情感分析 。因此 , 我们需要一种数字表示文本的方法 。我们可以用来执行此操作的一种工具称为Word of Words 。BoW将文本转换为给定文档中单词出现的矩阵 。它着眼于给定单词在文档中是否出现 , 并生成一个矩阵 , 我们可以将其称为BoW矩阵或文档术语矩阵 。我们可以通过为我们的文本数据弓矩阵scikit-learn的CountVectorizer 。
- 树莓派能做什么,「树莓派」是什么
- 交换机为什么要划分vlan,什么是vlan
- 企业私有云计算,私有云计算平台
- 女子带蓝猫去做绝育,猫做绝育为什么不让看
- 刚出生的凤尾鱼吃什么,凤尾鱼幼鱼吃什么
- 扫地机器人怎么样,石头扫地机器人使用体验
- 狗狗为什么老是挠痒痒,宠物狗为什么老是自己捞痒
- 那么挑选金毛狗,挑什么样的小金毛聪明
- 夏天吃西瓜什么的最凉快了,小狗狗吃什么胖
- 拉布拉多的弃养率这么高,为什么我家拉布拉多那么皮
