同样是使用NLTK来实现,NLTK的安装之前博文有说过在此不再赘述。

http://www.cnblogs.com/mansiisnam/p/5301892.html

之前在网上找了很多实现最大熵+LBFGS的资料,也看了大牛自己写代码实现出来的博客。但是本人的基础薄弱难以对大牛的代码进行修改以达到自己的预期,所以就想着使用工具包实现。windows 使用NLTK的MEGAM比较麻烦,博主之前找了很多资料没有实现有兴趣的可以看这个链接(http://www.cnblogs.com/createMoMo/archive/2013/05/15/3079290.html)

博主使用的linux 实现的方法特别简单

只要在你项目中根目录加上megam.opt这个文件,如图

这个文件在官网有下载但是官网给出的是32位的。如果你是64位的则需要通过OCaml 将其编译成64位。然后在代码上添加

nltk.config_megam('./megam.opt')这一句即可。整个程序即可运行。附上32 和64位megam.opt 和data文件下载链接:

megam:http://files.cnblogs.com/files/mansiisnam/MEGAM.zip

上述文件经测试在unbantu 和centos 7.0 64 上可用。

data:http://files.cnblogs.com/files/mansiisnam/data.zip

代码如下:python 2.7

import sys;
import scipy;
import nltk;
from nltk.classify import MaxentClassifier
nltk.config_megam('./megam.opt')
def load_data(filename):for line in open(filename, mode='r'):sample = line.strip().split("\t"); y = sample[0];        reason1={'outlook':sample[1],'temperature':sample[2],'humidity':sample[3],'windy':sample[4]};if(y=='no'):train.append((reason1,'x'));elif(y=='yes'):train.append((reason1,'y')) ;
def print_maxent_test_header():print(' '*11+''.join(['      test[%s]  ' % ifor i in range(len(test))]))print(' '*11+'     p(x)  p(y)'*len(test))print('-'*(11+15*len(test)))
def test_maxent(algorithm):print "%11s" % algorithm , " "try:classifier = MaxentClassifier.train(train, algorithm, trace=0, max_iter=1000) except Exception as e:print('Error: %r' % e)returnfor featureset in test:pdist = classifier.prob_classify(featureset)print "%8.15f" % pdist.prob('x'), "%6.15f" %  pdist.prob('y') , print " "
if __name__ == '__main__' :train=[];load_data('data.txt');test1={'outlook':'sunny','temperature':'hot','humidity':'high','windy':'FALSE'};test2={'outlook':'overcast','temperature':'hot','humidity':'high','windy':'FALSE'};test3={'outlook':'sunny','temperature':'cool','humidity':'high','windy':'TRUE'};test=[];test.append(test1);test.append(test2);test.append(test3);print_maxent_test_header(); test_maxent('GIS');test_maxent('IIS');test_maxent('MEGAM');sys.exit(0);

转载于:https://www.cnblogs.com/mansiisnam/p/5800190.html

最大熵实现(MEGAM)相关推荐

  1. MIT自然语言处理第五讲:最大熵和对数线性模型(第一部分)

    发表于 2009年04月25号 由 52nlp 自然语言处理:最大熵和对数线性模型 Natural Language Processing: Maximum Entropy and Log-linea ...

  2. 统计学习方法-最大熵模型

    最大熵模型(maximum entropy model)是由最大熵原理推导而来的. 一.最大熵原理 最大熵原理认为,学习概率模型的时候,在所有可能的概率模型分布中,熵最大的模型是最好的模型.模型通常要 ...

  3. 马尔科夫、最大熵、条件随机场

    https://www.toutiao.com/a6687531170395062792/ 马尔科夫模型 对于某个系统包含了n个有限状态,某个状态随着时刻推移而转移到另一个状态.如果t时刻状态与前面m ...

  4. 《数学之美》第20章 不要把鸡蛋都放到一个篮子里--谈谈最大熵模型

    1 最大熵原来和最大熵模型 保留全部的不确定性,将风险降到最小. 最大熵原理指出,第一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而应对未知的情况不要做任何主观假设.在这种情况下 ...

  5. 95行代码实现最大熵模型训练

    关于最大熵模型的介绍请看:http://www.cnblogs.com/hexinuaa/p/3353479.html 以下是GIS训练算法的python实现,代码不到100行. from colle ...

  6. matlab 最大熵谱估计,最大熵原理

    最大熵原理 最大熵原理是在1957 年由E.T.Jaynes 提出的,其主要思想是,在只掌握关于未知分布的部分知识时,应该选取符合这些知识但熵值最大的概率分布.因为在这种情况下,符合已知知识的概率分布 ...

  7. 最大熵模型(Maximum Etropy)—— 熵,条件熵,联合熵,相对熵,互信息及其关系,最大熵模型。。...

    引入1:随机变量函数的分布 给定X的概率密度函数为fX(x), 若Y = aX, a是某正实数,求Y得概率密度函数fY(y). 解:令X的累积概率为FX(x), Y的累积概率为FY(y). 则 FY( ...

  8. 统计学习方法笔记(九)-最大熵原理及python实现

    最大熵模型 最大熵模型介绍 最大熵模型原理 代码案例 案例地址 最大熵模型介绍 最大熵模型(maximum entropy model)可以用于二分类,也可以用于多分类.其是由最大熵原理推导实现的,所 ...

  9. 统计学习方法笔记(四)-最大熵模型原理及python实现

    最大熵模型 最大熵模型 最大熵原理 最大熵模型 代码实现 案例地址 最大熵模型 最大熵模型(maximum entropy model)可以用于二分类,也可以用于多分类.其是由最大熵原理推导实现的,所 ...

  10. 利用最大熵进行阈值分割从而实现灰度图像的二值化的原理概要及OpenCV代码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 详细的数学原理目前我也没搞明白,所以只说下原理概 ...

最新文章

  1. python编程在哪里写程序-第一个Python程序——在屏幕上输出文本
  2. php 导出csv 转义 逗号转义,在csv php中转义换行符
  3. 启明云端分享|PX30核心板 怎么烧录
  4. java泛型 例子_关于 Java 泛型的一些有趣的例子
  5. 06.search_shard_api操作
  6. 每日命令之vim简单使用
  7. FreeSWITCH 初步
  8. 解决:log4j警告:WARN Please initialize the log4j system properly
  9. 圆圈头像制作css,通过CSS3实现圆形头像显示
  10. 25句经典语录 带你成长
  11. Python 英文转中文
  12. 1.数学建模比赛前期准备
  13. 站在巨人肩膀上的牛顿:Kubernetes和SAP Kyma
  14. 论简历解析及其步骤(一)步骤及理论
  15. 学习记录573@双重签名与电子交易概述
  16. matlab中break语句,MATLAB break语句
  17. 2019 Gartner 中国超融合厂商竞争格局报告发布,SmartX 在诸多中国厂商中独树一帜...
  18. npm install 报错没有匹配版本:No matching version found for
  19. php基础(7)_运算符
  20. Artery框架增删改查学习

热门文章

  1. 【AI视野·今日Robot 机器人论文速览 第五十五期】Mon, 16 Oct 2023
  2. 景安网络:应时而动,IPv6部署进入快车道
  3. 200G时序行为检测经典数据集THUMOS 2014,文末附下载方式
  4. 使用sqoop将greenplum数据全量导入hive和impala
  5. 使用Vue调取接口,并渲染数据
  6. 技术调研----OpenResty高可用技术初步探索
  7. NXP i.MX6ULL 最新系统移植
  8. 2023年天津中德应用技术大学专升本自动化专业考试大纲
  9. 「津津乐道播客」预告片:也许你对天津有些刻板印象
  10. NVIDIA Jetson Nano安装和使用Anaconda