Board logo

标题: 一个使用 IBM SPSS Modeler 的文本分类框架(2) [打印本页]

作者: look_w    时间: 2018-6-23 11:25     标题: 一个使用 IBM SPSS Modeler 的文本分类框架(2)

基于 CRISP-DM 流程来开发框架与任何数据挖掘项目一样,CRISP-DM 是标准的开发流程。在这一节中,我们将介绍基于 CRISP-DM 流程来开发图 1                中之前给出的框架架构的任务。我们将介绍开发细节以及最佳实践建议,以获取最佳的结果。
首先,我们将简要讨论 CRISP-DM 流程的主要阶段
在这里给出的工作中,数据预处理阶段在 Java 中开发,建模和评估阶段在 SPSS Modeler 中开发,数据存储库使用简单的 Excel 电子表格进行开发。
业务理解目标是给定一个预先定义的类集合,构建一个框架来分类新文本数据。此框架应该无需任何特定于领域的字典即可工作。输入是一组具有标签的文本记录。
数据理解以下是输入数据模型的正式描述,字段在构建分类器的过程中的角色的描述,以及我们检查的示例数据。
输入是一个包含带标签的记录的表,这些记录具有以下字段:
在表 1 中,我们给出了任何文本分类器的输入数据的骨架。
表 1. 任何文本分类器的输入数据模型的一般骨架ID文本数据记录类1T1y1IT2yjLT3ym
表 2 中给出了软件缺陷数据案例分析的输入数据的快照。
表 2. 来自软件缺陷输入数据的示例ID描述R_Trigger42797See this in regression run can't reproduce                            it.
03.06.25 JOB37915  +DFHKE0030 - Abend DC4/AKEX in Program                            DFHS2PP  Entry Point 00000000_28F34DB8.
03.06.25 JOB37915                             +DFHKE0040 - Instruction Address:00000000_01855F9E Offset in Program                            FFFFFFFF ...l_coverage42803It’s not possible to build the BSF stream because two                            modules DFHADWB0 and DFHADDRM build with RC=4.This is                            ...l_build42323I built an ICM to parse a schema that contains optional                            dateTime attributes.
on mapping level 2.2 I believe it provides a                            string representation but at level 3.0 CICS tries                            ...l_developer_test
在表 2 中,描述字段对应于表 1 中的文本数据R_Trigger                字段表示该记录中描述的软件缺陷的类,对应于表 1 中的记录类字段。
数据预处理由于我们计划使用支持矢量机来构建文本分类器,所以我们需要预处理文本数据,以便基于词袋                 表示将其转换为一组特征矢量,从而构建 SVM 分类器。换句话说,我们将每条文本记录 Ti 转换为矢量                    xi=(x1,x2,...,xij,...,xik),其中                    xij                是一个提取的词语。我们在后面将会看到,文档中每个提取的词语对应于一个将用于构建和运行文档分类器的特征。预处理阶段可分为两个主要的子阶段:
特征选择/精减
我们将特征选择组件设计为一个词语令牌化器,后跟一组过滤器,用来过滤提取的词语,得到分类上下文中最重要的词语。特征选择模块的设计如图                2 所示,随后是每个子组件的描述。
图 2. 特征选择模块被设计为一个词语令牌化器,后跟一组用于选择一组最重要的分类特征的过滤器词语令牌化器
我们使用一个简单的空格令牌化器从文本数据中提取所有可能的词语。为了简便起见,我们的实现仅关注单字词语。但是,在真实的文字文档上运行令牌化器后,我们会面临每个文档拥有大量(数千个)特征的问题。这个问题在分类方法的上下文中称为维数灾难。它被称为灾难是因为,随着特征数量增加,构建模型的运行时间将呈指数级增长(请记住从文档提取的每个词语对应于一个特征)。因此,需要高效的方法来选择最重要的词语,同时不会明显地从输入数据丢失信息,导致影响分类准确性。这正是构建分类器必须具有特征选择模块的原因。
最低文档频率过滤器
为了确保某个词语经常用在培训数据中并避免大型、不必要的特征矢量,我们将删除文档频率低于某个给定阈值的词语。
常用词语过滤器
任何文本都包含这样一些常用词语:它们没有特定于领域,而且具有较低的辨别力来将记录分类到不同类别。我们使用了来自包含 4.5                    亿个单词的美国当代英语语料库中的 5000                个常用单词和/或词目的列表,美国当代英语语料库是惟一一个大型的、平衡的美国英语语料库 。在表 3                中,我们给出了我们在所实现的过滤器中使用的一个词语列表示例。
表 3. 常用关键词的示例列表常用单词TheBeAndOfADoGoThey...
实现此过滤器的一种方法是,在提取的词语列表中直接搜索这些常用词语并删除它们。但是,此方法有两个主要问题。
这两个问题的直观的解决方案是删除文本中所有与常用词列表中的任何单词类似的单词,而不仅是准确匹配的单词。要实现此解决方案,首先需要在两个单词之间定义一种相似性度量指标。我们使用一个规范化的编辑距离相似性度量指标                来度量每个提取的词语与常用词列表中的词语之间的相似性。简单地讲,常用词语过滤器的工作方式如下:过滤出与任何常用词语的相似性分数高于给定阈值的任何词语。运行此过滤器后,大部分显示为词目、不同形态或者甚至键入错误的常用词语都将删除。有关此过滤器的更多信息,请参阅本文附件中包含的补充文档中的                1.1 小节。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0