我目前正在为 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 cannot be cast to cc.mallet.types.FeatureVectorSequence
如果您能提供任何帮助,我将不胜感激。
干杯
最佳答案
我已经设法解决了这个特殊问题,并认为它可能对遇到同样问题的其他人有用。 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 的任何好的示例和文档,请告诉我。
关于java - Mallet HMM 训练问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7955448/