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

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

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

简介文档目的预测分析软件有助于查找大数据集中非明显、隐藏的模式。随着文本信息的快速增长,文本分类已成为组织文本数据的重要技术之一。与最新的方法相比,具有文本数据的词袋                (Bag-of-Words, BoW) 表示的支持矢量机 (SVM) 分类器在准确性和一般化方面表现出了不错的分类性能。主要挑战在于:提取特征和选择 SVM                参数来获得最佳的性能。我们提出了一个使用 IBM SPSS Modeler 和 Java 构建文本分类器的一般性框架,无需特定于领域的字典。
本文将探讨为文本分类构建基于 SVM 的分类框架。我们将在 IBM SPSS Modeler 和 Java                中展示这个框架的完整设计和实现细节。此外,我们还将展示一个案例分析,演示如何使用此框架对智慧软件工程的示例软件缺陷数据进行分类。我们将演示实验步骤以及获得的结果。
适用性本文中描述的项目是使用 IBM SPSS Modeler 16 开发的。
例外和除外责任本文不打算详细介绍所讨论的每一项,或者提供分步操作说明。本文旨在大体概述该项目,重点介绍使用到的一些分析技术。
先决条件本文假设读者拥有 IBM SPSS Modeler 经验和 Java 编程经验。
概述许多应用程序都使用预测分析软件来发现数据中未知、隐藏的模式。来自业务分析领域的一个典型例子是文本分类任务。大量文本数据的出现带来了对分类它们来制定更好的决策的需求。
文本分类在软件工程中的一种重要应用就是 正交缺陷分类 (ODC) ,这是一种执行软件缺陷分析和修复的成熟方法。但是,ODC                需要缺陷的文本描述才能对它们正确分类。一种方法是手动分类缺陷,但是当然,此方法无法针对大量缺陷数据而扩展,因此需要一个分类引擎来将接下来的缺陷描述自动分类到预定义的类别,以采取正确的操作。
有许多最新的文本分类方法:决策树、基于规则和支持矢量机 (SVM) 。SVM                已经证明能提供比其他方法更好的性能。在本文中,我们将介绍构建一个分类器来分类文本缺陷数据的框架,以及如何针对不同类型的文本数据而一般化该框架 。
我们将我们的工作用两篇文章进行描述 - 主要文章(这一篇)和本文的附件中包含的补充文章。主要文章按如下方式组织:
  • 下一节(名为 )将介绍遇到的问题。
  • 小节将提供框架架构、设计目标、使用的方法和公式的概述,以及使用 SPSS Modeler 和                    Java 开发此框架的流程和细节。
  • 小节将介绍框架参数、实验设置和结果。
补充文章包含框架中使用的算法和公式的详细信息,以及额外的补充材料的描述。
问题定义和解决方法在这一节中,我们将提供遇到的问题的正式定义和解决它的一般方法。给定一组培训记录                    xii 介于 1 到 l                之间(培训记录的数量)每条记录 xi 是大小 k 特征的矢量。标签                    yi 与每条记录 xi 关联,其中                yi 介于 1 到 m 之间(预定义的类的数量)。分类可视为一个映射函数 yi=f                    (xi),将输入记录映射到一组预定义的类中的某一个类。构建该分类器的任务是估算一个函数(分类器)f                    *,该函数最大化平均分类准确性。每个类的分类准确性是正确分类的记录数量 (f*(xi)=                    f(xi)) 与该类中的记录总数的比率。平均准确性对所有预定义的类而计算。
对于文本分类,我们需要将每条输入文本记录转换为一个特征矢量,以便能够构建分类器。这将在下一节的                 主题下详细介绍。
框架架构和开发在数据挖掘中,使用一个名为 CRISP-DM (Cross Industry Standard Process for Data                Mining)  的标准流程来解决数据挖掘和预测分析问题。在本节中,我们将介绍 SVM                文本分类器的架构,以及如何使用 Java 和 IBM SPSS Modeler 基于 CRISP-DM 流程来开发它。
架构和设计在图 1 中,我们展示了该框架的架构,其中包含 3 个主要组件:
  • 数据预处理:此组件负责预处理输入文本数据,基于词袋模型而生成特征矢量 。
  • 模型构建和评估:此组件负责基于生成的特征矢量而构建分类模型。输入特征矢量分为培训测试验证分区。培训分区用于对                    SVM 分类模型进行初步评估。测试分区用于调优初步参数评估。验证分区用于度量模型性能。
  • 数据存储库:此组件负责存储和管理框架中使用的数据。有两种主要的数据类型 -                        输入数据生成的特征矢量。还有用在数据预处理组件中的辅助数据
图 1. 基于 SVM 的文本分类框架的架构提出的框架的设计目标包含两方面:
  • 一般性:在特征生成和选择过程中,我们不依靠任何特定于领域的字典来从文本数据中提取重要词语,用于生成特征。相反,我们将文档中的每个词语视为在分类时使用的特征,我们稍后会展示这一点。同样地,在分类模型中,我们选择了                    SVM,因为它已经过证实,拥有比其他分类方法更好的一般化性能,而且可以减轻过度拟合问题。这一点在文本分类中很重要,因为生成的特征矢量可能很稀疏,这增加了过度拟合的可能性。
  • 可插入性:我们将解决方案设计为一个框架,可以轻松地修改和/或替换其组件。例如,在选择特征的过程中,开发人员可以根据需要添加或删除过滤器。对于分类模型的构建,开发人员可以将                    SVM 替换为其他任何使用词袋  模型的分类技术,比如 k-NN                    (K-Nearest Neighbours) 和决策树
返回列表