Este Sistema Inteligente de Codificación (SIC) estaba basado en un
primer prototipo de EQ Sistemas Inteligentes para el
Instituto Nacional de Estadística (INE) de
apoyo a la codificación automática de enfermedades
según el Código Internacional de Enfermedades (CIE).
Este hardcopy muestra la arquitectura interna de SIC,
que estaba basada en un esquema de pizarra.
A continuación se incluye la documentación de este sistema
inteligente de codificación,
que se ha dejado adrede tal y como se documentaba
al inicio de la década de los 90,
aunque, por supuesto, ya disponíamos de unos estupendos Macintoshs.
+--------------------------------------------------------------------+
| SIC: SISTEMA INTELIGENTE DE CODIFICACION. |
+--------------------------------------------------------------------+
| 1.- INTRODUCCION. |
+--------------------------------------------------------------------+
SIC es una aplicación de demostración, desarrollada por EQ Sistemas
Inteligentes. Su objetivo es presentar cómo puede realizarse una
codificación automática de literales a partir de una información que
puede ser parcial y/o errónea.
La tarea de codificación de SIC consiste en asignar códigos a
literales, aún cuando estos literales contengan errores, utilicen
sinónimos o no correspondan totalmente con los literales originales.
Para ello SIC cuenta con la siguiente información:
a) Uno o varios dicionarios con las palabras que se manejan en los
literales (un vocabulario básico del dominio de aplicación).
Sobre estos diccionarios SIC aplica diversos métodos de búsqueda
especializados en encontrar palabras a pesar de sus posibles
errores (de tecleo, ortografía, fallos en lecturas por medios
ópticos, por errores en transmisión, etc.). A estos métodos se
les denomina especialistas.
b) Un diccionario de sinónimos, que proporciona, para cada palabra,
uno o varios sinónimos dependiendo, como se verá, del modo de
trabajo de SIC.
c) La tabla original de codificación en la que a cada código se le
asocia un literal. Sobre ella SIC construye un diccionario
canónico (normalizado) que le permite manejar los literales con
independencia del contexto en el que trabaja la aplicación.
Esta versión de demostración de SIC proporciana tres funcionalidades
principales:
a) Validación de palabras durante la entrada de datos.
b) Codificación asistida, dado un literal se codifica y en caso de
dudas (cuando existen varias soluciones posibles) se consulta con
el usuario.
c) Codificación automática de conjuntos de literales.
A estas tres funcionalidades se accede a través de las tres primeras
opciones menú principal de la aplicación y son las tres consecuencia
de la arquitectura interna de SIC.
En el ejemplo escogido para esta demostración se utiliza una versión,
parcial, del Código Internacional de Enfermedades (CIE), realizado por
la Organización Mundial de la Salud (OMS). Esta codificación de
enfermedades se aplica para la codificación partes de defunción (cada
parte está formado por cuatro causas de muerte).
+--------------------------------------------------------------------+
| 2.- ARQUITECTURA. |
+--------------------------------------------------------------------+
SIC posee una arquitectura general, esto es, independiente del dominio
o área de aplicación. Por tanto aunque esta demostración se realice
para la codificación de enfermedades puede ser transportable a otras
áreas como, por ejemplo, la codificación postal (nombres de calles,
nombres de municipios, etc.), la codificación de productos a partir de
sus descripciones, la localización de títulos de libros, etc.
Frente casos complejos de codificación, diccionarios de gran volumen o
retricciones de tiempo, esta arquitectura general debe especializarse
(incluyéndole información sobre el dominio y el contexto en el que se
realiza la codificación) para que proporcione los rendimientos que se
requieran.
+------------------------------------------------------------------+
| +------++--------------++-----------------------------------+ |
| +--+---+ES|| ARQUITECTURA || DICCIONARIOS ORTOGRAFICOS (Dio) | |
| |PARTES|==|+--------------+|+-----+ +-----+ +-----+ +-----+| |
| |======|==| +-------+ ||DIO 1| |DIO 2|...|DIO i|...|DIO n|| |
| |======+--+ |PIZARRA| ||=====| |=====| |=====| |=====|| |
| +-+----+ +-+-+-+-+ |+--+--+ +--+--+ +--+--+ +--+--+| |
| +-+-----+ +>-+=|=|=|=+-+ |Ind#############################---+ |
| |FILTRO | | +-+-+-+-+ | | +-+-+ +-+-+ +-+-+ +-+-+ +-+-+ | |
| +-+-----+ | |=|=|=|=| +>--+ |DIR| |INV| |BID| |FON| |ORT| | |
| +-+-----+ | +-+-+-+-+<+ | +---+ +---+ +---+ +---+ +---+ | |
| |SCANNER+-+ |=|=|=|=| +---+ CLASE DE LOS ESPECIALISTAS (Esp) | |
| +-------+ +-+-+-+-+ +-----------------------------------+ |
| +-------+ |=|=|=|=| +---------+ +-----+ +---+-------+ |
| |SINONIM+-<--+-+-+-+-+ +>--+GRAMATICA+->-+CANON+->-+COD|LITERAL| |
| | (Sin) +->--+=|=|=|=+-+ |CANONICA | |=====| |===|=======| |
| |=======| +-+-+-+-+ +---------+ +-----+ |===|=======| |
| |=======| |=|=|=|=+<--------S-O-L-U-C-I-O-N---<-+===|=======| |
| +-------+ +-+-+-+-+ +---+-------+ |
+------------------------------------------------------------------+
Figura: Arquitectura de SIC.
Pulsando la combinación de teclas [Alt-U], una vez dentro de la
aplicación SIC, puede accederse a un menú de utilidades una de cuyas
opciones es un semi-gráfico, con una versión simplificada de la
arquitectura interna de la aplicación SIC (ver figura anterior).
Esta arquitectura esta basada en un sencillo mecanismo de PIZARRA, con
un control semi-rígido. Sobre esta pizarra, los diferentes métodos
especialistas (DIRecto, INVerso, BIDireccional, FONético, etc.) en
localización de palabras apuntan sus resultados, decidiendo la pizarra
quién o quienes de ellos dan soluciones más verosímiles.
En líneas generales el funcionamiento de SIC es el siguiente (se ha
destacado en mayúscula, en cada punto, una palabra clave que permite
identificar la fase de proceso en la figura de la arquitectura):
a) En una primera fase los literales son filtrados eliminando
posibles caracteres extra¤os y transformados, bien a mayúsculas
o a minúsculas (FILTRO).
b) Posteriormente cada literal es procesado, separando las posibles
palabras (o tokens) que lo constituyen (SCANNER).
c) Cada palabra es buscada en los diccionarios por toda una familia
de especialistas. Dependiendo de si la palabra es directamente
correcta o de si tiene muchos errores este proceso se demorará
más o menos. La PIZARRA controla este proceso y su resultado es
una gama de posibles literales, constituidos por variantes de
palabras. En la decisión sobre que variantes de palabras se
eligen influyen las opiniones, coincidentes o discrepantes, de
los diferentes especialistas y la importancia relativa de cada
uno de ellos.
d) La gama de posibles literales es procesada con el diccionario de
SINONIMOS, sustituyéndose cada palabra por su sinónimo o
sinónimos principales. Dependiendo de si para cada palabra
existen uno o varios sinónimos, la gama de literales originales
puede simplificarse o complicarse.
e) Cada literal, resultado de la fase anterior es normalizado según
una forma CANONICA, ello facilita su confrontación con la tabla
original de codificación.
f) Finalmente, cada literal canónico (CANON) es confrontado con una
versión canónica de la tabla de codificación. Devolviéndose los
resultados a la pizarra.
g) Cuando la pizarra dispone de todas las posibles variantes
(SOLUCIONES) de codificación decide:
=) bien cual de ellas es la correcta,
=) bien que no dispone de criterios suficientes para discernir
entre varias (en este caso y en codificación asistida se pide
ayuda al usuario) o
=) bien que ninguna de las soluciones propuestas es
suficientemente válida.
+--------------------------------------------------------------------+
| 3.- CONFIGURACION. |
+--------------------------------------------------------------------+
Desde el mismo menú anterior ([Alt-U]) se puede acceder a una ventana
de configuración de esta versión de SIC, cuyas opciones son:
a) Test en partes (S/N): Que permite decir si se desea o no realizar
una verificación de palabras durante la entrada de datos.
b) Control de pizarra (S/N): Si se pone a "S" esta versión de SIC
muestra, en cada paso de codificación, sus resultados
intermedios. Ello permite entender su funcionamiento interno.
c) Modo de funcionamiento respecto a los sinónimos. SIC posee 2
modos de trabajo (no modificable):
=) Relación Palabras N:1 Principal (Sinónimos sencillos).
=) Relación Palabras N:M Principal (Sinónimos complejos).
Esto es:
=) Si se dá el caso que en cada familia de sinónimos, todos
con el mismo significado, puede escogerse, siempre, una sóla
palabra principal representante de todos (relación N:1).
=) O si por el contrario, una palabra puede tener varios
sinónimos, con diferentes significados, dependiendo del
contexto en el que se utilice (relación N:M).
El diccionario de sinónimos de esta versión de SIC pertenecen a
al segundo caso.
d) Sonido (en décimas de segundo): Si se pone un entero superior a
cero SIC generará un pitido en cada fase de codificación.
Permite, por tanto, controlar, de forma aproximada, la duración
de las diferentes fases de codificación.
e) Filtros de palabras y de códigos que facilitan a SIC la taréa de
aceptar o rechazar palabras parecidas o códigos parecidos. El
comportamiento de SIC es muy dependiente de estos dos parámetros.
=) Valores muy altos, cercanos a la unidad, harán que SIC tenga
un comportamiento muy estricto, dando gran seguridad a su
codificación, pero por el contrario rechazando algunos
literales por pocas de diferencias.
=) Valores muy bajos, cercanos al cero, harán que SIC tenga un
comportamiento muy flexible, encontrando posibles soluciones
para casi todo, pero generando, a menudo, excesivas variantes.
Dependiendo del contexto de aplicación y de las restricciones que
deban cumplirse deberán ajustarse dichos parámetros. Por
ejemplo, en un mismo dominio, para la verificación en entrada
debe utilizarse un filtro de palabras más bajo que el que se
utilizaría para la codificación asistida.
+--------------------------------------------------------------------+
| 4.- INSTALACION Y ARRANQUE. |
+--------------------------------------------------------------------+
Cree un subdirectorio en su disco duro, por ejemplo, de nombre SIC.
C:\> MKDIR SIC
Copie el contenido del disco de distribución en el subdirectorio
subdirectorio anterior.
C:\> COPY A:*.* SIC
Ejecute el fichero SICDemo.Bat.
C:\> CD SIC
C:\> SICDEMO
Todo ello puede realizarse, directamente con el programa Instala.Bat
C:\> A:INSTALAR A: C:
SIC puede ejecutarse directamente sobre el disco flexible de
distribución, pero los tiempos de respuesta pueden ser desesperantes.
Si en el momento de ejecución de SIC y tras pulsar el [Intro]
correspondiente, pulsa la tecla [Del] (Suprimir) entra en un menú de
autoconfiguración del interfaz de usuario de la aplicación SIC. Desde
este menú se puede modificar algunas de las caracteristicas del
interfaz de usuario de SIC.
De este menú se sale con la tecla escape [Esc]. Si algunas de las
opciones de este menú le da errores, NO SE PREOCUPE, está buscando
Pixmaps o configuraciones del entorno de desarrollo McEQ sobre el que
está construido SIC y que no se distribuyen junto a él.
+--------------------------------------------------------------------+
| 5.- CONTACTO. |
+--------------------------------------------------------------------+
Para cualquier cuestión o consulta no dude en ponerse en contacto con
nosotros:
EQ Sistemas Inteligentes
+--------------------------------------------------------------------+
| GRACIAS POR SU ATENCION. |
+--------------------------------------------------------------------+