Re: [Programación] Ayuda con código para procesar textos

Ernesto Savoretti esavoretti en gmail.com
Dom Feb 22 13:00:33 ART 2009


2009/2/22 Horacio Castellini <horacio9573 en yahoo.com.ar>:
> Holas, si bien el problema que planteo puede ser resuelto en FLEX, me gustaría probar hacerlo en PERL o Python. Donde no se me ocurre como.
>
> El problema es el siguiente: Quiero hacer una aplicación inyectiva entre un texto, libro o rejunte de palabras y los números naturales, es decir asociar una clase de equivalencia de textos a un arreglo de enteros A[] donde en cada upla esté la frecuencia absoluta de aparición de una palabra, y se descarten los caracteres blancos={espacio, ., ;, etc..}; pero pueda clasificar las palabras acentuadas y no distinga mayúscula de minúscula. Por ejemplo:
>
> el texto es = Por error u omición uno busca lleno de esperanza por razones que la razón no explica.
>
> entonces:
> A[por]<-2
> A[error]<-1
> A[razón]<-1
>
> etc...
>
> Se entendió? algún código de sugerencia?
>
> Saludos...
>
>

Bueno, por ejemplo, en Python podría ser:

>>> def givemedic(texto):
	dic = {}
	for word in texto.split():
		if not dic.get(word):
			dic[word] = 1
		else:
			dic[word] += 1
	return dic

# por ejemplo:

>>> mitexto = """María tenía un corderito, y a todos los lugares   donde     María

iba, el corderito seguramente
iba también.
"""

>>> midic = givemedic(mitexto)

>>> for key, value in midic:
        print key, value

a 1
el 1
también. 1
iba 1
lugares 1
María 2
seguramente 1
los 1
un 1
donde 1
iba, 1
y 1
corderito 1
tenía 1
corderito, 1
todos 1


-- 

                                    Ernesto Savoretti



Más información sobre la lista de distribución Programacion