最大熵模型广泛应用于自然语言处理领域(如分词、词性标注、语义角色标注),常用的最大熵模型工具包有:
1、张乐博士的Maximum Entropy Modeling Toolkit for Python and C++
2、NLTK工具包中的nltk.classify.maxent
3、Scipy包中的scipy.maxentropy
本代码原始作者为fuqingchuan ,博主对原始代码进行了一些修改,代码只是为了便于理解最大熵模型和GIS(Generalized Iterative Scaling)算法,对实现效率没有太多考虑。
主要改进如下:
1、修复计算模型期望的bug
2、去掉经验概率为1/N(N为训练样本数)的假设,通过计数计算经验概率
参考:
最大熵模型原理参考:《统计学习方法》第六章 逻辑斯谛回归与最大熵模型
代码实现参考博文:《揭开机器学习的面纱:最大熵模型100行代码实现[Python版]》
代码中计算部分的主要参考公式如下: