目前我正在努力与Mallet关于HMM的糟糕文件进行讨论。我已设法将数据导入实例(改编自ImportExample.java片段),我只是想知道它们如何用于训练HMM模型。 我首先创建了一个HMM实例,但我不确定是否要去:
HMM hmm = new HMM(instances.getDataAlphabet(), instances.getTargetAlphabet());
或者两次使用相同的数据字母:
HMM hmm = new HMM(instances.getDataAlphabet(), instances.getDataAlphabet());
当我到达
时hmm.train(instances);
我收到以下错误:
cc.mallet.types.FeatureVector无法强制转换为 cc.mallet.types.FeatureVectorSequence
如果您能提供任何帮助,我将不胜感激。
干杯
答案 0 :(得分:2)
我已设法解决这个特殊问题,并认为对于遇到同样问题的其他人可能会有用。在mallet中的示例包中有一个解决方案:http://hg-iesl.cs.umass.edu/hg/mallet/file/83adf71b0824/src/cc/mallet/examples/TrainHMM.java
主要问题与您通过管道导入数据的方式有关。如果您的数据采用以下格式,我也可以告诉它:
TOKEN TAG
TOKEN TAG
我假设您可以在TOKEN和TAG之间使用功能但不是100%肯定。如果有人知道在mallet中使用HMM的任何好例子和文档,请告诉我。