Herramientas de usuario

Herramientas del sitio


es:manual:items:generativos:siette.util.corpus.dictionary

¡Esta es una revisión vieja del documento!


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.

public boolean excludes(String termino)

Excluye un termino del diccionario, es decir, hace que de ahí en adelante este término no se seleccione.

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.

toPattern

public static String cap(String st)

Pone en mayúsculas la primera letra de una cadedena de caracteres st.

public static String toPattern(String in, boolean escape, int patternAlign)
public static String toPattern(String in, boolean escape)
public static String toPattern(String in)

El proposito de estas funciones es construir un patrón Siette a partir de una cadena de entrada in. Al construir un patrón Siette algunos caractres son caracteres especiales que no pueden usarse directamente en las expresiones, si no se especifica otra cosa, estos caracteres simplemente se eliminan.

 out.println(Dictionary.toPattern("Miguel (de) Cervantes"));

produce la salida

 Miguel de Ceravntes

Otra opciones, es construir el patrón de manera que conserve los caracteres especiales, para lo cual hay que precederlo del caracter deescape

 out.println(Dictionary.toPattern("Miguel (de) Cervantes"),true);

produce la salida

 Miguel \(de\) Ceravntes

que es un patrón Siette valido. Finalmente tambien se puede construir un patrón Siette de manera que parte del texto sea opcional a derecha o izquierda, por ejemplo:

 out.println(Dictionary.toPattern("Miguel de Cervantes"),false, Dictionary.LEFT);

produce en la salida el patrón Siette:

 {{Miguel} de} Cervantes

o bien

 out.println(Dictionary.toPattern("Aguila culebrera blanca"),false, Dictionary.RIGHT);

produce en la salida el patrón Siette:

 Aguila{ culebrera{ blanca}}

El primer patrón daria como buena una respuesta que dijera simplemente Cervantes y el segundo una respuesta que dijera simplemente Aguila. Dependiendo de la aplicación unas veces es mas conveniente un patrón que otro.

toText

public static String toText(String[] aString, int mode, String lang)
public static String toText(Set set, int mode, String lang)
public static String toTextAll(String[] aString, String lang)
public static String toTextAll(Set set, String lang) 
public static String toTextAll(String s, String lang)
public static String toTextAny(String[] aString, String lang)
public static String toTextAny(Set set, String lang)
public static String toTextAny(String s, String lang)

Los métodos toText son similares a los métodos toPattern solo que en vez de crear un patrón Siette, forman una frase en lenguaje natural. Estan pensados para trabajar con una lista de atributos y generar textos que pueden usarse en las rpeguntas de respuesta corta como ejemplos de respuestas correctas, o en la seccion de ayuda. Por ejemplo,

   toText(new String[] {"rojo","azul","blanco"}, Dictionary.ALL, "es")

devuelve la cadena de caracteres:

   "rojo, azul, y blanco" 

Los métodos 'toTextAll' y toTextAny, utilizan un modo por defecto, por ejemplo

   toTextAll(new String[] {"red","blue","white"}, "en")

devuelve la cadena:

   "red, blue and white"

Métodos auxiliares

public static String cap(String st)

Pone en mayúsculas la primera letra de una cadedena de caracteres st.

public static String[] union(String[] att1, String[] att2)
public static String[] intersection(String[] att1, String[] att2)
public static String[] remove(String[] att1, String[] att2)
public static String[] remove(String[] att1, String att2)

Implementan operaciones de conjuntos con arrays de caracteres. Estan pensadas para manejar conjuntos de atributos. El método union devuelve un array con la unión de los dos argumentos att1 y att2; el método interseccion devuelve los elementos comunes entre ambos; y remove elimina del conjunto att1 los elementos de att2.

public static URL getURL(String sURL)

Devuelve la URL del archivo, para ello sustituye la cadena que se le pasa como argumento sURL por una cadena formada por la ruta absoluta, teniendo en cuenta el directorio de la asignatura.

es/manual/items/generativos/siette.util.corpus.dictionary.1622039941.txt.gz · Última modificación: 2021/05/26 14:39 por root

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki