5

目前,我正在为 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

如果您能提供任何帮助,我将不胜感激。

干杯

4

1 回答 1

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% 确定。如果有人知道有关在槌中使用 HMM 的任何好的示例和文档,请告诉我。

于 2011-11-03T09:48:06.773 回答