¡Esta es una revisión vieja del documento!
Tabla de Contenidos
siette.util.corpus.Dictionary
La clase Dictionary
implementa una lista de términos a los que se acsocia una serie de atributos. Los términos son secuencias de caracteres que terminan con el caracters :
(dos puntos). Los atributos son cadenas de caracteres separados por algun caracter especial (en general espacio en blanco, tabulador o coma). Cada línea corresponde a un término. Los términos pueden repetirse.
Cosntructores
public Dictionary(String sURL, String separator) public Dictionary(String sURL) public Dictionary() public Dictionary clone() public void setDictionary(String sURL, String separator) public void setDictionary(String sURL)
Inicialmente para construir el objeto de la clase Dictionary
hay que inidcar el fichero que contiene el diccionario y especificar el separador o separadores mediante una cadena de caracteres. Si no se especifica se usa como separador DEFAULT_SEPARATOR
cuyo valor es: \t,
, es decir, espacio en blanco, tabulador, o coma.
Tambien es posible crear el diccionario en blanco e inicializarlo posteriormente con el método setDictionary
, o bien crearlo como copia de otro diccionario mediante el método clone()
Modo exclusivo
public void setExclusive() public void setNotExclusive()
Los diccionarios tienen dos modos de funcionamiento, exclsivo y no exclusivo. El modo exclusivo que es el que se usa por defecto elimina del diccionario cada termino que se haya seleccioando previamente, de manera que no se pueda seleccionar dos veces el mismo elemento. El modo no exclusivo si lo permite.
selectDictionary
public Dictionary selectDictionary(String[] attPos, int modePos, String[] attNeg, int modeNeg) public Dictionary selectDictionary(String[] attPos, String[] attNeg ) public Dictionary selectDictionary(String[] att, int mode) public Dictionary selectDictionary(String[] att) public Dictionary selectDictionary(String att) public Dictionary selectDictionary()
El conjunto de métodos selectDictionary
devuelve un diccionario que solo contiene algunos de los términos del diccionario original, y que todos ellos cumplen con la siguiente condicion:
attPos
es un array de atributos (cadenas de caracteres) que pueden tener los términos.
modePos
es una variable que puede tomar dos valores constantes Dictionary.ALL
y Dictionary.ANY
. El primer caso indica que los atributos listados en attPos
deben estar todos asociados al término ue se busca. En el segundo caso, basta con que el término cobtenga alguno de ellos.
attNeg
al igual que attPos
es un array de atributos.
modeNeg
al igaul que modePos
es una variable que puede tomar dos valores constantes Dictionary.ALL
y Dictionary.ANY
. El sign ificado es diferente, en el caso de modeNeg
el valor Dictionary.ALL
implica que el término no contenga todos los atributos listados en attNeg
, y el valor Dictionary.ANY
indica que el término no debe contener ninguno de los atributos listados en attNeg
. Un ejemplo clarifica mejor el funcionamiento de este método:
Dictionary d = new Dictionary(...); String[] talla = {"38","39","40"} String[] color = {"rojo","azul"}; Dictionary d2 = selectDictionary(talla, Dictionary.ANY, color, Dictionary.ANY);
Suponiendo que el diccionario lista un conjunto de prendas de vestir, la selección se realiza entre aquellas que sean o bien de la talla 38
, 39
o 40
, pero que no sean ni de color rojo
, ni de color azul
.
Dictionary d3 = selectDictionary(color, Dictionary.ALL, talla, Dictionary.ANY);
En este caso, el diccionario selecciona prendas que mezclen los colores rojo y azul, pero no sean de la talla 38
,39
, ni 40
.
Raramente la seleccion se hara en un solo paso con una consulta complicada. Lo mas usual es que las consultas sean simples, y que en muchos casos no haya que especificar mas que alguno de los argumentos de la función. Para ello se han creado métodos que utilizan valores por defecto y llaman al método principal, que son estos:
modePos
, valor por defecto ALL
attNeg
, valor por defecto new String{}
modeNeg
, valor por defecto ANY
Si se llama al metodo sin atributos, se devuelve una copia del objeto.
El siguiente método selecciona prendas de la talla 38
que mezclen el color rojo
, y azul
Dictionary d4 = selectDictionary(new String[] {"38","rojo","azul"});
selectSet
public Set<String> selectSet(String[] attPos, int modePos, String[] attNeg, int modeNeg) public Set<String> selectSet(String[] attPos, String[] attNeg ) public Set<String> selectSet(String[] att, int mode) public Set<String> selectSet(String[] att) public Set<String> selectSet(String att) public Set<String> selectSet()
Este conjunto de métodos es igual al anterior conjunto selectDictionary
solo que esta vez se devuelve como resultado un conjunto de cadenas de caracteres correspondiente a los términos del diccionario.
selectAll
public String[] selectAll(String[] attPos, int modePos, String[] attNeg, int modeNeg) public String[] selectAll(String[] attPos, String[] attNeg ) public String[] selectAll(String[] att, int mode) public String[] selectAll(String[] att) public String[] selectAll(String att) public String[] selectAll()
Igual que el anterior pero devuelve un array de cadenas de caracteres.
select
public String select(String[] attPos, String[] attNeg ) public String select(String[] att) public String select(String att) public String select()
Es una aplicación simplificada del método anterior, una ve seleccionados los términos que contienen todos los atributos attPos
, y ninguno de los attNeg
, en vez de devolver todos los valores, se selecciona uno de ellos al azar.
getAttributes
public String[] getAttributes(String termino, String[] atts) public String[] getAttributes(String termino)
Estas funciones devuelven todos los atributos asociados a un término
. Si se usa el atts
, solo se devuelven los atributos que esten incluidos en esta lista, es decir la interseccion entre los atributos asociados al término y los atributos de la lista atts
.
public Set getAttributesSet(String text, Set<String> atts) public Set getAttributesSet(String text)
Igual que la anterior pero con conjuntos.
public Map<String,String> getAttributesMap(String text)
Igual que las anteriores pero en este caso se devuelve un Map
en donde la clave es el termino y el valor una cadena de caracteres que contiene todos los atributos.
public String getAttributeValue(String text, String attribute)
Devuelev todos los atr