Mallet之源文件结构

原文地址:Mallet之源文件结构 作者:hzbach

Mallet源文件中重要的子目录:
classify:监督式的分类算法
types:重要的数据结构类型,像Instance实例,FeatureVector特征向量
pipe:特征选择,变换实例


每个分类方法用两个类实现:trainer和classifier
trainer把训练数据做为输入,创建classifier做为输出。每一个trainer都是ClassifierTrainer的子类
classifier有参数在训练时学习。

 

重要的类:

(一)classify目录中:

1.Classifier:所有classifier的父类。它的抽象方法classify()在每个子类中被定义。print()函数也很有用,但是只定义在一些classifier中。Accuracy,Precision,F1,Recall的计算也在类中

 

2.ClassifierTrainer:所有trainer类的父类,它的抽象方法training()要在子类中定义

public abstract Classifier train (InstanceList trainingSet,
                  InstanceList validationSet,
                  InstanceList testSet,
                  ClassifierEvaluating evaluator,
                  Classifier initialClassifier);

返回一个新的Classifier.

类中还有一些静态的命令行函数

 

3.Classification:它存储对一个实例分类的结果。包括实例,使用的分类器,分类产生的label。还有比较label正确性的方法。

 

4.Trial:一个方便的类运行实例队列通过分类器,并且存储实例队列,分类器,分类结果对每一个实例。同样有计算f1,accuracy的方法。常用构造器Trial(Classifier c, InstanceList ilist).

 

5.命令行类:都定义在/classify/tui目录中

 

(二)types目录中

1.Instance类:一个实例对应着属性-值表中的一行。它主要有四个成员,前两个是最重要的

    data:表达了每个实例的数据。最终表示为特征向量

    target:实例的赋予标签

    name:表示实例的短的唯一的名字(例如文件名)

    source:人可读的原文件信息,例如原始文本

 

2.InstanceList类:实例列表。最简单的加实例到实例列表的方法是add(PipeInputIterator),load()加载文件到instanceList.

 

3.FeatureVector类:featureVector是稀疏向量。字典,存储了每一个向量。特征向量存了每个特征的值。data域最终表示为特征向量

 

4.FeatureSelection类:包括Alphabet(对应着一个个特征),BitSet表示被选中的特征子集合。

常用的构造器:FeatureSelection(Alphabet dictionary);
              FeatureSelection(Alphabet dictionary, java.util.BitSet selectedFeatures);

              FeatureSelection (RankedFeatureVector rsv, int numFeatures);

其中RankedFeatureVector的继承图示:

[转载]Mallet之源文件结构

5.labeling:是一个接口,代表一个实例可能被标识的标签。它存储了每个标签的值。labels是实现labeling接口的类。

 

(三)Pipe目录中

1.Pipe类:所有pipes的父类,同时也是抽象类,主要方法pipe()在子类中定义.该类用来对各种数据进行处理,转化格式。

Instance pipe(Instance carrier);
//Process an Instance.
Instance pipe(java.lang.Object data, java.lang.Object target,
java.lang.Object name, java.lang.Object source,
Instance parent, PropertyList properties)
//Create and process an Instance.

 

2.各种pipe类的子类,下面列出常用的几个类:

(1) Filename2CharSequence: Given a filename contained in a string, read in contents of file into a CharSequence.
(2) CharSequence2TokenSequence: character sequence ⇒ a TokenSequence.
(3) TokenSequence2FeatureSequence: a TokenSequence ⇒ a FeatureSequence
(4) FeatureSequence2AugmentableFeatureVector: a FeatureSequence ⇒ a FeatureVector
(5) Token2FeatureVector: convert the property list on a token into a feature vector

以上五步将文件转成特征向量,主要使用的步骤,其他的可以根据需要选择使用

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值