“纸上得来终觉浅,绝知此事要躬行”,在继续翻译《HMM学习最佳范例》之前,这里先补充几个不同程序语言实现的HMM版本,主要参考了维基百科。读者有兴趣的话可以研究一下代码,这样对于HMM的学习会深刻很多!
C语言版:
1、 HTK(Hidden Markov Model Toolkit):
HTK是英国剑桥大学开发的一套基于C语言的隐马尔科夫模型工具箱,主要应用于语音识别、语音合成的研究,也被用在其他领域,如字符识别和DNA排序等。HTK是重量级的HMM版本。
HTK主页:http://htk.eng.cam.ac.uk/
2、 GHMM Library:
The General Hidden Markov Model library (GHMM) is a freely available LGPL-ed C library implementing efficient data structures and algorithms for basic and extended HMMs.
GHMM主页:http://www.ghmm.org/
3、 UMDHMM(Hidden Markov Model Toolkit):
Hidden Markov Model (HMM) Software: Implementation of Forward-Backward, Viterbi, and Baum-Welch algorithms.
这款属于轻量级的HMM版本。
UMDHMM主页:http://www.kanungo.com/software/software.html
Java版:
4、 Jahmm Java Library (general-purpose Java library):
Jahmm (pronounced "jam"), is a Java implementation of Hidden Markov Model (HMM) related algorithms. It's been designed to be easy to use (e.g. simple things are simple to program) and general purpose.
Jahmm主页:http://code.google.com/p/jahmm/
Malab版:
5、 Hidden Markov Model (HMM) Toolbox for Matlab:
This toolbox supports inference and learning for HMMs with discrete outputs (dhmm's), Gaussian outputs (ghmm's), or mixtures of Gaussians output (mhmm's).
Matlab-HMM主页:http://www.cs.ubc.ca/~murphyk/Software/HMM/hmm.html
Common Lisp版:
6、CL-HMM Library (HMM Library for Common Lisp):
Simple Hidden Markov Model library for ANSI Common Lisp. Main structures and basic algorithms implemented. Performance speed comparable to C code. It's licensed under LGPL.
CL-HMM主页:http://www.ashrentum.net/jmcejuela/programs/cl-hmm/
Haskell版:
7、The hmm package (A Haskell library for working with Hidden Markov Models):
A simple library for working with Hidden Markov Models. Should be usable even by people who are not familiar with HMMs. Includes implementations of Viterbi's algorithm and the forward algorithm.
Haskell-HMM主页:http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hmm
注:Haskell是一种纯函数式编程语言,它的命名源自美国数学家Haskell Brooks Curry,他在数学逻辑方面上的工作使得函数式编程语言有了广泛的基础。
是否还有C++版、Perl版或者Python版呢?欢迎补充!
注:原创文章,转载请注明出处“我爱自然语言处理”:www.52nlp.cn
本文链接地址:https://www.52nlp.cn/several-different-programming-language-version-of-hmm
This is the Python version of HMM. Please visit it and get the information you need.
[回复]
admin 回复:
7 6 月, 2009 at 21:28
Thank you so much!
[回复]
admin 回复:
7 6 月, 2009 at 21:32
Python 版的HMM可在如下地址获取:
http://www.biocomp.unibo.it/piero/PHMM/
谢谢lyg提供信息!
[回复]
博主你好,关注你的博客有一段时间了。可以再wikipedia上找到很多对Viterbi的实现:
http://en.wikipedia.org/wiki/Viterbi_algorithm
[回复]
admin 回复:
29 6 月, 2009 at 14:48
非常感谢,好像是崔师兄吧,呵呵!
[回复]
C++版的HMM可在如下地址获取:
http://www.cs.ualberta.ca/~lindek/hmm.htm
[回复]
水林 回复:
12 10 月, 2010 at 22:23
请问有人编译了这个C++版的吗 我弄了但是isinf这个函数不存在 不知有人知道吗?
[回复]
wanxue 回复:
27 4 月, 2014 at 15:20
用gcc编译
[回复]
late post:
For Delphi,C++:
http://www.shokhirev.com/nikolai/abc/alg/hmm/hmm.html
[回复]
52nlp 回复:
9 4 月, 2010 at 07:17
Thanks a lot!
[回复]
孔明 回复:
11 7 月, 2011 at 09:42
这个页面没有说怎么用啊!只有源代码。
[回复]
谢谢,正在研究中。。。
[回复]
不客气,欢迎写个研究心得!
[回复]
http://julius.sourceforge.jp/en_index.php
这个很不错
[回复]
52nlp 回复:
21 8 月, 2010 at 16:44
谢谢!
[回复]
请问有人编译了Dekang Lin的C++版的吗 我弄了但是isinf这个函数不存在 不知有人知道吗
[回复]
52nlp 回复:
13 10 月, 2010 at 23:44
我没有编译过,查了一下,不知你是否是在windows下进行的编译?如果是的话,可能需要在Linux下利用gcc/g++了,下面这个似乎遇到了相似的问题:
http://yourlei.blog.sohu.com/69878075.html
[回复]
水林 回复:
14 10 月, 2010 at 00:03
谢谢。刚接触到这些,通过博主的文章学到了很多,努力学习中!
[回复]
文章如何转载啊?
[回复]
52nlp 回复:
27 12 月, 2011 at 23:43
转载都不会吗?ctrl+a, ctrl+c, 不过保留出处。
[回复]
ciwei020621 回复:
28 12 月, 2011 at 14:14
大哥,我要的是转载,不是复制,谢谢!
[回复]
52nlp 回复:
29 12 月, 2011 at 13:55
其实我仅是举个例子,不过真不知道你要的是怎么样的转载,呵呵。
52nlp 回复:
29 12 月, 2011 at 13:55
很多人转载都不告我的~
有没有C#版的呢?
[回复]
52nlp 回复:
24 5 月, 2012 at 22:50
Google了一些,貌似还没有合适的。
[回复]
您好,感谢您分享的这些资料,不知您知道哪个的适用于连续HMM 的代码比较好吗?
[回复]
52nlp 回复:
26 5 月, 2012 at 00:17
不太清楚,抱歉。
[回复]
UMDHMM 调试通过,但不适用于连续HMM。关于连续HMM里用到的混合高斯模型能不能讲一下。
[回复]
52nlp 回复:
26 5 月, 2012 at 00:17
这一块儿不是很熟悉,抱歉。
[回复]
谁在使用连续HMM或者第一个HTK程序,加我QQ609518232,大家互相交流下连续HMM。
[回复]
博主你好,我下载了matlab版的HMM toolbox,但是运行的时候报错了。不知道是什么情况?
未定义与 'double' 类型的输入参数相对应的函数 'gmm'。
出错 mixgauss_init (line 30)
mix = gmm(d, M, cov_type);
[回复]
52nlp 回复:
31 8 月, 2014 at 19:02
抱歉,没用用过Matlab版本
[回复]
匆匆 回复:
1 9 月, 2014 at 16:43
我也是初学,因为做的科研里面要用到这个算法……不管怎么样还是非常感谢博主的贡献~
[回复]
匆匆 回复:
1 9 月, 2014 at 16:53
今天又试了一下,是我没按照指导来做…………应该要先把全部四个文件夹都添加到matlab的路径中,已测试可运行。
Cassandra 回复:
2 3 月, 2016 at 16:37
您好,我在使用MATLAB工具包中HMMs with mixture of Gaussians outputs部分时候,总是报错,说没有定义cov_type,您遇到过这个情况么?
马泽 回复:
1 5 月, 2015 at 17:14
您好,我刚开始学习HMM,能不能留个联系方式交流一下。
[回复]
您好,请问二阶以上的马尔可夫模型可以用已有的工具箱实现吗?
[回复]
52nlp 回复:
13 7 月, 2017 at 18:08
抱歉,不清楚
[回复]