首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

一个使用 IBM SPSS Modeler 的文本分类框架(3)

一个使用 IBM SPSS Modeler 的文本分类框架(3)

信息增益过滤器
删除常用词语后,我们需要提取最常用的词语来进行文本分类。有用性表示具有较高辨别力将包含文档分类到正确的类中的词语。我们使用每个词语的信息增益                    (IG)熵(entropy)作为这种辨别力的度量指标。IG                过滤器的工作原理如下:我们记录从以前的过滤器传递的每个词语的 IG,然后我们从拥有最高 IG                值的词语中选择一个比率。有关此过滤器的更多详细信息,请参阅本文的附件中包含的补充文档中的 1.2 小节。
我们将常用关键词过滤器放在信息增益过滤器前面的原因是:
  • 常用词语定义为大部分英语文档中最常用的单词,因此我们知道其信息增益始终较低的先验单词列表。
  • 计算复杂性为 O(l.d.k),其中 l                        是培训数据中的记录数,d 是词语数(特征矢量维度),k 是类数。通过在 IG                    过滤器之前应用常用词语过滤器,我们可显著减少 d,这会减少 IG 过滤器的运行时间。
其他过滤器
其他过滤器可根据应用来添加。例如,在我们的缺陷数据实验中,我们添加了一个过滤器来删除数字令牌,这些令牌包含的全是数字。
特征生成
在分类上下文中选择一个最常用词语子集后,现在,我们的每条记录都有一组特征(回想一下每个词语被视为一个特征)。下一步是计算每个文档中的每个特征的特征值。在我们的示例中,特征值将是著名的词频-逆文档频率                    (Term Frequency-Inverse Document Frequency,                    tf-idf)。对于拥有特征矢量的每条记录,这个聚合的数据结构有时称为特征矩阵(一个矩阵就是一组矢量)。有关的更多详细信息,请参阅本文附件中包含的补充文档。
计算培训数据中所有词语/特征的 tf-idf 后,我们生成一个特征矩阵,其中将包含以下结构:
  • 每行表示一条记录,在我们的例子中,每条记录是一个具有惟一 ID 的文档。
  • 每列表示一个惟一的特征/词语。
  • 矩阵中的每个单元格具有一个特定文档(相应的行)中一个特定词语(相应的列)的 tf-idf 值。
在图 3 中,我们给出了从软件缺陷案例分析的数据中生成的特征矩阵的快照。这个矩阵用于构建 SVM 模型来分类文档。例如,在图 3 中的红色圆圈中的单元格中,记录                ID=8219,特征 = “dfhke003”(一个提取的词语),而且该文档的该特征的值 (tf-idf) = 15.8488。
图 3. 从软件缺陷案例分析的数据中生成的特征矩阵的快照
建模将数据转换为词袋后,我们可以重新表示该问题,而不会丢失二进制分类问题的一般性: 给定一组具有特征矢量 xi                的记录,然后,我们希望将它们划分到类 yi ={-1,1} 中。在 SVM                中,我们希望找到能以最佳方式将数据点分离到两个类中的超平面。有关此主题的详细信息,请参阅本文附件中包含的补充文档中的 1.4 小节。
用于构建和评估 SVM 文本分类模型的 SPSS Modeler 流如图 4 所示。该流包含读取特征矢量,分区输入记录,构建和评估模型的节点。
图 4. 构建 SVM 分类器的 SPSS Modeler 流
标为 Input Data 的节点用于读取一个 CSV                    文件,该文件包含使用数据预处理模块生成的特征矢量表。Filter 节点用于删除任何不必要的字段,比如记录 ID,如果该 ID                未在建模过程中使用,它通常会被删除。此外,在缺陷数据示例中,应用过滤后,会显示一些令牌,但它们在该领域没有任何意义,所以我们将会删除它们。请注意,在                    Data Audit Nodes 过滤中,记录数量从 2896 减少到了 2881。
Partition 节点将数据拆分为 3                    组:培训测试验证。通过构建分类模型将输入数据分组到这                3                    个组中是一种最佳实践。培训分区用于使用给定的参数构建模型,并(初步)估算它的内部系数。测试分区用于测试模型分类准确性,以调优模型培训参数,重新构建和更新它的内部系数,从而提高它的准确性。验证分区用于估算新数据的分类器准确性。验证分区既不会像培训数据一样直接影响模型构建流程,也不会像测试数据一样间接影响该流程,所以基于验证组而采取的准确性度量是为新的无标签数据构建的分类器性能的不错估算指标。
Type                    节点指定每个字段的角色。所有提取的特征字段都标记为用于培训分类器的输入Category                    字段标记为目标,以便将它们用作每条记录的类字段。
Category_SVM 节点是一个 SVM 模型构建节点,它使用提取的特征作为输入,使用 Category 字段作为目标(在 Type                节点中配置)。我们使用 Expert 模式来在调优分类器参数上获得更多控制。主要挑战将是选择一组最佳的参数来获得最高的准确性。我们在  部分演示了参数选择并描述了如何配置 SVM 模型的值。
返回列表