R语言实现viterbi算法
来源:互联网 发布:主人属下知错认罚规矩 编辑:程序博客网 时间:2024/04/30 17:41
数据集介绍
最近初学HMM(Hidden Markov Model),老师让我自己试着用Java去实现viterbi算法,结果试了一下,发现数据的输入太麻烦,因为数据集是一些各种字符串和标点符号的矩阵吧,然后才开始学习R语言的, 首先先看看数据集。
http://www.clips.uantwerpen.be/conll2000/chunking/
数据集是从上面这个网站下载的,有一个train.txt还有一个test.txt。
格式大概如下:
He PRP B-NP reckons VBZ B-VP the DT B-NP current JJ I-NP account NN I-NP deficit NN I-NP will MD B-VP narrow VB I-VP to TO B-PP only RB B-NP # # I-NP 1.8 CD I-NP billion CD I-NP in IN B-PP September NNP B-NP . . O
这是一整句话的数据。 第一列我们称为symbol或者是word,第二列称为tag或者是标签(tag又称作状态state),第三列在这个算法中没用到,所以先不提及。
然后首先要知道viterbi算法的输入和输出,
算法输入输出
Input:
tp: transition probability matrix (不同tag之间的转移概率矩阵, tp[i,j]表示从第i个标签,下一个单词的标签是第j个标签的概率 )
ep: emission probability matrix (表示tag和word之间的发射概率矩阵,ep[v,k]表示第v个标签下,这个标签会输出第k个单词(word/symbol)的概率 )
startp: start state probability vector (表示某个tag作为一句话开头的概率, starp[i]表示第i个tag作为句子sequence开头的概率)
test: the observation sequence need to be tagged (test 就是输入进去的一句话,是向量形式输入)
Output:
outp: it’s also a probability matrix, each row denotes each word(i.e. symbol) of thetest sequence and the column contains all the tags.(43 tags in all)
Each element(outp[i,j]) in this matrix denotes the probability of the ithword would be tagged in the jth tag.
(我这里定义的输出可能和其他人的viterbi算法输出不太一样,这个输出了之后还要做一些后续的处理,这里的outp是一个矩阵,行是代表输入的test的每一个单词,列是代表每一个tag,然后outp[i,j]就表示第i个单词用第j个标签进行tag的概率,所以最后只需要再做一步统计每一行中最大的那一列就是这一行的那个单词的tag)
算法输入参数预测和计算
熟悉可以跳过下面这三个代码段,因为下面我要首先计算出 tp,ep,startp这三个矩阵里面的数值,首先是计算转移概率矩阵。
Viterbi算法
结尾
- R语言实现viterbi算法
- viterbi算法实现
- Viterbi 算法应用实现
- R语言实现神经网络算法
- PageRank算法R语言实现
- R语言实现KNN 算法
- R语言实现常用算法
- R语言实现决策树算法
- viterbi 算法
- Viterbi 算法
- viterbi算法
- viterbi算法
- Viterbi算法
- viterbi算法linux下C++实现
- HMM的Viterbi算法C#实现
- hmm------java代码实现的viterbi算法
- Bagging算法的R语言实现
- Bagging算法的R语言实现
- OpenCV中矩阵类详解之三:CvMat,Mat和IplImage之间的转化和拷贝
- Mysql中文乱码解决思路和过程
- 解决Android程序退出后不显示在近期任务里
- animate()的常用options
- CGD 异步加载图片
- R语言实现viterbi算法
- easyui--easyui的快速入门
- 个人历程开始
- Kconfig,.config,Makefile之间的关系(转载)
- 广义加法模型R语言示例
- magento配置主从数据库,以及mysql 主从服务器配置详细
- android-eclipse 调式初谈
- 有用的函数-验证函数
- 36计教您如何提高PHP代码质量(一) 转自csdn