zoukankan      html  css  js  c++  java
  • 最大熵工具包的使用

    最大熵工具包的使用

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

    一、命令行形式使用方法

           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)

    三、最大熵工具包下载

        

      张乐博士的最大熵工具包
     

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

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

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

  • 相关阅读:
    SpringBoot的多环境配置及配置文件位置
    SpringBoot;yaml配置, JSR303校验
    springboot原理探寻,自动装配
    SpringBoot入门:搭建SpringBoot
    Android控件阴影库
    Android开发Utils工具类集合
    Android 实现顶部状态栏的沉浸模式(任意设置状态栏的颜色)
    推荐一个博客代码高亮插件
    H5+Css+js 做App UI 与原生的区别
    Android线程切换简便方法
  • 原文地址:https://www.cnblogs.com/loveyakamoz/p/2301919.html
Copyright © 2011-2022 走看看