public void traineval(Vector vector)
    {
        for(int i = 0; i < maxRound; i++)
        {
            training = true;
            BHypothesis.training = true;
            BHypothesis.MARGIN_RATE = 48D;
            for(int j = 0; j < sample.size(); j++)
            {
                System.err.println((new StringBuilder()).append("Sentence ").append(j).toString());
                curSenID = j;
                BLinTagSample blintagsample = (BLinTagSample)sample.get(j);
                Vector vector1 = new Vector();
                Vector vector2 = new Vector();
                int k = 0;
                int l = -1;
                int i1 = 0;
                initCands(vector2, blintagsample);
                do
                {
                    if(vector2.size() <= 0)
                        break;
                    inner++;
                    if(k == l)
                    {
                        if(++i1 >= 50)
                            break;
                    } else
                    {
                        l = k;
                        i1 = 0;
                    }
                    BLinIsland blinisland = selectCand(vector2);
                    boolean flag = checkCand(blinisland);
                    if(flag)
                    {
                        applyCand(vector1, vector2, blinisland, blintagsample);
                        k++;
                    } else
                    {
                        vector2.clear();
                        if(vector1.size() == 0)
                            initCands(vector2, blintagsample);
                        else
                            genAllCands(vector2, vector1, blintagsample);
                    }
                } while(true);
                if(k < blintagsample.words.length)
                    System.err.println((new StringBuilder()).append("LOOP: ").append(j).toString());
            }

            training = false;
            BHypothesis.training = false;
            SFeatLib sfeatlib = feat;
            SFeatLib sfeatlib1 = new SFeatLib(feat);
            sfeatlib1.useVotedFeat(inner);
            BLinTagLearn blintaglearn = new BLinTagLearn(proj, vector, sfeatlib1);
            blintaglearn.evaluate();
            feat = sfeatlib;
        }

    }