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; } }