Mallet入门

Mallet是基于java的机器学习工具,可以用来做静态自然语言处理,文件分类等,点击此处跳转的Mallet主页

1、Mallet 安装(WIN)

直接下载就可以用了……但还是要配置一下环境变量,以方便系统找到这个工具
a、添加一个MALLET_HOME系统变量,值为mallet的文件目录
b、将这个路径添加到系统变量Path当中去,path = %path%+;%MALLET_HOME%\bin
c、打开命令行,输入 mallet,回车,不报错说明安装成功。

Mallet入门

开发版安装:要下载最新的MALLET 2.0,可以从GitHub仓库上下载

1、安装 Apache ant
2、打开终端命令行,先切换到mallet目录,然后执行: ant; 编译通过会提示”BUILD SUCCESSFUL”,表示Mallet准备就绪。
3、运行 ant jar 在dist的目录下就会生成mallet.jar文件,就可以直接用来编写java程序了。

2、 Mallet使用(分类工具)

命令格式为:mallet [command] –option value –option value …

① 引入数据

mallet import-file –input /data/web/data.txt –output web.mallet
sample-data/web/* 为输入数据集文件,web.mallet为输出结果,import-dir表示该命令使用来引入数据的

②训练分类器

mallet train-classifier –input training.mallet –output-classifier my.classifier
train-classifier 表示训练分类器,train.mallet表示训练用的数据,my.classifier表示训练出的分类器,默认的分类器算法是朴素贝叶斯算法,也可以选择其他的分类算法,如最大熵算法、C4.5决策树算法、Bagging算法以及其他算法,比如使用最大熵算法:mallet train-classifier –input training.mallet –output-classifier my.classifier –trainer MaxEnt

③利用分类器对未分类的数据进行分类

mallet classify-dir –input datadir –output - –classifier classifier 或mallet classify-file –input data –output - –classifier classifier
请注意,这些命令的输入是原始文本文件,而不是导入的Mallet文件。

④评估

没有分类器是完美的,因此了解分类器是否对未用于训练的数据产生良好结果很重要。 要将一组标记的实例分为训练和测试列表,可以使用如下命令:
mallet train-classifier –input labeled.mallet –training-portion 0.9 –trainer MaxEnt
该命令将随机将数据分成90%的训练实例,用于训练分类器和10%的测试实例。 MALLET将使用分类器预测测试实例的类标签,将这些标签与真实标签进行比较,并报告结果。

⑤报告生成

默认报告选项是一个“混淆矩阵”,对于每个真实类别标签(每行一个),显示分配给每个预测类别标签(在列中)的实例数量。 非对角元素表示预测误差。 此外,您可以选择报告其他统计数据,如准确度和F1(精确度和召回率之间的平衡)。 要报告训练数据的准确度和测试数据类别标签“sports”的F1,请使用该命令:

⑥其他操作

执行多个测试/训练分割可以更好地查看分类器的性能。 要使用10个随机90:10分割,请使用选项–training-portion 0.9 –num-trials 10.要使用10-fold交叉验证:–cross-validation 10;
可以为每个试验训练多个分类器,从而达到比较不同算法的目的。:
mallet train-classifier –input labeled.mallet –training-portion 0.9 \ –trainer MaxEnt –trainer NaiveBayes