• Publicidad

XML y contar palabras asociadas a etiquetas

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

XML y contar palabras asociadas a etiquetas

Notapor ana gonzález ledesma » 2008-03-17 16:53 @745

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
Sintáxis: [ Descargar ] [ Ocultar ]
Using xml Syntax Highlighting
la <P genero="femenino" categoria="nombre">casa</P> tiene ...
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


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.
ana gonzález ledesma
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2006-11-02 10:25 @475

Publicidad

Notapor explorer » 2008-03-17 18:40 @820

Pero... eso no parece un fichero XML... estoy viendo texto fuera de las marcas...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

XML y contar palabras asociadas a etiquetas

Notapor ana gonzález ledesma » 2008-03-18 06:58 @332

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.
ana gonzález ledesma
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2006-11-02 10:25 @475

Notapor monoswim » 2008-03-18 07:12 @342

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

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

Notapor explorer » 2008-03-18 07:41 @362

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.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados