如果下面有错误,请指出。
最近,我正在学习一些Sklearn的缩小和功能提取的特征,您可以参考以前的博客。在此之前也提到了该文本,可以将其编码为单词矢量,或者在“重量矢量”中或IT可以用作哈希向量。最终的哈希矢量可以理解为降低尺寸的特征提取过程。
首先,我暂时尚未与NLP相关的任务联系,并且我还没有使用RNN,LSTM和其他时间 - 序列网络。是文本分类的任务吗?
因此,是否没有建立RNN或LSTM的构建都没有关系。现在可以通过其他方法提取,然后就足够了。我可以采用此功能来执行下一步。这就像视频理解领域中的C3D,将视频编码为4096的功能向量,所以请使用此功能。其他下游任务的功能向量。以相同的方式,这里也是如此。将其编码为哈希向量后,我可以使用分类器执行文本分类NLP任务。
理论分析已经结束,下一个是实际的验证。对于哈希编码的特征向量,我使用了SVM,随机森林并设置神经网络来测试分类效应。此外,测试了权重编码的效果借助SVM,与此同时,这些特征的特征将影响分类结果。最后,发布了官方代码进行学习。
@[TOC]在这里,我使用Sklearn随附的数据集,该数据集属于新闻分类数据。有20个类别和18846个样本,其中11314个培训样本。类别信息是:
这里将选择4个类别进行文本分类:
PS:在这里,文件的标题,签名快速和应用程序块被删除删除,使数据更真实。这是因为如果分类器未删除分类器,它将非常过热:
有了如此丰富的线索来区分新闻组,分类器几乎无需从文本中识别主题,并且它们都在相同的高级执行。因此,此处已删除的信息。
哈希编码内容和卡聚会过滤器的内容可以看到我的两个注释。链接如下:
1. Sklearn特征提取方法摘要(包括字典,文本和图像的特征)
2. Klearn特征缩小方法摘要(正方形差过滤,卡处方,F滤波,互信息,嵌入式方法)
输出:
输出:
实际上,只要文本信息以文本信息为特征,就可以在用卡侧过滤哈希代码后提取此步骤。最后,将每个文本信息编码为200维功能信息,因此您现在可以使用此功能信息以构建用于培训的神经网络。
因此,以下内容将仅构建用于培训的多层次感知机。在这里,我设置了一个3层的完整连接层。没有特殊的设计(实际上,我不会设计,哭...)
在训练之前,需要数据格式。由于卡侧过滤的矩阵是一个稀疏的矩阵,它是稀疏格式矩阵,因此需要将其转换为numpy Format.eg:
之后,传输了哪种格式,只需看到错误位置中的错误的提醒,或者基本上根据我的数据格式正确地正确。
数据格式转换后,您可以使用神经网络进行培训。参考代码如下:
输出:
最后,神经网络训练的结果似乎与从SVM获得的结果相似。无论是集成算法还是支持向量机算法,还是神经网络,最终结果约为66%。
对于文本分类,如果您想了解最重要的文本特征的哪个单词特征,则可以使用由某些设计权重的分配符检查(例如SVM等)。
这是一个介绍三重奏的部分,即如何使用库。有关参考链接,请参考参考材料。3。
输出:
代码源,请参阅参考材料4 ..
输出:
可以看出,这两种方法的输出一直都是,但是第二种方法将根据重量的大小从大到小。对于输出结果,越多的单词和文本类别越多,权重越大重量。
参考代码如下:
输出:
分析:可以看出,正确编码的使用比哈希编码更好。这是因为哈希编码实际上是缩小维度的一种方法。它减少了训练的时间,但同时它将丢失一些信息。因此,哈希编码的特征性分类效果有点一点,但是培训时间较短。
官方代码在这里发布供您自己的学习。有关特定内容,请参阅参考材料5.相关内容以中文翻译。
这是一个示例,该示例显示了如何使用单词袋方法将文档按主题分类。此示例使用scipy.sparse矩阵存储功能,并演示可以有效处理稀疏矩阵的各种分类器。
此示例中使用的数据集是20个新闻组数据集。它将自动下载并缓存。
出去:
让我们从新闻组的数据集中加载数据。该数据集包含约18,000个新闻组帖子,其中有20个主题,分为两个子集:一个用于培训(或开发),另一个用于测试(或绩效评估)本质
出去:
使用15个不同的分类模型来训练和测试数据集,并获得每个模型的性能结果。
出去:
条形图表示每个分类器的准确性,训练时间(标准化)和测试时间。
出去:
参考资料:
1. Sklearn特征提取方法摘要(包括字典,文本和图像的特征)
2. Klearn特征缩小方法摘要(正方形差过滤,卡处方,F滤波,互信息,嵌入式方法)
3. python在列表中获得最大的n个数字索引
4. 20个新闻组文本数据集
5.文本文档的分类用户
原始:https://juejin.cn/post/7095005618074812424