Identificar el género de la vi-nombre
Existe una vi (1) muy particular por tener una función especial dentro del texto-base. Me refiero a la vi-nombre que condiciona el género de las variables vg (2). Esta variable es objeto de un procedimiento específico que nos permite identificar su género gramatical. En realidad para ello tenemos a nuestra disposición varios procedimientos. Veremos en esta entrada cuáles son.
Misterios a parte, lo cierto es que la fórmula empleada en el código de no es la más sencilla, ya que recurre a una función para comprobar si el nombre identificado en la vi está en el listado de nombres (BDNombres) y si pertenece a la categoría m o f. Se trata de un procedimiento de automatización del proceso, aunque se basa, a su vez, en un documento (la BD) resultante de un procedimiento manual (supervisado, podríamos decir ahora): que una persona introduzca manualmente cada uno de los registros, los cuales constan de un nombre de persona y el género gramatical al que pertenece dicho nombre.
En términos de simplicidad podríamos haber optado por una forma más sencilla: pedir directamente el género asociado a la vi-nombre al usuario. Cierto que esto nos habría ahorrado trabajar con la BDNombres (que no es imprescindible), pero condiciona también el procedimiento a desarrollar en la segunda fase del procedimiento (fase DocAp, hemos dicho en otro momento), además de reducir el nivel de automatización del procedimiento en su conjunto, cuando es ese justamente el objetivo que nos planteamos.
Renunciando entonces al procedimiento más simple, nos queda aun una tercera opción que aprovecha la relación bidireccional existente en la concordancia gramatical: si el nombre propio (vi-nombre) condiciona el género de las vg, la forma en que estas se expresan resulta de esa condición, con lo que sirven también de indicación del género al que pertenecer la vi-nombre. Un ejemplo, dado que "Pedro" es nombre masculino, condiciona que la expresión de vg sea, por ejemplo, "el alumno" o "el niño". Así que si nos encontramos con las vg las anteriores, estas son indicadores de que "Pedro" es nombre de género masculino.
A partir de aquí podemos desarrollar un procedimiento específico de identificación del género del nombre sin necesidad de recurrir a una BD externa; es más: podemos crear un segundo procedimiento que nos permita alimentar dicha BD, la cual sí necesitamos en el script de la fase DocAp, ya que en esta no contamos con los datos (vg) que inicialmente nos permiten inferir el género de la vi-nombre original (3).
Volviendo a la primera parte del procedimiento, esta es posible gracias a las funciones disponibles para trabajar con cadenas y con matrices, siendo de especial utilidad la combinación de la que permiten diferenciar un texto en partes (función Split()) y la de recomponer las partes (matriz) en un todo (función Join()) (4). El resultado de su aplicación nos permite especificar con seguridad el género gramatical asociado al nombre del alumnado objeto de informe, aunque para ello es conveniente especificar qué criterios se toman como referencia, debiendo ser lo suficientemente estrictos como para impedir errores de identificación de género: siempre es mejor tener que revisar el texto y modificarlo, en su caso, que realizar una asignación de género incorrecta, ya que de ella va a depender el tratamiento de las vg en la fase de análisis del texto-base, pero también en la fase DocAp.
Aunque no es el único criterio posible, considero que el que expongo es lo suficientemente claro y exigente. Tú puedes implementar el que consideres más apropiado (5).
If (m > f) And (m - f = m ) ThenMsgBox "El nombre de alumno es inequívocamente de género masculino"ELseIf (m < f) And (f - m = f ) ThenMsgBox "El nombre de alumno es inequívocamente de género femenino"ElseMsgBox "No está asegurada la concordancia de género. Se recomienda revisar el texto para correguir posibles errores"End If
Para finalizar, repito que esta "corrección" (mejor "alternativa") a la formulación original del procedimiento no es necesaria en sentido estricto, pudiendo ser perfectamente válida la propuesta original, que, además, es ineludible en el tratamiento de la identificación del género del alumno en la fase DocAp. No obstante, lo que esta propuesta aporta es un procedimiento de automatización más desarrollado, además de ideas para el tratamiento de las cadenas complejas de texto que sin duda nos será de utilidad en fases posteriores del desarrollo de nuestra propuesta.
NOTAS
(1) En realidad esto sólo es cierto en la forma más simple de este modelo de automatización documental, ya que este tipo de vi pueden ser varias en el mismo texto-base. Hablaríamos entonces de las formas complejas del modelo. Esta cuestión, muy importante y de cierta complejidad, será tratada más adelante.
(2) Acabamos de ver [en esta entrada] que también, y muy especialmente, a la o las variables vn.
(3) La primera parte de este procedimiento sí va a ser tratada en esta entrada; la segunda queda pendiente para cuando hablemos específicamente de la BDNombres.
(4) El script/función resultante es suficientemente complejo como para requerir una explicación específica. [Véase en esta entrada]
(5) Se trata casi de pseudocódigo, por lo que no requiere más explicación, incluyendo el significado de las variables m y f. Lo que sí es necesario es formularlo de modo más sintético y funcional.

No hay comentarios:
Publicar un comentario
Comenta esta entrada