Mallet 使用说明(转)

写在最前面:主要是转给自己备忘的

原文:http://blog.csdn.net/xianggelilaling/article/details/5634815/

Mallet 是专门用于机器学习方面的软件包,此软件包基于 Java 。通过 mallet 工具,可以进行自然语言处理,文本分类,主题建模。文本聚类,信息抽取等。下面是从如何配 置 mallet 环境到如何使用 mallet 进行介绍。

一. 实验环境配置

1.       下载 并安装 JDK ,并正确设置环境变量

需设置三个环境变量:

 JAVA_HOME : 该环境变量的值就是 Java 所在的目录,

例如 C:/Program Files/Java/jdk1.6.0_10

PATH : 指定一个路径列表,用于搜索可执行文件。

该环境变量值为: %JAVA_HOME%/bin

 CLASSPATH : 指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。该环境变量的值为:%JAVA_HOME%/lib/tools.jar ; %JAVA_HOME%/lib/dt.jar

运行cmd

分别 输入 javac 和 java ,没有出错则表示配置成功。

2.       下载 apache-ant ,不需安装,只需正确设置环境变量。

apache-ant 是一个基于 Java 的编译工具。

下载 http://ant.apache.org/bindownload.cgi ,解压 放到你要的目录

配置

  ANT_HOME :设置为 apache-ant 的解压目录, 例如: C:/server/apache-ant-1.8.0
 classpath : %ANT_HOME%/lib

 Path : %ANT_HOME%/bin

测试

运行 cmd

输入 ant

结果如下则表示配置成功

Buildfile : build.xml does not exist! 
Build failed

3 .下载 mallet 最新版本 mallet-2.0.5 ,地址: http://mallet.cs.umass.edu/download.php

       配置环境变量:

 MALLET_HOME=MALLET的解压目录,例如C:/mallet     MALLET的解压目录 若有 -2.0.5不能成功

Path中添加 %MALLET_HOME%/bin

 classpath:%mallet_home%/class;%mallet_home%/lib;%mallet_home%/lib/mallet-deps.jar

运行 à cmd ,进入到 mallet 的解压目录

输入 ant

如果出现 Build successful 字 样,则表示配置成功

二. Mallet 简要说明

全称: MAchine Learning for LanguagE Toolkit

Mallet 是一 java 的软件包,专门用于统计自然语言处理,文本分 类,主题建模,信息抽取,以及其它涉及文本的机器学习方面的应用。

a)         文本分类:它的基本思想是,用大量的训练样本训 练分类器,再用些测试样本测试分类器的性能,然后保存训练好的分类器模型。当将未知类别的文本输入已训练好的分类模型时,可输出此未知类别样本所属各个类 别的的概率。

b)        主题建模:主题建模用于分析大量的未标示(类别 未知)的文本。通过分析这些文本,可以得出一些(个数可指定,也可默认)主题,每个主题由一些经常出现在一起的词组成。可以保存建模好的主体模型,以备推 断一未知文本所属主题时所用。

c)        Mallet 可以把文本转换为数学上的表达形式,从而更有效 的对文本进行机器学习。这个过程是通过“管道( pipe )”系统实现的,它可以进行分词,移除停用词,把序列转换为向量等方面的操作。具体代码可见 mallet/src /cc/mallet/pipe 。

三. Mallet 使用步骤

文本分类:

1.      C:/mallet>mallet import-dir --input sample-data/classify-input/* --output classify-input.mallet

此命令等价于:

C:/mallet>java cc.mallet.classify.tui.Text2Vectors --input sample-data/ classify-input /* --output classify-input.vectors

此命令是把classify-input (此名称可以根据自己的需要改,我在此命名此文件夹名为classify-input )目录下的文件夹中的所有数据转为特征向量的形式,mallet 可用已转换好的数据格式进行训练、测试分类器等操作。

注:在此,classify-input 下有三个文件夹,分别为sport 、science 、food 。执行此命令后,系统会自动 将数据分为三类,类别名称为sport 、science 、food ,三个文件夹下的数据类别分别于所属文件夹名称一一对应。

2.      C:/mallet>mallet train-classifier --input classify-input.mallet --trainer NaiveBayes --training-portion 0.8 --output-classifier classifier1.classifier  

此命令等价于:

C:/mallet>java cc.mallet.classify.tui.Vectors2Classify --input classify-input.vectors --trainerNaiveBayes --training-portion 0.8 --output-classifier classifier1.classifier

此命令是训练、测试分类器。--input 参数的值classify-input.mallet 是第 一步中生成的特征向量,--trainer参数的值NaiveBayes 是指训练分类器的算法,可以指定其他算法,例如 MaxEnt等。 --training-portion 参数的值这里是0.8 , 可以根据需要设定,0.8 的意思是随机抽取classify-input.mallet 数据中的80% 当 训练数据,剩下的当测试数据,用于测试已训练好的分类器的准确性等等性能指标。--output-classifier 参 数的值classifier1.classifier 是所存已训练好的分类器的名称。

3.      C:/mallet>java cc.mallet.classify.tui.Text2Classify --input sample-data/data/ classify-test.txt --output - --classifier classifier1.classifier

此命令是用已训 练好的分类器来对一未知类别文本进行分类。--input 参数值sample-data/data/ classify-test.txt 是要进行分类的未知类别文本的位置。--output 后面参数值“- ”意思是直接在命令行中 输出所属各个类别的概率。--classifier 参数的值是指使用的分类器名称(即,训练好的分 类器)。

注:对未知类别 文本进行分类时不需进行数据预处理,直接输入文本即可,文本中一行代表一个分类实例。

主题建模

1. C:/mallet>mallet import-dir --input sample-data/topic-input --output topic-input.mallet --keep-sequence --remove-stopwords

   此命令是将topic-input 目 录下的所有文本转换为特征序列,--keep-sequence 参数必须有,否则会出错,因为主题 建模时所用数据源就是特征序列,而不是特征向量,所以必须用--keep-sequence 此参数 来限制转换数据的格式。--remove-stopwords 的 意思是移除停用词。

2. C:/mallet>mallet train-topics --input topic-input.mallet --num-topics 2 --output-doc-topicsdocstopics --inferencer -filename infer1.inferencer

此命令是用第一 步的数据进行主题建模,参数--num-topics 的值2 意 思是限定主题个数为2 ,可以根据需要设置其他值,默认的主题数为10. 。--output-doc-topics 参数的 意思是输出文档- 主题矩阵,存到docstopics 文件中。--inferencer -filename 参数的意思是对将训练好的主题模型进行存储,以备后 用,在此,此主题模型存到参数值infer1.inferencer 中,可根据习惯自行命名。

3.     C:/mallet>mallet import-dir --input sample-data/data --output topic-test.mallet --keep-sequence  --remove-stopwords

同1 说明。

4.     C:/mallet>mallet infer-topics --input topic-test.mallet --inferencer infer1.inferencer --output-doc-topics testdocstopics

用训练好的主题 模型对未标示的文本topic-test 进行主题推断。--inferencer 参数的意思是用已经训练好的主题模型infer1.inferencer 进行对未知文本的主题推断。--output-doc-topics 参 数的意思是输出文档- 主题矩阵,存到docstopics 文件中。

注:

1.文本分类时未知文本必须用一文档表示,文档中每行代表一分类实例。而主题建模时可以对单个文档主题建模,可 以对一目录下的所有文档进行主题建模,例如主题建模第三步,可以用import-dir 命令。

C:/mallet>mallet import-file --input sample-data/data/topic-test.txt --output topic-test.mallet --keep-sequence --remove-stopwords

2.import-file ,import-dir ,train-topics ,infer-topics , train-classifier 等等这些命令可以通过以下操作进行查询:

C: /mallet>mallet

查询每条命令的参数可以通过以下命令行操作进行:

例如 C: /mallet>mallet import-dir --help

可以根据自己的需要选用参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值