数据集介绍
最近初学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)的概率 )