sábado, 9 de agosto de 2025

Textos. Procedimientos

Manejo de la BDGenero (III)


Para finalizar esta serie de entradas, al menos provisionalmente, en esta tercera trataré sobre el modo de automatizar (parcialmente) la construcción de segmentos por oposición de género (1).



La primera solución a la creación de la alternativa en femenino de las expresiones (segmentos textuales) en masculino consiste en escribirla directamente mediante teclado (en base a InputBox()). Esta fue la que se empleó originalmente en el planteamiento de trabajo desarrollado hasta el momento. 

Derivada de ella, y del propio planteamiento del recurso al archivo BDGenero, es crear (y recurrir a) una base de datos de palabras pareadas en oposiciones de género y trabajar con ellas mediante estructuras de iteración y condicionalidad.

Esta opción remite, en todo caso, al InputBox() (o similar) como forma de construir la fuente de datos, lo que implica ausencia de automatización, pero es una opción útil (cuanto menos) cuando no existe una regla gramatical de transformación de uno a otro género, o ésta es muy compleja y difícil de replicar mediante código (2).

La posibilidad de aplicar una regla de conversión m-f general y segura (3) como la siguiente, referida a seres con sexo (que es la razón del tratamiento específico de las vg en nuestra propuesta de automatización de textos)...
  • palabras terminas en o (m) vs. palabras terminadas en a (f) 
... es también la posibilidad de aplicar un algoritmo que automatice esa conversión, lo que permite dar una respuesta algorítmica en esas circunstancias concretas, pero no permite generalizarla a otras, debiendo recurrir a procedimientos como el basado en corpus de palabras pareadas en estructuras matriciales (4).

Se aplique una alternativa u otra, o las dos según qué circunstancias, previamente deberemos tratar el segmento textual para que sea posible desarrollar el o los procedimientos de automatización. Esta preparación del texto incluye su limpieza de caracteres que interfieren en la implementación de la solución y su división en una matriz de palabras, todo ello tratado ya [en esta entrada].

En realidad, en el caso que nos ocupa sólo es necesario segmentar la vg, ya que en su propia concepción como tal está la ausencia de signos de puntuación y el propio marcador del segmento (#) es eliminado en el mismo momento en que se establece la matriz-base. No obstante puede ser una buena práctica aplicar primeramente el procedimiento de limpieza, así que lo incluiré en esta propuesta.

Lo que sí me permito de nuevo es simplificar al máximo el contexto de referencia, a fin de centrarme en el objetivo actual, por ello me salgo del marco del script manejado en las dos entradas de esta serie y me quedo con una formulación simplificada del script (ahora CambioGenero).

Además de este script, desarrollo un conjunto de funciones que corren con la carga real de trabajo:. 
  • La función LimpiarSegmento(), que recibe del script el segmento vg y cuyo objetivo es hacer lo que indica su nombre: limpiar el segmento y pasar al script la matriz de palabras de que está compuesto.
  • La función ConverGenMatrices(), que recibe del script la matriz devuelta a su vez por la función anterior y devuelve al script la expresión vg en femenino (5)
  • Y la función ConverMenF() que trata con palabras en masculino sujetas a la norma de conversión o(m) -> a(f) y las convierte al femenino.
Puedes acceder a este código (script y funciones) descargando [este documento], los comentarios del código son suficientemente claros como para que no sea necesario explicarlos aquí específicamente. 

Aunque lo que resulta de esta entrada no cumple seguramente con las expectativas, el material que he puesto antes y pongo ahora a tu disposición te permite completar lo que yo dejo inconcluso. Así que por ahora es suficiente (6). No quiero que tengas que esperar a tenerlo todo actualizado y a que el soporte sea plenamente funcional. 

Te sugiero es que juegues con el código de esta entrada, cambiando los segmentos vg, eso sí, siempre expresados en masculino, ya que esa es la condición de base actual. A partir de ahí puedes tú implementarlo en procedimientos más complejos.

También puedes consultar [esta entrada] y [esta otra entrada] si deseas más informaciones sobre los dos procedimientos usados para tratar el cambio de género.


NOTAS

(1) Lo mismo o similar podríamos decir de la oposición de número y de otras oposiciones de tipo gramatical.
(2) En realidad es una solución válida para cualquier situación, incluyendo cuando existe una regla de conversión relativamente segura y sencilla de implementar. Tampoco es ajena a las soluciones propuestas por los expertos en programación cuando remiten como solución de automatización al uso de corpus de datos.
(3) No nos interesan aquí determinadas condiciones de identidad de género (o de número) en cuanto que no ofrecen ni opciones regladas de cambio de género o de necesidad de dicho cambio. Es posible desarrollar algoritmos que den solución a conversiones gramaticales de género de cierta complejidad, pero no vamos a considerarlas dentro de nuestras propuestas por simplificación de la propuesta; esto es, bien por su dificultad, bien por disponer de alternativas más sencillas de implementar (véase 2).
(4) Motivo por el que prefiero hablar de semi-automatización, término que considero se ajusta mejor a la realidad de las soluciones que planteo.
(5) Constituye la materialización de la opción 2.
(6) Próximamente procederé a revisar todo lo desarrollado dentro de este subconjunto de entradas relativas al manejo de BDNombres y BDGenero para actualizar el modelo de procedimiento. Pero es posible que haga un alto en este proyecto para tratar otros contenidos que últimamente han quedado olvidados. Mientras tanto y no, ya tienes entretenimiento y tarea.

No hay comentarios:

Publicar un comentario

Comenta esta entrada