Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

XML y contar palabras asociadas a etiquetas

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico
Mensaje Lun Mar 17, 2008 3:53 pm
ana gonzález ledesma
Perlero Nuevo
Perlero Nuevo
Registrado: 02 Nov 2006
Mensajes: 9
XML y contar palabras asociadas a etiquetas Responder citando

Hola, tengo un texto en XML donde están etiquetados algunos tipos de palabras con dos atributos, supongamos que son género=masculino/femenino y categoría=nombre/adjetivo

por ejemplo
XML:
la <P genero="femenino" categoria="nombre">casa</P> tiene ...


A mí me gustaría extraer de este texto frecuencias en virtud de los atributos.

Así, si tengo una lista de palabras (casa, tomate, ciruelas), me gustaría saber cuántas veces aparecen en el texto estas palabras de la lista, y lo que es más importante, qué palabras están etiquetadas con género femenino (por ejemplo), o qué palabras están etiquetadas con género femenino y categoría nombres y cuántas veces aparece en el texto.

Sobre todo tengo dudas con respecto a cómo estructurar el programa, no sé si primero abrir la lista y luego abrir el archivo de texto y buscar línea por línea cada palabra de la lista y ponerle un contador, o abrir primero el texto... además, luego tengo que asociar con un hash los valores de los atributos a la frecuencia de la palabra buscada, y esto no sé cómo se haría, allí ya me pierdo. Además en una línea la palabra puede aparecer más de una vez; para solucionar esto pongo 'g' en la expresión regular, pero no me sale.

En fin, si alguien tiene tiempo y ganas, gracias.
Mensaje Lun Mar 17, 2008 5:40 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3823
Ubicación: Valladolid, España
Responder citando

Pero... eso no parece un fichero XML... estoy viendo texto fuera de las marcas...
Mensaje Mar Mar 18, 2008 5:58 am
ana gonzález ledesma
Perlero Nuevo
Perlero Nuevo
Registrado: 02 Nov 2006
Mensajes: 9
XML y contar palabras asociadas a etiquetas Responder citando

Este texto es un ejemplo, no es el texto con el que trabajo en realidad, ni tampoco los atributos, solo quería buscar las palabras de una lista en un texto en XML y sacar sus frecuencias en función de los atributos de sus etiquetas.
Gracias.
Mensaje Mar Mar 18, 2008 6:12 am
monoswim
Vive para Perl en Español
Vive para Perl en Español
Registrado: 18 Nov 2003
Mensajes: 691
Ubicación: Buenos Aires
Responder citando

Pero ¿estás segura que es XML y no HTML? Porque sería el primer XML que veo con la etiqueta P... jejeje

Saludos
Mensaje Mar Mar 18, 2008 6:41 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3823
Ubicación: Valladolid, España
Responder citando

Es que no es lo mismo tratar un texto con marcas a tratar un fichero XML.

Para el segundo caso, hay cantidad de módulos, como por ejemplo el XML::Simple, que sirve para tratar esos ficheros. Una vez leído, se pueden sacar estadísticas.

En cuanto a tu pregunta de cómo estructurar el programa, si suponemos que la lista de palabras es pequeña, siempre es mejor leerla antes que el texto. Y si el texto es también de un tamaño manejable, leerlo también en memoria (con el XMLin() del XML::Simple, por ejemplo).

En cuanto a la expresión regular, si pones el código que te falla, podríamos ayudarte más.
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group