最大熵工具包的使用

转载 2013年12月02日 14:57:27


    最大熵是自然语言处理中经常用到的一种统计方法。网上也有很多最大熵方面的工具包,目前大家用得最多的应该是张乐博士写的最大熵工具包了。该工具包既可以采用命令行形式运行,也可以直接调用接口函数,为大家的研究工作带来了很大的方便。但是,对于刚接触到该工具包的人来说,使用起来还是有些麻烦的。

一、命令行形式使用方法

       1、利用命令行形式,首先要准备好特征文件。特征文件的格式在最大熵工具包的使用说明书(manual20041229.pdf)的P24。

            

       特征文件中,一行就是一个事件(event),其格式首先是该event对应的类别label,然后是特征feature,两者都是string类型的。如果feature后边有“:”,则后边是该feature的值。Label与feature之间,以及feature与feature之间以空格间隔。例如一个事件形式如下:

Outdoor Sunny Sad Humid Outdoor    

则,该event的label为Outdoor,特征有四个,包括Sunny,Sad,Humid,Outdoor。该事件中的特征没有给出特征值,如果没有显式给出,则其特征值默认为1。

       准备好特征文件之后,可以采用命令进行训练:

       maxent –m Modelname –i iteraterNum –v train.txt

例如:maxent –m Modelname –i 30 –v train.txt

则你将会得到一个名字为Modelname的最大熵模型。

       测试过程,首先也是利用同样的特征模板抽取特征构成特征文件test.txt作为系统输入,然后测试的命令为:

       maxent -p –m Modelname –o output.txt test.txt

    将输出对每个事件的预测结果

或者采用命令:

maxent -p –m Modelname –detail –o output.txt test.txt

将输出详细的概率信息

 

二、调用函数API

n       使用函数接口

l       运行环境:VC7.1

l       加入头文件:#include <maxentmodel.hpp>

l       类名:MaxentModel

l       训练过程:

加入特征事件:

n       begin_add_event();

n        add_event(const vector< string > &context, const outcome_type &outcome, size_t count=1)

n       end_add_event()

l       训练:train(size_t iter=15, const std::string &method="lbfgs", double sigma=0.0, double tol=1E-05)

           保存模型:save(const string &model, bool binary=false)

-----------------------------------------------------------------------------------------------------------------

l       测试:

n       加载模型:load (const string &model)

n       加入特征,方法同训练

n       模型估计使用函数:eval_all((const vector< string > &context, std::vector< pair< outcome_type, double > > &outcomes,   bool sort_result=true)

 

三、最大熵工具包下载

    

  张乐博士的最大熵工具包
 

四、最大熵工具的一个介绍

下面的文档介绍了最大熵理论以及最大熵工具包的使用:

  最大熵理论及其应用,下载

相关文章推荐

最大熵,三硬币模型的R语言代码

#最大熵算法 #《 统计学习方法》最大熵,三硬币模型的R语言代码    有3个硬币,分布为A、B、C,硬币正面的概率是pai,p,q。投币实验如下,先投A,如果A是正面,即A=1,那么选择投B;A...
  • poson
  • poson
  • 2012年04月28日 09:35
  • 1970

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

最大熵模型进行中文分词

本文运用字标注法进行中文分词,最大熵模型方面使用开源的张乐博士的最大熵模型工具包(Maximum Entropy Modeling Toolkit for Python and C++)。使用的中文...

张乐最大熵工具包的模型文件格式分析

本文为张乐最大熵工具包模型文件格式分析: 训练文件如下: c1 f21 f30 f40 f51 f60 f70 f81 f91 f101 f111 f120 f130 f144 f150 f160...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

最大熵模型

最大熵模型一直困惑了我很久,直到最近看了exponential family才明白。最大熵解的形式属于exponential family。 第一部分 首先考虑一个问题:给定一些样本,求估计p(x...

最大熵模型中的heldout accuracy(张乐老师提供的最大熵模型包相关技术)

最大熵模型中的heldout accuracy(张乐老师提供的最大熵模型包相关技术)里面有一段这样的描述,我想了解一下有关heldout的相关详情,并且为什么会因此引入高斯方差?谢谢!In this ...

张乐博士的最大熵模型

Maximum Entropy Modeling Toolkit for Python and C++ Introduction | License | Download | Document | F...

最大熵模型(Maximum Entropy Model)文献阅读指南

最大熵模型(Maximum Entropy Model)是一种机器学习方法,在自然语言处理的许多领域(如词性标注、中文分词、句子边界识别、浅层句法分析及文本分类等)都有比较好的应用效果。张乐博士的最大...

最大熵工具包的使用

最大熵是自然语言处理中经常用到的一种统计方法。网上也有很多最大熵方面的工具包,目前大家用得最多的应该是张乐博士写的最大熵工具包了。该工具包既可以采用命令行形式运行,也可以直接调用接口函数,为大家的研究...
  • chsgsxl
  • chsgsxl
  • 2013年01月29日 13:10
  • 188
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:最大熵工具包的使用
举报原因:
原因补充:

(最多只允许输入30个字)