一文详解Softmax函数,softmax函数( 五 )


人们无法观察到该数组并将其识别为“芒果”的含义,但是以这种方式表示该单词对机器而言效果很好,因为它使我们能够代表该单词的含义及其与其他相似单词的“接近度”使用数组中的坐标 。文字分类现在,我们已经看了一些spaCy一般可以完成的很酷的事情,让我们看一下这些自然语言处理技术中的一些更大的实际应用:文本分类 。
通常,我们可能会发现自己想要根据一些参数(例如,每个片段的主题)进行分类的一组文本数据,而文本分类将帮助我们做到这一点 。下图显示了在对文本进行分类时我们想要做什么的全景视图 。首先,我们从源文本(及其附带的任何标签或元数据)中提取所需的功能,然后将清理后的数据馈送到为我们进行分类的机器学习算法中 。导入库我们将从导入此任务所需的库开始 。
我们已经导入了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)一样 。

推荐阅读