Lun Mar 17, 2008 3:53 pm
|
|
|
| XML y contar palabras asociadas a etiquetas |
|
|
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. |
|
|
|

Lun Mar 17, 2008 5:40 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3823
Ubicación: Valladolid, España
|
|
|
|
|
| Pero... eso no parece un fichero XML... estoy viendo texto fuera de las marcas... |
|
Mar Mar 18, 2008 5:58 am
|
|
|
| XML y contar palabras asociadas a etiquetas |
|
|
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. |
|
Mar Mar 18, 2008 6:12 am
|
 |
monoswim
Vive para Perl en Español

|
Registrado: 18 Nov 2003
Mensajes: 691
Ubicación: Buenos Aires
|
|
|
|
|
Pero ¿estás segura que es XML y no HTML? Porque sería el primer XML que veo con la etiqueta P... jejeje
Saludos |
|
Mar Mar 18, 2008 6:41 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3823
Ubicación: Valladolid, España
|
|
|
|
|
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. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|