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