文本挖掘工具述评 |
来源:一起赢论文网 日期:2015-08-27 浏览数:4169 【 字体: 大 中 小 大 中 小 大 中 小 】 |
可见,四款开源工具都有自己固定的格式要求,需要针对采集到的数据做格式化处理。虽然Weka 支持常见的CSV 格式,但是在进行后期分析时ARFF 格式的文档效果更好,一般会使用其自带工具将CSV 转换为ARFF。Weka 不支持txt 格式的文档,需要使用者用另外的工具或者自己编写代码实现格式转换。LIBSVM 使用数据格式为: < label > < index1 > : < value1 > < index2 > : < value2> …,相关帮助文档里提供了格式转换函数write4libsvm( ) 。Lingpipe 和Rost CM 都支持Text 文档。LIBSVM 的数据输出格式需要专用的工具才能打开查看,难以集成到其他应用。其他三个开源工具的数据输出格式更易于扩展使用。2. 2 功能模块功能模块是工具开发时的重中之重,但功能最全的并非就是最好的,因为全面经常会导致浅显,而不够深入、不够专业的分析结果是使用人员所不愿见到的。应该根据实际情况,针对性地选择最合适的工具来完成分析工作,这样可达到事半功倍的效果。因此,工具的功能模块是否符合自己的要求,通常直接左右着使用者的挑选意愿。笔者对四款开源的文本挖掘工具从文本预处理操作步骤、文本分类和回归、文本聚类和关联规则的各种常见算法以及能否访问数据库、模型评估和二次开发接口等方面进行了较为详细的比较。文本预处理是文本挖掘过程中至关重要的一步,它直接影响到分类、聚类、关联规则等后期工作的效果。其中文本分词、去停用词、词频分析、文本特征提取是较为常规的操作,也是文本预处理最核心的内容。文本分类是在经过预处理的数据上,选择分类器进行训练、评价和反馈结果的过程。本文中,笔者仅针对分类器进行比较。常见的分类算法有TF-IDF 分类、Nave Bayes 分类、Knn 分类、决策树分类、神经网络分类和支持向量分类机( SVM) [19 - 20]。分类器不存在优劣,每一组数据都有其适合的分类器,所以在训练分类模型时,需要尝试不同的分类器和不同的参数,以实现模型优化。文本聚类包括基于划分的聚类、基于层次的聚类、基于密度的聚类、基于网格和基于模型的聚类。基于划分的聚类主要包括K-means、X-means、K-medoid 和ISODATA,其中X-means 是K-means 算法的改进。基于层次的聚类主要包括Birch Clusterer、Cure Clusterer、Single Link Clusterer、Complete Link Clusterer 和AverageLink Clusterer。基于密度的聚类主要包括DBScan 和Optics。基于网格的聚类主要包括Sting Clusterer 和Clique Clusterer,Cobweb 属于基于模型的聚类[21 - 22]。表3 所列出的聚类算法并没有完全包含上述算法,因为文本聚类作为一个尚未完全成熟的研究领域,每款开源工具实现方式各异,所以笔者只针对四款开源工具聚类算法的并集进行分析讨论。回归分析用于确定两种或两种以上变数间相互依赖的定量关系,运用十分广泛。一般会将回归分析纳入文本分类的范畴,但是本文为了更清晰地比较每款工具不同回归算法,所以单独拿出来分析比较。除了上述的功能以外,工具的适用范围与可扩展性、是否支持访问数据库、二次开发接口,以及分类、聚类训练模型的评估等因素也是在挑选工具时所必须考虑的。具体的比较结果[23 - 24]如表4 所示:表4 文本挖掘典型开源工具功能比较工具属性Weka Lingpipe LIBSVM ROST CM文本预处理噪音消除√分词√ √ √拼写检查√词性标注√去停用词√ √命名实体识别√词频分析√ √ √情感分析√ √社会网络和语义网络分析√相似性分析√支持自定义词库√ √语言辨别√ √特征表示√ √ √特征提取√ √ √ √奇异值分解( SVD) √分类TF-IDF 分类器√Nave Bayes √ √Knn √ √决策树√神经网络√支持向量分类机√ √聚类Single Link Clusterer √ √Complete Link Clusterer √ √Average Link Clusterer √K-means √ √X-means √DBScan √Optics √Cobweb √ √关联规则Apriori √Tertius √FPGrowth √FilteredAssociator √回归Logistic Regression √ √Linear Regression √Pace Regression √SVR( SVM) √字符语言建模√访问数据库√ √模型评估二次开发接口√2. 2. 1 文本预处理Rost CM 和LingPipe 的文本预处理功能都比较完善,但是前者的中文支持更好。Weka不支持中文的分词和消噪,需要自己修改程序实现。目前文本特征表示模型有向量空间模型、布尔模型、概率检索模型、语言模型等,其中向量空间模型处于主流地位。Weka 的过滤器能将ARFF 格式转换为向量空间模型。LIBSVM 的前期处理功能相对较弱,只针对数据进行特征表示和特征提取以实现降维。2. 2. 2 文本分类四款开源工具中,Weka 的分类算法最为完善,ROST CM 的强项在于前期的中文预处理,而后面算法都十分简陋。LIBSVM 提供了c-SVC 和v-SVC 两种基于SVM 的分类算法。Weka 的SMO 分类器实现了SVM 分类,同时它也能够调用LIBSVM,但是Weka 只是提供了LIBSVM 的Wrapper 调用机制,必须安装LIBSVM 后将附带的jar 路径添加到Weka 的启动路径中。在Weka 的平台下调用LIBSVM,可以非常方便地和其他算法进行同一配置下的比较。2. 2. 3 文本聚类同文本分类一样,Weka 囊括了大部分聚类方式,但是其中一些算法并不适用于自然语言处理。相反,由于LingPipe 是专门针对自然语言处理开发的工具,它的算法虽较少,分析结果却相对优秀。LIBSVM 和ROST CM 都不带有文本聚类功能。2. 2. 4 关联规则由于关联规则在文本挖掘领域的发展还不够成熟,参与比较的四款工具只有Weka 带有关联规则的算法实现; Weka 本身主要是用于结构化数值型数据挖掘分析的工具,所以它的关联规则功能对文本,特别是中文文本的支持也是欠佳的。2. 2. 5 回归Weka 和LingPipe 都把回归分析放在分类器的. jar 包中,Weka 分别实现了线性回归、逻辑回归和逐步回归,LingPipe 只有逻辑回归算法。LIBSVM 提供了ε?SVR 和v-SVR 两种基于SVM 的回归算法。2. 2. 6 其他LingPipe 支持字符语言建模、医学文献下载/解析/索引、数据库文本挖掘。Weak 和LingPipe都支持数据库访问,提升了工具的适用范围。四款开源工具中,只有ROST CM 不提供二次开发接口,其余三者均能在相应的开发环境下按需修改。Weka 在算法实现上较为优秀,也支持新算法的添加。2. 3 用户体验用户体验在评估的过程中也占据了重要的位置,本文的用户体验比较指标主要有图形化操作界面、命令行操作、辅助文档是否齐全和支持多层次分析人员等。具体结果如表5 所示:表5 文本挖掘典型开源工具用户体验比较工具属性Weka LingPipe LIBSVM ROST CM图形化界面√ √命令行操作√ √辅助文档齐全√ √ √ √支持多层次分析人员√可集成于其他应用√ √ √结论易于理解√ √可以看出,Weka 的效果较好,ROST CM 虽然支持图形化界面的操作,但是后期算法较为简陋,所以不支持高层次分析人员,只适合用来做前期的文本处理工具。LIBSVM 主要依靠命令行和嵌入其他程序操作,没有图形化界面,使用难度较大,适合专业人士使用。LingPipe 的使用主要靠引用工具包,自己编译程序来实现各种挖掘功能。前三款开源工具都可以按照自己的需要打包加载到自己的程序里面,比如可以将LIBSVM 加载到Weka 程序里面。3 基于文本分类的工具测评为了更深入地了解文本挖掘工具的运作情况和它们在实现相同算法时的差异,笔者结合实际情况,选取了Weka[25]、LingPipe 进行实验测评。同时考虑到文本挖掘几个主要的功能模块中分类算法和聚类算法的实现最为成熟,但是文本聚类的分析对机器的性能要求极高,故本文在测试过程中选取了较为经典且两款工具都含有的Nave Bayes 分类器。3. 1 实验设计由于实验的分类语料和测试语料都是中文,而ROST CM 的中文预处理能力较强,但文本分词结果欠佳,后期文本分类算法也比较简单,同时Weka 和Ling-Pipe 的中文预处理能力较弱,后期分类算法比较优秀,所以实验采用取长补短的策略,即使用IKAnalyze 先对语料库做分词处理,再用ROST CM 做文本预处理工作,然后针对Weka 和LingPipe 的Nave Bayes 分类算法进行比较。具体实验步骤安排如下: ①网上下载公开的文本测试语料库,实验选取了复旦大学李荣陆提供的中文语料库[26]; ②用IKAnalyze 对获取到的语料进行分词处理; ③对分好词的语料用ROST CM 实现文本预处理,主要包括去停用词、进行词频统计和文本特征提取; ④处理好的文本一式两份,一份用于LingPipe分类实验,一份经过转换程序转换为Weka 要求的ARFF 格式进行分类实验[27 - 28]。3. 2 实验结果分析由于两款工具对测试结果的评价指标不尽相同,__笔者选取了两者的交集,主要对文本分类结果的总体评价、每个类别的详细精度以及对分类结果的混合矩阵( Confusion Matrix) 三方面来分析实验结果。两款工具文本分类的总体概况如表6 所示:表6 Weka 和LingPipe 文本分类结果的总体比较评价指标Weka LingPipe正确率79. 580 6% 99. 889 6%错误率20. 419 4% 0. 110 4%卡巴统计0. 775 9 0. 998 811 343 182 203 9精确度0. 802 0. 998 896 247 240 618 1召回率0. 796 0. 998 896 247 240 618 1文本总数906可以明显看出LingPipe 的正确分类率高出Weka20% ,接近100% ,同时LingPipe 的召回率( recall) 和准确率( precision) 都非常令人满意。此外,可以通过其分析结果评估项中的数据计算得出置信度为95%。再从两款工具的详细分类精度来进行比较,其中LingPipe 的TP Rate 和FP Rate 两项数据工具本身并未直接给出,但是为了方便比较分析,笔者经计算将其罗列出来。具体数据如表7 和表8 所示:表7 Weka 文本分类的详细精度Class 正确率错误率精确率召回率F-MeasureC1-Art 0. 707 0. 027 0. 761 0. 707 0. |
[返回] |