资源简介
有详细的算法描述,适合条件随机场的编程爱好者使用,很好的参考作用
代码片段和文件信息
package iitb.CRFAppl;
import iitb.CRF.*;
import iitb.Model.*;
import iitb.Utils.*;
...;
public class CRFAppl {
Properties options;
CRF crfModel;
FeatureGenImpl featureGen;
public static void main(String argv[]) throws Exception {
/*
* Initialization:
* Get the required arguements for the application here.
* Also you will need to create a Properties object for arguements to be
* passed to the CRF. You do not need to worry about this object
* because there are default values for all the parameters in the CRF package.
* You may need to pass your own parameters values for tuning the application
* performance.
*/
/*
* There are mainly two phases for a learning application: Training and Testing.
* Implement two routines for each of the phases and call them appropriately here.
*/
train();
test();
}
public void train() throws Exception {
/*
* Read the training dataset into an object which implements DataIter
* interface(trainData). Each of the training instance is encapsulated in the
* object which provides DataSequence interface. The DataIter interface
* returns object of DataSequence (training instance) in next() routine.
*/
/*
* Once you have loaded the training dataset you need to allocate objects
* for the model to be learned. allocmodel() method does that allocation.
*/
allocModel();
/*
* You may need to train some of the feature types class. This training is
* needed for features which need to learn from the training data for instance
* dictionary features build generated from the training set.
*/
featureGen.train(trainData);
/*
* Call train routine of the CRF model to train the model using the
* train data. This routine returns the learned weight for the features.
*/
double featureWts[] = crfModel.train(trainData);
/*
* You can store the learned model for later use into disk.
* For this you will have to store features as well as their
* corresponding weights.
*/
crfModel.write(baseDir+“/learntModels/“+outDir+“/crf“);
featureGen.write(baseDir+“/learntModels/“+outDir+“/features“);
}
public void test() throws Exception {
/*
* Read the test dataset. Each of the test instance is encapsulated in the
* object which provides DataSequence interface.
*/
/*
* Once you have loaded the test dataset you need to allocate objects
* for the model to be learned. allocmodel() method does that allocation.
* Also you need to read learned parameters from the disk stored after
* training. If the model is already available in the memory then you do
* not need to reallocate the model i.e. you can skip the next step in that
* case.
*/
allocModel();
featureGen.read(baseDir+“/learntModels/“+outD
评论
共有 条评论