0

我同时更新了两个 weka 分类器。

这是我更新第一个分类器的方式:

 List(X, Y, action).zipWithIndex.foreach{
   case (attrString:String, index)=> attrs.elementAt(index) match{
     case attr:Attribute => instance.setValue(attr,attrString)
   }         
 }

这是我更新第二个分类器的方式:

 List(X, name, Y).zipWithIndex.foreach{
   case (attrString:String, index) => tagattrs.elementAt(index) match{
     case attr:Attribute => {
       println("Setting taginstance's "+index+"th field to "+attrString)
       taginstance.setValue(attr, attrString)
     }
   }
 }

你会注意到唯一的区别(除了我的调试语句)是 /instance/ 应该有属性 /X, Y, action/,而 /taginstance/ 应该有属性 /X, name, Y/

然后: println(instance) println(taginstance)

不幸的是,这就是这两个函数的输出:

Setting taginstance's 0th field to DT
Setting taginstance's 1th field to warm
Setting taginstance's 2th field to JJ
DT,JJ,SHIFT
DT,JJ,?

前三行表明它应该设置正确的值,但如果是这种情况,那么最后一行将显示为 DT、warm、JJ。

有没有搞错!

4

1 回答 1

0

@Rehj 的评论让我调试了这个问题。不幸的是,我与实例关联的属性集错误。更改attrstagattrs以下解决了我的问题。我的错!

 val tagdata = new Instances("Actions",tagattrs,10)
于 2013-04-09T17:13:38.260 回答