Hola, buenas.
Tengo un problema para cuya solución no tengo suficientes conocimientos en Perl y, por tanto, no sé si se puede resolver o no.
Bien, tengo un conjunto de textos, donde algunas palabras están etiquetadas con sus categorías. Por ejemplo, la palabra fruta, está etiquetada como <Nombre>fruta<\Nombre>. El problema es que, como todos sabemos, hay palabras que tienen más de una categoría gramatical. Como por ejemplo, la palabra "como". La cual, en concreto, tiene tres análisis: verbo (primera persona del verbo comer), conjunción causal (como no vengas, te vas a enterar) y conjunción comparativa (quiero ser como tú).
Bien. En este momento, la palabra "como" ha sido etiquetada automáticamente de acuerdo con unas reglas. Y ahora me falta ir corrigiendo uno a uno todas las apariciones de "como" en los textos para ver si efectivamente las reglas automáticas de desambiguación semántica han funcionado.
Lógicamente, a mí me gustaría que esta tarea fuera lo más rápida, eficiente y automática posible. Para lo cual he pensado lo siguiente, y me gustaría que alguno de vosotros/as, si os pica la curiosidad, me dijerais si efectivamente esto es posible de hacer en Perl. Este es el algoritmo de mi programa:
-recorre lista de palabras ambiguas (texto previamente metido en un array)
-abre un directorio (conjunto de textos a corregir)
-primer archivo
-busca la primera ocurrencia de la palabra "como"
-saca la línea por pantalla (no con print(), sino con cualquier otra operación que haga que la línea sea susceptible de ser modificada en pantalla)
-la modifico en el caso de que lo requiera
-sustituye la línea sacada por pantalla (o no) con la que está en el archivo (¿con <stdin> y luego s/$linea/$nuevalinea/;?)
-pásame a la siguiente linea en la que se encuentra la segunda ocurrencia de la palabra "como"
-lo mismo
-cuando se termine el archivo:
mete el archivo corregido en un directorio: directorio_corregidos.
print() "el archivo ha terminado, ¿quieres empezar otro?"
-Si sí, abre otro archivo
-Si no, cierra, y Fin.
Con lo que tengo problemas es con la operación de modificar y actualizar los datos. ¿Esto es posible? En el caso de que no lo sea, ¿se os ocurre otra manera de hacerlo con las herramientas disponibles en Perl?
Muchas gracias, como siempre, al menos por la paciencia de leerme.
-ana
-