最大熵工具包 处理流程解析

来源:百度文库 编辑:神马文学网 时间:2024/07/08 23:17:18
~~~总算理了一个流程,真懒死了~~~
0,输入:
wordtrain.txt
训练语料如:
天津港 ( 2 项目 )
m NN 2 n vn
(类别2的上下文)
1,进行特征提取
perl yin_features.pl wordtrain.txt yin_features /*yin_events.info*/
比如提取 1,默认类别
2,左边第一个词
3,左边第二个词
4,右边第一个词
5,右边第二个词
6,左边两个单词
7,右边两个单词
8,左右两个单词
9,左边第一个词性
10,左边第二个词性
11,右边第一个词性
12,右边第二个词性
13,左边两个单词性
14,右边两个单词性
15,左右两个单词性
生成的文件格式:
yin_features文件:
4807 default   2
1 word-2=远远  1
[出现总次数] [特征] [类别]
/*
yin_events.info文件:
NumPredictions: 2
NumEvents: 8702
记录类别数目,和事件数目
*/
2,对yin_features进行处理,得到用于训练的特征文件yin_contexts.fmap和yin_contexts
perl yin_contexts.fmap.pl yin_features yin_contexts.fmap yin_contexts
处理过程:
1),对yin_features进行统计,将所有不重复且特征数目大于阈值的特征放入哈希表,写出文件yin_contexts
2),得到yin_contexts中对应每个单独特征所涉及的类别文件yin_contexts.fmap
生成的文件格式:
yin_contexts文件:
default
word-2=从
[单个特征罗列]
yin_contexts.fmap文件:
NumContexts= 2043
2 0 1
2 0 1
2 0 1
[总特征数目,实际上就是yin_contexts文件的行数]
[该行特征涉及的类数目][类号...]
3,处理事件,将训练语料转化成事件格式
perl yin_events.pl yin_contexts wordtrain.txt yin_events
生成文件格式:
yin_events文件:
根据wordtrain.txt的每行生成一行数据
[类别][涉及的特征数目][所涉及的特征在yin_contexts中对应的行数罗列...]
类别从0开始编号
4,使用工具包开始训练参数(GIS迭代)
train_gis yin_contexts.fmap yin_events 30 yin
生成两个文件yin.info和yin.param
文件格式分别为:
yin.info文件:
NumParams: 2872   //yin.param的参数个数
NumPredictions: 2  //类别个数
NumEvents: 8702//yin_events行数,即训练数据的规模
CorrectionNormal: 15//
CorrectionParam: -1.30600332411e-001//缺省的概率值
GISModelType: CPP_GIS_MODEL//模型名称
yin.param文件:
-3.47560348535e-002
+3.02209807893e-002
+5.57848784281e-001
-3.85557428936e-002
+3.75768796786e-001
yin_contexts.fmap文件中每一行的特征对应类别的概率,这里一行如果对应有多个类别
将会对应yin.param文件中的多行.
5,将训练得到的结果用于测试
perl result.pl yin_contexts yin_contexts.fmap yin.param yin.info wordtest.txt
yin_contexts yin_contexts.fmap yin.param这三个文件用于找到生成不同类别时的概率
yin.info为特征在文件yin_contexts找不到时的缺省概率.
处理细节:
对测试数据的每一行中的所有特征到不同的类别计算出概率
相同的类别概率和相加,取出概率最大的类作为我们最后的类别预测.