最大熵工具包的使用

最大熵是天然語言處理中常常用到的一種統計方 法。網上也有不少最大熵方面的工具包,目前你們用得最多的應該是張樂博士寫的最大熵工具包了。該工具包既能夠採用命令行形式運行,也能夠直接調用接口函 數,爲你們的研究工做帶來了很大的方便。可是,對於剛接觸到該工具包的人來講,使用起來仍是有些麻煩的。html

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。htm

       準備好特徵文件以後,能夠採用命令進行訓練:接口

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

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

則你將會獲得一個名字爲Modelname的最大熵模型。string

       測試過程,首先也是利用一樣的特徵模板抽取特徵構成特徵文件test.txt做爲系統輸入,而後測試的命令爲:

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

    將輸出對每一個事件的預測結果

或者採用命令:

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

將輸出詳細的機率信息

 

2、調用函數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)

 

3、最大熵工具包下載

    

  張樂博士的最大熵工具包

相關文章
相關標籤/搜索