文章插图
导入库
我们将从导入此任务所需的库开始 。我们已经导入了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 。在下面的代码中 。我们告诉CountVectorizer使用spacy_tokenizer构建的自定义函数作为其标记生成器 。并定义所需的ngram范围 。
N-gram是给定文本中相邻单词的组合 。其中n是插入标记中的单词数 。例如 。句子“谁将在2022年赢得世界杯足球赛?” 字母组合是一个单词序列 。例如“ who” 。“ will” 。“ win”等 。二元组将是两个连续单词的序列 。例如“谁将” 。“将获胜” 。等等 。大数据分析Python中spaCy文本分类使用教程https://www.aaa-cg.com.cn/xmt/2338.html因此 。ngram_range我们将在下面的代码中使用的参数设置ngram的上下限(我们将使用unigram) 。然后 。我们将ngram分配给bow_vector 。
推荐阅读
- 世界十大神奇动物排行榜 全球最神奇的动物介绍
- 有什么三观很正的日番推荐吗?
- 网页创意设计的思维 交互设计作品集案例
- 想找人设计个logo,大概需要多少钱啊?
- 宫崎骏老师的经典动漫你知道哪几个?觉得如何?
- 长城著名关口排名 长城各个关口的名称
- 你有喜欢的日本动画吗?
- 王者荣耀脚本辅助ios 王者荣耀辅助工具软件
- DNF玩家发现更改冒险团会重置签到活动次数,每天可获得一张装扮券兑换券,你有何看法?