code: public void update(int[] goldIndex, int[] predictIndex)
      {
          for (int i = 0; i < goldIndex.length; ++i)
          {
              if (goldIndex[i] == predictIndex[i])
                  continue;
              else // 预测与答案不一致
              {
                  parameter[goldIndex[i]]++; // 奖励正确的特征函数（将它的权值加一）
                  if (predictIndex[i] >= 0 && predictIndex[i] < parameter.length)
                      parameter[predictIndex[i]]--; // 惩罚招致错误的特征函数（将它的权值减一）
                  else
                  {
                      throw new IllegalArgumentException("更新参数时传入了非法的下标");
                  }
              }
          }
      }
docs: 根据答案和预测更新参数
  
  @param goldIndex    答案的特征函数（非压缩形式）
  @param predictIndex 预测的特征函数（非压缩形式）