Snomed2Vec
New approach to use Snomed-CT Concept using Word Embedding with Word2vec
Install / Use
/learn @NachusS/Snomed2VecREADME
Snomed2Vec - Use Model - Methods & Class.
A new Approach Snomed-CT with word embedding - Snomed2Vec - Model.
Fase 1 - Generación modelo Snomed2Vec.
Corpus iniciales, Informes de Alta del Servicio de Urgencias, Wikipedia y Snomed-CT
Autor: Ignacio Martinez Soriano. Data Scientist. Hospital Universitario "Rafael Mendez" & Medlab Media Group.
Coautores:
- Juan Luis Castro Peña. Dept Ciencias de la computacion e Inteligencia Artificial. Universidad de Granada.
- Jesualdo Fernandez Breis. Dept. Informática y Sistemas. Universidad de Murcia.
- Ignacio San Román. Dept. Chief Artificial Intelligence Officer . Medlab Media Group.
- Adrian Alonso Barriuso. Research Technical Lead. Medlab Media Group.
Fecha: 28/01/2019.<br>
Introducción Resumen:
Aplicamos la libreria gensim para generar varios modelos Word2Vec (Skip-Gram).<br> Se genera los modelos, base, con las palabras vectorizadas de todos los textos.<br> Se prepara los datos para generar modelos vectorizados.
Datos de Entrada:
- /DataWork/Corpus-101.txt (Corpus y tokens de todos los Informes de Alta de Urgencias).
- /DataWork/wikipediaSpanish-2019.txt
- /Snomed-CT/Diccionario/Snomed-CorpusTerm-Jer.txt, Códigos Snomed Activos, con su jerarquia y Descripción.
Productos generados, finales:
- Modelo con los Datos de Inf-Alta + Descripciones Snomed. Sin pre-trained: w2v-SK-s300-w5-m2-Total-Key.txt
- Modelo con los Datos de Wikipedia español + Descripciones Snomed-CT:
Utilizando los modelos anterioes, generamos los espacios vectoriales finales, aplicando el modelo a la descripción de los términos de Snomed-CT.
-
Un registro para cada concepto con la siguiente estructura:<br> |Id-Concept | TokensDescripcion | Jerarquia | [Vector de la Descripción]|
El Vector descripción está compuesto, según el modelo del dominio elegido (general o específico):
- $ Descripcion (d) = (w_1,w_2,...,w_n), V[d] = \sum_{i=1}^{n}v[x_{i}]=v[x_{1}]+v[x_{2}]+...+v[x_{n}] $
1. Introducción:
Creación de un nuevo enfoque Snomed2Vec<br> Diseño de una herramienta para obtener los conceptos clínicos dentro del texto libre de cualquier informe médico. Asociándole el código mas aproximado, del concepto Snomed-CT. Devolviendo la lista de conceptos Snomed-CT, que aparecen en una frase y sus relaciones con otras entidadades clínicas.<br> Nos basamos en dos artículos:<br>
- DNER Clinical (named entity recognition) from free clinical text to Snomed-CT concept. Ignacio Martinez Soriano. Juan Luis castro Peña. WSEAS Transactions on Computers, ISSN / E-ISSN: 1109-2750 / 2224-2872, Volume 16, 2017, Art. 10, pp. 83-91.
- STMC: Semantic Tag Medical Concept Using Word2Vec Representation Ignacio Martinez Soriano, Juan Luis Castro Peña. 2018 IEEE 31st International Symposium on Computer-Based Medical Systems (CBMS). Karsltad (Sweden).
Desarrollo de un Clinical Semantic TAG (Clinical Named Entity Recognition - NER).<br> Generamos un espacio vectorial de palabras embebidas, "Word Embedding", utilizamos un enfoque híbrido con dos versiones, creando distintos enfoques:
- los Informes de Alta del Servicio de Urgencias del Hospital "Rafael Méndez", desde el año 2009-2016, mas las descripciones de los conceptos de Snomed-CT.
- Un modelo genarado con la descarga normalizada de Wikipedia en español (Fecha 01 de Octubre 2018) + las descripciones de los conceptos de Snomed.CT.
Para generar el espacio vectorial final de palabras embebidas, utilizamos nuestro modelo entrenado con las palabras de un gran corpus (Informes de Alta o Wikipedia) y lo volvemos a entrenar añadiendole las descripciones de Snomed-CT, generando de esta forma los vectores finales de nuestro Modelo.
Generación Modelo final Snomed2Vec:
Basándonos en los vectores de ese Modelo, aplicamos los vectores de las palabras para generar el Vector de la Descripción de Snomed-CT:<br> Utilizamos el Modelo generado con Word2Vec, y lo aplicamos a la descripción de Snomed-CT, generando el siguiente vector asociado a la descripción [d]<br> Siendo V(w<sub>i</sub>) el Vector asociado a la palabra w<sub>i</sub>, según el modelo Word2Vec Μ.<br>
- Descripcion-Snomed-CT(d) = (w<sub>1</sub>,w<sub>2</sub>,...,w<sub>n</sub>),=> V[d] = ∑<sub>i=1</sub> v[w<sub>i</sub>] ≡ v[w<sub>1</sub>]+v[w<sub>2</sub>]+...+v[w<sub>n</sub>]
El Modelo Snomed2Vec final: quedaria así:
- Un registro para cada concepto con la siguiente estructura:<br> | Id-Concept | Jerarquia | Descripcion | [Vector de la Descripción] |
Métodos implementados:
Implementamos una version de Most_Similar() para obtener los Conceptos similares de Snomed-CT<br>
- Mas_Similar('frase','clase mas proxima')
- Entrada: frase, clase mas proxima, se refiere a si se quiere buscar, los conceptos mas cercanos, según la jerarquía de Snomed-CT.
- Salida: (Lista de conceptos, nombrados en la frase, proporcionando los mas cercanos según clase buscada)
2. Snomed-CT:
Utilizamos la Ontología Snomed-CT, como Terminología clínica,para identificar los conceptos y codificarlos.<br>
Estructura Lógica:
Imagen de https://confluence.ihtsdotools.org/
Conceptos:<br> Cada concepto representa un significado clínico único, al que se referencia con un identificador numérico único de SNOMED CT.
Descripciones:<br> A cada concepto se asigna un conjunto de descripciones textuales. Éstas constituyen la forma legible de un concepto. Se utilizan dos tipos de descripciones para representar cada concepto - Descripción completa (FSN, por Fully specified name en inglés) y Sinónimo.
Relaciones:<br> Una relación representa una asociación entre dos conceptos. Las relaciones se utilizan para definir lógicamente el significado de un concepto de manera que pueda procesarlo un ordenador. Un tercer concepto, denominado el tipo de relación (o atributo), se utiliza para representar el significado de la asociación entre el concepto de origen y el de destino. En SNOMED CT existen diferentes tipos de relaciones.
Jerarquías:<br> Nivel superior con una breve descripción del contenido representado en su rama de la jerarquía.
|Hallazgo clínico| representa el resultado de una observación, una evaluación o un juicio clínico e incluye a los conceptos utilizados para representar diagnósticos.<br> |Procedimiento| representa actividades que se llevan a cabo durante la atención de la salud.<br> |Situación con contexto explícito| representa hallazgos clínicos y procedimientos que aún no han ocurrido, (por ejemplo,|antecedente de infarto de miocardio|).<br> |Entidad observable| representa una pregunta o una evaluación de las que se puede obtener una respuesta o un resultado (por ejemplo, |presión arterial sistólica|, |color del iris|, |género|). <br> |Estructura corporal| representa estructuras anatómicas normales y anormales.<br> |Organismo| representa organismos relevantes para la medicina humana y veterinaria.<br> |Sustancia| representa sustancias en general, los constituyentes químicos de los productos farmacéuticos/biológicos, sustancias corporales, sustancias alimenticias y diagnósticas. <br> |Producto farmacéutico / biológico| representa los productos farmacológicos (por ejemplo, |amoxicilina 250 mg, cápsula|, |paracetamol + codeína comprimido|). <br> |Espécimen| representa entidades que se obtienen (por lo general del paciente) para realizar exámenes o análisis.<br> |Concepto especial| representa conceptos que no desempeñan ningún papel en la lógica formal del modelo conceptual de la terminología, pero que pueden ser útiles para casos de uso específicos. <br> |Objeto físico| representa objetos físicos naturales y fabricados por el hombre.<br> |Fuerza física| representa fuerzas físicas que pueden desempeñar un papel como mecanismos de lesión (por ejemplo |fricción|, |radiación|, |corriente alterna|).<br> |Evento| representa acontecimientos, con exclusión de procedimientos e intervenciones, (por ejemplo, |terremoto|). <br> |Ambiente o localización geográfica| representa tipos de ambientes, así como lugares con nombres propios, como países, estados y regiones.<br> |Contexto social| representa condiciones sociales y circunstancias significativas para la atención de la salud.<br> |Estadificaciones y escalas| representa escalas de evaluación y sistemas de estadificación tumoral. <br> |Calificador| representa los valores para algunos de los atributos de SNOMED CT, cuando esos valores no son subtipos de otros conceptos de nivel superior (por ejemplo, |izquierdo|, |resultado anormal|, |severo|).<br> |Elemento de registro| representa contenido creado para brindar información a otras personas sobre eventos de registro o estado de asuntos (por ejemplo, |registro llevado por el paciente|, entrada de registro|, |sección correspondiente a antecedentes familiares|).<br> |Componente del modelo de SNOMED CT| contiene los metadatos que se utilizan para la publicación de SNOMED CT. <br>
Estructura General:
Imagen de https://confluence.ihtsdotools.org/
3. Generación de los Modelos de Espacio Vectorial, para palabras:
Para generar el modelo vectorial de palabras embebidas utilizamos Word2Vec, generado por Mikolov et al.<br>
Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. 2013a. Efficient estimation of word representations in vector space. In Proceedings of ICLR Workshop
Word2Vec, es un framework semántico que utiliza una red neuronal superficial de una sola capa oculta, para aprender la representación de la
