Mallet-使用说明_第1页
Mallet-使用说明_第2页
Mallet-使用说明_第3页
Mallet-使用说明_第4页
Mallet-使用说明_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MAchine Learning for LanguagE Toolkit (Mallet) 是一 java 的软件包,专门用于统计自然语言处理,文本分类,主题建模,信息抽取,以及其它涉及文本的机器学习方面的应用。a) 文本分类:它的基本思想是,用大量的训练样本训练分类器,再用些测试样本测试分类器的性能,然后保存训练好的分类器模型。当将未知类别的文本输入已训练好的分类模型时,可输出此未知类别样本所属各个类别的的概率。b) 主题建模:主题建模用于分析大量的未标示(类别未知)的文本。通过分析这些文本,可以得出一些(个数可指定,也可默认)主题,每个主题由一些经常出现在一起的词组成。可以保存建模好的主体模型,以备推断一未知文本所属主题时所用。c) Mallet 可以把文本转换为数学上的表达形式,从而更有效的对文本进行机器学习。这个过程是通过“管道( pipe )”系统实现的,它可以进行分词,移除停用词,把序列转换为向量等方面的操作。具体代码可见 malletsrc ccmalletpipe 。使用步骤:一、文本分类:1. 处理数据格式:将文本变成mallet数据文件 C:malletbinmallet import-dir -input sample-dataclassify-input* -output classify-input.mallet-input 输入文件或文件夹-output 输出文件.mallet此命令是把classify-input (此名称可以根据自己的需要改,我在此命名此文件夹名为classify-input )目录下的文件夹中的所有数据转为特征向量的形式,mallet 可用已转换好的数据格式进行训练、测试分类器等操作。注:在此,classify-input 下有三个文件夹,分别为sport 、science 、food 。执行此命令后,系统会自动将数据分为三类,类别名称为sport 、science 、food ,三个文件夹下的数据类别分别于所属文件夹名称一一对应。此命令等价于:C:malletjava cc.mallet.classify.tui.Text2Vectors -input sample-data classify-input * -output classify-input.vectors输入单个文件可以用import-file命令,注意:input和output命令后可以跟多个文件,如C:malletbinmallet import-svmlight -input train test -output train.mallet test.mallet 2. 训练分类器 C:malletbinmallet train-classifier -input classify-input.mallet -trainer NaiveBayes -output-classifier classifier1.classifier -training-portion 0.8 -num-trials 10-trainer 选择训练的算法,如MaxEnt, NaiveBayes, C45, DecisionTree等,具体可以看 JavaDoc API cc.mallet.classify package。本例中选择NaiveBays,此项为可选。-training-portion 0.8,指80%的数据作为训练数据,剩下20%的作为测试数据,也可不填此项,全部数据作为训练。 -num-trials 10,表示测试10次,可选-cross-validation 10. 也可直接使用此命令做十折交叉检验此命令是训练、测试分类器。-input 参数的值classify-input.mallet 是第一步中生成的特征向量,-trainer 参数的值NaiveBayes 是指训练分类器的算法,可以指定其他算法,例如 MaxEnt等。 -training-portion 参数的值这里是0.8 ,可以根据需要设定,0.8 的意思是随机抽取classify-input.mallet 数据中的80% 当训练数据,剩下的当测试数据,用于测试已训练好的分类器的准确性等等性能指标。-output-classifier 参数的值classifier1.classifier 是所存已训练好的分类器的名称。此命令等价于:C:malletjava cc.mallet.classify.tui.Vectors2Classify -input classify-input.vectors -trainer NaiveBayes -training-portion 0.8 -output-classifier classifier1.classifier -num-trials 3 3. 预测,分类未标注文本C:malletbinmallet classify-file -input test.txt -output - -classifier classifier1.classifierC:malletbinmallet classify-dir -input test* -output - -classifier classifier1.classifier此命令是用已训练好的分类器来对一未知类别文本进行分类。-input 参数值test.txt 是要进行分类的未知类别文本的位置。-output 后面参数值“- ”意思是直接在命令行中输出所属各个类别的概率,也可存成文本形式。-classifier 参数的值是指使用的分类器名称(即,训练好的分类器)。 需在binmallet.bat中添加if %CMD%=train-classifier set CLASS=cc.mallet.classify.tui.Vectors2Classify注:对未知类别文本进行分类时不需进行数据预处理,直接输入文本即可,文本中一行代表一个分类实例。或者可用其他分类方法:C:malletjava cc.mallet.classify.tui.Text2Classify -input test.txt -output - -classifier classifier1.classifier 二、主题建模 1. 转换数据格式C:malletmallet import-dir -input sample-datatopic-input -output topic-input.mallet -keep-sequence -remove-stopwords 此命令是将topic-input 目录下的所有文本转换为特征序列,-keep-sequence 参数必须有,否则会出错,因为主题建模时所用数据源就是特征序列,而不是特征向量,所以必须用-keep-sequence 此参数来限制转换数据的格式。-remove-stopwords 的意思是移除停用词。 2. 训练分类器C:malletmallet train-topics -input topic-input.mallet -num-topics 2 -output-doc-topics docstopics -inferencer -filename infer1.inferencer 此命令是用第一步的数据进行主题建模,参数-num-topics 的值2 意思是限定主题个数为2 ,可以根据需要设置其他值,默认的主题数为10. 。-output-doc-topics 参数的意思是输出文档- 主题矩阵,存到docstopics 文件中。-inferencer -filename 参数的意思是对将训练好的主题模型进行存储,以备后用,在此,此主题模型存到参数值infer1.inferencer 中,可根据习惯自行命名。 3. 同1 说明。C:malletmallet import-dir -input sample-datadata -output topic-test.mallet -keep-sequence -remove-stopwords 4. 预测C:malletmallet infer-topics -input topic-test.mallet -inferencer infer1.inferencer -output-doc-topics testdocstopics 用训练好的主题模型对未标示的文本topic-test 进行主题推断。-inferencer 参数的意思是用已经训练好的主题模型infer1.inferencer 进行对未知文本的主题推断。-output-doc-topics 参数的意思是输出文档- 主题矩阵,存到docstopics 文件中。注:? 文本分类时未知文本必须用一文档表示,文档中每行代表一分类实例。而主题建模时可以对单个文档主题建模,可以对一目录下的所有文档进行主题建模,例如主题建模第三步,可以用import-dir 命令。C:malletmallet import-file -input sample-datadatatopic-test.txt -output topic-test.mallet -keep-sequence -remove-stopwords? import-file ,import-dir ,train-topics ,infer-topics , train-classifier 等等这些命令可以通过以下操作进行查询:C: malletmallet查询每条命令的参数可以通过以下命令行操作进行:例如: C: malletbinmallet import-dir -help可以根据自己的需要选用参数。三、序列数据1、数据输入,和svmlight的数据输入相同。SVMLight format:SVMLight-style data in the formattarget feature:value feature:value .标签 特征:特征值 特征:特征值. 用如下语句将其转换成mallet格式C: malletbinmallet import-svmlight -input tr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论