Re: tutorial findString

"stbval" <[email protected]>
Newsgroups gmane.education.small-land
Message-ID <[email protected]>
Respecto al "un morfo analizador lexicográfico  dirigido por tabla 
de mosaicos" de Manuel 
me parece muy interesante porque contriburía a cubrir cierta laguna 
en Squeak para crear aplicaciones sobre lenguaje natural, lo que 
podría satisfacer a muchos docentes que imparten asiganturas 'de 
letras'. 
Respecto al buscador de cadenas de texto de Diego
creo que 'match' parece el que más opciones tiene. Lo ideal sería 
que puieran buscarse palabras y expresiones de forma combinada sin 
recurrir a anidar cajas de pruebas (a partir de cierto número de 
anidamientos uno se pierde :)). No se si estoy abusando, pero estoy 
pensando en listas (ordenadas o no). Si el texto contiene [Platón, 
ética, justicia, idea, dualismo], quiero asociar un comentario de 
texto. Si el texto contiene [Platón, política, justicia social, 
idea, dialéctica], quiero asociar otro comentario.
Es una manera de conectar Squeak con redes semánticas y el 
conocimiento que ellas generan. He experimentado con ellas a través 
de los mapas conceptuales en clase con los alumnos. El resultado ha 
sido muy satisfactorio. Lo que busco es dinamizar estas redes 
mediante Squeak.
Saludos, Esteban 
--- In [email protected], Manuel Blanc <squeak@n...> wrote:
> 
> On 15 Aug 2004, at 5:26 PM, Diego Gomez Deck wrote:
> 
> [Esteban escribió:]
> >> De todas las interesantes respuestas que he leído, me gusta
> >> especialmente ésta:
> >>
> >> --- Diego Gomez Deck wrote:
> >>>
> >>> ¿Qué es lo que hace falta que el Squeak haga?
> >>>
> >> Llevo muy poco tiempo con Squeak y me gusta. Sin embargo, se 
nota muy
> >> orientado a problemas de 'tipo ingeniero'. La mayoría de los 
guiones
> >> prediseñados son 'avanza', 'rota', 'multiplica', etc. Pero creo 
que
> >> hay mucha gente interesada en aplicaciones sobre lenguaje 
natural. En
> >> concreto, mi carta a los reyes magos, consistiría en lo 
siguiente:
> >>
> >> 1.Un guión en la categoría texto para buscar una cadena de 
caracteres
> >> en un texto.
> >
> >  Esto es bastante fácil de hacer.  Lo que me gustaría, antes de 
> > hacerlo, es que hagamos una pequeña carta a los reyes de que 
tipo de 
> > procesamiento de cadenas necesitamos (además, claro, del 
findString).
> >
> >  Una primera lista que puede servir como inicio para la 
discusión 
> > puede ser:
> >
> >  - contains (contiene): si el texto contiene otro texto.
> >
> >  - containsWord: (buscar palabra) que buscaría Platón y no daría 
> > verdadero cuando esté la palabra "Platona".
> >
> >  - startsWith (empieza con)
> >
> >  - endsWith (termina con)
> >
> >  - asUpperCase (como mayúsculas): devuelve una cadena pero con 
todos 
> > los caracteres en mayúsculas.  Esto es útil para usar en 
combinación 
> > con las opciones de búsqueda, para que se encuentre con 
cualquier 
> > combinación de mayúsculas minúsculas. Ejemplo:
> >
> >   texto asUpperCase startsWith: 'HABÍA UNA VEZ'
> >
> >  En ese ejemplo, cualquier cadena que comience con 'había una 
vez' o 
> > 'HaBÍa uNa Vez' o 'HABÍA UNA VEZ' daría "verdadero".
> >
> >  - asLowerCase (como minúsculas): idem al anterior, pero al 
revés.
> >
> >  La otra opción, para evitar que tener que concatenar 2 
opciones, es 
> > duplicar las funciones de búsqueda y hacerlas todas duplicadas 
(una 
> > que busque respetando mayúsculas/minúsculas y la otra que ignore 
esas 
> > diferencias). Ejm:  endsWith y endsWithIgnoringCase, 
containsWord y 
> > containsWordIgnoringCase, etc.
> >
> >  - match (coincide): Esta función permitiría comparaciones con 
> > caracteres 'comodín' (como el * del viejo DOS).  Ejemplos de uso:
> >
> >   '*pepe*'     match: 'pepe'             --> verdadero
> >    '*pepe*'     match: 'pepa'             --> false
> >    '*pepe*'     match: 'xxx pepe yyy'     --> verdadero
> >    'pepe*'      match: 'xxx pepe'         --> false
> >    'pepe*pepa'  match: 'pepe ama a pepa'  --> verdadero
> >
> >  Esta última es interesante porque incluye a varias de las 
anteriores, 
> > ejemplo:
> >
> >    'pepe*'  match: algo   >>equivale a>>  algo 
startsWidth: 'pepe'.
> >     '*pepe'  match: algo   >>equivale a>>  algo 
endsWidth: 'pepe'.
> >     '*pepe*' match: algo   >>equivale a>>  algo contains: 'pepe'.
> >
> >  Comentarios?
> >
> >
> > Obsérvese que findString da positivo cuando encuentra
> > 'Platón' y cuando encuentra 'Platona', lo que ¿quizás? es fácil 
de
> > mejorar.
> >
> 
>   Yo creo que con match: bastaría si se hiciera de la siguiente 
forma:
> 	- Si no hay asteriscos presentes entonces funcionaría como 
> containsWord:
> 	- con asteriscos a ambos lados funcionaría como contains:
> 	- con asterisco al principio o al final funcionaria como 
endsWith: y 
> startsWith: respectivamente.
> 
> Para hacer un "match" exacto eToys ya proporciona el metodo = 
(cosa que 
> esteban ya había descubierto)
> 
>   Con respecto a las mayusculas y minusculas, yo sugiero que se 
distinga 
> siempre entre ellas.
> 
> [Nota técnica: si se necesitan ampliaciones en el futuro siempre 
se 
> pueden conseguir mejorando el lenguage de expresiones regulares 
(ej 
> '[Pp]ep[ea]' match: algo,  reconoceria 'pepe', 'pepa', 'Pepe' 
y 'Pepa', 
> pero no 'pepi') en vez de añadiendo más métodos "asustantes" a 
eToys]
> 
> 
> >> 2.Más efectos lógicos: me explico. Una "prueba" en un guión
> >> corresponde a lo que en lenguaje natural llamamos un 
condicional:
> >>
> >> si encuentra la palabra clave 'Platón' muestra en la salida el 
texto
> >> correspondiente
> >>
> >> Sin embargo, ¿hay una forma tan eficiente para activar un evento
> >> cuando ocurra una conjunción de objetivos, por ejemplo, 
encuentre
> >> "Platón" y "ética" ?
> >
> >  Esto lo podés hacer hoy, anidando cajas de prueba. 
> >
> >> ¿Existe una forma tan eficiente para activar un evento cuando 
ocurra
> >> una disyunción de objetivos, por ejemplo "Platón" o "ética"?
> >
> >  Esto se lograría con una caja de prueba detrás de otra caja de 
prueba.
> 
> Yo sugeriría encontrar una forma alternativa que fuera menos 
engorrosa 
> cuando el problema sea real y no un mero ejemplo.
> 
> [Nota técnica: estoy pensando un morfo "analizador lexicográfico 
> dirigido por tabla de mosaicos". A pesar del nombrecito seria muy 
fácil 
> de usar simplemente moviendo mosaicos a una tabla. Además tambien 
> podría ser de aplicación a morfos más gráficos. ¿Es razonable, 
Diego?].
> 
> Si hay interés, elaboro más la idea.
> 
> Saludos
> --Manolón



------------------------ Yahoo! Groups Sponsor --------------------~--> 
$9.95 domain names from Yahoo!. Register anything.
http://us.click.yahoo.com/J8kdrA/y20IAA/yQLSAA/zCsqlB/TM
--------------------------------------------------------------------~-> 

Visita nuestro sitio en http://www.small-land.org
 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/small_land/

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.