0

2 つの weka 分類子を同時に更新しています。

最初の分類子を更新する方法は次のとおりです。

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

2番目の分類子を更新する方法は次のとおりです。

 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(インスタンス) println(タギンインスタンス)

残念ながら、これはこれら 2 つの関数によって出力されるものです。

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,?

最初の 3 行は、正しい値を設定する必要があることを示していますが、この場合、最後の行は DT、warm、JJ と表示されます。

なんてこった!

4

1 に答える 1

0

@Rehj のコメントは、問題のデバッグにつながりました。残念ながら、インスタンスに関連付けられた属性のセットが間違っていました。次のように変更attrsするtagattrsと、問題が解決しました。悪い!

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