ClassesGramaticais.java 3.26 KB

import java.util.StringTokenizer;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author derzu
 */
public class ClassesGramaticais {

    public static final int UNKNOWN    = 0x00;
    public static final int ADJETIVO   = 0x01;
    public static final int ADVERBIO   = 0x02;
    public static final int ARTIGO     = 0x04;
    public static final int CONJUNCAO  = 0x08;
    public static final int INTERJEICAO= 0x10;
    public static final int NUMERAL    = 0x20;
    public static final int PREPOSICAO = 0x40;
    public static final int PRONOME    = 0x80;
    public static final int VERBO      = 0x100;
    public static final int SUBSTANTIVO= 0x200;
    public static final int PONTUACAO  = 0x400;


    public static String getClassesGramaticaisStr(int tipo) {
            String classes = "";

            if ((tipo & ADJETIVO)==ADJETIVO)       classes+= "adj, ";
            if ((tipo & ADVERBIO)==ADVERBIO)       classes+= "adv, ";
            if ((tipo & ARTIGO)==ARTIGO)           classes+= "art, ";
            if ((tipo & CONJUNCAO)==CONJUNCAO)     classes+= "con, ";
            if ((tipo & INTERJEICAO)==INTERJEICAO) classes+= "int, ";
            if ((tipo & NUMERAL)==NUMERAL)         classes+= "num, ";
            if ((tipo & PREPOSICAO)==PREPOSICAO)   classes+= "pre, ";
            if ((tipo & PRONOME)==PRONOME)         classes+= "pro, ";
            if ((tipo & VERBO)==VERBO)             classes+= "ver, ";
            if ((tipo & SUBSTANTIVO)==SUBSTANTIVO) classes+= "sub, ";
            if ((tipo & PONTUACAO)==PONTUACAO  )   classes+= "pon, ";
            if (classes.length()==0)
        	classes+= "unk";
            else // apaga o espaco do final
                classes = classes.substring(0, classes.length()-2);

            return classes;
    }




    
    public static int getQuantClasses(int tipo) {
            int quant = 0;
            int mask = 0x01;

            for (int i=0 ; i<16 ; i++) {
                if ((tipo & mask)==mask) quant++;
                mask = mask<<1;
            }

            return quant;
    }










    public static int getClasseGramaticalInt(String classe) {
            if (classe.compareTo("adj")==0) return ADJETIVO;
            if (classe.compareTo("adv")==0) return ADVERBIO;
            if (classe.compareTo("art")==0) return ARTIGO;
            if (classe.compareTo("con")==0) return CONJUNCAO;
            if (classe.compareTo("int")==0) return INTERJEICAO;
            if (classe.compareTo("num")==0) return NUMERAL;
            if (classe.compareTo("pre")==0) return PREPOSICAO;
            if (classe.compareTo("pro")==0) return PRONOME;
            if (classe.compareTo("ver")==0) return VERBO;
            if (classe.compareTo("sub")==0) return SUBSTANTIVO;
            if (classe.compareTo("pon")==0) return PONTUACAO;
            if (classe.compareTo("unk")==0) return UNKNOWN;

            return UNKNOWN;
    }


    public static int getClassesGramaticaisInt(String classes) {
        int classesInt = UNKNOWN;
        String token;

        StringTokenizer stk = new StringTokenizer(classes, "[], ");

        while (stk.hasMoreTokens()) {
            token = stk.nextToken();
            classesInt |= getClasseGramaticalInt(token);
        }

        return classesInt;
    }
}