ClassesGramaticais.java
3.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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;
}
}