UNIVERSIDAD COMPLUTENSE DE MADRID FACULTAD DE FILOLOGÍA TESIS DOCTORAL Grafos de vinculación semántica a partir del definiens del DUE MEMORIA PARA OPTAR AL GRADO DE DOCTOR PRESENTADA POR Miguel Ortega Martín Directores María Matesanz del Barrio Enrique Bernárdez Sanchís Madrid © Miguel Ortega Martín, 2021 / UNIVERSIDAD COMPLUTENSE DE MADRID FACULTAD DE FILOLOGÍA PROGRAMA DE DOCTORADO EN LINGÜÍSTICA TEÓRICA Y APLICADA TESIS DOCTORAL GRAFOS DE VINCULACIÓN SEMÁNTICA A PARTIR DEL DEFINIENS DEL DUE MEMORIA PARA OPTAR AL GRADO DE DOCTOR PRESENTADA POR Miguel Ortega Martín DIRECTORES Dra. María Matesanz del Barrio Dr. Enrique Bernárdez Sanchís Madrid, 2021 / / UNIVERSIDAD COMPLUTENSE DE MADRID FACULTAD DE FILOLOGÍA PROGRAMA DE DOCTORADO EN LINGÜÍSTICA TEÓRICA Y APLICADA TESIS DOCTORAL GRAFOS DE VINCULACIÓN SEMÁNTICA A PARTIR DEL DEFINIENS DEL DUE MEMORIA PARA OPTAR AL GRADO DE DOCTOR PRESENTADA POR Miguel Ortega Martín DIRECTORES Dra. María Matesanz del Barrio Dr. Enrique Bernárdez Sanchís Madrid, 2021 / / / A mi familia, a mis amigos y a mis profesores / / AGRADECIMIENTOS Antes de nada, me gustaría agradecer a mis directores, Enrique Bernárdez Sanchís y María Matesanz del Barrio, todo el tiempo, el cariño y los conocimientos que han compartido tan generosamente estos años. Sin su guía y su apoyo todo este camino hubiera tenido otra pendiente. Por todo ello, les estoy profundamente agradecido. A Oleg Vorontsov, por la confianza y la oportunidad que me dio de ir siempre más lejos, junto con Arni Giraldo y Luis Velasco, y a todos los compañeros con los que he tenido el privilegio de trabajar los últimos años en MMG, en especial a Javier López, Adrián Alonso e Ignacio San Román, gracias a su ayuda se ampliaron los horizontes en la aplicación de esta tesis y también pude realizar mis malabares laborales. A Luis Diéguez, por los ánimos y los consejos en las dificultades del último tramo. A Eduardo Basterrechea que me enseñó a conjugar la carpintería con la ingeniería, y todo ello con el lenguaje. Con él empecé mi andadura empresarial en Molino de Ideas, y gracias a su infinita generosidad pude desarrollar años más tarde en MMG el proyecto de Axones, que se instauró en mi cabeza allá por 2010, gracias en parte por la fascinación que me produjo la obra de Julio Casares, y que no he podido -ni querido- abandonar hasta la fecha. A Jose Calvo Tello, por su amistad y por “presentarme” debidamente la obra de María Moliner, que junto con Beatriz Bustos tuve la oportunidad de “diseccionar” y dar vida de nuevo en un nuevo “cuerpo”. A Jose Lázaro, el responsable de que allá por el segundo lustro me persuadiera, como mi primer profesor de Lingüística, de simultanear la licenciatura de Filología románica con la licenciatura de segundo ciclo de Lingüística de entonces. Más de una década ya de desempeño profesional hace que esté inmensamente agradecido por los horizontes que me abrió entonces, junto a Malvina Nissim y Fabio Foresti de la Universidad de Bologna, quienes me dieron el valor para saber equivocarme. Estos frutos son de esas semillas. A mis profesores del Área de Lingüística y de Filología románica, con los que tengo el privilegio de compartir con algunos claustro como compañeros, y tuve la suerte / de tenerlos entonces como profesores: A Ana Fernández Pampillón, a Bautista Horcajada a Raquel Hidalgo Downing, a Arlette Seré, a Covadonga López, a Eugenio Luján, a José Manuel Lucía Megías, a Juan Luis Arcaz, a Emilio Peral, todos ellos fueron figuras fundamentales, siempre me animaron a seguir, y siempre pude aprender de ellos. A Carmen López Rincón por enseñarme la analogía entre el romanescu y el lenguaje, a mis compañeras Rosa Martín y María, el círculo de enolingüística volverá (no falta ninguna “t”). A Víctor Peinado y Elena del Olmo, compañeros del área y compañeros en una empresa de cuyo nombre no quiero acordarme, aunque sí de los amigos que conocí allí. Gracias también a Auxi Barrios, y otros profesores que me han ayudado en algún momento crítico, en especial a Juan Álvarez Pedrosa, por su ayuda, generosidad y comprensión de la α νάγκη de un profesor asociado, y a Montserrat Jiménez por el pretil que ha supuesto su amistad durante la pandemia y fuera de ella. A Salustiano Mora por su apoyo, y por enseñarme a aplacar la ira de los dioses haciendo libaciones a Dioniso. No sé si se lo habrán calmado pero seguiremos intentándolo con nuestras ofrendas. A mi estupenda familia, a mis amigos y a Elena, para los que no tengo palabras suficientes, y me declaro de partida insolvente en cuanto al léxico necesario para expresar lo importantes que han sido y son, lo agradecido que les estoy, y lo mucho que los quiero. / ÍNDICE RESUMEN 17 ABSTRACT 19 SIGLAS 21 ÍNDICE DE TABLAS 25 ÍNDICE DE IMÁGENES DE GRAFOS 26 PARTE I: PLANTEAMIENTO DE LA INVESTIGACIÓN PREÁMBULO: REPRESENTACIÓN EN GRAFOS DEL VÍNCULO SEMÁNTICO ENTRE EL DEFINIENDUM Y EL DEFINIENS 31 CAPÍTULO 1: INTRODUCCIÓN, OBJETIVOS, HIPÓTESIS JUSTIFICACIÓN Y ASPECTOS METODOLÓGICOS 39 1. Grafo de vinculación semántica a partir del definiens del DUE 40 1.1. Introducción 40 1.2. Hipótesis, objetivos y preguntas de investigación 44 1.2.1. Propuesta e hipótesis 44 1.2.3. Objetivos 45 1.2.4. Preguntas de investigación 46 1.3. Justificación 47 1.4. Organización de la tesis y metodología 53 1.4.1. Metodología 55 PARTE II: MARCO TEÓRICO CAPÍTULO 2: PRINCIPALES PERSPECTIVAS EN SEMÁNTICA Y SEMÁNTICA COMPUTACIONAL 59 2. La representación del significado y su procesamiento computacional 60 2.1. Evolución del Procesamiento del Lenguaje Natural 62 2.2. Enfoque estructural 66 2.2.1. Semántica estructural y campos semánticos 66 2.2.2. La articulación del significado en semas 70 2.3. Enfoque cognitivo del significado 76 2.3.1. Cognitivismo 76 2.3.2. Categorización, teoría de los prototipos y metáfora 82 2.4. Enfoque distribucional: Espacios vectoriales semánticos 88 11 / 2.4.1. El significado a través de vectores 90 2.4.1.1. Vectorización basada en frecuencia 92 2.4.1.1.1 Vectorización basada en conteo 92 2.4.1.1.2. Vectorización basada en TF-IDF 94 2.4.1.1.3. Matrices de co-ocurrencia 96 2.4.1.1.4. Limitaciones 97 2.4.1.2. Vectorización aplicada a la predicción 100 2.5. Teoría Sentido-Texto (TST) 104 2.5.1. Explanatory Combinatorial Dictionary (ECD) 106 2.6. Modelo Lexemático Funcional 108 CAPÍTULO 3: TECNOLOGÍAS SEMÁNTICAS Y SUS APLICACIONES 111 3. Tecnologías semánticas y sus aplicaciones 112 3.1. Principales tecnologías aplicadas al procesamiento semántico 116 3.1.1. Grafos 116 3.1.2. RDF 120 3.1.3. Lenguaje de Ontología Web (OWL) 121 3.1.4. Diccionarios y grafos 122 3.2. Procesamiento semántico: aplicaciones y herramientas 124 3.2.1. 4lang y Dict-to-4lang 124 3.2.2. FUNGRAM 126 3.2.3. HowNet 130 3.2.4. Wordnet 133 3.2.5. Node2vec 135 3.2.6. Modelos de lenguaje basados en redes neuronales 137 CAPÍTULO 4: ESTRUCTURA, RELACIONES Y PROPIEDADES DEL SIGNIFICADO A TRAVÉS DEL DEFINIENS Y EL DEFINIENDUM 141 4. Definiendum, definiens y significado: propiedades y relaciones 142 4.1. Estructura recursiva: significado y relación del definiendum con el definiens 142 4.1.1. Relación binaria en los diccionarios 144 4.1.2. El significado como función 146 4.1.3. Significado y definición lexicográfica 148 4.1.4. La asociación y el significado 149 4.1.5. Teoría de conjuntos aplicada al significado y a las palabras 151 4.2. La palabra como texto comprimido 154 4.3. Otras relaciones a partir del definiens 162 4.3.1. Observaciones sobre la sinonimia 163 4.3.2. Desambiguación: observaciones sobre la polisemia y la homonimia 166 12 / CAPÍTULO 5: DICCIONARIO DE USO DEL ESPAÑOL DE MARÍA MOLINER 169 5.1. Estructura del DUE 172 5.1.1. Macroestructura del DUE 173 5.1.2. Microestructura del DUE 175 5.2. Definiciones del DUE 180 5.3. Información gramatical del DUE 183 5.4. Las marcas y los símbolos del DUE 185 5.5. Los catálogos del DUE 187 PARTE III: PARTE EXPERIMENTAL, CONSTRUCCIÓN Y ANÁLISIS DEL GRAFO CAPÍTULO 6: CONSTRUCCIÓN DEL GRAFO 191 6. Proceso de construcción del grafo 192 6.1. Esquema del proceso de construcción del grafo 192 6.2. Estructura del grafo 193 6.3. Asociadores semánticos 195 6.4. Preparación de los datos 200 6.4.1. Extracción de la microestructura de una entrada 204 6.4.2. Depuración de las definiciones 205 6.4.3. Depuración de la definición: selección categorial 206 6.4.4. Tokenización: el caso de las locuciones y estructuras compuestas 211 6.4.5. Análisis de bigramas por frecuencia 212 6.4.6. Lematización 214 6.4.7. Desambiguación 218 6.4.7.1. Asignación de un ID al definiendum 219 6.4.7.2. Asignación de un ID a los asociadores del definiens 223 6.4.8. Depuración de los nodos: criterio de frecuencia y contenido semántico 229 CAPÍTULO 7: CARACTERÍSTICAS DEL GRAFO EN NEO4J 235 7. Análisis del grafo de propiedades etiquetadas (LPG) 236 7.1. Modelo del grafo 236 7.2. Características del grafo de propiedades etiquetadas (LPG) 238 7.2.1. Nodos del grafo 241 7.2.2. Etiquetas de los nodos 244 7.2.3. Relaciones entre los nodos del grafo 246 7.2.4. Propiedades de los nodos y de las relaciones 251 7.3. Lenguaje de consulta del grafo: Cypher 254 7.3.1. Escritura de patrones con Cypher para las consultas 256 13 / 7.3.2. Búsquedas y consultas en Cypher 264 7.3.3. Búsqueda inversa y efecto de facilitación ( priming ) 273 7.3.4. Localización de los círculos viciosos del DUE 275 CAPÍTULO 8: RESULTADOS Y ANÁLISIS 281 8. Algoritmos de grafos: aplicación y estudio 282 8.1. Algoritmos de similitud 284 8.1.1. Distancia de Jaccard 290 8.1.1.1. Distancia entre dos palabras con el índice de Jaccard 292 8.1.1.2. Distancia entre una palabra y el conjunto más cercano 296 8.1.1.3. Construcción de la relación de similitud a partir del índice de Jaccard 304 8.1.1.4. Propiedad (“score”) de la relación “SIMILAR” 314 8.1.2. Algoritmo de Superposición 325 8.1.2.1. Distancia entre dos palabras con el índice de Superposición 327 8.1.2.2. Distancia entre una palabra y el conjunto de palabras más cercanas 328 8.1.2.3. Construcción de una relación a partir del índice de Superposición 333 8.1.2.4. Propiedad “score” de la relación “NARROWER_THAN” 344 8.1.3. Distancia euclidiana 348 8.2. Algoritmos de rutas óptimas o caminos más cortos 353 8.2.1. Algoritmo SPF (Shortest Path First Algorithm ) 364 8.2.2. Algoritmo de Yen (KSP) 366 8.2.3. Caminos aleatorios 369 8.2.4. Árbol recubridor mínimo (MST) 373 8.3. Algoritmos de centralidad 377 8.3.1.1. Propiedades del grado de salida y entrada en los nodos 384 8.3.1.2. Escritura de la propiedad del grado de entrada 384 8.3.1.3. Escritura de la propiedad del grado de salida 389 8.3.2. Algoritmo Pagerank 396 8.3.2.1. Escritura de la propiedad “pagerank” en los nodos 397 8.3.3. Algoritmo Articlerank 402 8.3.3.1. Escritura de la propiedad “articlerank” en los nodos 403 8.3.4. Algoritmo de intermediación ( Betweenness Centrality algorithm ) 408 8.3.4.1. Escritura de la propiedad “centrality” en los nodos 409 8.3.5. Algoritmo de cercanía ( Closeness Centrality Algorithm ) 414 8.3.5.1. Escritura de la propiedad “ closeness ” en los nodos 416 8.4. Algoritmos de comunidades 420 8.4.1. Algoritmo de coeficiente de agrupación y recuento de triángulos 420 8.4.1.1. Escritura de la propiedad “triangles” y “coefficient” en los nodos 421 8.4.2. Algoritmo de componentes fuertemente conectados (SCC) 428 8.4.2.1. Escritura de la propiedad “partition” en el grafo 428 8.4.3. Algoritmo de propagación de etiquetas (LPA) 440 14 / 8.4.3.1. Escritura de la propiedad “community” a partir de “LPA” 441 8.5. Otras posibilidades de aplicación y análisis. 457 8.5.1. Filtros a través de las propiedades y relaciones escritas en los nodos 457 8.5.2. Construcción de campos “lexicográficos” 496 8.5.3. Isotopías y representación de la metáfora en grafos 507 PARTE IV: CONCLUSIONES, CONSIDERACIONES FINALES Y TRABAJO FUTURO CONCLUSIONES 517 Evaluación del método propuesto 517 Verificación de las hipótesis de investigación y de los objetivos 520 Evaluación de las limitaciones del estudio 524 CONSIDERACIONES FINALES 528 Síntesis de las conclusiones 531 TRABAJO FUTURO 533 i) Acciones necesarias para solventar problemas de la versión actual del grafo 533 ii) Acciones orientadas a la ampliación de funcionalidades y de posibles aplicaciones 534 BIBLIOGRAFÍA 539 Fuentes textuales 539 Referencias bibliográficas 539 APÉNDICES 579 Apéndice 1: Proceso de depuración del definiens 580 Apéndice 2: Aplicación de algoritmos de similitud 598 Apéndice 3: Algoritmos de rutas óptimas. 679 Apéndice 4: Algoritmos de comunidades. 683 Apéndice 5: Campos lexicográficos 713 15 / 16 / RESUMEN Este trabajo, titulado “Grafos de vinculación semántica a partir del definiens del DUE '” , explora la relación asociativa entre palabras mediante el uso de grafos para la investigación semántica, en especial, para la investigación de la analogía conceptual en semántica computacional, a partir de los algoritmos propios de la teoría de grafos y del procesamiento de las definiciones lexicográficas del Diccionario de Uso del Español de María Moliner ( DUE) . El significado es un constructo mental compuesto por multitud de relaciones, fundamentalmente de naturaleza asociativa, marcadas por diferentes motivaciones a través del aprendizaje ofrecido por la experiencia. El diccionario, en este aspecto, representa un gran valor para el estudio del significado computacional, reflejando aquellas asociaciones compartidas por una comunidad de forma más o menos estable en el tiempo y de la manera más objetiva posible. El objetivo del trabajo aquí planteado es el estudio de cómo la estructura recursiva de la definición lexicográfica, en la cual un elemento se define a partir de otros elementos que, a su vez, se definen a partir de otros elementos diferentes, se puede usar para crear grafos de vinculación semántica, gracias a las relaciones que establecen algunos de los elementos del definiens con su definiendum, permitiendo así relacionar palabras en diferentes grados o distancias. De tal manera, esta investigación examina la analogía semántica en función de la distancia que separa dos conceptos a través de las relaciones que estos mantienen con los definidores que se contemplan en sus respectivas definiciones lexicográficas, y en los que, de manera sucesiva, se pueden descomponer, permitiendo diferentes análisis a partir de los denominadores comunes y la red de relaciones que se configura. i j i j i j ∀ x ∃ x | x ≠ x ∧ x Rn x Para toda palabra ( i ) existe al menos otra ( j ) con la que se relaciona mediante x x «n» palabras intermedias en el grafo . Del mismo modo, cada palabra contemplada en el 17 / DUE establece diferentes relaciones con cada uno de los elementos de su definiens . Dichas palabras, a su vez, mantienen sus respectivas relaciones con sendos definidores. Como resultado, se ha obtenido un entramado de relaciones de vinculación semántica, reflejado gracias a la construcción de un grafo de propiedades etiquetadas (LPGM, por sus siglas en inglés), usando Neo4j como herramienta de estudio para analizar el significado y para establecer nuevas vías y nuevos parámetros para su comprensión. El establecimiento de distancias semánticas entre los nodos correspondientes a los conceptos procesados del DUE, a partir de las relaciones que estos adquieren con el resto de nodos del grafo, ha permitido aplicar algoritmos de similitud, de caminos más cortos, de centralidad y de comunidades, entre otros, ampliando y enriqueciendo las características del grafo. De tal manera, se ha construido un multigrafo o pseudografo, es decir, un grafo con aristas múltiples, que da cuenta de las relaciones que vinculan a las palabras entre sí en la medida en la que comparten los mismos definidores, y formando posteriormente nuevas relaciones entre los conceptos gracias a diversos algoritmos de grafos que han permitido enriquecer tanto el número como la calidad de las relaciones que unen cada nodo. Como consecuencia de la red de relaciones construida, el grafo permite generar campos lexicográficos de manera automática, y ofrece interesantes aplicaciones tanto para la Lingüística Teórica como para el Procesamiento del Lenguaje Natural, abriendo nuevas posibilidades para la clasificación automática de textos, la detección automática de temas, la generación de resúmenes automáticos, la desambiguación léxica, la resolución de referencias anafóricas, catafóricas y pronominales, o la resolución de acrónimos y abreviaturas, entre otros. Avanzar en la comprensión del significado, su composición, su gestión cognitiva o su almacenaje, abre nuevas vías para el estudio del lenguaje y la posibilidad de mejorar las habilidades lingüísticas de los sistemas artificiales de lenguaje. Palabras clave: analogía semántica, distancias semánticas, DUE , grafos, lexicografía, Procesamiento del Lenguaje Natural, semántica cognitiva, semántica computacional, significado. 18 / ABSTRACT This work, entitled “Semantic linking graphs from the definiens of the DUE ”, explores the associative relationship between words through the use of graphs for semantic research, in particular, for the investigation of conceptual analogy in computational semantics, based on the algorithms of graph theory and the processing of the lexicographic definitions from the María Moliner's Diccionario de Uso del Español (DUE). Meaning is a mental construct composed of a multitude of relationships, fundamentally of an associative nature, marked by different motivations through the learning offered by experience. The dictionary, in this aspect, represents a great value for the study of computational meaning, reflecting those associations shared by a community in a more or less stable way over time and as objectively as possible. The aim of this work is to study how the recursive structure of the lexicographic definition, in which an element is defined from other elements that, in turn, are defined from other different elements, can be used to create semantic linking graphs thanks to the relationships that some of the elements of the definiens establish with their definiendum, thus allowing to relate words in different degrees or distances. In such a way, his research examines the semantic analogy in terms of the distance that separates two concepts through the relationships that they maintain with the definers that are contemplated in their respective lexicographic definitions and in which, successively, they can be decomposed, allowing different analyses based on the common denominators and the network of relationships that is configured: i j i j i j ∀ x ∃ x | x ≠ x ∧ x Rn x For every word ( i ) there exists at least one other word ( j ) to which it is x x related by "n" intermediate words in the graph. Similarly, each word contemplated in the DUE establishes different relationships with each of the elements of its definiens. These words, in turn, maintain their respective relationships with their respective definers. As a result, a network of semantic linking relationships has been obtained, reflected thanks to 19 / the construction of a labeled property graph (LPGM) using Neo4j as a study tool to analyze the meaning and to establish new ways and new parameters for its understanding. The establishment of semantic distances between the nodes corresponding to the processed concepts of the DUE, from the relationships that these acquire with the rest of the nodes of the graph, has allowed the application of algorithms of similarity, shortest paths, centrality and communities, among others, expanding and enriching the characteristics of the graph. In this way, a multigraph or pseudograph, that is, a graph with multiple edges, has been constructed, which accounts for the relationships linking words to each other insofar as they share the same definers, and subsequently forming new relationships between concepts thanks to various graph algorithms that have made possible to enrich both the number and the quality of the relationships linking each node. As a consequence of the network of relationships built, the graph allows to generate lexicographic fields automatically, and offers interesting applications for both Theoretical Linguistics and Natural Language Processing, opening new possibilities for the automatic classification of texts, the automatic detection of topics, the generation of automatic summaries, the lexical disambiguation, the resolution of anaphoric, cataphoric and pronominal references, or the resolution of acronyms and abbreviations, among others. Advancing in the understanding of meaning, its composition, its cognitive management or its storage, opens new avenues for the study of language and the possibility of improving the linguistic abilities of artificial language systems. Keywords : cognitive semantics, computational semantics, DUE , graphs, lexicography , meaning, Natural Language Processing, semantic analogy, semantic distance. 20 / SIGLAS 21 AI Artificial Intelligence AMR Abstract Meaning Representation APSP All Pairs Shortest Path (algorithm) ARN Attribute Relation Net BNF Backus Naur form BBDD Bases de datos BERT Bidirectional Encoder Representations fromTransformers BiLM Bidirectional Language Model CNMV Comisión Nacional del Mercado de Valores CBOW Continuous Bag of words CNNs Redes neuronales convolucionales CoRel Conceptual Representation language CPPNs Compositional Pattern Producing Networks CRN Concept Relation Network CR Coreference Resolution CRF Conditional Random Fields CRUD Create, Read, Update, and Delete (methods) CSV Comma-Separated Values DAML DARPA Agent Markup Language DL Description Logic DEA Diccionario del Español Actual DLE Diccionario de la Lengua Española DUE Diccionario de Uso del Español ECD Explanatory Combinatorial Dictionary ELMO Embeddings from Language Model ETL Extract, Transform and Load FFLL Funciones léxicas / 22 FunGramKB Functional Grammar Knowledge Base GCN Graph Convolutional Network GLUE General Language Understanding Evaluation GPT Generative Pre-trained Transformer GQL Graph Query Language GRU Gated Recurrent Units IA Inteligencia Artificial IE Information Extraction ISL Indexación por Semántica latente ISR Information, Search and Retrieval JSON-LD JSON for Linked Data KDML Knowledge Database Markup Language KG Knowledge Graph KSP K-Shortest Path LM Language Model LPA Label Propagation algorithm LPG Labeled Property Graphs LPGM Labeled Property Graph Model LSA Latent semantic analysis LSTM Long Short Term Memory networks MCI Modelos Cognitivos Idealizados MLC Modelo Léxico Construccional MLF Modelo Lexemático Funcional MLMs Masked Language Models MMG Medlab Media Group MSD Modelos de Semántica Distribucional MST Minimum Weight Spanning Tree MTT Meaning-Text Theory MWE Multi Word Expressions / 23 NER Name Entity Recognition NLG Natural Language Generation NLM Neural Language Modeling NLP Natural Language Processing NLU Natural Language Understanding OKG Open Knowledge Graph OOV Out-of-vocabulary OWL Ontology Web Language PCA Principal Component Analysis PLN Procesamiento de Lenguaje Natural PoS Part of Speech RDBMS Relational Database Management Systems RDF Resource Description Framework RGG Role and Reference Grammar RNNs Recurrent Neural Networks SCC Strongly Connected Components SFN Spanish FrameNet Project SGP Symbol Grounding Problem SNOMED-CT Systematized Nomenclature of Medicine – Clinical Terms SMM Semantic Memory Model SPF Shortest Path First (algorithm) SSSP Single Source Shortest Path (algorithm) SVD Singular Value Decomposition TF-IDF Term frequency – Inverse document frequency TLC Teachable Language Comprehender TLFi Trésor de la Langue Française informatisé TOT Tip of tongue TST Teoría Sentido-Texto ULMFiT Universal Language Model Fine-tuning / 24 UMLS Unified Medical Language System VSM Vector Space Model W3C World Wide Web Consortium WSD Word Sense Disambiguation / ÍNDICE DE TABLAS Apéndice 1: Proceso de depuración del definiens 580 Tabla 1: Bigramas del DUE por frecuencia de aparición (7514-50 apariciones) 581 Tabla 2: Nodos por frecuencia de aparición en el definiens (8894-133 apariciones) 583 Tabla 3: Términos del DUE en que los definienda forman parte de su definiens (limitados a 300 resultados) 595 Apéndice 2: Aplicación de algoritmos de similitud 598 Tabla 4: Las 100 palabras más cercanas a “rey” usando el índice de Jaccard 599 Tabla 5: Las 100 palabras más cercanas a “valiente” usando el índice de Jaccard 604 Tabla 6: Las 100 palabras más cercanas a “valiente” usando el índice de Jaccard 607 Tabla 7: Los 100 sustantivos más cercanos a “pereza” usando el índice de Jaccard 612 Tabla 8: Las 100 palabras más cercanas a “cantar” usando el índice de Jaccard 617 Tabla 9: Los 100 verbos más cercanos a “cantar” usando el índice de Jaccard 620 Tabla 10: Las 100 palabras más cercanas a “hombre” usando el índice de Jaccard 625 Tabla 11: Las 100 palabras más cercanas a “mujer” usando el índice de Jaccard 630 Tabla 12: 100 pares de sustantivos con un valor a partir de 0,06 en la relación “SIMILAR” 635 Tabla 13: 100 pares de palabras con un valor a partir de 0,6 en la relación “SIMILAR” 640 Tabla 14: 100 pares de palabras con un valor de 1.0 en la relación “SIMILAR” 644 Tabla 15: Los 100 sustantivos más cercanos a “rey” usando el índice de Superposición 649 Tabla 16: Las 100 palabras más cercanas a “valiente” usando el índice de Superposición 654 Tabla 17: 100 adjetivos más cercanos a “valiente” usando el índice de Superposición 659 Tabla 18: Los 100 sustantivos más cercanos a “pereza” usando el índice de Superposición 664 Tabla 19: Los 100 sustantivos más cercanos a “cantar” usando el índice de Superposición 669 Tabla 20: Los 100 verbos más cercanos a “cantar” usando el índice de Superposición 674 Apéndice 3: Algoritmos de rutas óptimas. 679 Tabla 21: Mínimo árbol recubridor (MINST) de la palabra “abacería” 680 Apéndice 4: Algoritmos de comunidades. 683 Tabla 22: Comunidad 16139 relacionada con “árbol_01” 684 Tabla 23: Nodos de la comunidad 41292 con la etiqueta de sustantivos 689 Tabla 24: Nodos de la comunidad 4489 con la etiqueta de sustantivos 692 Tabla 25: Nodos de la comunidad 395 con la etiqueta de adjetivos 695 Tabla 26: Verbos de la comunidad 8147 699 Tabla 27: Comunidad 2855 706 Apéndice 5: Campos lexicográficos 713 Tabla 28: Denominadores comunes del campo lexicográfico de “mamífero” y “carnívoro” 714 Tabla 29: Campo lexicográfico del sustantivo “libro_01” 720 Tabla 30: Campo lexicográfico del verbo “escribir_01” 733 25 / ÍNDICE DE IMÁGENES DE GRAFOS Las imágenes de los subgrafos corresponden con el grafo que ha sido construido para esta tesis, descargándolas directamente de los resultados obtenidos de Neo4j a partir de las correspondientes consultas en Cypher. 26 Figura Nº de página Figura Nº de página Figura 1 29 Figura 28 234 Figura 2 31 Figura 29 235 Figura 3 34 Figura 30 237 Figura 4 36 Figura 31 242 Figura 5 37 Figura 32 243 Figura 6 39 Figura 33 244 Figura 7 57 Figura 34 245 Figura 8 59 Figura 35 245 Figura 9 111 Figura 36 246 Figura 10 141 Figura 37 247 Figura 11 159 Figura 38 248 Figura 12 169 Figura 39 249 Figura 13 178 Figura 40 250 Figura 14 189 Figura 41 253 Figura 15 191 Figura 42 255 Figura 16 193 Figura 43 257 Figura 17 194 Figura 44 258 Figura 18 197 Figura 45 259 Figura 19 198 Figura 46 263 Figura 20 199 Figura 47 263 Figura 21 203 Figura 48 272 Figura 22 208 Figura 49 274 Figura 23 216 Figura 50 276 Figura 24 223 Figura 51 277 Figura 25 228 Figura 52 278 Figura 26 232 Figura 53 280 Figura 27 233 Figura 54 285 / 27 Figura Nº de página Figura Nº de página Figura 55 286 Figura 88 347 Figura 56 288 Figura 89 353 Figura 57 294 Figura 90 356 Figura 58 305 Figura 91 360 Figura 59 307 Figura 92 361 Figura 60 309 Figura 93 361 Figura 61 310 Figura 94 362 Figura 62 311 Figura 95 363 Figura 63 312 Figura 96 371 Figura 64 313 Figura 97 372 Figura 65 314 Figura 98 377 Figura 66 315 Figura 99 382 Figura 67 316 Figura 100 383 Figura 68 317 Figura 101 438 Figura 69 318 Figura 102 439 Figura 70 319 Figura 103 440 Figura 71 320 Figura 104 443 Figura 72 323 Figura 105 445 Figura 73 324 Figura 106 447 Figura 74 325 Figura 107 450 Figura 75 334 Figura 108 453 Figura 76 335 Figura 109 456 Figura 77 335 Figura 110 457 Figura 78 335 Figura 111 458 Figura 79 336 Figura 112 459 Figura 80 336 Figura 113 460 Figura 81 337 Figura 114 461 Figura 82 339 Figura 115 462 Figura 83 340 Figura 116 464 Figura 84 342 Figura 117 465 Figura 85 343 Figura 118 466 Figura 86 344 Figura 119 467 Figura 87 345 Figura 120 468 / 28 Figura Nº de página Figura Nº de página Figura 121 469 Figura 143 492 Figura 122 470 Figura 144 493 Figura 123 471 Figura 145 494 Figura 124 472 Figura 146 495 Figura 125 473 Figura 147 498 Figura 126 474 Figura 148 498 Figura 127 475 Figura 149 500 Figura 128 476 Figura 150 500 Figura 129 477 Figura 151 502 Figura 130 478 Figura 152 503 Figura 131 479 Figura 153 510 Figura 132 480 Figura 154 511 Figura 133 481 Figura 155 513 Figura 134 482 Figura 156 514 Figura 135 483 Figura 157 515 Figura 136 487 Figura 158 538 Figura 137 488 Figura 159 580 Figura 138 488 Figura 160 598 Figura 139 489 Figura 161 679 Figura 140 490 Figura 162 683 Figura 141 491 Figura 163 713 Figura 142 492 / PARTE I: PLANTEAMIENTO DE LA INVESTIGACIÓN ● Figura 1. Ejemplo de subgrafo extraído con Neo4j con el siguiente patrón de consulta: MATCH p= (a: V {termId: "mm_abrir_01" })<--( b : NC )-->( c : V )--( d : AQ ) return p limit 1000 29 / 30 / PREÁMBULO: REPRESENTACIÓN EN GRAFOS DEL VÍNCULO SEMÁNTICO ENTRE EL DEFINIENDUM Y EL DEFINIENS Figura 2. Ejemplo de subgrafo extraído con Neo4j con 7 nodos concentradores. El propósito de este trabajo es crear un grafo de vinculación semántica a partir de la relación que se establece entre una palabra definida ( definiendum ) y una selección de los definidores relevantes que se encuentran en la definición lexicográfica ( definiens ) del Diccionario de Uso del Español ( DUE ) de María Moliner . Usando Neo4j , un software 1 2 libre de base de datos orientada a grafos, que almacena datos estructurados en grafos de forma nativa en lugar de en tablas, se creará un grafo donde se puedan relacionar palabras 1 Se hará un uso indistinto entre las dos formas: Diccionario de Uso del Español y DUE. 2 El sofware se puede descargar en: https://neo4j.com/download/ 31 / en base al contenido semántico aportado por la definición lexicográfica de cada palabra. De tal manera, cada nodo o vértice del grafo estará constituido por una palabra (el definiendum de cada entrada del diccionario) y se relacionará con las palabras que formen parte del definiens y que cumplan con ciertos criterios de relevancia semántica (siendo a su vez definiendum de otros definiens ), y desechando el resto. A su vez, cada palabra relevante del definiens constituirá un nodo y estará relacionado con sus respectivos definidores de la definición lexicográfica del Diccionario del Uso del Español (DUE) de María Moliner. Como resultado se obtiene una red semántica de conceptos que están relacionados entre sí por diferentes tipos de vinculación y relación semántica, y que permiten aplicar algoritmos de grafos (similitud, caminos más cortos, comunidades, centralidad, etc) para escribir nuevas relaciones y propiedades en los nodos (Figuras 1 y 2). En una definición lexicográfica se usan conceptos característicos que nos permiten acceder al significado de una palabra, los definidores. Cada concepto definido, definiendum , por lo tanto, mantiene una relación asociativa directa con ciertos elementos del definiens , los asociadores, definidores de contenido semántico relevante más estrechamente relacionados con el definiendum . Extrayendo esta relación se pueden construir grafos de vinculación semántica que permitan relacionar unos conceptos con otros, a partir de la descomposición recursiva de la definición lexicográfica y la relación de sus elementos con la palabra definida. En las palabras del definiens hay algunas con contenido semántico pleno (fundamentalmente las categorías abiertas: sustantivos, adjetivos y verbos), y palabras sin él (categorías cerradas: preposiciones, conjunciones, determinantes). Realizando previamente un proceso de depuración de estas palabras no relevantes en cuanto a su vinculación semántica con el definiendum se puede construir un grafo que refleje las relaciones de vinculación del léxico. Por ejemplo, a partir de la definición del Diccionario de Uso del Español de María Moliner de la palabra “afasia” , se 3 han marcado en rojo los definidores (asociadores) que mantienen una relación asociativa directa con la palabra definida. 3 Se ha optado por el uso de comillas inglesas en lugar de las simples, o de las latinas, para ser consistentes con el formato devuelto por Neo4j . 32 / afasia ( DUE ) ... Pérdida de la facultad de comprender o emitir lenguaje a causa de una lesión cerebral . De la definición lexicográfica anterior del DUE asociamos “afasia” con sus definidores válidos, es decir, con aquellos elementos de la definición que aportan un valor semántico y mantienen una relación asociativa fuerte con el definiendum , (en color bermejo) dejando fuera en este caso preposiciones, artículos y la locución “a causa de”: afasia----→ pérdida afasia----→ facultad afasia----→ comprender afasia----→ emitir afasia----→ lenguaje afasia----→ lesión afasia----→ cerebral Estas relaciones asociativas entre “afasia” y sus definidores (“pérdida”, “facultad”, “comprender”, “emitir”, “lenguaje”, “lesión”, y “cerebral”) pasadas a un grafo en Neo4j (Figura 3) permiten visualizar y relacionar los conceptos que a través de los elementos comunes del definiens construyen una red de relaciones de significado que dan cuenta de la proximidad semántica entre los nodos. 33 / ● Figura 3. Subgrafo a partir del grafo construido, de la consulta en Cypher : MATCH (p:NC{termId:"mm_afasia_01"})-[r]-(q) RETURN p,q,r limit 100 De la misma manera que cognitivamente construimos el significado a partir de significados previos, en la definición lexicográfica hay una estructura recursiva donde cada definición se basa a su vez en otras palabras con su respectivos significados plasmados en los diccionarios a través de una definición. Esta estructura recursiva permite construir un grafo donde cada nodo es un concepto que se relaciona con los demás en función de la descomposición sémica/lexicográfica extraída de su definición, estableciéndose diferentes niveles relacionales entre los conceptos según los elementos que componen el definiens de cada palabra y que refleja la distancia asociativa de unos conceptos con otros. 34 / A partir de la definición del ejemplo anterior, se puede descomponer cada uno de los definidores en sus respectivas definiciones y volver a extraer los definidores válidos (en magenta), mientras que las unidades léxicas con una intensión muy débil (cosa, algo, o las pertenecientes a categorías cerradas, no se han extraído): ● afasia----→ pérdida : Acción de perder algo o de perder se , extraviar se . 4 ● afasia----→ facultad : Capacidad física de las personas para realizar determinada función . ● afasia----→ emitir : Producir una cosa otra que sale de ella. ● afasia----→ comprender : Percibir el significado de algo. ● afasia----→ lenguaje : Facultad de emplear sonidos articulados para expresar se, propia del hombre. ● afasia----→ lesión : Cualquier alteración perjudicial producida en el cuerpo , particularmente en los tejidos , por una causa externa o una enfermedad . ● afasia----→ cerebral : Del cerebro. Como se puede apreciar en la figura 4, de esta manera “afasia” está conectada directamente por los definidores extraídos de su propia definición (“pérdida”, “facultad”, “comprender”, “emitir”, “lenguaje”, “lesión”, y “cerebral”) y a “2 saltos” de distancia de los definidores válidos extraídos a su vez de la definición de cada uno de sus definidores válidos respectivos (“perder”, “extraviar”, “capacidad”, “física”, “persona”, “realizar”, “función”, “pérdida”, “facultad”, “comprender”, “emitir”, “lenguaje”, “lesión”, y “cerebral”). 4 Las formas pronominales no se han considerado como asociadores, es decir, como definidores válidos para ser extraídos como nodos, pues no aportan información característica del significado, y de extraerse, unirían elementos con un significado a veces totalmente dispar. 35 / ● Figura 4. Subgrafo en el que se han visualizado las relaciones de salida de los respectivos definidores de “afasia_01”. La capacidad asociativa conceptual del ser humano sienta una de las bases más importantes del pensamiento, y por extensión, del lenguaje, emular dicha capacidad representa una oportunidad para el avance de las capacidades lingüísticas artificiales de las máquinas, y puede abrir nuevos caminos para el estudio de la analogía conceptual y textual, permitiendo la organización automática del cono léxico de María Moliner. Usando las asociaciones que la propia definición lexicográfica del DUE nos aporta, se ha construido un grafo de vinculación semántica donde cada nodo está relacionado con 36 / otros nodos en función de la relación establecida con los elementos de la definición lexicográfica. A partir de esta relación de base extraída del DUE , se han construido otras relaciones (Figura 5) y otras propiedades en los nodos, aplicando diferentes algoritmos de grafos (algoritmos de similitud, de centralidad, de comunidades, caminos más cortos, etc.). ● Figura 5. Subgrafo de la consulta en Cypher en la que se ha realizado una consulta para obtener los nodos y las relaciones de “afasia_01” sin importar la dirección de la relación o el tipo, a partir del siguiente patrón en Cypher : MATCH (p:NC{termId:"mm_afasia_01"})-[r]-(q) RETURN p,q,r limit 100 37 / 38 / CAPÍTULO 1: INTRODUCCIÓN, OBJETIVOS, HIPÓTESIS JUSTIFICACIÓN Y ASPECTOS METODOLÓGICOS En este capítulo se introducen algunos de los conceptos más relevantes acerca de la representación del significado y su relación con los grafos. Además se presentan los objetivos, generales y específicos, la hipótesis, las preguntas de investigación, la justificación de este trabajo y los aspectos metodológicos seguidos en esta investigación. ● Figura 6. Subgrafo de ejemplo de la conectividad del grafo, en el que se han visualizado diferentes relaciones de nodos con la etiqueta de sustantivos en torno a la palabra “bebida_01”. 39 / 1. Grafo de vinculación semántica a partir del definiens del DUE 1.1. Introducción A lo largo de la historia se han dado numerosas explicaciones sobre la naturaleza de las palabras y su relación con el significado. Las teorías del significado han tenido como objetivo fundamental explicar en qué consiste esta relación que se establece entre las palabra y el significado. Desde la la Filosofía, Filosofía del lenguaje, la Psicología o la Lingüística, entre otras disciplinas, se ha procurado entender la intrincada naturaleza del significado: su construcción, su evolución y su desempeño en un proceso comunicativo. Aunque se han ido haciendo avances para explicar los mecanismos, tanto psicológicos como cognitivos (Pinker, 1995), por los cuales un individuo, según el esquema del significado tradicional, asocia una palabra en determinada lengua con uno o varios significados, la cuestión sobre qué es el significado todavía presenta profundas incógnitas. Y contamos con una larga tradición, fruto de numerosas investigaciones en las que la determinación del significado ha sido un elemento central: Davidson, (1967, 1978, 1979, 1984, 1989); Putnam (1974, 1975); Lyons (1977, 1995); Geeraerts (1993) . Las teorías del significado tienen como objetivo analizar la naturaleza del significado y comprender las condiciones de su aparición y construcción (Dummett, 1975). Pero dar cuenta de qué es el significado incluye en gran parte entender cómo opera el pensamiento (Jackendoff et al., 2012). Como mecanismo que maneja el significado, el pensamiento se revela como una máquina de significación sobre la experiencia y la percepción que de ella obtenemos. Ya Platón (427-348 a.C.), no solo en el Crátilo (ed. de Calvo, 1981), sino a lo largo de toda su obra, hace consideraciones sobre el significado y la función de la percepción en su formación. Por ejemplo, en el Teeteto (ed. de Ferrari, 2013) se pregunta sobre el papel de la percepción a la hora de crear significados, y plantea la identificación entre palabra y cosa designada. Para la filosofía analítica en el siglo XIX y XX las teorías del significado fueron un aspecto fundamental, con nombres como el del filósofo alemán Gottlob Frege (1892), y el austríaco Ludwig Wittgenstein (1961) pero, durante estos siglos, la filosofía analítica se desarrolló enormemente con muchos otros tan importantes como Bolzano (1837), Moore (1905), o Bertrand Russell (1913), que 40 / junto con el Círculo de Viena, conformaron un sustrato enormemente fértil para las teorías del significado que se desarrollarían durante el siglo XX (Dummett, 1999). Por su parte, los diccionarios son la herramienta que con más frecuencia se usa para acceder al significado de una palabra, actualmente en particular a través de internet (Fernández-Pampillón y Matesanz del Barrio, 2006). Aunque no es correcto pensar que los diccionarios “guardan” los significados de las palabras, muchos usuarios así lo consideran y los utilizan para conocer los significados que “tienen” las palabras, al menos, los significados más comunes y asentados. Los significados son productos cognitivos, accesibles mentalmente mediante el lenguaje como resultado de la abstracción entre propiedades y relaciones que caracterizan parcelas de la realidad. Sin embargo, las palabras no son las entidades del mundo extralingüístico, sino ideas en las cabezas de los hablantes (Locke, 1847; Chomsky, 1995). Cuanto mejor se caracterizan éstas en una definición, más fácil es acceder a su significado. Esta tarea no es en absoluto trivial, como apuntaba Manuel Seco (1978: 223) en referencia a la definición lexicográfica: “ es a la vez que la médula del artículo lexicográfico, la tarea más ardua que le toca al lexicógrafo, tarea cuya delicadeza, cuya complejidad y cuya aspereza reconocen no solo los oficiales de este arte, sino los lingüistas todos y los pensadores ”. Como también señala Periñán Pascual (2000), muchos investigadores en lingüística computacional coinciden en que el mejor método para la construcción de un lexicón computacional es el análisis automático de un diccionario legible por la máquina, ya que en la entrada léxica de un diccionario se encuentra la información que necesita el lexicón en un sistema de PLN. El trabajo de procesamiento necesario para ello consiste en decodificar dicha información en lenguaje natural hecha por el lexicógrafo de tal manera que pueda ser aprovechada por una máquina. En una definición encontramos palabras que se relacionan de diferentes maneras entre ellas y con la palabra a la que definen. Aunque existen muchos tipos de relaciones en las definiciones (relaciones semánticas, sintagmáticas, paradigmáticas, etc.), la relación asociativa del campo semántico que las une con la palabra definida es la más general, y por lo tanto, la que engloba al resto de relaciones. La estructura recursiva que se encuentra en el significado, entendido como una construcción mental que se asienta 41 / sobre construcciones previas y que tienen su origen en la percepción (Ogden, Richards et al., 1923), permite hacer cadenas asociativas útiles para enriquecer el conocimiento que tenemos del mundo. Por ejemplo, dentro de las orientaciones semánticas de tipo referencial, las teorías de la referencia indirecta explican el significado como un proceso psicológico interno del sujeto, de carácter asociativo, por el cual el signo utilizado por éste se relaciona con el objeto significado (Jiménez Ruiz, 1991). De la misma manera, en un diccionario encontramos esta estructura recursiva que nos permite establecer cadenas asociativas a partir de las palabras que conforman la definición de un término, y que a su vez, nos remiten a otra definición con sus respectivas asociaciones. Además nuestra mente trabaja con un “diccionario mental” que le permite establecer la distancia relativa entre palabras. Es decir, que aunque la mente no es capaz de medir la distancia absoluta entre dos términos de forma numérica, esta puede establecer si está más o menos cerca un concepto de otro en función del esfuerzo asociativo que debe hacer para vincularlas. Desde el punto de vista computacional es posible explotar esta estructura recursiva que mantienen las palabras con sus definidores para establecer una red de asociación entre conceptos en función de su grado de relación. El grado de relación entre dos palabras se puede determinar, entre otras cosas, por el número de veces en las que se descompone una palabra en sus definidores hasta dar, como resultado de la descomposición, con la otra palabra asociada, es decir, hasta encontrar un camino que conecte ambas palabras a través de los elementos que componen el definiens de cada una de ellas. Desde que R. Quillian (1967) acuñase el término de red semántica para explicar cómo se organiza el significado en la memoria de los individuos, se abrieron múltiples vías para la representación computacional del significado. En este sentido, los grafos permiten representar y trabajar de forma eficiente con las relaciones asociativas (Medina et al., 2005) que pueden ser extraídas de un diccionario (Yuhua, McLean et al., 2006). En los grafos, la distancia semántica entre dos conceptos se puede determinar a partir de diferentes maneras, por ejemplo, por el número de saltos necesarios entre dos nodos, o el camino más corto (Dijkstra, 1959), aunque también se puede calcular una medida de similaridad en base al número de definidores comunes entre dos palabras, es decir, el número de elementos comunes entre dos conjuntos, en este caso, palabras (Jaccard, 1901; Tversky, 1977). Actualmente se han refinado los métodos que explotan cuantitativamente las relaciones que se establecen entre las palabras en un determinado texto y se ha 42 / intentado traducir cualitativamente (Achananuparp, Xiaohua y Shen, 2008). Este conocimiento extrínseco, es decir, no plasmado explícitamente en el texto, vendría determinado por la distribución de las palabras y las relaciones que mantienen en el texto (Antonín, 2018). Sin embargo, además de este valor extrínseco, desde el punto de vista lexicográfico, cada palabra en un diccionario tiene un determinado valor intrínseco, lo que la convierte en coadyuvante, entre otras cosas, para la correcta desambiguación de cada término. Aunque idealmente se trabajara con un texto en el que no hubiera términos polisémicos, el problema seguiría latente. La desambiguación valida o desecha los posibles conjuntos de valores de una palabra (acepciones) pero se seguiría sin aprovechar las asociaciones que de manera interna desarrolla cada palabra. La hipótesis de la distribución de Z. Harris (1954) por la cual dos palabras con distribuciones semejantes tienen significados semejantes, en la actualidad ha atraído notablemente la atención del Procesamiento del Lenguaje Natural hacia la Semántica distribucional. En la misma línea se puede considerar los populares word embeddings actuales como deudores de J.R. Firth (1955), quien consolidó la idea de que el valor de una palabra se define por el valor de las palabras que la acompañan. A pesar de los grandes resultados obtenidos mediante métodos que vectorizan la distribución de las palabras y crean espacios semánticos, como Word2vec o GloVe , se debe señalar que dichos métodos suelen “aplanar” el significado , dependiendo de la técnica empleada, al no trabajar con textos en 5 los que se hayan desambiguado previamente las palabras, por lo que la polisemia se encuentra truncada en las métricas obtenidas, bien creando un único vector que condense todas las apariciones de una forma, o creando un vector para cada aparición. El acceso al significado es un proceso complejo e intrincado, pero los avances tecnológicos permiten abrir nuevas vías para entender tanto el proceso cognitivo que lo sostiene como incorporar nuevas funcionalidades a las herramientas de procesamiento del lenguaje actuales. En un momento en el que la cantidad de información es abrumadora, el avance del conocimiento pasa por encontrar soluciones que permitan facilitar la relación de las personas con la información, y la manera más óptima de hacerlo es a través de sistemas que emulen la capacidad humana para manejar el lenguaje. 5 Los embeddings se obtienen codificando en los vectores únicamente información de la distribución de las palabras en el texto. 43 / 1.2. Hipótesis, objetivos y preguntas de investigación 1.2.1. Propuesta e hipótesis Con este trabajo se pretende construir un grafo para analizar y poder trabajar con las relaciones de vinculación semántica que mantienen las palabras contenidas en el Diccionario de Uso del Español de María Moliner a partir sus definiciones lexicográficas, extrayendo las relaciones asociativas que mantiene cada palabra ( definiendum ) con los elementos más sobresalientes de su respectiva definición ( definiens ). Con dicho proceso se formará una red que dé cuenta de los diferentes niveles de asociación a partir de la estructura recursiva de la relación entre definiendum y definiens , para poder desarrollar nuevas técnicas para trabajar con distancias semánticas (métricas de similitud entre palabras). Este trabajo tiene como objetivo ofrecer una metodología que pueda usarse de forma general para la asociación de conceptos y que amplíe la capacidad de procesamiento semántico de las máquinas. La manera en la que almacenamos una información determina la manera en la que podemos recuperar esa información, y por lo tanto, el hecho de que la técnica avance nos permite afrontar la problemática del procesamiento semántico con una nueva tecnología, como se hará en esta investigación a través de los grafos y de diferentes algoritmos propios de ellos. La hipótesis de la que se parte es que las relaciones que implícitamente existen y se pueden establecer entre los definidores de cada una de las acepciones de las entradas del diccionario pueden ser visualizadas mediante grafos, los cuales permiten conocer el grado de relación y distancia entre palabras consideradas en campos lexicográficos, sumado a su vez al análisis que permiten los algoritmos propios de grafos. La investigación, aunque no se puede detener en profundidad en todos los procesos, biológicos y psicológicos del lenguaje, sí intenta englobarlos y tenerlos en cuenta a la hora de ir estableciendo paralelismos con las mismas funcionalidades en las tecnologías que se analizan. Cuanto mejor entendamos el proceso cognitivo involucrado en el procesamiento semántico mejor se podrá replicar en las máquinas. Por esos motivos, a pesar de que el objetivo principal de la tesis es desarrollar nuevas soluciones para aumentar las facultades de procesamiento semántico, se analizan algunos aspectos 44 / necesarios para la gestión del significado de manera computacional, y por lo tanto, del conocimiento, como el proceso de aprendizaje humano o la facultad de la memoria, necesitando para ello un marco epistemológico muy amplio cubierto por ciencias como la neurobiología, la psicología o las matemáticas. 1.2.3. Objetivos ● Objetivos Generales (OG) OG(I): Avanzar en la comprensión de los procesos cognitivos relacionados con la creación, vinculación y desarrollo del significado, y aplicarlo en mejoras para los sistemas computacionales que organizan el conocimiento y su extracción. OG(II): Comprender mejor los mecanismos involucrados con la facultad del lenguaje humano en general, y con el significado en particular. OG(III): Evaluar las capacidades semánticas de los sistemas computacionales actuales, sus posibilidades y sus limitaciones. OG(IV): Analizar las características del conocimiento lingüístico que es usado dentro de las tecnologías semánticas desde una perspectiva lo más global e interdisciplinar posible. OG(V): Proponer nuevas vías de estudio del significado y del léxico a través de un modelo de grafos por el que se puedan obtener nuevas métricas para analizar el significado y las relaciones que los conceptos establecen entre sí a partir del conocimiento lexicográfico. OG(VI): Aplicar o integrar el conocimiento obtenido en otros sistemas dentro de la tecnología semántica que faciliten el acceso al conocimiento entre un humano y una máquina. 45 / OG(VII): Transformar el avance tecnológico en herramientas que promuevan el desarrollo científico y humano. ● Objetivos específicos (OE) OE(I): Modelizar en un grafo las relaciones de vinculación semántica a partir de las definiciones lexicográficas del DUE de María Moliner. OE(II): Proponer una metodología que permita analizar, mediante el uso de grafos, ciertas características del léxico y del significado y la aplicación de algoritmos de grafos. OE(III): Aplicar diferentes algoritmos de grafos (similitud, caminos más cortos, centralidad, comunidades, etc.) y evaluar su comportamiento en el grafo construido. OE(IV): Obtener nuevas maneras de caracterizar el valor semántico de las palabras usando las métricas obtenidas como resultado de la aplicación de los algoritmos de grafos. OE(V): Poder reflejar, medir y estructurar las distancias semánticas entre los conceptos, es decir el grado de lejanía o cercanía que existe entre diferentes conceptos (similitud entre conceptos). 1.2.4. Preguntas de investigación A partir de los objetivos y de la hipótesis que se ha planteado, las preguntas de investigación que orientarán el estudio propuesto son: 1) ¿Es posible representar en un grafo las relaciones de vinculación semántica del léxico usando como base la relación entre el definiendum y el definiens ? 46 / 2) ¿Se pueden obtener distancias semánticas a partir de los saltos necesarios entre dos palabras descomponiendo sucesivamente cada palabra en los elementos del definiens hasta encontrar un camino común que los una? 3) ¿Los modelos de grafos ofrecen como tecnología ventajas adicionales para el estudio semántico y lexicográfico? 4) ¿Cómo se pueden caracterizar las propiedades de los nodos y de las relaciones del grafo? 5) ¿Son válidos los algoritmos de grafos (similitud, caminos más cortos, centralidad y comunidades) para el análisis de las características del grafo planteado? 1.3. Justificación Antes de abordar los objetivos propuestos en esta investigación, previamente se debe tener en consideración que el acceso a la información representa actualmente un gran reto. Aunque resulte paradójico en la Era de la información , la ingente cantidad de datos disponibles convierte en un problema la obtención de los datos adecuados. Se dispone de muchos datos pero es difícil acceder a ellos y aprovecharlos. Dentro del Procesamiento del Lenguaje Natural (PLN) se han ido desarrollando una serie de herramientas y metodologías para ayudar con el procesamiento de esos datos: buscadores, generación automática de resúmenes abstractivos y extractivos, algoritmos de similitud entre textos, minería de datos (como extracción de entidades), resolución de correferencias, desambiguación léxica y estructural, por poner algunos ejemplos. Sin embargo, estos sistemas no son capaces de trabajar y entender el significado como lo hace nuestra mente. El auge de sistemas conversacionales, como cualquier otro tipo de intermediario digital entre un usuario y un determinado conocimiento, hace que cada vez sean más necesarias nuevas estrategias que ayuden a optimizar la Interacción Persona-Máquina (IPM). Particularmente, de facilitar la relación que tenemos con un determinado conocimiento, que se asienta sobre la capacidad de interpretación automática del significado. Cuando se 47 / trabaja computacionalmente con el lenguaje se recurre a métodos que trabajan directamente a partir de un texto. Sin embargo, cuando una persona analiza un texto recurre a mucho conocimiento externo a dicho texto, lo que permite decodificar y analizar el significado asociado con esos datos de manera más completa y eficiente. En mayor o menor medida, se ha ido codificando el conocimiento lingüístico de manera que pueda ser aprovechado por un lenguaje de programación (Padró y Stanilovsky, 2012) y esté disponible en diferentes bibliotecas ( NLTK, Spacy, Freeling , 6 StandfordNLP, etc). A pesar de la sofisticación matemática y la cobertura cuantitativa a la que se ha llegado, los resultados cualitativos aún distan mucho de alcanzar la capacidad que tiene nuestra mente de procesar el significado. El significado se puede entender como un resultado extraordinariamente complejo que parte de la asignación de determinados valores a determinados datos por un proceso cognitivo de naturaleza altamente asociativa, proceso del que, todavía, conocemos poco. Emular la capacidad asociativa humana que permite abstraer significados está fuera del objetivo de este trabajo, sin embargo, se puede analizar el significado desde una perspectiva computacional en base a la información explícita de las definiciones que se encuentran en los diccionarios. Aunque el potencial asociativo de las palabras es mucho más amplio, en este trabajo nos vamos a circunscribir a ciertos significados que se han consolidado, y que por lo tanto están reflejados en la definición lexicográfica. Las relaciones asociativas que se pueden construir a través del diccionario son mucho más reducidas que las relaciones asociativas que se pueden realizar, además a esto se le añade la problemática que apuntaba Julio Casares (1950) sobre la inestabilidad en la correlación entre concepto y palabra. Para dar cuenta de estas relaciones asociativas entre las palabras es necesario poder discernir el significado que cada palabra mantiene en la definición, y para la tarea de desambiguación semántica es necesario contar con las asociaciones que cada palabra desarrolla para asignar el significado adecuado a cada una de ellas. La problemática del significado está muy unida a la problemática de la definición del signo lingüístico. La comparación e integración que realizó Heger (1967) en su trapecio metodológico sobre los diferentes planteamientos del signo permitió dar cuenta de la polisemia y de la sinonimia, que hasta entonces no estaba representada convenientemente, resolviendo así mismo la relación 6 Las bibliotecas o librerías, en ámbito informático, son un conjunto de implementaciones funcionales. 48 / entre el signo y la realidad extralingüística (Jiménez Ruiz, 1991). La capacidad relacional que ofrecen las representaciones mediante grafos, como metodología, hace que se constituyan como una herramienta altamente adecuada para representar las asociaciones que encontramos en los diccionarios a través de sus definiciones lexicográficas. El empleo de grafos permite una gran flexibilidad a la hora de modelizar el conocimiento, en especial el conocimiento lingüístico. En este aspecto frente a la rigidez de las tradicionales tablas o bases de datos relacionales, los grafos permiten representar de manera muy eficiente la manera que tenemos de asociar palabras. En concreto en esta tesis se ha intentado analizar y reflejar computacionalmente las asociaciones semánticas que los usuarios han establecido en una lengua determinada, en este caso el español, usando como base el DUE de María Moliner. La teoría de grafos se ha usado desde el famoso problema de los puentes de Königsberg, planteado en el siglo XVIII por Leonhard Euler en la resolución de problemas de diversa índole (Valle et al., 2019). El lenguaje no es matemático y tampoco, ni mucho menos, los usuarios del lenguaje lo son. Sin embargo, las matemáticas se han consolidado como un fuerte aliado para la modelización, emulación y comprensión del lenguaje. En un momento donde cada vez es más frecuente la interacción en lenguaje natural con programas, se hace más necesario avanzar en técnicas que permitan a estos programas alcanzar un grado mayor en la habilidad para procesar el lenguaje natural y que sea así más exitoso el intercambio de información que se realiza. La tecnología relacionada con grafos no solo ha sido adoptada por las grandes empresas para sus negocios, sino que también permite una nueva oportunidad para el avance en muchos campos, tanto científicos como humanísticos, ya que permite reflejar la relación y las conexiones de los datos de forma muy visual permitiendo un análisis y un conocimiento más profundo y rico de los datos, sobre todo de aquellos que están altamente interrelacionados. La posibilidad de trabajar con gran cantidad de datos, cuantificarlos, calificarlos, y de extraer las conexiones que mantienen entre ellos ofrece una gran ventaja para interpretar y sacar a relucir relaciones complejas que de otra manera serían imposibles de recuperar . 7 7 The International Consortium of Investigative Journalists (ICIJ) usó Neo4j para desentramar una de las tramas financieras más complejas hasta la fecha, los llamados Panamá Papers: https://neo4j.com/blog/analyzing-panama-papers-neo4j/ (Consultado 01/06/2019). 49 / En el Diccionario de la lengua española (DLE) de la Real Academia se define diccionario como: “ Repertorio en forma de libro o en soporte electrónico en el que se recogen, según un orden determinado, las palabras o expresiones de una o más lenguas, o de una materia concreta, acompañadas de su definición, equivalencia o explicación ”. De forma simplificada para el objetivo que nos ocupa, podemos entender que el diccionario consiste en una relación de palabras con sus definiciones. Cada definición a su vez está compuesta por palabras que también están definidas en el propio diccionario, si este es autocontenido. Esta estructura recursiva que se encuentra en la relación entre las entradas y las palabras que constituyen la definición (definidores), mantienen una relación asociativa que puede ser extraída y representada en un grafo. En la actualidad, dentro de todo lo concerniente al campo de búsqueda y recuperación de información ( Information Search and Retrieval , ISR), hay un creciente interés por establecer medidas de similitud, como se verá en los siguientes capítulos, entre palabras o entre textos (Abdalgader, 2014), de manera que satisfagan la necesidad de recuperar información relevante, y de aumentar la capacidad de las máquinas de establecer correlaciones entre las diferentes maneras en las que puede ser expresado el significado (Mel’cuk, 1989). En este sentido la Théorie Sens-Texte (Teoría Sentido-Texto) de Igor Mel'čuk y A. Žolkovskij (1965) supuso un interesante avance, no solo en el campo de la traducción, sino en la Inteligencia Artificial. De forma análoga se puede pensar en términos conjuntistas sobre el significado: S ⊆ E ❌ I . En el que el significado S es un subconjunto del producto cartesiano de E por I, los cuales contienen los pares (e, i), donde e, se refiere a las expresiones en lenguaje natural que pueden ser usadas para evocar las intenciones comunicativas, i (Quine, 1960; Grice 1968). De tal manera, se puede definir la comprensión del significado como el proceso de descubrir i , a través de las formas de e . (Bender y Koller, 2020). A través de un grafo es posible constituir una red asociativa de palabras en la que se puede medir la distancia semántica existente entre ellas (Mohler, Bunescu y Mihalcea, 2011). Midiendo la distancia entre palabras se pueden obtener mejores métricas para determinar la similitud entre frases y entre textos, y también para la desambiguación semántica, entre otras cosas. El tipo de diccionario condiciona la información asociada a cada entrada, (por ejemplo: etimología, categoría gramatical, ejemplos de uso, sinónimos, 50 / etc). Pero tanto en los diccionarios generales, como en cualquier otro de un dominio específico, básicamente la información que resulta más interesante para el objetivo planteado son las relaciones de asociación a través del campo semántico entre la palabra definida, definiendum , y los definidores que conforman el definiens, con los que guarda diferentes tipos de vinculación semántica. Para el objetivo que se pretende alcanzar el análisis se centrará en un primer momento en las categorías de palabras que se deben discernir y su validez como “asociadores” de la palabra definida para la creación de un grafo de vinculación semántica, para después aplicar diferentes algoritmos de grafos. Dentro de la definición lexicográfica de una palabra se pueden encontrar diferentes tipos de relaciones semánticas y, como es obvio, palabras con diferente categoría gramatical. El tipo de selección que se lleve a cabo entre los definidores de un lema determina las relaciones que se pueden extraer. Sin embargo, aunque las relaciones que se encuentran entre las palabras de una definición pueden tener una gran complejidad y son de un número muy diverso tipológicamente, todas se pueden considerar como subgrupos de la relación asociativa; es decir, una palabra se asocia con otra mediante un subtipo específico de relación. Por ejemplo, “dedo” mantiene una relación semántica de meronimia-holonimia con “mano”, o dicho de otra manera: “dedo” está asociado o tiene una relación asociativa con “mano” del tipo meronimia-holonimia. Todas las relaciones entre palabras de una definición se pueden englobar en la relación de asociación, de modo general. El estado de la técnica actual permite un análisis sintáctico de la definición con unos resultados adecuados para establecer un primer descarte por selección categorial de palabras . En un grafo se pueden asociar propiedades 8 y valores a los nodos y a las relaciones permitiendo identificar de forma más precisa aquellos nodos y relaciones que se quieren consultar, y también posibilitando un enriquecimiento paulatino del grafo sin necesidad de tener un diseño cerrado de su esquema a priori . Las características del grafo posibilitan añadir información, o incluso fusionar diccionarios complementarios según las necesidades o los escenarios a los que se quieran adaptar. Como expone García de Quesada (2001), la casuística de los tipos de definiciones de un diccionario es amplia y controvertida, casi tanto como la tipología del 8 Las bibliotecas de NLP como Spacy, NLTK, o Freeling disponen de analizadores morfosintácticos, ( en inglés: “parsers” y “taggers”). 51 / texto (Bernárdez, 1982). Por ejemplo, Wright y Budin (1997), hacen una distinción entre definiciones terminográficas extensionales, intensionales y partitivas; según se basen en la relación de elementos que componen la clase definida, en sus características definitorias, o en los elementos en los que se constituyen. Por otro lado, De Bessé (1997) distingue el tipo de definición según la naturaleza descriptiva o prescriptiva, y Sager (1990) diferencia tres tipos de definición: la terminológica, la intensional y la enciclopédica. De acuerdo con Porto Dapena (2002), la relación entre el lema definido, o definiendum , y el enunciado parafrástico con que se relaciona, o definiens, condiciona la tipología de la definición. La tipología de la definición lexicográfica está sujeta a numerosas variables dependiendo del autor u autores que participen, del dominio del diccionario, de la configuración del lemario seleccionado, de la categoría gramatical de las palabras que se definan, de las posibilidades que permita el lema según sus características, etc. Aún con toda la variabilidad que podamos encontrar, todas guardan un denominador común, que es el principio de un diccionario semasiológico: remitir a un significado. Este significado puede ser expresado por numerosas vías. Por ejemplo, como indica García de Quesada (2001), Trimble (1985) propone tres esquemas de definición (formal, semiformal y no formal), en el que el formal estaría compuesto de un hiperónimo acompañado de las características diferenciadoras frente a sus cohipónimos. La clasificación de esas vías especifica el tipo de relación asociativa que las palabras mantienen con la palabra definida, o entre ellas mismas. En este sentido, se debe determinar el propósito del grafo, ya que desde el punto de vista computacional una máquina solo procesa caracteres, si únicamente se quieren asociar palabras con palabras se puede “aplanar” la polisemia o la homonimia y asociar “gato” tanto a “mamífero”, como a “herramienta”. Pero si el objetivo es asociar palabras según su cercanía de significado, se necesita trabajar cada significado que desarrolla una palabra de manera independiente, debiendo caracterizar cada significado correspondiente a una determinada acepción o entrada. Por ejemplo: gato_01 > mamífero; gato_02 > herramienta. Además se pueden considerar otras propiedades dentro de la definición; por ejemplo, aunque en un diccionario general no haya una única estructura fija en una definición (Moraga y Montesa, 1983), al igual que en determinados textos (Bernárdez, 1983; Isenberg, 1983), se puede encontrar con bastante frecuencia una jerarquía de tipo piramidal, donde las relaciones de asociación son más o menos fuertes en función de la posición que ocupan los definidores en el definiens . La importancia del 52 / definidor según la posición que ocupe en la definición, por ejemplo, puede ser reflejada como peso en las relaciones asociativas del grafo en Neo4j , así como las relaciones sintácticas que se establecen entre los elementos de la definición , aunque por no darse de 9 forma sistemática, o plantear otros retos diferentes a los propuestos, no se han incluido en este trabajo. Como vemos en el siguiente ejemplo extraído del DUE de María Moliner sobre la primera acepción de “ quijote ”, en este caso es difícil determinar el grado de relevancia por la posición de sus definidores: “ pieza de la armadura de guerra que cubría el muslo ”. Extrayendo los definidores válidos, obtendríamos: pieza (1), armadura (2), guerra (3), cubrir (4), muslo (5). Los algoritmos de grafos que han sido aplicados, y el propio grafo de vinculación semántica construido, proporcionan un apoyo adicional para investigar tanto el léxico como el significado, y obtener nuevos valores que permitan identificar o discernir con criterios complementarios sus características. 1.4. Organización de la tesis y metodología En este apartado se presenta la estructura de la tesis con una breve relación de los capítulos y sus contenidos. La estructura de la tesis está organizada en tres partes, y las conclusiones, según se indica a continuación: • Parte I: Planteamiento de la investigación • Parte II: Marco teórico • Parte III: Parte experimental • Parte IV: Conclusiones La primera parte corresponde con el planteamiento de la investigación. En el Capítulo 1 se presenta la introducción, los objetivos que se desean alcanzar, tanto generales como específicos, y la justificación de la relevancia de la investigación llevada a 9 Remitimos en este aspecto a los interesantes trabajos de Kovács, Gémes, K ornai , y Recski (2020) sobre vinculación léxica a través de grafos semánticos, usando la información sintáctica de las definiciones de diccionarios. 53 https://scholar.google.es/citations?user=dBBywqkAAAAJ&hl=es&oi=sra / cabo sobre la construcción del grafo de vinculación semántica a partir del definiens (y el definiendum ) del DUE . En la segunda parte se presenta el marco teórico relacionado con la investigación propuesta, y se presenta el estado de la cuestión relativo a las tecnologías semánticas de mayor relevancia para la investigación. En el capítulo 2 se realiza un recorrido por las principales perspectivas en semántica y semántica computacional, atendiendo fundamentalmente a la representación del significado desde el punto de vista computacional, desde el enfoque estructural, el cognitivo, el distribucional, y de forma más específica se presenta la Teoría Sentido-Texto (TST), y el modelo Lexemático Funcional. El capítulo 3 recoge tecnologías relacionadas con la investigación propuesta aplicadas al procesamiento semántico, así como sus principales aplicaciones y herramientas. En este capítulo se presenta el trabajo previo relacionado con la creación del grafo partiendo del Diccionario de Uso del Español de María Moliner, exponiéndose una serie de teorías relacionadas, y de metodologías actuales. En el capítulo 4 se presentan otras cuestiones teóricas específicas para la investigación respeto a la estructura, relaciones y características del significado. Para ello se analiza la estructura del definiendum y del definiens, y las propiedades que se pueden establecer para analizar el significado. En el capítulo 5 se exponen las principales características, en relación con el objetivo de la tesis, del Diccionario de Uso del Español de María Moliner, que es el diccionario usado como base para construir el grafo de vinculación semántica que se plantea. La tercera parte está dedicada a la parte experimental. En el capítulo 6 se encuentra la descripción del proceso de construcción del grafo de vinculación semántica en Neo4j , el software de bases de datos orientado a grafos usado; y en el capítulo 7 se presentan las características del modelo de grafo de propiedades etiquetadas (LPGM) que se ha creado a partir de la definición lexicográfica de María Moliner, y del lenguaje de consulta de grafos de Neo4j , Cypher . En el capítulo 8 se aplican al grafo diferentes algoritmos de grafos y se presenta un análisis de los resultados obtenidos de similitud, de rutas óptimas, de centralidad y de comunidades, junto a una evaluación de las nuevas relaciones y propiedades de los nodos creadas a partir de dichos algoritmos como apoyo adicional 54 / para caracterizar los elementos constituyentes del grafo. A partir de los resultados y de dicho análisis se esbozan también algunas aplicaciones adicionales para el uso del grafo en la aplicación del estudio del significado, en concreto se atenderá a la creación de campos semánticos, al estudio de las isotopías y al análisis visual de la metáfora. Para concluir, en la cuarta parte, se presenta la discusión, donde se realiza una evaluación del método propuesto, la verificación de la hipótesis de investigación y la evaluación de las limitaciones del estudio; a continuación se exponen las conclusiones y consideraciones finales que se han podido extraer de este trabajo; y por último, se plantean diferentes propuestas para el trabajo futuro, tanto acciones necesarias para solventar los problemas del grafo, como la ampliación de funcionalidades y posibles aplicaciones. Finalmente, se presenta la bibliografía y los apéndices de las tablas relativas a las listas de palabras obtenidas mediante diferentes consultas en Cypher al grafo que se ha construido, tras la aplicación de diferentes algoritmos de grafos, así como otras listas obtenidas para el proceso de depuración del definiens del DUE . 1.4.1. Metodología La metodología llevada a cabo para esta investigación contempla un acercamiento tanto cuantitativo como cualitativo al estudio de las relaciones del léxico del español a través del diccionario de María Moliner, y como consecuencia de ello, al estudio del significado. En este aspecto, el valor de una red se puede establecer según diferentes parámetros, pero fundamentalmente se determina en función del número y la calidad, tanto de sus relaciones, como de sus nodos (Chartrand, Lesniak y Zhang, 2010). La tesis que se va a desarrollar es altamente interdisciplinar. Partiendo de las contribuciones a nivel teórico sobre el estudio del lenguaje, y de la comparación entre el sistema cognitivo humano y las diferentes tecnologías semánticas disponibles, se espera poder avanzar en el conocimiento de nuevas vías para procesar el significado y aportar nuevas métricas o técnicas que mejoren las capacidades semánticas de los sistemas de PLN. A partir de las relaciones de base extraídas de la definición lexicográfica del DUE se han construido 55 / otras nuevas, como resultado de la aplicación de algoritmos de grafos, enriqueciéndose tanto el número de las relaciones, como las propiedades de estas y de los nodos. El acercamiento cualitativo abarca diferentes procedimientos o técnicas habiéndose adaptado cada una según el objetivo en cada caso. A partir de la investigación bibliográfica se ha realizado un estudio exploratorio previo para describir el estado de la cuestión relativo a las diferentes perspectivas del significado, fruto de las investigaciones y de diferentes teorías sobre el significado -OG(I)-, así como un análisis del estado de la cuestión sobre las teorías, y las tecnologías semánticas actuales, más relacionadas con la propuesta de la investigación, -OG(II)- haciéndose un recorrido por los avances y técnicas que han permitido el desarrollo de las herramientas de que disponen diferentes sistemas de PLN, con el objetivo de poder evaluarlos adecuadamente -OG(III), OG(IV)-. Una vez concluida esta primera fase de investigación, como resultado de la parte experimental, la cual tiene su propia metodología, se ha llevado a cabo el proceso de extracción y de depuración de los datos relevantes para la investigación de la definición lexicográfica del DUE -OE(I)- y se ha conseguido construir un grafo que refleja tanto las relaciones entre el definiendum y el definiens , como otras nuevas construidas gracias a la aplicación de grafos -OG(V)- validando la tecnología como una herramienta útil para la investigación en Lingüística -OG(VII). Adicionalmente, se ha podido validar la metodología propuesta en la parte experimental procesando diferentes diccionarios: en el dominio médico, se ha usado SNOMED-CT, y en el financiero -OG(VI), -OG(VII)-, el diccionario de la CNMV, en sendos proyectos de investigación dentro de la empresa MMG. La creación de un grafo de propiedades etiquetadas (LPGM) en el que se recoge la vinculación semántica de los conceptos del DUE -OE(II), -OG(V)- ha permitido realizar un análisis descriptivo y comparativo del grafo mediante diferentes algoritmos para contrastar los resultados con los valores obtenidos -OE(III), OE(IV)- pudiéndose encontrar diferentes maneras de medir la vinculación semántica entre las palabras, y por lo tanto, su grado de similitud -OE(V), lo que permite su aplicación en PLN en este y otros dominios OG(VII)-. 56 / PARTE II: MARCO TEÓRICO ● Figura 7. Subgrafo de ejemplo a partir del grafo construido, donde se han expandido diferentes relaciones para observar los nodos comunes de los correspondientes a las palabras “literatura” y “libro”, que están en el extremo derecho e izquierdo. 57 / 58 / CAPÍTULO 2: PRINCIPALES PERSPECTIVAS EN SEMÁNTICA Y SEMÁNTICA COMPUTACIONAL En los siguientes apartados del capítulo 2 se realiza un recorrido por las principales teorías semánticas, y en especial por tres enfoques: el estructural, el cognitivo y el computacional, atendiendo fundamentalmente en este último a las repercusiones del distribucionalismo. ● Figura 8. Subgrafo de ejemplo devuelto por Neo4j que se ajusta a un patrón aleatorio escrito en Cypher. Consulta: MATCH p = ( a )-[*]-( b ) return p limit 70 59 / 2. La representación del significado y su procesamiento computacional El propósito de esta sección es realizar un recorrido por las teorías, métodos, recursos y aplicaciones de los enfoques más relevantes que se relacionan con este trabajo, directa o indirectamente, sobre la representación del significado y su procesamiento computacional. Para ello, haremos una breve introducción a la historia del Procesamiento del Lenguaje Natural en relación con la Semántica, y nos detendremos en tres marcos teóricos fundamentalmente: la semántica estructural, la semántica distribucional, y la semántica cognitiva. Por último, presentaremos algunas de las herramientas más relevantes actualmente dentro del ámbito de las tecnologías aplicadas a la semántica. El sistema cognitivo del ser humano permite una capacidad única para manejar el significado. Replicar, o al menos acercarse a métodos que sean capaces de manejar aspectos semánticos, abre nuevos horizontes, tanto para el estudio del lenguaje, como para su aplicación. La Semántica, a la que Greimas (1966) en su famosa metáfora se refirió como pariente pobre de la lingüística , hoy quizás se ha convertido en uno de los mayores focos de interés dentro de las Tecnologías del Lenguaje. La tecnología semántica es deudora de una larga tradición, que urde sus fundamentos básicos en la Filosofía, por ejemplo, en lo relativo a los fundamentos de la lógica de primer orden, básicos para el desarrollo de la semántica computacional posterior, desarrollados por Gottlob Frege y Charles S. Peirce a finales del siglo XIX y principios del siglo XX. No obstante, vamos a centrarnos en el panorama actual de la tecnología semántica, especialmente tanto en los modelos de espacios vectoriales (VSMs) (Salton et alii, 1975), como en los modelos basados en grafos (Sonawane et alii, 2014). Ambos modelos implican tecnologías que han ido avanzando de manera paralela, y cada vez más de forma conjunta, en la consecución de nuevos avances que permiten desarrollar aplicaciones con una habilidad de procesamiento semántico mayor. Aunque como señala Periñán (2012), tradicionalmente en el PLN los enfoques principales de investigación adoptados han sido los paradigmas simbólico, estadístico y el conexionista 60 / en forma de redes neuronales (Christiansen y Chater, 1999), ante la complejidad de crear modelos que cubran la complejidad del lenguaje, cada vez son más las propuestas híbridas que abogan por la coexistencia de unos y otros. En el caso de la representación semántica de textos, por su parte, se puede dividir en tres grandes grupos: (i) las redes semánticas, (ii) los modelos basados en rasgos y (iii) los espacios semánticos (Mitchell & Lapata, 2010). Dentro de los espacios semánticos la bibliografía distingue dos enfoques: la semántica distribucional y la semántica composicional (Blacoe y Lapata, 2012), cuyo término no se debe confundir con el concepto de semántica composicional tradicional. La semántica distribucional merece una especial atención por la relevancia que ha adquirido dentro del PLN en los últimos años al ser capaz de construir espacios vectoriales para la representación de palabras, mientras que en contraposición, la semántica composicional se enfoca en modelar el significado de frases y oraciones (Grefenstette et alii, 2014). Existen además muchas otras técnicas, como la Indexación Semántica Latente (ISL) (Deerwester, 1990), que es una variante de los modelos vectoriales, en la que los documentos se representan con vectores de pesos no binarios, al igual que las consultas que se realizan, usando matrices de palabras por documento. Es un método de indexación y recuperación de información basado en la descomposición en valores singulares (SVD) para identificar patrones contextuales en las relaciones entre los términos contenidos en una colección de textos no estructurados (Horn y Johnson, 1991). La ISL se basa en el mismo principio desarrollado en los embeddings , extrayendo el contenido conceptual de un documento a partir de las 10 asociaciones entre aquellos términos que ocupen contextos similares (Hofmann, 1999). Las limitaciones de los métodos deterministas para la representación del lenguaje han ido perdiendo terreno en favor de métodos probabilísticos, con redes neuronales como las RNNs (Recurrent Neural Networks), donde en lugar de dar una determinada salida como resultado, dan un porcentaje de su probabilidad, y que como veremos, han mejorado el estado de la cuestión en numerosas áreas de PLN (Mou, Lili, et al., 2016). Para entender mejor el escenario actual haremos un breve recorrido tanto por los 10 Los word embeddings o palabras incrustadas son un encaje matemático que permite la representación de las palabras en un espacio vectorial de n-dimensiones a través de la codificación de la distribución de las palabras en un corpus. A partir de la información extraída del contexto que rodea cada palabra, por ejemplo, es posible determinar medidas de similitud entre palabras, ya que cuanto más parecido sea el contexto en el que pueden aparecer dos o más palabras, más cercanos estarán los puntos que las representan en el espacio vectorial, y mayor grado de similitud mantendrán. 61 / paradigmas teóricos que más han influido en el estudio del significado, como por las tecnologías semánticas más relevantes. Por último, conviene recalcar que aunque en la bibliografía proliferan los términos aludidos, como por ejemplo, el que da nombre a este apartado, la representación más eficaz del significado que ha logrado el ser humano hasta la fecha es el propio lenguaje, y su representación visual, la escritura. La investigación en torno al lenguaje y su complejidad se ha enfrentado a numerosos obstáculos que afectan directamente a la comprensión del lenguaje (NLU), como por ejemplo, el problema de la fundamentación del símbolo ( Symbol Grounding Problem, SGP ) que propuso Harnad (1990) en el marco de la Inteligencia Artificial como proyecto para crear sistemas con símbolos fundamentados en el mundo exterior (Plazas, 2018), que inevitablemente acaba por toparse con el problema del pensamiento (Locke, 1690; Descartes, 1641), puesto que para autores como Fodor (1975) el lenguaje, respecto al significado, mantiene una dependencia respecto al pensamiento. En la Hipótesis del Lenguaje del Pensamiento de Fodor, el pensamiento tiene una estructura prácticamente lingüística que permite explicar la sistematicidad y la productividad de las expresiones lingüísticas (Fodor y Pylyshyn, 1988). Los diferentes modelos de comprensión y producción del lenguaje son, en definitiva, modelos de transformación de un tipo de información a otra, mediante la aplicación de reglas computacionales basadas en lógica, en estadística, etc. 2.1. Evolución del Procesamiento del Lenguaje Natural La historia del PLN se inicia a mediados del siglo XX con la necesidad de la traducción automática (Mariani, Francopoulo, y Paroubek, 2019), es decir, con el traspaso de la codificación del significado de una lengua a otra, apoyados en un primer momento por la criptografía, la estadística y la teoría de la información (Shannon, 1948). El enfoque estadístico ha dominado, y sigue dominando en gran medida, las investigaciones en PLN, ajenos en muchos casos a las investigaciones de la lingüística teórica, aspecto que ha sido criticado en numerosas ocasiones (Moure y Llisterri, 1996; Periñán, 2012), o como se señala también en los trabajos de Ferrari (2004), o de Wintner (2009), donde también se plantean interesantes cuestiones sobre las razones y 62 / las consecuencias de ello. Como señalan Jurafsky y Martin (2009), el nacimiento de la Gramática Generativo-Transformacional y de la Inteligencia Artificial, consolida el enfoque simbólico, aunque aspectos como la semántica, son relegados a un segundo plano frente a la sintaxis (Chomsky, 1957, 1965), y hay que esperar a los trabajos de Katz y Fodor (1963) para tener un primer modelo de interpretación semántica generativista. Ya en los años 70 hubo una corriente correctiva del paradigma con la semántica interpretativa, Chomsky (1970) o Jackendoff (1972), dentro de la conocida como Teoría Estándar Ampliada , y también tuvieron lugar otras corrientes fuera de ella, más reactivas al anterior modelo y que propusieron otro modelo de orientación funcionalista (Dik, 1981). Estos modelos pusieron el acento en que la función del lenguaje se basa en la comunicación (Gonzálvez-García y Butler, 2006), y tendrá una considerable repercusión en el PLN dentro de la Gramática Sistémica Funcional (Halliday, 1961). En el campo de la Inteligencia Artificial se trabajó profusamente en la comprensión del lenguaje. La escuela de Yale, liderada por R. Schank incorporó la teoría del guion en un modelo dinámico de la memoria de comprensión del lenguaje, que influyó considerablemente en la semántica y en la representación del conocimiento (Schank, 1972). Dicho modelo, como apunta Periñán (2012) se basaba en el formalismo de la Dependencia Conceptual del propio Schank, que se puede concebir como una combinación de redes semánticas y de los marcos. La teoría de la Dependencia Conceptual de Schank es especialmente interesante para este trabajo como antecedente, pues usa grafos para representar conceptualmente un texto a partir de la descomposición semántica de los verbos mediante el uso de la Gramática de Casos de Fillmore (1968). Dentro del paradigma simbólico se desarrollan una serie de teorías lexicistas, como la Gramática Léxico-Funcional (Kaplan y Bresnan, 1982), la Gramática de Estructura Sintagmática Generalizada (Gazdar, 1985), la Gramática de Estructura Sintagmática Nuclear (Pollard y Sag, 1987), o las gramáticas de unificación (Kay, 1985; Uszkoreit, 1986). En ellas el lexicón adquiere una mayor atención en el PLN durante la siguiente década, los años 80, reconsiderado gracias en parte a la confrontación entre las semántica interpretativa y la semántica generativa. La Teoría de Rección y Ligamiento 63 / (Chomsky, 1981) se aleja de la teoría estándar de la Gramática Generativo-Transformacional con respecto a la autonomía que se le concedía al componente sintáctico, como apunta Periñán (2012). A finales de siglo aparecen dos de las investigaciones más destacadas en lexicografía computacional, Framenet (Fillmore y Atkins, 1992, 1994) y el lexicón generativo (Pustejovsky, 1991). En español, por citar un ejemplo significativo, aunque son muy numerosos los proyectos que se han seguido llevando a cabo, se desarrolló el proyecto Spanish Framenet (SFN) (Subirats, 2004). Si bien es cierto que el desarrollo técnico y las dificultades que supone la aplicación de estos modelos en PLN propugnó en gran medida el cambio a los modelos estadísticos (Klavans y Resnik, 1996). Respecto a la lingüística computacional el panorama de la semántica léxica estuvo marcado por dos tendencias investigadoras (Nirenburg y Levin, 1992). Por un lado, la semántica léxica orientada a la sintaxis, donde se busca describir las propiedades semánticas de las palabras a partir de las cuales se podía predecir su comportamiento sintáctico; y por otro lado, la semántica léxica orientada a la ontología, donde el significado del texto se infiere a partir del uso de una ontología, la cual se ponía en correspondencia con el lexicón (Lenci, 2001). Aunque diferentes autores, además de Nirenburg y Levin, recomendaron la coexistencia de ambas tendencias, puesto que el modelo de semántica léxica orientada a la ontología podía usarse para vincular el modelo de semántica léxica orientada a la sintaxis de una lengua determinada con una representación del significado textual independiente de la lengua, las investigaciones mayoritariamente se decantaron por uno o por otro, como indica Periñán (2012). En este aspecto los tesauros, que son un tipo de vocabulario que se caracteriza por incluir relaciones semánticas, especialmente las de sinonimia e hiponimia-hiperonimia, tuvieron (y tienen) un papel importante, en diferentes ámbitos entre los que se encuentra la Recuperación de Información (Fernández-Pampillón Cesteros, 2010). Actualmente se han sofisticado las técnicas de incrustación de palabras ( embeddings ), y los grandes modelos preentrenados del lenguaje, no supervisados en su mayoría, basados en redes neuronales, como ELMo (Peters et al., 2018), Xlnet (Yang et al., 2019), GPT-2 (Radford et al., 2019), GPT-3 (Brown et al., 2020), T5 (Raffel et al., 2019) o BERT ( Bidirectional Encoder Representations from Transformers ) (Devlin et 64 / al., 2018), han ido superando las tecnologías anteriores en la realización de tareas de PLN en evaluaciones de comprensión del lenguaje, como GLUE ( General Language Understanding Evaluation ). Las arquitecturas basadas en transformers (Vaswani et al., 2017), han supuesto un gran avance en PLN, sustituyendo entre otras muchas cosas, las capas LSTM, por capas de atención y alcanzando una capacidad de representación del significado mucho mayor. 65 / 2.2. Enfoque estructural 2.2.1. Semántica estructural y campos semánticos A pesar de la rigidez de muchos postulados del Estructuralismo, las investigaciones que esta corriente auspició sobre el significado tuvieron como resultado sustanciosos avances en la comprensión y naturaleza del significado, dotando a la disciplina de una terminología amplia y específica, especialmente en el ámbito de la estructura del significado. Una de las aproximaciones más productivas de la concepción estructural del significado se configura a partir de los campos semánticos, donde cada elemento condiciona su valor en función de los elementos con los que se relaciona. Los campos léxicos se han usado como procedimiento metodológico para analizar el significado de una palabra en relación a otras dentro de un grupo . Analizar el 11 significado de una palabra según las relaciones que ésta establece respecto a otras, posibilitó la apertura de nuevas perspectivas en semántica léxica con implicaciones directas en la Lingüística. Si nos retrotraemos a los comienzos de la historia del desarrollo del campo léxico y sus implicaciones posteriores en la semántica computacional, podemos remontarnos J. Trier (1931), quien empezó estudiando el léxico del alemán, estableciendo la idea de que el léxico de una lengua es un conjunto finito y cerrado que se configura en campos léxicos delimitados, aunque al contrario que en una taxonomía, el léxico contiene unas relaciones de orden que difícilmente se prestan a la homogeneidad. El trabajo sobre los campos léxicos de Horst Geckeler (1971) se considera otro de los puntos de partida, donde presentó los antecedentes del 12 concepto aludiendo, tanto a los autores que junto con él lo propusieron, como E. Coseriu (1964) o K. Baldinger (1980), como a otros autores, que antes que Trier formularon una idea parecida, como es el caso de K.W. L. Heyse (1856), el supletivismo 11 S on numerosísimos los trabajos en los que se ha utilizado el campo semántico como base para la investigación. A modo de ejemplo, podemos citar la tesis doctoral de: Balboa Sánchez, María Olga, El campo léxico “real-irreal” (tesis doctoral), Universidad Complutense de Madrid, 2002. 12 Sobre esta cuestión para una información más detallada remitimos tanto al trabajo de Geckeler (1971) como a: Martínez, Marcos. “Definiciones del concepto de campo en semántica: Antes y después de la lexemática de Coseriu”. Universidad Complutense de Madrid, Odisea, nº 3,págs. 101-130, 2003. 66 / de H. Osthoff (1899), los sistemas semánticos de R.M. Meyer (1910), los grupos de palabras de A. Meillet (1924), la constelación asociativa de Saussure (1916), el campo conceptual de H. Werner (1919), la esfera conceptual de H. Sperber (1923), o el campo semántico de G. Ipsen (1924), los cuales, antes de Trier, formulan la idea de campo, aludiendo a las relaciones de contenido semántico que se dan entre las palabras, formándose grupos definidos. A lo largo del siglo XX fueron apareciendo más tipos de campos, aunque todos ellos se mantuvieron alrededor de la idea de que las palabras no están aisladas sino que mantienen ciertas relaciones que forman grupos a través de su contenido semántico. Como muestra, podemos citar los trabajos de C. Bally (1940), quien propuso los “campos asociativos”, de base saussuriana, P. Guiraud (1955), que introdujo el concepto de “campo morfo-semántico”, G. Matoré (1953), a quien se le debe el concepto de “campo nocional”, semejante en algunas cuestiones a los “campos conceptuales” de Otto Ducháĉek (1960), o J. Apresjan (1966: 44) que por su parte criticó el excesivo asociacionismo de muchas de estas corrientes, y reclamó un tipo de campo semántico más centrado en la lengua y más alejado de la subjetividad de la asociación: el “campo distribucional” (García Parejo, 1997). El “campo distribucional” de Apresjan partía del concepto de “distribución” de Z. Harris (1954), es decir se valía del procedimiento de distribución de las palabras y el contexto en que estas aparecían para determinar el significado, el cual también influirá en Jean Dubois (1964) y que desarrolla en torno al concepto de “campo sintagmático”. Hjelmslev (1956) marcó un punto de inflexión cuando desde la glosemática, inicio del funcionalismo, planteó aplicar al estudio del significado las teorías de la fonología estructural basadas en rasgos distintivos, elaboradas por Trubetzkoy y la Escuela de Praga, y desarrolladas por lingüistas como Jakobson (1929). En ellas se defendía que la oposición de fonemas, no es la oposición de los fonemas en sí, sino de sus rasgos distintivos, ya que los fonemas son el resultado de la ausencia o presencia de esos rasgos, lo que llevado al significado, permitió ver con una nueva perspectiva cómo las correlaciones que se establecen dentro del semema configuran las marcas semánticas que diferencian un semema de otro. Lyons (1963) investigó las relaciones léxicas como base metodológica para el estudio de la semántica, y en referencia a las ideas iniciales de Trier también consideraba que el valor que 67 / presentaba una determinada palabra solo podía conocerse definiéndolo en relación con el valor de las otras palabras que la acompañaban. Las ideas de Jakobson (1929) desarrolladas en fonología dieron lugar también a lo que más tarde se desarrollaría y aplicaría como análisis componencial del significado , con nombres como W. 13 Goodenough (1956), F. G. Lounsbury (1956) y H. Weinreich (1966), entre muchos otros. El análisis componencial fue aplicado fundamentalmente por Katz y Fodor (1963) 14 dentro del marco de la Gramática generativa. Ellos, por ejemplo, distinguen dos tipos de componentes en el significado: los marcadores semánticos y los diferenciadores semánticos, que corresponderían, respectivamente, a los semas genéricos y a los semas específicos de Pottier (1964), que veremos a continuación, aunque, como se ha señalado, dicho análisis aplicado en semántica presenta ciertos problemas como señala Mairal (2010). La propuesta de Hjelmslev (1956) la desarrollaron fundamentalmente B. Pottier (1964), A. J. Greimas (1966), A. Martinet (1969), E. Coseriu (1964) y el discípulo de Coseriu, también ya mencionado anteriormente, H. Geckeler (1971), cuyos trabajos fueron fundamentales para la historia de la teoría de los campos semánticos, y que dieron pie finalmente a la creación y consolidación de la lexemática. En España, a través de Eugenio Coseriu, Gregorio Salvador (1985) será el mayor difusor junto con su discípulo, Ramón Trujillo . Coseriu (1964), uno de los representantes fundamentales de 15 la Semántica Estructural y también la figura principal de la lexemática, como apunta W. Dietrich (2012:39), desarrolló sus fundamentos alrededor de la estructuración de lexemas en campos léxicos, con oposiciones basadas en rasgos semánticos distintivos, que a su vez, constituirán la base para el análisis componencial mediante rasgos semánticos (Nuñez, 1999). La validez del análisis componencial defendida por Coseriu (1983: 144) fue discutida por diversos autores entre los que destaca Lyons (1977), 13 Umberto Eco (1975) propuso el Modelo Semántico Reformulado (MSR), un análisis componencial del semema siguiendo los estudios de Greimas, Katz, Fodor y Quilian. En el modelo de análisis componencial de Katz y Fodor se representan los marcadores sintácticos, semánticos, y una serie de restricciones selectivas que selecciona cada sema apoyándose en el contexto. 14 El panorama completo del análisis componencial dentro de la semántica léxica puede verse en: O. Geeraerts, Componential, 1994 pp.648-650. 15 En torno a las enseñanzas de Gregorio Salvador y Ramón Trujillo se han formado en lexicología y lexicografía muchos de los lexicógrafos españoles actuales y son muy abundantes los trabajos de investigación, tesis doctorales, etc. que se pueden encontrar. 68 / abriéndose varios frentes en torno a los procedimientos utilizados en el descubrimiento de los rasgos semánticos (Berruto, 1979: 158) como su adecuación en la aplicación a problemas como la polisemia y la homonimia (Lyons, 1977: 335) . El significado de un signo en la lexemática no tiene un valor absoluto ni individual, sino que se configura mediante sus relaciones, en contraste con la oposición a otros signos de significado análogo pero que presentan rasgos diferentes. Algo muy parecido al concepto de “valor” del que hablaba Saussure (1916: 163): “ La partie conceptuelle de la valeur est constituée uniquement par des rapports et des différences avec les autres termes de la langue ” y a diferencia de autores como Pottier (1964), Greimas (1966) o Mounin (1965), quien por su parte desarrolló la noción del campo derivativo a partir de la idea del campo morfosemántico de Guiraud (1955). Con el concepto de “campo” no se busca llegar a los elementos mínimos generales que componen un concepto, sino a los elementos distintivos; y tampoco se realiza de forma necesaria el análisis a partir de la definición lexicográfica de un diccionario para encontrar dichos rasgos distintivos, tal como hace G. Mounin (1965) para estudiar el léxico de la “vivienda” (Balboa Sánchez, 2002). La lexemática se basa, en ciertos aspectos, en la estructuración tripolar de Ogden y Richards (1923) para analizar el significado léxico mediante criterios funcionales, para lo que establece una diferencia entre las relaciones de significación y las relaciones de designación, partiendo del principio de que el léxico presenta unas estructuras determinadas para cuyo análisis es necesario estudiar las oposiciones léxicas . Tomando como referencia el modelo de Ogden y Richards (1923), Lyons (1977) 16 profundiza desde una perspectiva referencial entre las diferencias de referencia y sentido. Por un lado, la referencia mantendría una relación extralingüística determinada entre la expresión y el referente. Mientras que el sentido, por otro lado, involucraría relaciones intralingüísticas que se dan entre los lexemas de un sistema lingüístico, con los rasgos compartidos, o en oposición con independencia de la relación que guarden con su referente. Respecto a las distinciones que realiza Lyons sobre la denotación, esta afectaría a la capacidad referencial de un lexema, que lo vincula, es decir, a la relación posible entre el lexema y la entidad designada. Cruse y Croft (2004) representaron otro hito importante, aunque los trabajos de los autores son bastante eclécticos en general y 16 García Jurado, 2003, Anejo I, p. 42-45. 69 / se enmarcan en el enfoque cognitivo, defendieron la importancia de estudiar las relaciones contextuales de las palabras en una postura que se acercaba mucho al enfoque distribucional. Investigaron el conjunto de relaciones que una unidad léxica mantiene con todos los contextos posibles de aparición, y trabajaron sobre los rasgos semánticos como las características del significado de una palabra que participa en otro. Como advirtió el propio Cruse (2004), su teoría mantiene ciertas semejanzas con la teoría de los prototipos, y más adelante se postuló a favor de aproximaciones, como la lingüística cognitiva, que defienden la continuidad del significado y no su discreción. 2.2.2. La articulación del significado en semas La miríada de conceptos en los que se han apoyado diferentes lingüistas para analizar el léxico y el significado, sus unidades atómicas, y la forma en que se van construyendo para crear unidades más complejas, es tan rica en matices como extensa, y en sí mismos han sido objeto de numerosos y amplios trabajos . Las investigaciones de 17 la Semántica Estructural establecieron un espacio semántico general a partir del cual describieron las unidades semánticas: los semas, cuya interrelación constituye tanto al lexema como al semema (Greimas, 1966), y dio lugar a una multitud de trabajos sobre 18 el campo léxico (o campo semántico), como el ya clásico trabajo de Salvador Gregorio 19 “ Estudio del campo semántico ‘arar’ en Andalucía ” (1965). Tanto dentro como fuera de la Lingüística muchos estudiosos se han preguntado sobre el mecanismo significativo del lenguaje (Ullmann, 1962) y se han preocupado de adoptar una terminología precisa que abarque los matices que cubren las particularidades para la clasificación de las unidades del significado. En concreto, 17 Para un análisis más detallado puede consultarse: Trujillo, Ramón. Elementos de semántica lingüística . Madrid: Cátedra, 1976 . 18 El siguiente trabajo presenta de forma muy completa y clara la anatomía del semema: Guadalupe: "La estructura del semema", Seminario de semiótica, 1979. 19 Por ejemplo, el trabajo de: Rey Rodríguez, Isabel. El campo semántico de la valoración estética positiva en español (SS. XII-XIX). Diss. Universidad Complutense de Madrid, 1987. I. Rey Rodríguez ha sido discípula de G. Salvador. 70 / Bernard Pottier (1962), además de asentar los presupuestos de la teoría lexemática fue uno de los mayores responsables de la terminología usada en este ámbito, aunque existe toda una pléyade de matices, o incluso, diferencias sustanciales entre muchos de los mayores nombres. Siguiendo las propuestas de Hjelmslev (1956), para B. Pottier (1962: 415) el signo se compone de un significante, de un significado con una forma, correspondiente a las clases sintácticas, y una sustancia, correspondiente a las clases semánticas. Distingue a su vez dos sustancias semánticas, una correspondiente a la naturaleza léxica y otra a la gramatical; una sustancia predicativa, que aporta un significado nuevo, y una sustancia relativa, que modifica las sustancias predicativas. En este mismo artículo (Pottier, 1962: 415) habla de un hipotético cuadro de caracterización semántica combinatoria, idea similar en algunos aspectos a la que, como hemos señalado, por las mismas fechas se estaba desarrollando para dar lugar posteriormente a la lingüística distribucional. Para Coseriu (1981: 171), el lexema es una “unidad de contenido léxico expresada en el sistema lingüístico”. Por su lado, Pottier (1976: 115) dentro del lexema identifica la parte significativa del mismo, y le da el nombre de semema. Greimas (1976: 99) considera que hay una correspondencia con el lexema, que es "el lugar de encuentro y manifestación de semas pertenecientes a sistemas sémicos diferentes que guardan entre sí relaciones hipotácticas", es decir, la configuración del semema se construye a partir de un conjunto de semas que se manifiestan en un determinado lexema, o que por el contrario, pueden no llegar a codificarse en un lexema en un determinado sistema lingüístico. Pero en Greimas, esta equivalencia, que tiene como resultado la acepción de una palabra, no es solo la combinación de semas en sí, sino que el lexema/semema guarda toda una organización sintáctica de semas con estructuras actanciales. Dentro de los lexemas también se han hecho numerosas distinciones, como por ejemplo, los “lexemas centrales” y los “lexemas periféricos”, según estén considerados como parte del núcleo del campo o de la periferia (Geckeler, 1984: 306), o los “lexemas puente” y los “lexemas sincréticos” de Gregorio Salvador (1985: 42). Cada lexema, por lo tanto, posee un contenido semántico o semema, en el que se relacionan los diferentes elementos mediante unos rasgos distintivos, los semas. El resultado de esas relaciones configura el significado de cada lexema. Pottier (1976) 71 / organiza el significado en estas pequeñas unidades de significado, que a su vez conforman el semema, es decir, el conjunto de semas. El sema es el rasgo significativo mínimo capaz de oponer dos o más unidades, es el rasgo semántico pertinente, o según Pottier (1972: 26): “los rasgos distintivos mínimos de significación que se revelan por oposición en un conjunto léxico” . Las oposiciones de los semas dentro del significado son susceptibles de activarse según las relaciones que establezcan con otros elementos. Dichas relaciones permiten una cierta gradación en algunos casos, no se basan exclusivamente en una relación binaria de ausencia o presencia, sino que puede ser gradual. Por lo tanto, el sema es el rasgo semántico distintivo mínimo de significación que se encuentra en una relación de oposición dentro de un conjunto léxico, y que, por lo tanto, es capaz de diferenciar dos o más unidades léxicas; mientras que el semema es el conjunto de semas, o dicho de otra manera, el conjunto de rasgos semánticos pertinentes de una palabra. El semema también está lleno de matices para cada autor pero en general se gravita en torno a la idea presentada. Por ejemplo, para Gregorio Salvador (1983: 42) el semema es “una abstracción de rasgos semánticos que puede tener o no representación léxica. Un lexema es eso mismo, pero con una palabra que lo sustente”, y para Pottier (1979: 37) "la significación de cada morfema lexical es un semema”. Pottier (1974), basándose en los rasgos significativos del semema, clasificó los tipos de semas, considerando a éste como la suma del semantema, del clasema y del virtuema, que pasaremos a presentar a continuación. Posteriormente se han realizado numerosas modificaciones y clasificaciones diferentes, muchas de ellas teniendo en cuenta únicamente los semas denotativos debido a la dificultad que supone para el análisis la variabilidad de los virtuemas, que es la parte connotativa, y por lo tanto, más variable del semema. Semas denotativos: ● Semas específicos ○ Semantema: Es el conjunto de rasgos (semas) específicos que permiten definir lo que es un elemento en relación a otros que pertenecen a un mismo dominio de experiencia. 72 / ● Semas genéricos ○ Clasema: Es el conjunto de semas genéricos que representan categorías semánticas generales. Semas connotativos: ● Semas virtuales ○ Virtuema: Representa la parte connotativa del semema, y se refiere al conjunto de rasgos virtuales, es decir, a los elementos latentes en la memoria asociativa del hablante ligados a la variabilidad de las circunstancias en la comunicación, por lo que dependen de las experiencias socioculturales de los hablantes y tienen una naturaleza inestable difícil de medir o contemplar de forma homogénea. La clasificación y los matices que se han realizado posteriormente abarcan una 20 larga lista, como por ejemplo: “semas nucleares” o “de contenido común”, “semas no nucleares” o de “contenido distintivo”, “semas esenciales”, “semas implicados” , etc. 21 Klauss Heger (1969) junto con Greimas (1966) conciben el semema como un núcleo de significado junto con los semas contextuales o clasemas, en los que opera la relación disyuntiva en el contraste con otros significados. Como señala Trives (1971), el estudio analítico-sintético de Heger (1969), quien en cierta medida armonizó numerosos aspectos de las diferentes corrientes que había en la época sobre las unidades de significación en la cadena hablada y la distribución en rangos, mantiene bastantes paralelismos con la formulación semántica de Bernard Pottier. Como recuerda Gutiérrez Ordóñez (1981), Heger, partiendo fundamentalmente de Saussure, Ullmann y Ogden, Richards, así como de su mentor K. Baldinger, transforma el anterior esquema triangular sobre el signo en su famoso trapecio. Por otro lado, Pottier (1968) acuñó el 20 En consonancia con la frase latina nihil novum sub sole , se han hecho también paralelismos con Aristóteles, donde el sema correspondería a las notas, el semema a la comprensión, y el archisemema a un concepto genérico. (Gregorio Salvador, 1965). 21 Puede verse un análisis detallado de estos conceptos en I. Rey Rodríguez (1987) . 73 / término “archisemema” para referirse al contenido unitario no necesariamente lexicalizado en una lengua, en torno al cual se estructura un campo. Según Coseriu (1981: 146), el archilexema es una “unidad semántica que equivale al contenido unitario de todo un campo léxico”. Esta puede codificarse, o no, es decir, tener una realización como unidad léxica en una lengua. Como presenta Parejo (1997: 22), otros autores lo denominaron “eje semántico” (Greimas, 1966: 32), “núcleo semántico irreductible” (Trujillo, 1975: 305), “núcleo semántico común” (Gregorio Salvador, 1985: 48), entre otros. Cada semema, por lo tanto, está dentro del campo de significación del archisemema que lo comprende, por lo que el archisemema y el campo semántico se solapan en cierto sentido. El archisemema, correspondiente al archilexema en el plano formal, es el denominador común entre conjuntos de sememas puestos en relación. Como señala Gutiérrez Ordoñez (1965), Pottier (1976) se sirve de la aritmética para ejemplificar la naturaleza del archisemema de una forma similar a la siguiente: 3 galgos + 3 podencos = 6 perros + 3 lagartijas = 9 animales + 1 libro = 10 cosas La naturaleza del significado y su organización en torno al léxico, como acabamos de ver, requiere de una terminología y una estructuración desde una perspectiva lingüística. Semas, sememas y archisememas, entre otros, permiten una mejor ordenación de la realidad léxica, y por consiguiente, una mejor comprensión y toma de conciencia sobre la naturaleza del significado. El objetivo de este breve repaso de los términos más relevantes para el trabajo no es proporcionar una lista exhaustiva de la terminología que ha sido empleada para trabajar con el significado, sino plantear las opciones terminológicas más relevantes respecto al significado y sus componentes, en relación con el tipo de análisis y procesamiento que se ha realizado en este trabajo para construir el grafo . La representación del significado en un grafo permite visualizar de 22 manera bastante intuitiva sus componentes y sus relaciones, como veremos en parte a lo 22 Por ejemplo, nos dejamos muchos otros conceptos como “noema”, unidad de menor complejidad significativa que el semema, el “monema”, unidad mínima de significado; el signema, cualquier unidad con función significativa; o el taxema, etc., usados por autores como A. Martinet (1960) o K. Heger (1969). 74 / largo de este trabajo, y posibilita la agrupación o las búsquedas a partir de rasgos semánticos comunes lexicalizados. Desde el punto de vista formal, la notación matemática también permite un acercamiento posible al significado. Si la asociación es un tipo de relación que se establece entre dos elementos, el significado podría ser contemplado de forma naif como la suma de una familia de elementos ( a i ), indexada   por un conjunto I (lexicalizado en palabras que mantienen a su vez otro conjunto de relaciones con otras palabras), formado por las asociaciones que se vinculan a una palabra: El significado de una palabra se podría contemplar computacionalmente como la suma de las asociaciones o las relaciones que se establecen con dicha palabra. La naturaleza de las asociaciones y de las relaciones permite, por ejemplo, construir e identificar los semas y los sememas, como parte de los elementos asociados a una palabra si los analizáramos y los cotejásemos entre sí. Es decir, el sumatorio sobre i, desde m, el límite inferior, hasta n, el límite superior, de a i que conformaría todas las asociaciones de una palabra . Respecto al orden   de las asociaciones de a i , no es necesariamente un orden fijo, pero sí se da una   prelación, determinada fundamentalmente a partir de la experiencia de cada individuo, sobre las diferentes relaciones que los vinculan. 75 / 2.3. Enfoque cognitivo del significado 2.3.1. Cognitivismo La lingüística cognitiva constituye un marco teórico indispensable para el estudio de métodos basados en Procesamiento del Lenguaje Natural para ampliar la capacidad semántica de las máquinas, y en cierta medida, para alcanzar a reproducir o simular las estrategias cognitivas humanas implicadas en el procesamiento semántico. En particular, la semántica cognitiva permite analizar el significado a partir de numerosas herramientas dentro de un marco teórico que ha demostrado su validez y eficacia para dar cuenta del complejísimo fenómeno del lenguaje. Desde el enfoque cognitivo, aspectos como la categorización y los efectos de la prototipicidad, dan cuenta de una realidad lingüística entendida como un continuum de realidades comunicantes, no como aspectos aislados basados en condiciones necesarias y suficientes, con límites definidos (Cuenca y Hilferty, 1999). Por ello, el marco teórico de la lingüística cognitiva brinda herramientas teóricas de gran ayuda para entender y analizar parte de los datos obtenidos de este trabajo. Para la gramática cognitiva, el lenguaje no es una facultad independiente frente al resto, está integrado con otras dimensiones del ser humano, como la emocional, la intelectual, o la social (Croft y Cruse, 2004). Dichas dimensiones están reflejadas en la propia naturaleza de las categorías léxicas. Por este motivo, la semántica léxica mantiene una estrecha convivencia con otras disciplinas. Todo lo que rodea el estudio del léxico, revela mucha más información que la puramente lingüística, lo que permite que los conceptos léxicos se estudien como una parte de la cognición humana (Lakoff, 1980). Las disciplinas cognitivas incluyen aquellas que se ocupan de alguna parte de la cognición humana (Cuenca y Hilferty, 1999). Por este motivo, la lingüística cognitiva es un enfoque interdisciplinar del que se nutre especialmente el estudio del significado, sirviéndose este de un amplio marco teórico que permite analizar la vinculación que mantienen unas unidades léxicas con otras. La semántica cognitiva recoge muchas de las aproximaciones anteriores (la semántica preestructuralista, la semántica estructuralista, 76 / el generativismo, o la semántica histórica cognitiva, entre otras), que estudiaron el valor relacional del significado y su componente psicológico (Geeraerts, 1988). En relación a la calidad del conocimiento semántico, el significado de las unidades léxicas se puede describir mediante los rasgos, o primitivos semánticos, o también mediante asociaciones con otras unidades léxicas (Velardi, Pazienza & Fasolo, 1991). Para autores como Periñán Pascual y Arcas-Túnez (2014), existe una dicotomía entre la semántica profunda, que se basa en el significado conceptual, y la semántica superficial, que se basa en el significado relacional, la cual en un sentido estricto, no alberga una auténtica definición de las unidades léxicas, sino que describe el uso de las palabras a través de relaciones de significado con otras unidades léxicas. Como es el caso, por ejemplo, de Jur-Wordnet (Sagri, Tiscornia & Bertagna, 2004; Gangemi et al., 2005) que es una extensión para el dominio legal de la versión italiana de EuroWordNet (Vossen, 1998), el cual se basa a su vez en el modelo léxico de WordNet (Fellbaum, 1998), y que mantiene dicho enfoque relacional (Periñán Pascual y Arcas-Túnez, 2014). La semántica cognitiva, a la que Coseriu se opuso abiertamente (Coseriu, 1990) y en concreto la semántica de los prototipos (Kleiber, 1990), se desarrolló en parte como oposición a la semántica analítica, es decir, al análisis de los significados en rasgos distintivos y definitorios. La lingüística cognitiva revoluciona el panorama del estudio del lenguaje, en gran medida como reacción a muchos postulados estructuralistas y generativistas, y al enfoque objetivista del lenguaje que estos mantenían, frente al enfoque experiencialista del cognitivismo, más integrador y apoyado en una dimensión práctica que incluye al lenguaje con otros mecanismos cognitivos humanos (Cuenca y Hilferty, 1999). Mientras que el estructuralismo considera el lenguaje como una estructura autónoma, la lingüística cognitiva lo considera como un instrumento cognitivo, estudiando la flexibilidad de la estructura interna, su relación con la experiencia y el carácter enciclopédico de los conceptos léxicos. Por consiguiente, se deja de ver el lenguaje como un fenómeno separado, centrado en el significado léxico, y se pasa a considerarlo en relación al resto de capacidades y características humanas. El experiencialismo, los modelos cognitivos idealizados (MCI), o las categorías radiales (Cuenca y Hilferty, 1999), se nutren de esta visión integradora del lenguaje como facultad cognitiva interdependiente, al tiempo que el cognitivismo también recupera 77 / aspectos como la referencialidad, frente a la idea antirreferencialista del estructuralismo, ya que por ejemplo, este último parte del principio de que los conceptos léxicos están definidos de manera nítida, mientras que en el enfoque cognitivo los conceptos poseen centros y zonas periféricas, lo que provoca límites difusos, y solapamientos categoriales. Aitchison (2003: 736), por ejemplo, justifica esta borrosidad de los significados con la inexistencia de fronteras nítidas entre clases de objetos. Que no haya nitidez en los límites, implica y permite diferentes grados de representatividad. La semántica cognitiva, por lo tanto, se encuentra en oposición en muchos de sus postulados frente a la semántica estructural, aunque como recuerda Cifuentes (1994), ambos paradigmas no están enfrentados en todo al mismo nivel, los límites muchas veces son difusos aquí también. La semántica cognitiva se desarrolla a finales de los 70 en EEUU, y nace en el 23 marco de la psicología cognitiva , donde tuvo lugar una serie de trabajos sobre la 24 categorización, es decir, la construcción de representaciones mentales de las categorías, que rompen con la tradición aristotélica de las mismas. Aunque entre los precursores 25 de la semántica de los prototipos se encuentran Brent Berlin y Paul Kay, fundamentalmente esta se basa en la teoría de la categorización, inspirada a su vez en la teoría de los prototipos realizada por E. Rosh (1975). Rosch realizó una serie de investigaciones tanto teóricas como experimentales, donde estudió los efectos de la prototipicidad en el proceso de clasificación con objetos del mundo físico. Aunque como recuerda Martin Hummel (2008), tanto la propia Rosch (1978), como Cruse (1994) más tarde, advirtieron de las diferencias entre los efectos de la prototipicidad en clasificaciones de objetos metalingüísticos y los lingüísticos, ya que en el segundo caso pueden existir palabras para las que no tenemos representaciones prototípicas, como es el caso de palabras abstractas, transparentes o los neologismos. El enfoque cognitivo amplió las posibilidades en el estudio del significado, tanto en semántica como en la 23 Para conocer más pormenorizadamente el panorama cognitivo remitimos tanto al trabajo citado anteriormente de Cuenca y Hilferty (1999), como al de Geeraerts (1988), más enfocado a la semántica. 24 La representación del conocimiento conceptual se nutre de los modelos de esquema originados en la la psicología cognitiva, e implementados más tarde en Inteligencia Artificial (Periñán, 2012). 25 Cuando se alude a la teoría de la categorización, comúnmente se suele citar a Aristóteles y a sus primeras teorías sobre cómo se conceptualiza la realidad, con las taxonomías realizadas sobre diferentes ramas del conocimiento en base a condiciones necesarias y suficientes. 78 / investigación lexicológica, entre muchas otras que se referirán a continuación, pues se ha aplicado a prácticamente todas las dimensiones del lenguaje. El enfoque cognitivo aplicado a la semántica (Jackendoff, 1983) proporcionó amplias posibilidades auspiciadas por las nuevas teorías surgidas, ya en parte señaladas, como la teoría de los prototipos, o la teoría de la metáfora y la metonimia, a partir de las cuales se aplicarán conceptos como la corporeización (Lakoff y Johnson, 1980), en estrecha relación con el experiencialismo. En el enfoque cognitivo se resaltará el papel de fenómenos como la categorización, o conocimiento enciclopédico, o las particularidades del cambio semántico a través de la metáfora y la metonimia (Cuenca y Hilferty, 1999). Este hecho propugnó que se establecieran también paralelismos entre la concepción psicologista 26 del lenguaje y la semántica tradicional, ya que ambas corrientes asocian el significado léxico a tipos de conceptos en los que los cambios de significado pueden estar originados en procesos psicológicos (Geeraerts, 1993). Las obras de R. Langacker (1987) y G. Lakoff (1987) representaron la consolidación del enfoque cognitivo y propiciaron su desarrollo, junto con otros autores como Fillmore (1977), que allanaron el camino para que otros investigadores fueran desarrollando sus trabajos en torno al nuevo enfoque. Las teorías principales desarrolladas por esta corriente se pueden separar en varios ámbitos, aunque tanto los autores como las investigaciones llevadas a cabo desde el enfoque cognitivo son muy extensos y recorren un conjunto de ámbitos muy amplio, cuyas propuestas y herramientas teóricas, como veremos, se concentran, principalmente, en el ámbito de la categorización, la estructura del significado, la polisemia, o los procesos de gramaticalización. Entre los modelos generales se debe destacar como ya se ha mencionado la teoría de los prototipos, la teoría de la metáfora y la metonimia, o la hipótesis de la corporeización del significado (Lakoff 1987; Lakoff y Johnson, 1980; Lakoff y Turner, 1989). La teoría de la metáfora y la metonimia (Lakoff y Johnson, 1980; Lakoff, 1987; Kövecses y Radden, 1998) considera que el pensamiento se sustenta en gran parte en una conceptualización metafórica, y se analiza su papel preponderante en el cambio semántico como impulsor de este. También se encuentran las propuestas 26 La semántica lógica de Weinreich (1966) y la de Montague (1974) también atrajeron la atención sobre los aspectos psicológicos de la semántica léxica (Geeraerts, 1993). 79 / sobre la conceptualización del significado, como los modelos cognitivos idealizados (MCI), (Lakoff, 1987), los dominios cognitivos (Langacker, 1987), la semántica de marcos (Fillmore, 1982), la teoría de los espacios mentales (Fauconnier, 1985); o 27 dentro de los trabajos de semántica cognitiva, la teoría semántica conceptual de Talmy (1985), o los trabajos de Sweetser (1990) y Taylor (1995). En el grupo de los modelos gramaticales destacan obras como la ya referida Gramática Cognitiva (Langacker, 1987), la Gramática de construcciones (Fillmore, Kay, y O'Connor, 1988; y Goldberg, 1995), o los trabajos de Heine (1997), o Croft (2001). El cognitivismo también se interesó por la combinación entre la pragmática y el conocimiento lingüístico y enciclopédico, estudiándose la relación natural entre sintaxis y semántica, al plantearse ambas codependientes e igualmente importantes para la codificación lingüística. La sintaxis deja de considerarse como una dimensión lingüística completamente autónoma respecto de la semántica, la cual como se ha señalado (Greimas, 1966), estaba relegada a un segundo plano, ya que para el enfoque cognitivo ambos están integrados y son necesarios para el análisis gramatical. En pragmática cognitiva destacan, entre otros, los trabajos de Sperber y Wilson (1986), o Ariel (1990); en sociolingüística cognitiva, Geeraerts (2005), o Kristiansen y Dirven (2008); en fonología cognitiva Nathan (1986) y Lakoff (1993); en morfología cognitiva Bybee (1985), o Panther y Thornburg (2005); en lexicografía Swanepoel (1992), Hanks (1994), o Geeraerts (2001). La lista de trabajos es inabarcable, con muchos más autores de gran relevancia dentro de la lingüística cognitiva, como T. Givon (1986), C.J. Bailey (1973), Goossens (1990) y su metaphtonymy , Croft y Cruse (2004), o Goddard y Wierzbicka 28 (1994) y sus trabajos de comparación interlingüística, en la que se investigan primitivos semánticos mediante el cotejo de lenguas para obtener patrones de conceptualización semántica, al igual que ocurre en los trabajos de Taylor (1995). Respecto a la semántica diacrónica cognitiva destacan autores como Kellermann y Morrisey (1992), Blank y Koch (1999), Croft (2000) o Bybee (2002). La semántica 27 En español, un ejemplo de gran importancia dentro del marco cognitivista de semántica léxica y semántica de marcos de Fillmore es Spanish Framenet (Subirats, 2001). 28 El concepto de metaphtonymy de Goossens (1990) hace referencia al resultado de la combinación entre una metáfora y una metonimia y a las interacciones que surgen de ella. A este respecto puede consultarse: Goossens, Louis. "Metaphtonymy: the interaction of metaphor and metonymy in expressions for linguistic action." Cognitive Linguistics (includes Cognitive Linguistic Bibliography) 1.3 (1990): 323-342. 80 / cognitiva permite explicar los cambios de significado por metonimia a través de las estructuras de contigüidad. Geeraerts (1997), otro de los mayores representantes de la semántica diacrónica cognitiva, aplica la semántica cognitiva en la evolución del significado a partir del estudio de la historia del léxico, sirviéndose de la teoría de los prototipos y de una concepción del lenguaje de origen metafórico. Dentro de esta corriente, el significado prototípico central actúa como regulador del cambio semántico. Geeraerts analizó la prototipicidad en base al mayor grado de representación de unos miembros sobre otros, y la dependencia entre los significados centrales de una palabra a los más periféricos, dándose el cambio semántico como una modulación de los centros prototípicos. Dentro de la lingüística cognitiva el concepto de la poligénesis semántica se entiende como el resultado de mecanismos generales en la dinámica del cambio semántico. Los mecanismos de cambio semántico que participan en la relación entre los datos enciclopédicos y un significado determinado son la metáfora, la metonimia, la generalización y la especialización, operando sobre el conjunto o sobre una característica determinada (Geeraerts, 1997). Por último, es importante destacar que aunque en ciertos aspectos la lingüística cognitiva ha rechazado en análisis componencial basado en rasgos, como indica Soares da Silva (1999), Geeraerts (1989) y posteriormente Geeraerts, Grondelaers y Bakema (1994) sostienen que a lo que se opone la lingüística cognitiva no es a los rasgos semánticos del análisis componencial, sino que a que se utilicen para describir una unidad léxica bajo la premisa de condiciones necesarias y suficientes, y como consecuencia, aislar en un nivel independiente el componente enciclopédico. Dichos autores proponen que los rasgos semánticos sean una herramienta de análisis para la descripción semántica para descomponer los significados, aunque advierten de que no deben considerarse como objetos de investigación o componentes imprescindibles para explicar el contenido semántico, como ocurre en los estudios estructuralistas y generativistas, aunque con diferencias básicas de planteamiento. 81 / 2.3.2. Categorización, teoría de los prototipos y metáfora Con el estudio de la categorización el enfoque cognitivo se aleja del objetivismo, ya que como se ha apuntado, entiende que el pensamiento se alimenta de procedimientos de categorización, donde se constituyen límites difusos en las categorías, y se crean, dinámicamente a través de las experiencias, grados de representatividad. La capacidad cognitiva humana simplifica lo complejo mediante la selección de rasgos relevantes para realizar representaciones mentales suficientemente estables y amplias para permitir la comunicación. La mente humana divide y agrupa la realidad en partes y conjuntos mediante procesos cognitivos, el resultado de esos procesos de categorización de partes y conjuntos son, en parte, las palabras. Dentro de la teoría de los prototipos destacan entre otros los trabajos de Fillmore (1975), Coleman y Kay (1981), Fodor (1981), Cruse y Tsohatzidis (1990), Kleiber (1990), Lehrer (1990), Vandeloise (1990), Wierzbicka (1990), Winters (1990), Geeraerts, Grondelaers y Bakema (1994), Gilquin (2006), Speelman (2007), Geeraerts (2008), o Taylor (2008). Volviendo a la iniciadora de esta corriente, en sus estudios empíricos, Rosch (1978) estableció diferentes niveles de categorización: un nivel superordinado, con categorías muy generales; un nivel básico, considerado por la propia autora como el nivel “privilegiado”; y un nivel subordinado, con los miembros más específicos. Rosch defendió la prevalencia del nivel básico sobre el resto de niveles que componen la estructura vertical de los conceptos. El nivel básico sigue el principio de economía cognitiva, equilibrando la cantidad de información con esfuerzo cognitivo requerido, mientras que el supraordinado y el subordinado suponen mayor coste cognitivo en relación con la información aportada. Las categorías sirven para clasificar el mundo extralingüístico, como se ha señalado, no son discretas, no se pueden definir mediante rasgos necesarios y suficientes, característicos de la categorización aristotélica, sino que son difusas, y por lo tanto, dentro de cada categoría hay elementos más cercanos a ciertos esquemas cognitivos y culturales, los prototipos. 82 / La teoría de la categorización creció y se asentó a través de los prototipos. Otro hito importante en el desarrollo de la teoría de los prototipos lo marcó Keiber (1990), con la obra ya referida, La sémantique du prototype , quien romperá con la “versión estándar” y planteará la “versión ampliada”. Los prototipos, para dicho autor, son los reflejos asociativos que sirven como ejemplo ideal en la determinación de la categoría de un concepto. Las categorías, por lo tanto desde esta perspectiva, no se basan en una homogeneidad de rasgos que permiten su delimitación de forma discreta, ni en el valor absoluto de sus elementos, sino en una relación relativa entre elementos que pueden estar más o menos cerca del centro, o más o menos cerca de la periferia del esquema mental que se guarda del prototipo, y de los rasgos prototípicos que lo componen. Un punto importante a tener en cuenta es que se debe diferenciar por un lado el proceso de construcción de las categorías, y por otro la categorización en sí, o asignación de dichas categorías a lo percibido. Como señalan Cuenca y Hilferty (1999), la construcción de categorías es un proceso cognitivo de estructuración de la experiencia para organizar el conocimiento del mundo que percibe del exterior y del interior. Esta información es procesada por el cerebro que la estructura mediante categorías (Lakoff, 1987). Las categorías, por lo tanto, son unas herramientas implicadas en el proceso cognitivo, y al mismo tiempo, son el resultado en parte de dicho proceso (Ungerer y Schmid, 1996). Los miembros de una determinada categoría poseen unos rasgos comunes, y unos rasgos diferenciadores, que posibilitan el establecimiento de analogías graduales entre ellos. El prototipo normalmente se construye sobre el miembro que incluye más rasgos comunes entre el resto de la categoría, es decir, suele haber un tipo de relación proporcional entre denominadores comunes y rasgos distintivos que configura la representatividad de un determinado miembro en una categoría, de donde se establece la metáfora de la centralidad y la periferia de los miembros en relación al prototipo, la representación mental que sirve como punto de referencia para identificar a los demás (Ungerer y Schmid, 1996). La categorización no es uniforme, y se articula en el nivel horizontal y en el nivel vertical, los cuales se referirán a continuación. Por un lado, la teoría de los prototipos corresponde al nivel horizontal de la categorización, siendo un modelo de la estructura semasiológica de las categorías léxicas que dota a la lingüística cognitiva de una 83 / metodología aplicada al estudio del significado (Geeraerts, 1997). Para ello analiza la estructura interna de las categorías planteando diferentes grados de pertenencia a cada una de ellas. Por otro lado, la teoría de la categorización en el nivel vertical corresponde con la teoría del nivel básico (Taylor, 1995) y se basa en la organización jerárquica de los miembros de la categoría configurando taxonomías respecto a la generalidad o la especificidad que representan (Hilferty, 2001). La prototipicidad permite señalar los problemas de demarcación conceptual y defiende la flexibilidad de las categorías y su carácter no discrecional, es decir, gradual, marcado internamente por la posición nuclear o periférica de sus miembros. Geeraerts (1997) recoge cuatro características básicas de la prototipicidad que captan muy adecuadamente la esencia de la misma, y que merece la pena glosar: ● La representatividad de un miembro de una categoría está sujeta a una gradualidad que permite establecer una posición entre el núcleo y la periferia. La representatividad no tiene carácter discreto o absoluto. ● Las categorías tienen una estructura de semejanza de familia (Wittgenstein, 1953) que permite su agrupación, configurándose grupos en base a analogías. ● Las categorías poseen límites difusos, no siempre hay fronteras claras entre ellas, es decir, como ya se ha indicado la gradualidad puede otorgar una percepción de la naturaleza de la categoría relativa, no absoluta. ● Las categorías no pueden ser definidas mediante condiciones necesarias y suficientes, esquivando la tradición aristotélica ya que como se ha señalado los límites de las mismas son difusos. La teoría de los prototipos fue revisada a raíz de ciertas críticas (Osherson y Smith, 1981; Armstrong et al., 1983) ya que señalaron que si las fronteras entre categorías eran borrosas, no había una nitidez adecuada que las separase entre ellas, y sus miembros no formaban parte de ellas por unas características definidas basadas en condiciones necesarias y suficientes, no era posible establecer características propias de algunas clases. Las categorías expertas y populares tratan de dar respuesta a esta cuestión (Taylor, 1995). Mientras que las populares se construyen a partir de la 84 / interacción y la experiencia social, que permite perfilar de alguna manera los límites de las categorías que guardamos en nuestra mente con el contraste respecto a los límites de las categorías que tiene el resto gracias al contacto comunicativo, las profesionales son unas construcciones que siguen los principios aristotélicos, con mayor grado de especialización y exactitud, y por lo tanto, con mayor capacidad para establecer límites bien definidos, discretos, entre ellas. La dimensión social del lenguaje reflejada más prominentemente en las categorías populares, y su reflejo en la construcción del significado ha sido numerosas veces resaltada y ampliamente estudiada. Por ejemplo, Wittgenstein (1953), Quine (1974) o para Davidson (1994), el significado, sea el que sea, y al margen de lo que sea, debe ser públicamente accesible. El lenguaje es social y su comprensión necesita de un valor común, aunque se podría decir que el significado de una expresión es lo que los hablantes comprenden cuando escuchan una expresión. La percepción es una reconstrucción cognitiva de la realidad, y el lenguaje es una herramienta de gran peso en ese proceso de reconstrucción. Cada palabra puede ser en sí misma una categoría recogida a su vez en otras categorías superiores. Recurriendo al esquema hegeliano, hay un proceso interno dialéctico en la construcción del significado, un proceso dinámico entre el sujeto individual y el sujeto social, basado en una tesis, una antítesis, y finalmente una síntesis. Esta idea de la construcción dinámica del significado fue usada entre otros por Fauconnier en la ya aludida Teoría de los Espacios Mentales (1985), y que más tarde permitió el desarrollo de la teoría de la Integración Conceptual o amalgama, de Fauconnier y Turner (1994). Como individuos creamos constructos mentales mediante nuestra experiencia, que vamos confrontando social y culturalmente. Los rasgos que componen el significado de las palabras se actualizan, son dinámicos. Esto no extraña en el mundo extralingüístico, por ejemplo, un coche o un ordenador de hace 20 años, desde luego que ha mantenido ciertas funciones, pero ha modificado otras tantas. Como resultado de esta exposición en la que nos ponemos en contacto con el significado, más o menos extendido y aceptado de las cosas, modificamos nuestra experiencia individual, y la construcción del significado continuamente. Cada palabra se asocia a una serie de palabras que “encienden” un significado concreto en cada cabeza. El empleo funcional del lenguaje, en la mayor parte de los usos cotidianos, implica una 85 / adaptación de los hablantes a los estados mentales de sus interlocutores, entre otras cosas, para tener ciertas garantías de éxito en el proceso comunicativo. El lenguaje se fundamenta en la existencia previa de un mundo intersubjetivo compartido, sin el cual, sería imposible dar sentido a las emisiones (Belinchón et al., 1992). Los miembros de una determinada categoría poseen unos rasgos comunes, y unos rasgos diferenciadores, propios. El prototipo como se ha comentado, de manera mayoritaria se construye sobre el miembro que incluye más rasgos comunes entre el resto de la categoría, la representatividad se basa en la proporción entre denominadores comunes y rasgos distintivos, pero es extremadamente difícil compartir esas proporciones de un individuo a otro, incluso compartiendo un mismo marco cultural. La realidad es compleja, lábil, y casi siempre obliga a un margen de error. Las palabras ayudan a acotar esa realidad, pero como ocurre en el mundo físico no siempre se puede ir del punto A al punto B en una línea recta. Igual que para el cálculo de las líneas de costa se utiliza geometría fractal para reducir el margen de error, y aún así el margen de error, aunque minimizado, permanece, con las categorías acotamos la realidad que nos rodea, facilitamos su procesamiento y la posible comunicación. Pero si nos detenemos y observamos las diferencias macroscópicas y microscópicas, como las que puede haber entre un hablante experto de un tema y otro que no lo es, el error de cálculo se destapa. Por último, respecto a la categorización es interesante detenerse, aunque sea de manera somera, en la metáfora, pues los grafos, como se verá en el apartado 8.5.3, ofrecen nuevas posibilidades para su visualización y su estudio. En muchos aspectos, la categorización y la metáfora están íntimamente ligadas. El interés por la metáfora puede remontarse mucho en el tiempo, por ejemplo, Aristóteles (384-322 a.C.) entendía la metáfora como un recurso para comparar elementos de la realidad cognoscitiva, en la que se nombra una cosa con el nombre de otra mediante un proceso de transferencia semántica (Indurkhya, 1987). La cuestión sobre el proceso de formación de las metáforas conceptuales constituye uno de los problemas más discutidos y debatidos en lingüística (Ortony, 1979). La metaforización produce esquemas mentales que permiten visualizar un sentido. Los esquemas, como representación mental simplificada de las partes esenciales de un evento o de un fenómeno, tienen funciones de reconocimiento mediante la experiencia, y como sostenía Aristóteles, además cumplen con una función 86 / predictiva, ya que permiten hacer inferencias a partir del esquema al que pertenece un concepto, facilitando así anticipar comportamientos o características de algo. La metáfora también ha sido un apoyo fundamental para el estudio del significado, que ha permitido considerar a este último como una imagen mental de las cosas, formada por experiencia directa, o por asociación metafórica. L a composición del significado se configura a partir de relaciones de diferentes tipos de analogía (Danesi, 2004) . Por ejemplo, la naturaleza de l a noción de conceptualización es considerada por Vico (1961) como compositiva. La composición de ideas está en la base de la lexicología clásica, para la cual la explicitación del significado de un término viene promovido a través de la indicación de otros términos o expresiones considerados afines a ellos. 87 / 2.4. Enfoque distribucional: Espacios vectoriales semánticos Los modelos de semántica distribucional (MSD) son una aproximación empírica, inductiva y cuantitativa del significado (Martí Antonín, 2018) , que 29 construyen representaciones semánticas en forma de espacios vectoriales multidimensionales a través del análisis estadístico de los contextos en que aparece cada palabra a partir de un modelo de espacio vectorial (Clark, 2014). Las técnicas de “encajes de palabras” ( word embeddings ) han adquirido mucha relevancia en los últimos años ( Word2vec , GloVe , Gensim , etc.) El vector de cada palabra está 30 31 32 constituido por los contextos en que ésta aparece y por su frecuencia de co-aparición con otras. De tal manera, mediante la representación cuantitativa del significado en el espacio vectorial se pueden comparar los vectores asociados a las palabras y obtener el grado de similitud (por diferentes vías, por ejemplo, calculando la distancia euclidiana, o la similitud del coseno a partir del ángulo entre los diferentes vectores en una matriz). Mediante estos métodos el contenido semántico de una palabra se codifica en función de su distribución, y no en rasgos inherentes (rasgos semánticos o componentes del significado), dando lugar a una representación cuantitativa del significado y expresando la similitud de modo gradual a partir de representaciones relacionales, no referenciales, pero en las que es posible establecer la similitud léxica (Rubenstein y Goodenough, 1965). Frente a las limitaciones de las aproximaciones tradicionales al significado de base simbólica, y a la escasa cobertura de los léxicos con información semántica, como explica Martí (2018), los modelos de espacio vectorial se han conformado como una 29 Para un análisis más detallado remitimos al trabajo de Martí Antonín que hace un compendio muy interesante de los modelos usados en semántica distribucional : M. Antònia Martí Antonín. “Modelos de semántica distribucional”, CLiC-Centre de Llenguatge i Computació Universitat de Barcelona, Actas do XIII Congreso Internacional de Lingüística Xeral, Vigo 2018. 30 Mikolov, Tomas & Sutskever, Ilya & Chen, Kai & Corrado, G.s & Dean, Jeffrey.. Distributed Representations of Words and Phrases and their Compositionality. Advances in Neural Information Processing Systems. 26, 2013. 31 Pennington, Jeffrey & Socher, Richard & Manning, Christoper. Glove: Global Vectors for Word Representation. EMNLP. 14. 1532-1543. 10.3115/v1/D14-1162, 2014. 32 Rehůrek, R., & Sojka, P. Software framework for topic modelling with large corpora. LREC, 2010. 88 / alternativa frente a la falta de criterios objetivos de entre las diferentes propuestas teóricas anteriores sobre el metalenguaje de representación del significado léxico y oracional, como WordNet (Miller y Fellbaum, 1991), HowNet (Dong, Dong , 2003), Framenet (Fillmore et al. 1998), PropBank (Palmer et al., 2005) o VerbNet (Feeley et al, 2012). Por ello, los modelos simbólicos basados en reglas se han ido abandonando, al menos de forma mayoritaria, ante la dificultad de aplicarlos al uso real de la lengua, en favor de los modelos fundamentalmente estadísticos basados en el aprendizaje automático ( machine learning ) a partir de la anotación de corpus para el entrenamiento de los modelos (aprendizaje supervisado), y cada vez con más frecuencia, con modelos no supervisados y también auto-supervisados ( self-supervised learning ). Las aproximaciones de NLG y NLU que gozan de mayor interés actualmente, 33 como se comenta en los siguientes apartados, son deudoras en gran medida de las ideas distribucionales de Z. Harris (1954), aunque la relación entre significado y contexto ya había aparecido anteriormente en otros autores. A mediados del siglo XX Wittgenstein, impulsor del positivismo lógico y de la filosofía del lenguaje, en su trabajo Investigaciones Filosóficas (1953), es decir el llamado “segundo Wittgenstein”, ya se había cuestionado el significado referencial de las palabras y sostenía que el significado era dependiente del uso. Para Firth (1935), seguidor de muchas de las propuestas de Malinowski (1923), el lenguaje, y en particular el significado, no se debía entender como un sistema mental aislado, sino como un sistema de interrelaciones, por lo tanto, dependientes del contexto donde suceden estas interrelaciones: “ The complete meaning of a word is always contextual, and no study of meaning apart from context can be taken seriously ” Firth (1935: 37). La capacidad tecnológica de poder acceder y procesar grandes corpus con miles de millones de palabras ha permitido desarrollar técnicas basadas en el modelo distribucional por el cual se analizan las posiciones de las palabras en relación al contexto en el que están insertas. Por lo tanto, para dichos autores y las técnicas que se 33 Respectivamente, Natural Language Generation ( generación de lenguaje natural) y Natural Language Understanding (comprensión de lenguaje natural) . 89 / han desarrollado siguiendo sus ideas, si el significado es dependiente del contexto, creando un espacio vectorial en el que se codifica la distribución de cada palabra, se puede caracterizar al menos parte de las propiedades del mismo a partir del conjunto de contextos donde aparece. Crear vectores a partir de la distribución de las palabras en un texto ha supuesto considerables avances para numerosos campos entre los que destaca la Búsqueda y Recuperación de Información, ( Information Search and Retrieval , ISR), la cual se ha valido de numerosas medidas de rendimiento para puntuar su capacidad de recuperar la información adecuada (Turtle y Croft, 1992), a partir de diversas estrategias para analizar la co-ocurrencia de forma estadística y aplicarla a la similitud de palabras o de relaciones. Por ejemplo, Turney y Pantel (2010) proponen tres tipos básicos de matrices para caracterizar el contexto en función del tipo de acción que se quiera llevar a cabo (relevancia de palabras, clasificación temática de documentos, similitud de palabras, etc). Estos tres tipos de matrices son: matrices palabra-documento, matrices de co-ocurrencia y matrices palabra-patrón, las cuales comentaremos en el siguiente apartado con el objetivo de dilucidar la relevancia del enfoque distribucional y los límites que se pueden encontrar en los modelos que se basan en ellos. 2.4.1. El significado a través de vectores Para entender la importancia y el funcionamiento de la codificación en vectores de la distribución de las palabras es recomendable, tal como presenta Singh Sarwan (2017), un acercamiento desde la base de la codificación más elemental para comprender adecuadamente cómo se puede codificar el significado a través de vectores. Retomando la popularizada idea de Firth: “ You shall know a word by the company it keeps” (Firth, 1957: 11) a modo de aclaración se puede recurrir al refrán “dime con quién andas y te diré quien eres” para comprender mejor el valor del contexto en el que puede aparecer una palabra a la hora de determinar su significado. A continuación presentamos algunos ejemplos del mecanismo usado para poder convertir una palabra a un vector de números reales. Por ejemplo, para representar una palabra en forma de vector comenzaremos usando un método muy sencillo, a partir de una frase de 90 / Cervantes usaremos la codificación one-hot para crear un vector que represente cada palabra de la frase a partir de su posición: “Mis pensamientos corrieron a una distracción”. Para ello, lo primero es crear un “diccionario” (D), es decir, una lista única con las palabras de la frase, por lo que el diccionario tendrá en este caso tantas palabras como la longitud de la frase (D= 6 palabras): D= [‘mis’, ’pensamientos ’, ’ corrieron ’, ’ a ’, ’ una ’, ’ distracción ’] La representación de una palabra puede ser un vector codificado one-hot donde “1” indique la posición donde se encuentra la palabra y “0” donde no. La representación vectorial de la palabra “pensamientos” y de la palabra “ distracción” en este formato de acuerdo con el diccionario sería respectivamente la segunda y la última posición: “pensamientos”= [0,1,0,0,0,0] “distracción” = [0,0,0,0,0,1] Los dos grandes inconvenientes de la codificación one-hot son, por un lado, que si tenemos un texto largo para representar una única palabra necesitaremos un vector demasiado largo, y por lo tanto, requerirá mucha memoria, y por otro lado, que no codifica ningún aspecto semántico de la palabra. Como veremos en el siguiente apartado, cada método usa diferentes tipos de incrustaciones de palabras o embeddings , que a su vez se suelen agrupar en dos categorías: (i) métodos que usan vectores basados en frecuencia, y (ii) métodos que usan vectores basados en predicción. A continuación veremos en qué consisten algunos de los diferentes métodos de incrustación basados en frecuencia, para luego pasar a métodos más complejos basados en predicción. 91 / 2.4.1.1. Vectorización basada en frecuencia Dentro de los métodos de embeddings basados en frecuencia vamos a considerar a continuación 3 tipos diferentes de métodos que en diferentes modelos pueden ser usados de forma complementaria (vectores basados en conteo, vectores a partir del cálculo del TF-IDF , y co-ocurrencia), y cómo se construyen las matrices para 34 codificarlos para llegar a crear modelos que sean capaces de predecir, entre muchas otras cosas, palabras en función de una secuencia dada. (Baroni y Kruszewski, 2014). 2.4.1.1.1 Vectorización basada en conteo Los modelos distribucionales basados en vectores de conteo están diseñados para la obtención de patrones estadísticos de palabras (como la co-ocurrencia), mediante los cuales se pueden comparar similitudes y diferencias entre ellas. La vectorización basada en conteo sigue un proceso de cuatro etapas fundamentales para obtener las 35 co-ocurrencias de palabras en los documentos de un corpus que se desea analizar: construcción de la representación del texto para la extracción de las co-ocurrencias de palabras; creación de pesos para estimar su número; reducción de la dimensionalidad de las representaciones y comparación de las unidades textuales que se quieran analizar a través de medidas de similitud. (Blunsom, Grefenstette y Moritz, 2014). Consideremos un corpus (C), con un número (T) de textos, C= {t 1 ,t 2 ,t 3 …t n } y un número de palabras únicas (P) que conforman el diccionario (D). La matriz tendrá una dimensión de TxP. Cada fila de la matriz contiene la frecuencia de las palabras por cada documento T i . Hay diferentes maneras de confeccionar el diccionario y dependiendo del objetivo que se quiera alcanzar es muy conveniente tenerlas en cuenta. Cuando nos encontramos millones de palabras únicas, muchas veces se filtran por las más frecuentes para evitar crear matrices muy dispersas ( sparse matrix ) que serían muy poco eficientes 34 TF-IDF (Term Frequency-Inverse Document Frequency), es una medida que se utiliza para ponderar la relevancia de palabras en un corpus de documentos. 35 Para información detallada sobre el proceso de vectorización basado en conteo remitimos a Torres López y Arco García (2016). 92 / desde el punto de vista computacional. El diccionario (D) que obtenemos es una lista de las palabras únicas del corpus. Podríamos plantearnos lematizar el diccionario pero en este caso no tiene sentido. Para simplificar, dejaremos la forma que aparece en C: T1: No es necesario repetir errores. Hay errores nuevos para cometer. T2: Cometer errores es necesario. D=[‘No’,’es’,’necesario’,’repetir’,’errores’,’hay’‘nuevos’,’para’,’cometer’] T=2, y P=9; por lo que la matriz es igual a 18 (2 x 9). En la anterior matriz el vector correspondiente a la palabra “errores” es [2,1], es decir en el texto T1 aparece dos veces y en el T2 aparece una vez. Mientras que el vector para representar el texto T2 sería: [0,1,1,0,1,0,0,0,0]. En este caso, a diferencia del anterior ejemplo en el que el vector estaba codificado en one-hot, se ha contabilizado la frecuencia, no se ha codificado la posición, o la aparición únicamente. Como se puede apreciar la capacidad representativa de las palabras mediante esta técnica es muy limitada ya que está más orientada a resaltar la importancia de las palabras de un texto, lo que hace que no sea tan importante que varias palabras, por ejemplo: “no”, “repetir”, “nuevos”, “para”, “cometer”, estén representados por el mismo vector, en estos casos [1,0]. 93 No es necesario repetir errores hay nuevos para cometer T 1 1 1 1 1 2 1 1 1 1 T 2 0 1 1 0 1 0 0 0 0 / 2.4.1.1.2. Vectorización basada en TF-IDF Otro método basado en la frecuencia de las palabras es el cálculo de vectores mediante TF-IDF (del inglés Term Frequency-Inverse Document Frequency ), en el que se calcula una relación entre la aparición de una palabra en un texto respecto al corpus entero. Es una medida muy usada para ponderar la relevancia de palabras, empleada frecuentemente en minería de texto. Este cálculo permite establecer la relevancia general de una palabra en un texto, penalizando aquellas que son muy frecuentes en todos los textos (como las palabras de categorías cerradas). Mientras que el TF simplemente mide la frecuencia de aparición de las palabras en un texto, el IDF trata de equilibrar la relevancia de las palabras asumiendo que si una palabra aparece en muchos documentos será menos específica, y por lo tanto bajará su valor, sin embargo si aparece solo en unos textos determinados, serán palabras más específicas y por lo tanto más relevantes para el documento. Veamos un ejemplo en el que se han contabilizado el número de apariciones de una serie de palabras en los hipotéticos documentos D1, y D2: El TF se calcula mediante el número de apariciones de una palabra en un texto, partido por el número de palabras totales del texto, por lo que: TF (esto, Documento 1) = 1/8 TF (esto, Documento 2)= 1/5 TF (error, Documento 1)= 4/8 TF (error, Documento 2)= 0 94 Documento 1 Documento 2 Palabras nº de apariciones Palabras nº de apariciones esto 1 esto 1 es 1 es 2 problema 2 curioso 1 error 4 necesario 1 / Mientras que el IDF se encarga de corregir o compensar la puntuación obtenida por palabras que son muy frecuentes en todos los textos. El IDF es igual al logaritmo del cociente entre el número de documentos y el número de documentos donde aparece la palabra: IDF = log(N/n) IDF (esto) = log(2/2) = 0. IDF (error) = log(2/1) = 0.30102999 Para calcular el valor del TF-IDF se multiplican ambos valores (TF x IDF). Si por ejemplo, comparamos el resultado que obtenemos de calcular el TF-IDF entre una palabra común como “esto”, y otra menos común como “error” observamos que se penaliza mucho la primera, mientras que la segunda sería una palabra relevante del documento: TF-IDF(esto, D1) = (1/8) * (0) = 0 TF-IDF(esto, D2) = (1/5) * (0) = 0 TF-IDF(error, D1) = (4/8) * 0.301299 = 0.15051 TF-IDF(error, D2) = 0 * 0.301299 = 0 Puesto que unas palabras son más comunes que otras, el valor tf-idf crecerá proporcionalmente al número de veces que una palabra aparece en el documento, pero será compensado por la frecuencia de la palabra respecto a todo el corpus de documentos. 95 / 2.4.1.1.3. Matrices de co-ocurrencia Las matrices de co-ocurrencia se basan en la idea de la semántica distribucional de que palabras con significado similar comparten contextos parecidos. Una matriz de co-ocurrencia con una ventana fija contabiliza las veces que un par de palabras aparecen juntas. Dependiendo de la ventana contextual se tendrán más o menos palabras en cuenta como contexto. A partir de las siguientes oraciones, creamos un diccionario con las palabras únicas (creando una matriz cuadrada) en la que se va a contemplar para la creación de los vectores una ventana de 1 en cada palabra (contexto izquierdo y derecho). Tanto en el eje horizontal como en el vertical de la matriz se colocan todas las palabras del diccionario creado a partir, en este caso de las siguientes frases: ● El olmo es un árbol. ● El chopo es un árbol. 96 El olmo es un árbol chopo El 0 1 0 0 0 1 olmo 1 0 1 0 0 0 es 0 1 0 2 0 1 un 0 0 2 0 2 0 árbol 0 0 0 2 0 0 chopo 1 0 1 0 0 0 / Recordemos que en la anterior matriz la ventana es de uno (tanto a la izquierda, como a la derecha), donde se puede observar que 1 indica que una palabra del eje horizontal es co-ocurrente con otra palabra del eje horizontal, y a la inversa. Cuando no lo son se representa con 0. Paralelamente a estos vectores de co-ocurrencia, por ejemplo, se puede crear otra matriz con la categoría gramatical de cada palabra (POS tagging), de tal manera que podamos representar las posibilidades de co-aparición de elementos en la construcción sintáctica de las frases. E l problema de este tipo de matrices es que requieren una gran cantidad de memoria para ser almacenadas. Las matrices de co-ocurrencia no se suelen usar como representación vectorial sino que se usan técnicas como Análisis de Componentes Principales (Basirat, 2018), o la descomposición en 36 valores singulares (SVD) a la que ya se ha hecho alusión. 2.4.1.1.4. Limitaciones El modelo de espacio vectorial (VSM, Vectorial Space Model ) es capaz de realizar representaciones de documentos de texto a través de vectores de palabras, sin embargo, no es capaz de representar relaciones semánticas entre las palabras, siendo necesario la incorporación de representaciones semánticas en las distintas herramientas que realizan análisis textuales. (Torres López y Arco García, 2016: 148). Entre las principales limitaciones de los métodos deterministas que se han presentado cabe destacar principalmente tres (Jozefowicz et al., 2016): (i) La dificultad para tratar el significado de unidades lingüísticas compuestas de más de una palabra, como unidades pluriverbales o colocaciones; (ii) el acceso o creación de un corpus de calidad suficientemente amplio del dominio de estudio; y (iii) la polisemia de las palabras. Los espacios vectoriales semánticos, como se ha expuesto, se basan en la idea de que el significado de una palabra puede ser representado a través del contexto en el que aparece una palabra, tanto en el enfoque de la semántica distribucional como en el de la semántica composicional. Mientras que la semántica distribucional se centra en el 36 PCA, Principal Component Analysis. 97 / significado de palabras individuales, el segundo enfoque analiza el significado de unidades mayores: frases, oraciones y párrafos. Si bien es cierto que se han obtenido buenos resultados con aquellas representaciones que hacen predicción de contextos para el caso de modelos distribucionales, y también en aquellos que incorporan modelos basados en redes neuronales para los modelos composicionales, como se comentará en el siguiente apartado, todavía quedan por resolverse muchas cuestiones relativas al manejo semántico mediante máquinas. Los vectores se pueden sumar, multiplicar, etc. ¿Pero qué ocurre cuando la suma de las unidades no da como resultado el valor general? Dentro de las teorías del significado, tanto analíticas como constructivas, el principio de composicionalidad, por el que el significado de las expresiones complejas se construye a partir de los significados de sus constituyentes, es decir, expresiones menos complejas, es una idea central y básica que deja sin utilidad muchas de las teorías del significado actuales que no la contemplan (Fodor y Lepore, 2000). Un compuesto nominal como “diente de león” se compondría de los vectores de sus constituyentes y daría como resultado un valor que no tendría nada que ver con la semántica de dicha lexía. Para trabajar con este tipo de construcciones, por lo tanto, primero hay que preprocesar los textos detectando con segmentadores las unidades compuestas (las llamadas Multi Word Expressions , MWE), para luego poder sacar los vectores de manera adecuada a cada unidad de significado. Por otro lado, para convertir las palabras en vectores es necesario contar con un corpus suficientemente amplio, de calidad, y muy deseablemente, que sea propio del dominio que se quiera estudiar. Cuanto mayor sea el corpus utilizado para conseguir los vectores, más posibilidades hay de contemplar todos los contextos posibles en los que puede aparecer una palabra, y por lo tanto, mayor va a ser la “calidad” de los mismos, reflejando de manera más fiel el contenido semántico capturado a través de su distribución. Respecto a la polisemia y la desambiguación de palabras (WSD), se ha convertido en otro de los retos dentro de la Lingüística computacional (Lesk, 1986). Detectar para una palabra polisémica qué contextos son propios de un sentido u otro es una tarea compleja (Cardellino, 2018). Como veremos más en detalle en la siguiente sección, desde la aparición de los embeddings tradicionales, como Word2vec (Mikolov 98 / et al., 2013) o GloVe (Pennington, Socher y Manning, 2014), se han ido mejorando las técnicas para poder distinguir los diferentes valores de una palabra usando capas complejas con arquitecturas bidireccionales LSTM (BILSTM), y así eliminar el 37 problema de asignar a cada palabra un solo embedding (lo que implica codificar en el mismo vector todos sus sentidos). Por ejemplo, las redes neuronales BILSTM también se han usado en otras tareas obteniendo buenos resultados, como por ejemplo, en reconocimiento de voz (Graves et al., 2013). Por otro lado, Sense2v ec (Trask, Michalak, y Liu, 2015), que es una adaptación de Word2vec , utiliza etiquetas supervisadas para desambiguar previamente y poder distinguir entre los diferentes sentidos que pueda tener una palabra. En relación a las aproximaciones anteriores, ELMo (Peters et al., 2018) es un modelo de representación de palabras ( Deep Contextualized Word Representations ) que construye múltiples embeddings para una palabra dependiendo de los contextos donde aparezca, por lo que se categoriza dentro de las incrustaciones contextuales ( contextual embeddings) , como BERT (Liu et al., 2020). Así, una palabra puede tener diferentes vectores, ya que los vectores que se asignan a cada palabra están en relación con toda la frase donde aparece. O por ejemplo, herramientas como Context2Vec (Melamud et al., 2016) que es una extensión del modelo CBOW de Word2Vec , representa el contexto de una palabra como la media de los embeddings de las palabras circundantes. Las estrategias y técnicas para trabajar la representación semántica mediante vectores son muy amplias, y exigen una adecuación al desempeño específico que vayan a realizar en consonancia con las características del lenguaje de un dominio. 37 LSTM, (Long Short Term Memory) y las arquitecturas bidireccionales BILSTM, son redes neuronales recurrentes (RNN) usadas en Deep Learning. 99 / 2.4.1.2. Vectorización aplicada a la predicción La aproximación cuantitativa al significado mediante modelos deterministas como se ha visto presentan ciertas limitaciones que han propiciado el desarrollo de modelos más complejos de redes neuronales (López y Kalita, 2017). En los modelos distribucionales se han obtenido mejores resultados con las representaciones que hacen predicción de contextos, y para los modelos composicionales aquellos que incorporan modelos basados en redes neuronales (López y Arco, 2016). El aprendizaje profundo con Redes Neuronales Recurrentes (RNNs) se basa en modelos muy eficientes de redes 38 neuronales que han alcanzado grandes resultados en PLN. Se denominan recurrentes porque sus conexiones forman ciclos, es decir, en la arquitectura sus neuronas realizan la misma tarea para cada elemento de una secuencia, incorporando información anterior y siendo capaces de construir una representación vectorial para cada palabra. De esa manera, almacenan la información importante, la cual va actualizando en cada bucle y permiten que la información persista, ya que son capaces de recordar las salidas de información anterior. La entrada de estas redes forma una cadena en la que la información obtenida por la neurona anterior es recuperada por la siguiente, que combina ambas para computar el valor que posee esa neurona. El peso de la información perteneciente a una neurona va disminuyendo a lo largo de la cadena que recorre. Las LSTM son una variación de este tipo de redes, las cuales están diseñadas para evitar este problema. Gracias a este tipo de redes se pudieron cambiar los modelos existentes de modelado del lenguaje sin contexto que ofrecían métodos como Glove o Word2vec, por modelos que tuvieran en cuenta el contexto que rodea a una palabra para generar un vector que sea más representativo. Uno de este tipo de modelos, que introduce en el campo del PLN el concepto de transferencia de conocimiento, es ULM-FIT (Howard y Ruder, 2018), y otro modelo destacable dentro de los embeddings contextuales (Liu et al., 2020) ya referido es ELMo (Peters et al., 2018), que así mismo, fue el modelo que introdujo las LSTM bidireccionales (BILSTM), las cuales tienen en cuenta el contexto tanto de izquierda a derecha, como de derecha a izquierda, lo que 38 Existen tres versiones de redes neuronales recurrentes, (RNNs): la versión más simple (Vanilla), LSTM (Long Short Term Memory) y GRU (Gated Recurrent Units). 100 / permite predecir una palabra dadas las palabras que le preceden y a la inversa. Este se entrena también sobre un corpus grande, y posteriormente se realiza directamente la transferencia de conocimiento añadiendo un clasificador al final de la red. Además de las RNNs, también se usan se han usado redes neuronales convolucionales (CNN) que, aunque se han aplicado fundamentalmente al procesamiento de imágenes, también se han estado aplicando a otras tareas de procesamiento de lenguaje natural como la clasificación temática de textos (Wang, Jin, et al., 2017). Por otro lado, técnicas como los CRF ( Conditional Random Fields ), carecen de utilidad suficiente a la hora de modelar la similitud semántica entre dos palabras de forma eficiente (Sutton y McCallum, 2012), aunque han alcanzado buenos resultados en otros tipos de análisis como señalan Lafferty, McCallum y Pereira (2001). Más recientemente, ha aparecido la arquitectura de Transformers (Vaswani et al., 2017) , cuyo mecanismo de atención ha supuesto un nuevo hito dentro del PLN. Las capas de atención han sustituido la anterior configuración de las neuronas basadas en codificadores y decodificadores, reduciendo entre otras muchas cosas los costes de entrenamiento, y aumentando significativamente las posibilidades realizativas de la mayor parte de tareas de PLN, ya que no se usan modelos tan superficiales de lenguaje, y no están tan limitados en cuanto a la información que pueden extraer (Liu et al., 2020). Se debe considerar que los modelos de lenguaje de tipo predictivo denominados semánticos (Lowe, 2001) cotejan palabras relacionadas por la afinidad de sus vectores que representan la proximidad o lejanía contextual extraída gracias al entrenamiento con grandes cantidades de texto. Los corpora usados deben ser lo suficientemente extensos como para representar las posibilidades de aparición de cada palabra. De tal manera, desde la perspectiva de la lingüística distribucional, las palabras representadas, según su co-aparición en determinados contextos, tendrán vectores próximos. Las implicaciones del valor estadístico de la aparición de las palabras en un contexto determinado en la extracción del valor semántico han sido discutidas en los diferentes dominios y tareas de PLN (Landauer y Dumais, 1997; Burguess et al., 1998; Lowe y McDonald, 2000; Levy y Bullinaria, 2001). A pesar de que dichas técnicas consiguen cierta representación semántica son íntimamente dependientes del contexto típico en el cual se ha entrenado el modelo (Lowe, 2001), a lo que se le suman problemas, como por ejemplo la ley de Zipf (Zipf, 1949), por la cual se describe que la frecuencia de aparición de una determinada palabra 101 / es proporcional a la inversa de la posición que ocupa dicha palabra según su número de apariciones. Este patrón relativo a la proporción en la aparición de las palabras tiene implicaciones en las propiedades distributivas, y por lo tanto, el uso de vectores de co-ocurrencia no siempre puede ser una buena opción a la hora de construir un espacio semántico (Lowe, 2001). El campo del PLN en los últimos años está acelerando su evolución y , por ejemplo, el aprendizaje supervisado que dio paso al aprendizaje no supervisado, ahora empieza a compartir protagonismo a la hora de entrenar modelos con el aprendizaje auto-supervisado, self-supervised learning (Du et al., 2020), o el aprendizaje contrastivo, contrastive unsupervised learning (Arora et al., 2019). Las limitaciones de los métodos deterministas fueron superadas en parte con técnicas como Word2vec (Mikolov, 2013), y más recientemente con modelos de lenguaje pre-entrenados (Zhang, Wu, Zhao et al., 2019), que como se ha referido anteriormente, usan codificadores con Transformers, como BERT (Jacob et al., 2018), XLNet (Zhilin et al., 2019) o T5 (Colin et al., 2019), los cuales se tendrán en cuenta dentro del apartado de tecnologías semánticas. Estos métodos también están basados en técnicas de predicción, ya que son capaces de devolver la probabilidad de que una palabra aparezca en un determinado contexto, y han sido muy usadas para trabajar en tareas en las que se necesita computar la analogía entre palabras, o para construir medidas de similitud, como se puede comprobar en las marcas de GLUE ( General Language Understanding Evaluation ) y superGLUE, en diversas tareas como resúmenes automáticos abstractivos (Zhang et al., 2019), o tareas de pregunta-respuesta, QA, question-answering (Reddy et al., 2019). En el caso de Word2vec, que ha sido el modelo que ha recibido la mayor atención durante el último lustro antes de la llegada de la arquitectura con Transformers (los cuales copan prácticamente la mayoría de las tareas de NLU y NLG en cuanto a rendimiento), no se basa en un único algoritmo. Utiliza la combinación de dos técnicas de representación vectorial de palabras que permiten realizar diferentes tipos de predicción: (i) CBOW ( Continuous bag of words ), el cual permite predecir una palabra a partir del contexto, y (ii) modelos de Skip-gram, que están más orientados a predecir el contexto a partir de una palabra. CBOW tiene la problemática de que construye el vector de una palabra realizando la media de los contextos donde aparece cierta forma, produciéndose un solapamiento en las formas 102 / polisémicas, es decir, coloca en el mismo punto del espacio semántico palabras que son polisémicas y les asigna el mismo vector. Mientras que Skip-gram crea un vector por cada contexto de la palabra, permitiendo diferenciar los significados (Kenter et al., 2016). Ambas técnicas se basan en redes neuronales que establecen pesos y probabilidades para cada palabra, logrando mejores resultados que los métodos deterministas, y al contrario que las matrices de co-ocurrencia, no necesitan tanta memoria y recursos. Si bien es cierto, como otra de las principales desventajas se debe mencionar que Word2vec no puede trabajar con palabras que estén fuera de su vocabulario ( out-of-vocabulary , OOV), puesto que para ellas no tiene asignado ningún vector. Por otro lado, GloVe ( Global Vectors ) usa vectores globales que son métodos basados en conteo, en los que la ocurrencia de las palabras en el texto es la principal fuente de información para aprender representaciones de palabras mediante métodos de aprendizaje no supervisado ( Pennington et al., 2014) . 103 / 2.5. Teoría Sentido-Texto (TST) La Teoría Sentido-Texto (TST), o Meaning-Text Theory (MTT), es un marco teórico creado inicialmente por Aleksandr Žolkovskij e Igor Mel’čuk (1970) como esquema de representación del significado subyacente en textos como parte de un proyecto para crear paráfrasis de forma automática, aunque fue desarrollado fundamentalmente por Mel’cuk (1981, 1988ab, 1996; Mel’cuk et al., 1984), y aplicado en la construcción de modelos de lenguaje natural, de base léxica. Comprende diferentes niveles, y su postulado principal se basa en la correspondencia, o proyección, entre los significados y los textos correspondientes. Los modelos creados relacionan los textos con sendas representaciones de significado, mediante la descripción de las proyecciones existentes entre los significados y los textos del lenguaje natural (Faber y Mairal 1999: 11). Esta teoría postula que cualquier enunciado se caracteriza por representaciones de los siguientes siete niveles de descripción que son reflejados en el modelo (Wanner 1996: 23): ● Representaciones semánticas. ● Representaciones sintácticas profundas. ● Representaciones sintácticas de la superficie. ● Representaciones morfológicas profundas. ● Representaciones morfológicas de la superficie. ● Representaciones fonéticas profundas. ● Representaciones fonéticas de la superficie. La Teoría Sentido-Texto estudia la lengua a partir del léxico y de las relaciones que configuran la semántica usando descripciones detalladas de las unidades léxicas. Para la TST un acto de comunicación lingüística consta de un contenido (significado), una señal y un conjunto finito de correspondencias entre los significados y formas (textos). Aunque haya acceso directo a los significados y a los textos, es necesario poder acceder a la correspondencia entre ellos (Mel'cuk y Zholkovskij 1984). Según Mel’cuk (1988), una lengua sólo puede describirse como un modelo funcional, o un sistema de reglas que 104 / simule el comportamiento lingüístico. La teoría proporciona una base amplia para la descripción lingüística que, debido a su carácter formal, está muy orientada a las aplicaciones informáticas, como la traducción automática o la generación de textos, así como en lexicografía. El minucioso aparato formal del que consta permite implementar entre otras cosas el principio de herencia léxica (Mel’čuk y Wanner, 1996), algo fundamental en el avance de sistemas de computación semántica. En la Teoría Sentido-Texto los elementos del léxico (unidades léxicas) en una lengua pueden relacionarse entre sí en un sentido semántico abstracto. Estas relaciones se representan mediante funciones léxicas (FFLL) que permiten formalizar las relaciones léxicas paradigmáticas y sintagmáticas (Barrios Rodríguez, 2010). Las FFLL se conciben como la herramienta para representar de manera formal las relaciones entre unidades léxicas, gracias a las cuales se codifica la compleja red de relaciones léxicas que presenta una lengua. Esto permite establecer analogías entre las unidades léxicas a partir de los pesos que tienen con independencia de la forma en que estén expresados, pues las funciones léxicas permiten “abstraer” la semántica, de la forma correspondiente (Mel’cuk, 1996). La Teoría Sentido-Texto recoge más de 60 tipos de FFLL que posibilitan, entre otras cosas, la descripción de relaciones, como por ejemplo, la sinonimia, o las relaciones de hiperonimia-hiponimia, de la misma manera que es capaz de representar el valor de los elementos constituyentes de determinadas construcciones, estructuras fijas, etc, al margen de la forma en que estén expresados (Mel’cuk, 1996) . Las FFLL imponen restricciones de combinación a sus bases que han sido llamadas rasgos de dominio (Barrios Rodríguez, 2010). Aunque este modelo de representación supuso un avance en la lexicografía, se ha criticado la dificultad de su aplicación por ser demasiado teórico y formalista (Liang 1991-1992; Piotrowski 1990). 105 / 2.5.1. Explanatory Combinatorial Dictionary (ECD) Como se acaba de ver, entre los principales objetivos de la TST, se encuentra el dilucidar cómo los significados se materializan en un texto. Con este fin se creó un aparato formal donde se codifica toda la información léxica, el Explanatory Combinatorial Dictionary (ECD), una metodología lexicográfica desarrollada, entre otras cosas, para la elaboración de diccionarios generales (Melʹčuk, 1984). En el ECD, se aplica el concepto de función léxica referido en el anterior apartado para describir sistemáticamente las relaciones semánticas y sintácticas que se establecen entre las unidades léxicas (Heylen y Maxwell 1994). Como ya se ha señalado, Melʹčuk define alrededor de sesenta FFLL, y las divide en relaciones paradigmáticas y sintagmáticas, siguiendo la clasificación saussuriana (Faber, 1999). Las FFLL marcan las relaciones de dependencia entre los argumentos de una función, y el valor o expresión lingüística, que vincula el significado de una función, o expresa su papel sintáctico en relación con su argumento. (Steel y Meyer 1990: 42). La descripción semántica consiste en una palabra representativa ( keyword ), y un operador semántico abstracto que se aplica a dicha palabra, donde los distintos tipos de operadores se corresponden con los diferentes tipos de colocaciones. Melʹčuk (1984) concibe el diccionario como un sistema de relaciones léxicas donde cada relación es especificada y formalizada. Es un enfoque sistemático para especificar las relaciones entre las entradas, ya que permite comprobar que toda la información relevante está presente y facilita a los usuarios el acceso a los términos relacionados. La red relacional que se forma actúa como un sistema de referencia interno a gran escala cuyas referencias cruzadas, estructuradas sistemáticamente, permiten al usuario saber qué entradas remiten a otras, cómo se relacionan y por qué (Frawley 1980). La definición se representa mediante la forma proposicional y la propia definición, donde se explica el significado a partir de los elementos más simples que lo componen ( Faber, 1999) . Esta descomposición del significado en elementos más simples corresponde con el concepto de lo que Mel’cuk (1988) denomina Principio de Descomposición, es decir, es un principio por el cual en la definición de una unidad léxica solo deben aparecer términos más simples que dicha unidad. 106 / De forma resumida, Mel’cuk (1998: 50) defiende las siguientes 6 características formales del ECD: ● Es un diccionario teórico que se constituye en un marco lingüístico coherente que pone el centro de su atención en el lexicón, con un módulo semántico, uno sintáctico y uno morfológico. ● Es un diccionario activo, en referencia a que está orientado hacia la producción o generación. ● Es un diccionario semántico que se basa en la representación semántica de todas las expresiones contenidas, donde la definición es la parte central de la entrada léxica. ● Es un diccionario combinatorio, ya que se centra en la co-ocurrencia de las palabras y sus restricciones de combinación (sintáctica y léxica). ● Es un diccionario formalizado que puede ser considerado como una base de datos léxica. El formato del ECD por lo tanto, es una garantía de que toda la información relevante o disponible, está incluida de forma estructurada. Es un diccionario que tiene como objetivo ser exhaustivo respecto a las unidades léxicas donde idealmente debe aparecer toda la información de que dispone un hablante nativo sobre una determinada unidad léxica (García de Quesada, 2001). Mel’cuk concibió este método para describir la lengua general, aunque su representación es demasiado compleja para el procesamiento humano, no lo es para sistemas informáticos, en especial para la representación de las colocaciones (Tercedor Sánchez 1999). También otros autores como Frawley (1980/1981) han planteado la idoneidad del modelo para la compilación, elaboración y desarrollo de vocabularios de especialidad. Por ejemplo, Frawley (1980/1981:24) propone las siguientes FFLL para los diccionarios de especialidad: sinonimia, antonimia, taxonomía gradación (prelación en las relaciones que se explicitan), causa, parte/todo, fuente (relaciones con otras entradas), resultado, continuación (la continuación de una entrada se marca con otra entrada) y etimología. Como ya se ha indicado, la combinación de los tipos de funciones léxicas puede ser muy productiva en aplicaciones informáticas, pues gracias a 107 / ellas se puede enriquecer enormemente la capacidad semántica de las máquinas al contar con un sistema estructurado que las dota de una información léxica exhaustiva. En este aspecto, las últimas contribuciones teóricas de Mel’cuk y Wanner (1994: 331-337) plantean la posibilidad de implementar en un ECD la herencia léxica, evitando así la redundancia al codificar o procesar dicha información. Cada elemento que es transferido se nutre de información semántica que justifique su uso con el lexema específico del que se ha extraído. 2.6. Modelo Lexemático Funcional El Modelo Lexemático-Funcional (Martín Mingorance, 1984; Faber y Mairal, 1999) propone una metodología lingüística para la organización conceptual que se basa en la estructura definicional. En ella, la codificación jerárquica de la información hace posible la identificación de las distintas relaciones conceptuales, donde las categorías conceptuales se configuran a partir de las propiedades que comparten entre sí, y que las relacionan con los demás conceptos. Martín-Mingorance (1988) desarrolla este modelo que integra la gramática funcional de C. Dik (1978), con la Lexemática de Coseriu (1992). El modelo Lexemático-Funcional recoge los nuevos enfoques propuestos de la gramática funcional sobre la estructura jerárquica del enunciado, incorporando los clasemas y rasgos pragmáticos al análisis léxico (Faber y Mairal, 1999; Tercedor Sánchez, 1999). Las propuestas realizadas desde este enfoque defienden la combinación de entradas léxicas completas, con una información muy variada e interrelacionada. A pesar de las diferencias formales que se pueden encontrar, estas propuestas coinciden en la búsqueda de representar el significado a través de predicados y argumentos. Uno de los objetivos principales del modelo es representar el lexicón en su totalidad, no únicamente cada unidad léxica de forma individual. Para ello, se intenta elaborar una organización global del lexicón que refleje lo más fielmente la estructura del lexicón mental. Dicha idea queda plasmada en la noción de dominio léxico. Así mismo, como se ha señalado, uno de los valores que más se ponen en relieve sobre el Modelo Lexemático-Funcional es la 108 / estructuración onomasiológica del lexicón, el cual se divide en dominios léxicos estableciéndose la estructura jerárquica. Esta arquitectura del lexicón-diccionario, se configura en torno a los ejes paradigmático, sintagmático, y cognitivo, los cuales determinan el significado de un predicado (Tercedor Sánchez, 1999). En dicha estructura, por un lado, el eje paradigmático, organiza jerárquicamente los lexemas, y en él se encuentran las relaciones basadas en la potencialidad que tienen los lexemas para aparecer en una determinada combinación. El eje paradigmático contempla los términos inferiores de la jerarquía, es decir, los hipónimos, que están definidos mediante un término más genérico o archilexema, y que corresponden con el hiperónimo genus de la definición lexicográfica. A partir de la descomposición léxica de las definiciones en el eje paradigmático, es posible delimitar los dominios y subdominios de la jerarquía. La descomposición léxica mantiene el Principio de Descomposición de Mel’cuk (1988), por el cual como ya se ha señalado, la definición de una unidad léxica ha de contener solamente términos que sean más simples que dicha unidad. De tal manera, los genus de los conceptos son lexemas genéricos que establecen la integración de otros conceptos asociados en un mismo dominio. Estos hiperónimos configuran el significado nuclear del dominio, que se mantiene en los lexemas más específicos de la jerarquía (García de Quesada, 2001). Por otro lado, en el eje sintagmático se definen los patrones de complementación. Es el eje donde se establecen las relaciones entre los elementos que aparecen conjuntamente en una secuencia lineal, y donde se integra la Gramática Funcional de Dik (1978), la cual a su vez contempla la Teoría de las Valencias (Tesnière, 1959) y la Gramática de Casos ( Fillmore, 1968) . Por último, en el eje cognitivo se engloban los anteriores, sirviendo de interfaz entre el lenguaje y el pensamiento, e integrando las teorías que se han desarrollado en el marco de la lingüística cognitiva (Lakoff 1987; Langacker 1987). Además, el modelo incorpora los clasemas y los rasgos pragmáticos a la descripción del lexicón en varios dominios léxicos, así como la semántica cognitiva, la cual incluye la semántica de los prototipos para la descripción del léxico (Jiménez Hurtado, 1992). En el marco del Modelo Lexemático Funcional (MLF), el léxico ocupa una posición central. Su postura lexicalista además se conjuga con un enfoque relacional del léxico (Márquez Linares 1998). Este enfoque relacional permite reflejar desde un punto 109 / de vista psicológico la memoria léxica humana, constituyéndose una red de conceptos unidos mediante diferentes relaciones semánticas (Wright 1997b: 92), de tal manera que la interrelación entre los lexemas y sus significados revela hasta cierto punto características de nuestra percepción, y de cómo reconstruimos y codificamos la realidad. En este aspecto, uno de sus objetivos es que la estructura del léxico de especialidad, refleje de la manera más fiel posible la estructura en que se guarda el conocimiento en la mente de un experto (García de Quesada, 2001). Las investigaciones lexicográficas en el MLF se han centrado fundamentalmente en los predicados verbales del léxico general, pues son los que rigen el marco semántico y relacional dentro de la estructura oracional y, por lo tanto, se consideran como la categoría léxico-sintáctica de mayor importancia de una lengua (Fellbaum 1990). Por ejemplo, Faber y Mairal Usón (1999) proponen una organización del lexicón verbal del inglés que se basa en la distinción entre relaciones sintagmáticas y paradigmáticas, es decir, en los principios complementarios de combinación y selección (Lyons 1977). También caben destacar otras aportaciones en el estudio de otras categorías gramaticales, como por ejemplo, las de Márquez Linares (1998), y sus investigaciones en torno a los sustantivos según el modelo lexemático-funcional. 110 / CAPÍTULO 3: TECNOLOGÍAS SEMÁNTICAS Y SUS APLICACIONES En el siguiente capítulo se explican algunas de las principales tecnologías semánticas que se han usado y que se usan actualmente para procesar el significado. ● Figura 9. Subgrafo aleatorio tras la consulta: MATCH p = ( a )-[*]-( b ) return p limit 1000 111 / 3. Tecnologías semánticas y sus aplicaciones Dentro de la tecnología semántica, se han utilizado diferentes recursos de conocimiento lingüístico externo para construir aplicaciones. Hay numerosos tipos de fuentes con conocimiento lexicográfico (vocabularios, taxonomías, tesauros, ontologías, diccionarios, glosarios, etc.) en formato digital que poseen un conocimiento muy útil que se han aplicado en diferentes proyectos (Amsler y Walker, 1985; Fernández-Pampillón Cesteros, 2010). A pesar de la gran tendencia al uso de métodos estadísticos de los últimos lustros basados en el entrenamiento de corpus (de forma supervisada y no supervisada), y el paulatino abandono de dichos recursos en ciertos sectores, actualmente también encontramos el uso de información “externa” a los textos para las representaciones semánticas extraídas mediante redes neuronales (Neural Language Modeling, NLM), que pueden servirse de recursos léxicos, como Wordnet (Loureiro y Alípio, 2019). Por ejemplo, para la resolución de la ambigüedad (WSD) diferentes campos se han servido de bases de conocimiento en las que se han usado medidas de similitud basadas en el contenido. De tal manera, diversos campos, como el de la biomedicina entre otros, se han beneficiado de estos avances (Mcinnes et al., 2011), ya que por ejemplo, es necesario usar herramientas de desambiguación en textos clínicos para los conceptos a partir de otras bases de datos como UMLS ( Unified Medical Language System ) o SNOMED-CT. Estas medidas cuantifican el grado de similitud entre conceptos a través del contenido de estas bases de datos y son enriquecidas con datos extraídos de corpus médicos para aumentar su efectividad. Se ha demostrado que en muchos casos las medidas basadas en contenido obtienen mejor capacidad de desambiguación, como el proyecto SenseRelate (Patwardhan, Banerjee y Pedersen, 2005), que las que solo se basan en información estadística de corpus, porque son capaces de ponderar el camino entre dos conceptos a partir de la información de la taxonomía donde se encuentran, añadiendo la probabilidad de que estos conceptos se encuentren en el mismo corpus de textos. Es decir, ponderan el camino en función del lugar que ocupen en la taxonomía, junto con la probabilidad de que los conceptos ocurran en un corpus de texto. Gracias a iniciativas desde diferentes ámbitos, en la 112 / esfera nacional por ejemplo, el Plan TL , se pueden encontrar cada vez más corpus en 39 español, (Moreno et al., 2019) pero no hay tantos de ellos disponibles como desde luego, en lengua inglesa para tareas concretas en los que se haya etiquetado características específicas, por ejemplo Sensem ( Sentence Semantics ), que es una base de datos de semántica oracional (Fernández, Vázquez y Castellón, 2006) o SFU Review-NEG etiquetado para la identificación y análisis de la negación (Martí et al., 2016). La ontología, la base de conocimiento, la base de datos léxica, el lexicón computacional, los diccionarios electrónicos, el tesauro , los corpora , etc, son recursos 40 lingüísticos cuya utilidad se ha visto reflejada en proyectos de un amplio abanico de aplicaciones (Sandoval, 1998). La problemática terminológica que muchas veces acarrea su distinción y el uso impreciso que se hace de ellas hace que muchas veces se encuentren solapados en la bibliografía. Para S. Arano (2003), las ontologías, que requieren de una jerarquía conceptual a partir un único concepto superordinado, junto con las bases de conocimiento y los lexicones computacionales, suelen estar dotados de reglas que les permiten realizar inferencias sobre la información que contienen. Sin embargo, las bases de datos léxicas y los tesauros lexicográficos son repositorios pasivos, pues necesitan de aplicaciones externas para inferir nuevo conocimiento a partir del contenido explícito. Por otro lado, las bases de conocimiento y las ontologías se organizan en base a conceptos; mientras que las bases de datos léxicas, los lexicones computacionales y los tesauros lexicográficos se estructuran a partir de unidades léxicas (Sandoval, 1998). La dificultad radica en distinguir unos de otros, ya que en muchas ocasiones mantienen rasgos comunes. Para Pustejovsky (1995), las bases de conocimiento léxico son grandes repositorios de información léxica que incorporan, además de la descripción estática de las palabras, sus propiedades, los valores asociados a ellas, restricciones sobre el comportamiento del mundo, diferentes interpretaciones de los términos en función del contexto, o generalizaciones lingüísticas. Desde el punto de vista lingüístico, el tesauro es concebido como una ayuda en la búsqueda de los 39 El Plan de Impulso de las Tecnologías del Lenguaje (Plan TL) es una iniciativa del Ministerio de Asuntos Económicos y Transformación Digital del Gobierno de España y tiene como fin fomentar el desarrollo del procesamiento del lenguaje natural. Se puede consultar su página en https://plantl.mineco.gob.es/ (visitado en septiembre de 2018). 40 Para una revisión completa véase la tesis doctoral de Fernández-Pampillón (2010). 113 / términos más adecuados para expresar un concepto, ya que la estrategia de búsqueda es parecida a la de un diccionario ideológico, pudiendo hacerse en profundidad a partir de relaciones de hiponimia-hiperonimia, o en anchura, a partir de relaciones asociativas (Fernández-Pampillón Cesteros, 2010). También cabe destacar su uso en Recuperación de Información (Aitchinson y Clarke, 2004). Por ejemplo, respecto a la desambiguación de palabras (WSD) encontramos el uso de grafos y de diccionarios electrónicos, o la desambiguación basada en conocimiento (Nica, Martí y Montoyo, 2004), en diversos autores como Navigli y Lapata (2007), Lin (1998), o Tou Ng y Beng Lee (1996). Dichos autores se sirvieron de la información de redes semánticas y diccionarios para construir grafos en los que la similitud se establece entre pares de conceptos, o entre los conceptos y el contexto en el que se encuentran. También encontramos diferentes trabajos que usaron Personalized PageRank (Fogaras et al., 2005; Chakrabarti, 2007), aplicado como un algoritmo no supervisado de desambiguación léxica basado en grafos. Agirre y Soroa (2009) se sirvieron de conocimiento externo a partir de la base de datos léxica WordNet (Miller y Fellbaum, 1991) y sus jerarquías para crear un grafo con pesos en los nodos mediante la adaptación del algoritmo PageRank (Brin y Page, 1998) para la resolución de la ambigüedad léxica de las palabras de un texto. Hovy y Lin (1999) también utilizan WordNet para calcular la puntuación y propagar los pesos de las palabras detectadas en el texto con el sistema SUMMARIST. Hay numerosos trabajos que han usado igualmente algoritmos de centralidad basados en grafos para representar el texto como una red compleja y establecer la importancia de cada nodo en función de las relaciones que mantiene en la red. Otro de los métodos para calcular la centralidad muy usado en generación automática de resúmenes a través de grafos fue TextRank (Mihalcea y Tarau, 2004) y Lexrank (Erkan y Radev, 2004). En una línea parecida, tanto en la extracción de palabras clave como la generación automática de resúmenes, se mantienen ciertas características comunes, ya que en ambas se persigue dar con las partes de un texto de mayor relevancia (Wan et al., 2007). Para ello, medidas de similitud a través del coseno calculado sobre los vectores TF-IDF son tomadas como puntuación, o pesos en las aristas que relacionan los nodos del grafo. Con el desarrollo de las tecnologías semánticas, las bases de datos relacionales (RDBMS) están perdiendo interés en la industria debido a las nuevas necesidades 114 / emergentes en el manejo, relación y análisis de grandes cantidades de datos ( Big Data ), mientras que cada vez más son los proyectos y las empresas que empiezan a implementar soluciones en bases de datos no relacionales, como los grafos. Junto con las tecnologías basadas en la web semántica ( RDF, SparQL, SHACL , etc), han aparecido otras con nuevas propuestas para desarrollar la capacidad semántica de numerosas aplicaciones que veremos a continuación. Además de los estándares del W3C relacionados con la web semántica, la cual proporciona un marco común que permite que los datos se compartan y reutilicen como los datos enlazados ( Linked Data ), en 41 2017 se lanzó un nuevo estándar ISO , el lenguaje de consultas declarativo para grafos 42 Graph Query Language (GQL). El lanzamiento de este proyecto de estandarización de lenguaje de grafos es una muestra del interés creciente en los últimos años en áreas 43 como el conocimiento distribuido, las ontologías, las bases de datos en grafos, o las bases de conocimiento (Green, 2019), que son un tipo especial de bases de datos que reúnen conocimiento específico de un campo especializado de forma que pueda ser utilizado por un ordenador. Además las bases de datos de conocimiento puede contener reglas, hechos u otras representaciones. Si contiene reglas se puede usar un motor de inferencia que simula el razonamiento deductivo lógico para inferir nuevos hechos y generar nuevo conocimiento. En el siguiente apartado se presentarán algunas de las tecnologías más relevantes que se han usado en el ámbito de investigación de la Semántica, y a continuación se hará un recorrido por las herramientas de mayor interés para este trabajo en el panorama del estudio del significado desde la perspectiva computacional. 41 Por ejemplo, JSON-LD (JSON for Linked Data ) es un método para la codificación. 42 GQL ( Graph Query Language ) es un estándar de consultas para grafos (ISO/IEC 39075), aprobado por los miembros del ISO/IEC Joint Technical Committee 1 (ISO/IEC JTC 1) en septiembre de 2019. 43 A modo de ejemplo, Opencypher es un lenguaje de consulta con especificaciones completas y abierto para bases de datos de grafos de propiedades. También es un proyecto de código abierto que facilita el uso del lenguaje Cypher para incorporar procesamiento de grafos. Cypher permite a los usuarios expresar qué datos recuperar (es un lenguaje declarativo) mientras el motor subyacente completa la tarea. Cypher , del que nos ocuparemos en capítulos más adelante, es uno de los lenguajes considerados como inspiración para GQL ( Graph Query Language ). 115 / 3.1. Principales tecnologías aplicadas al procesamiento semántico 3.1.1. Grafos Los grafos son una tecnología especialmente útil para representar relaciones entre elementos y poder analizarlas. El significado tiene una naturaleza profundamente relacional por lo que los grafos representan un medio especialmente adecuado para trabajar con el significado a través de las relaciones que existen entre las palabras, en este caso concreto, a través de las relaciones que se establecen entre ciertos definidores de las definiciones lexicográficas, con el definiendum . Las técnicas de modelado del lenguaje basadas en grafos (Elbassuoni et al., 2009) mayoritariamente se nutren de los principios de las redes complejas , un área de investigación que nace de la intersección entre la teoría de grafos y la estadística (Plaza, 2010). Los matemáticos Erdös y Rényi (1959) impulsaron en diversos aspectos la teoría de grafos estableciendo las bases del desarrollo posterior. La teoría aleatoria de grafos , por la que se describía una distribución aleatoria en las que los nodos tienen un número similar de relaciones, dio paso a las denominadas redes de mundo pequeño (smallworld networks). En dichas redes es posible conectar cualquier par de nodos a través de un número considerablemente pequeño de saltos, y tienden a agruparse entre sí (Watts, 1998). Las redes libres de escala son otro tipo de redes complejas donde la distribución de las conexiones tampoco es uniforme: ciertos nodos (nodos concentradores) están muy conectados, mientras que los demás están muy poco conectados entre sí (Barabasi, 1999). Como veremos, la red construida se ajusta a este patrón ya que, al margen de las denominadas stopwords (Luhn, 1957), hay una serie de palabras muy frecuentes en las definiciones lexicográficas, mientras que otras, una mayoría, están mucho menos conectadas. Este hecho no solo afecta a las palabras que se usan frecuentemente en una definición lexicográfica, que en su mayoría han sido descartadas para este estudio, sino a aquellas palabras que contemplan mayor número de categorías subordinadas a otras más generales en el diccionario (fundamentalmente correspondientes a las relaciones semánticas de hiponimia-hiperonimia y meronimia-holonimia). 116 / En los últimos años ha habido un creciente interés por la representación semántica usando grafos (Recski y Ling, 2015). Aunque la validez y el interés por la representación semántica con grafos se remonta a mediados del siglo XX, entre otros con los trabajos de memoria semántica ( Semantic Memory Model ) de Quillian (1968), Collins (1969), el KL-ONE system (Brachman y Levesque, 1985), u otro de los primeros modelos de red de memoria semántica, el TLC ( Teachable Language Comprehender ), también de Quillian (1969). En este modelo, los nodos representan conceptos con una serie de propiedades, y se relacionaban mediante aristas dirigidas con otros nodos. Gracias a estos primeros modelos se pudo avanzar en aspectos como la propagación de la activación, el efecto de familiaridad, el efecto de tipicidad y también explicar el efecto del primado o priming (Lund, Burgess y Atchley, 1995), por el cual es más fácil recuperar una información determinada de la memoria cuando previamente ha habido una exposición con un estímulo relacionado, o estímulo primante . Ya en estos trabajos se pudo comprobar el resultado que tenía en el procesamiento y recuperación de la información la distancia semántica (o en este caso número de nodos intermedios) entre dos palabras o conceptos. Más recientemente la Representación Abstracta del significado (AMR, Abstract Meaning Representation ), se ha dirigido hacia la formalización del significado a través de la estructura argumental como soporte para manejar el significado y representarlo mediante grafos dirigidos (Banarescu et al., 2012) y ha dado lugar a numerosos trabajos y herramientas (Vanderwende et al., 2015; Peng et al., 2015). La teoría de grafos, por lo tanto, ha adquirido bastante atención en el Procesamiento de Lenguaje Natural en diferentes tareas relacionadas con la extracción 44 de información ( Information Extraction, IE ), o recuperación de información (Information, Search and Retrieval, ISR ) a través de la representación del lenguaje en grafos, como el reconocimiento de entidades ( Name Entity Recognition, NER ), resolución de correferencia ( Coreference Resolution, CR ) la desambiguación de 44 Por ejemplo, consúltense en el trabajo de Fernández-Pampillón Cesteros (2010) los higraphs (HG) y los higraphs léxicos (HL) en la representación de información compleja muy interrelacionada, entre otras cosas para su aplicación a la construcción y gestión de tesauros monolingües. 117 / palabras ( Word Sense Disambiguation, WSD ), la generación de resúmenes automáticos, la categorización automática de textos, o la detección de palabras clave. Respecto a los formatos, existen multitud de tipos para la representación visual de grafos. Por ejemplo, GraphML es un formato de archivo basado en XML para grafos con el objetivo de definir un formato común para el intercambio de datos con estructura de grafos. Utiliza una sintaxis basada en XML y admite, además de los atributos específicos del formato, todo el rango de posibilidades de los grafos: grafos dirigidos, no dirigidos, mixtos, hipergrafos, etc. Además de GraphML , existen muchos otros como: GXL, GML, DOT, GDF, etc. Sin embargo, estos formatos se han ido abandonando en favor del formato JSON. Este interés relacionado con el uso de tecnologías basadas en grafos se ha traducido en multitud de iniciativas para la explotación semántica. Por ejemplo, Araknion-Lex (Martí et al., 2011) es una red de relaciones léxicas que se han obtenido a partir de corpora aplicando la hipótesis de similitud contextual dando como resultado un grafo de relaciones de similitud y lexicones de contextos sintagmáticos. O ConceptNet (Speer et al., 2017), un grafo de conocimiento general. La gran cantidad de información generada en formato digital también ha impulsado la investigación de métodos de resúmenes multidocumento (Yasunaga et al., 2017) usando redes neuronales convolucionales (CNNs), aunque anteriormente se han usado otras técnicas, que por ejemplo, aprovechaban información de diferentes fuentes para generar síntesis no redundantes de una temática particular mediante enfoques como la reformulación (Kathleen et al., 1999), y también mediante el uso de grafos (Wang y Yang, 2006). La mayor parte de estos enfoques se basan en diferentes métricas de similitud para determinar la equivalencia semántica de fragmentos del texto, como la inclusión informativa (Radev, 2000), o la implicación textual (Pastor Lloret et al., 2008). La dificultad a la hora de representar el contenido semántico de un texto es considerable, por lo que actualmente en el campo de los resúmenes automáticos se ha avanzado más en los métodos por extracción que por abstracción, usándose estos últimos en dominios muy concretos, aunque como se ha señalado la aparición de la arquitectura de Transformers y el mecanismo de atención de sus capas ha permitido retomar interesantes investigaciones en resúmenes automáticos abstractivos (Zhang et al., 2019). 118 / Los métodos por abstracción requieren de enfoques en los que se construye una representación semántica de las oraciones del texto que luego es usada para rellenar las plantillas ( templates ) predefinidas de un determinado dominio (Riloff, 1996), y mediante técnicas de reescritura (Mani, 2001). Los grafos de cohesión son una de las aproximaciones más aceptadas para la representación de la cohesión textual (Skorokhod’ko, 1972). Dentro de la definición lexicográfica las palabras se encuentran conectadas entre sí por medio de distintos tipos de relaciones, semánticas, sintácticas, etc. Dichas relaciones se pueden representar en un grafo, al igual que ocurre por ejemplo con las técnicas de resúmenes automáticos extractivos de un texto, la idea subyacente es que las oraciones más significativas son aquellas que están relacionadas con un mayor número de otras oraciones y son las primeras candidatas a la extracción. El aprendizaje profundo ( Deep Learning ) dentro del campo de la Inteligencia Artificial, también está relacionado con los grafos, ya que se basa en redes neuronales: con un conjunto de neuronas (nodos), interrelacionadas por medio de dendritas (aristas) que pueden tener un peso asociado. Las redes neuronales están siendo usadas cada vez con mejores resultados en casi todas las tareas de PLN, por ejemplo, en la investigación de desambiguación o en el problema de la representación del significado de palabras y oraciones dentro del floreciente campo de la denominada ingeniería del conocimiento (Mou et al., 2016). Al igual que el cerebro almacena conocimiento, de tal manera que es capaz de establecer relaciones e interpretar información nueva a partir de los patrones que hemos aprendido y almacenado en memoria, esta metodología se basa en sucesivas capas de redes neuronales, donde cada red aprende nuevo conocimiento de las anteriores y los transmite a la siguiente de manera secuencial. El problema de esta aproximación al significado es que se trata de un modelo de “caja negra”, en el que el investigador pierde el control de lo que realmente hace el sistema. Solo puede evaluar si los resultados obtenidos son buenos, no el desarrollo del proceso. Dentro de las redes neuronales artificiales, también se ha trabajado con un amplio abanico de opciones, por ejemplo, las CPPNs ( Compositional Pattern Producing Networks ), que son una variante de las redes neuronales con algoritmos genéticos. Igualmente se están hibridando nuevos métodos en los que las teorías de redes y de grafos se usan de manera combinada con aprendizaje profundo (Kipf y Welling, 2017). 119 / 3.1.2. RDF Los Marcos de Descripción de Recursos (RDF, Resource Description Framework ) son una base de datos, originalmente diseñadas como un modelo de metadatos, que se ha utilizado como un método general para la descripción conceptual o el modelado de información que se implementa en recursos web. También se utiliza en aplicaciones de gestión del conocimiento, y están especialmente diseñados para el almacenamiento y la recuperación de tripletas a través de consultas semánticas (Zou et al., 2014). Una tripleta se compone de una estructura “sujeto-verbo-objeto”, lo que hace totalmente compatible con la visualización en grafos, o expresado de otra manera, los RDF representan intrínsecamente un grafo múltiple, dirigido y etiquetado: (nodo: SUJETO)--> [relación: VERBO]--> (nodo: OBJETO) Al igual que una base de datos relacional (RDBMS) en SQL ( Search Query Language ), una tripleta se puede consultar con SparQL , que es un lenguaje de 45 consultas para formatos en RDF, es decir, para consultas semánticas de bases de datos en RDF, (tanto los RDF como SPARQL son especificaciones de la W3C). Mientras que una base de datos relacional está optimizada para tuplas, los RDF están optimizados para el almacenamiento y recuperación de tripletas. Sin embargo, una base de datos de grafos tiene una estructura más flexible para almacenar y representar datos que los 46 RDF . Tanto los RDF como OWL ( Ontology Web Language ), que se ha desarrollado como una extensión de los RDF, son el resultado de la combinación de DAML (iniciado en 2000 en Estados Unidos), y OIL (iniciado en 2001 en Europa) para la creación de un lenguaje de ontologías web, con una semántica formal basada en lógica de descripción (DL), las cuales son también un lenguaje formal de representación del conocimiento que permiten inferir conocimiento nuevo a partir de conocimiento previo mediante una 45 Existen muchos lenguajes de consulta de grafos además de SparQL como: Cypher, Gremlin, GSQL, etc. 46 Hay multitud de bases de datos NoSQL de grafos nativos, como: Neo4j, OpenLink Virtuoso, Stardog, HypergraphDB, Allegrograph, RDF4J, Apache Giraph, Amazon Neptune, Garlik 4store, Ontotext, ArangoDB, Cayley, Titan Graph Database, Azure Cosmos DB, etc. 120 / serie de algoritmos de inferencia (Baader, Calvanese y al., 2003). Tanto los RDF y OWL pueden usarse para la creación de grafos semánticos. La DBpedia, por ejemplo, es una iniciativa para extraer contenido estructurado de la información creada en varios proyectos de Wikimedia que se basa en RDF . Esta información estructurada se asemeja a un grafo de conocimiento abierto (OKG, Open Knowledge Graph ) disponible de 47 manera abierta en la red. 3.1.3. Lenguaje de Ontología Web (OWL) Las ontologías en el ámbito de la ingeniería del conocimiento se configuran a partir de la constitución previamente consensuada de una jerarquía de conceptos, y un conjunto de atributos y de relaciones que caracterizan dichos conceptos, permitiendo establecer redes semánticas (Gruber, 1993). Las ontologías surgen ante la necesidad de formalizar las relaciones entre un conjunto de conceptos en diferentes dominios para el acceso al conocimiento, y como mecanismo de estructuración, intercambio y gestión de información de manera eficaz (Periñán-Pascual y Arcas-Túnez, 2014). Su creación se puede llevar a cabo de forma manual (Valente y Breuker, 1994), semiautomática (Benjamins, Richard, et al. 2004), y automática (Saias y Quaresma, 2005), aunque como advierten Periñán-Pascual y Arcas-Túnez (2014), se debe destacar la escasez de ontologías semánticas multilingües construidas de forma semiautomática que garanticen un equilibrio entre la cantidad y la calidad del conocimiento para aplicarlos a sistemas de comprensión del lenguaje natural, y modelos de conceptualización capaces de simular el razonamiento humano gracias a arquitecturas cognitivas (Sun, 1999; Sun, Merril y Peterson, 2001). En este contexto y con el propósito de facilitar el intercambio de información en la red surge el lenguaje de ontología web (OWL). 47 Un grafo de conocimiento (KG, Knowledge Graph) es un tipo de base de datos que almacena el conocimiento en una forma legible por una máquina y proporciona un medio para recopilar, organizar, compartir, buscar y utilizar la información almacenada. 121 / El lenguaje de ontología web (OWL) es un lenguaje formal de representación de conocimiento, bastante más expresivo que los RDF, el cual se sirve de etiquetado semántico para construir ontologías y compartirlas en la red a partir de tripletas RDF (McGuinness y Van Harmelen, 2004) . OWL está diseñado para usarse cuando la información contenida en los documentos de la red necesita ser procesada por programas o aplicaciones, en oposición a situaciones en las que el contenido solamente necesita ser presentado a personas, y no es necesario que sea interpretable por las máquinas. OWL además posee más posibilidades para expresar el significado que otros lenguajes como XML, RDF, o RDFs. El lenguaje OWL se usa para representar explícitamente el significado de términos en vocabularios y las relaciones que estos mantienen respecto a la ontología. Desde un punto de vista matemático es importante considerar que todo lo relacionado con la web semántica con lógica descriptiva (DL) se basa en otros dos dominios matemáticos: la lógica y la teoría de conjuntos (Antoniou y Van Harmelen, 2004). Esto restringió las propiedades de OWL, ya que no fue diseñado como base de datos basada en Grafos de Propiedades Etiquetadas (LPG, Labeled Property Graphs ). 3.1.4. Diccionarios y grafos El cálculo de distancias semánticas no solo se ha realizado mediante aproximaciones distribucionales (Lin, 1998), el uso de diccionarios también se ha usado de forma frecuente para ello (Wu y Zhou, 2003; Blondel et al., 2004; Ho y Cédrik, 2004; Muller, Philippe, Nabil Hathout, y Bruno Gaume, 2006). Dichos autores apoyan el uso de los diccionarios, tanto generales como de dominio, para extraer información semántica a través de las relaciones de las entradas de un diccionario. La ventaja que ofrecen los diccionarios es la amplia cobertura terminológica y su disponibilidad, lo que permite crear métodos de extracción automática, y explotar la estructura del grafo resultante a través de la distancia entre palabras según la relación que estas tengan en la definición lexicográfica. Por ejemplo, la extracción automática de sinónimos es una tarea compleja que requiere de la resolución de muchas subtareas previas y que a su vez puede ser aplicada en otras tareas 122 / de procesamiento de lenguaje natural, como la recuperación de información (Zuckerman et al., 2003); en la traducción automática (Ploux y Ji, 2003); en la desambiguación de palabras (Veronis e Ide, 1990; Kozima y Furugori, 1993) o en la generación de texto (Langkilde y Knight, 1998). Como ya se ha señalado el grafo resultante de asociar elementos de la definición constituyen una red de “mundo pequeño” con una serie de características que reflejan una organización semántica. Por ejemplo, la idea de Muller Muller, Philippe, Nabil Hathout, y Bruno Gaume, (2006) al investigar sobre grafos y diccionarios para la extracción de sinónimos o para la desambiguación (Gaume, Muller y Hatout, 2004) se traduce en la consideración del grafo como una cadena de Markov donde los nodos representan los estados, y las aristas representan las transiciones normalmente con pesos de probabilidades (que se calculan a partir de la posición de los elementos del definiens , de las relaciones que mantienen o de las características de los nodos). El método para la extracción de sinónimos automáticamente que usaron dichos autores, llamado “ dubbed Prox ”, fue convertir una matriz de adyacencia en una matriz de Markov, a partir del procesamiento del “ Trésor de la Langue Française informatisé (TLFi)”. La idea básica que pusieron a prueba es que las palabras semánticamente cercanas compartirían un mayor número de elementos en la definición lexicográfica, dando mayor relevancia a los primeros elementos de cada definición. Sin embargo, no relacionaban los elementos entre sí, sino que los relacionaban a partir de una estructura jerárquica entre el lema y las entradas. Para calcular la similitud entre las palabras tenían en cuenta varios factores como la aparición de la palabra analizada en el definiens de las demás, o la proporción de palabras coincidentes en el definiens de las diferentes acepciones. 123 / 3.2. Procesamiento semántico: aplicaciones y herramientas 3.2.1. 4lang y Dict-to-4lang Merecen una mención aparte por su similitud con el trabajo propuesto, la teoría de la representación semántica de 4lang (Kornai, 2010; Kornai et al., 2015); y dict-to-4lang (Recski, 2016) basados en un formalismo para representar el significado a través de grafos dirigidos. 4lang es tanto un formalismo para representar el significado a través de grafos dirigidos, como el nombre del lexicón construido manualmente de dichas representaciones. Dict-to4lang es una herramienta para procesar entradas de 3 diccionarios monolingües en inglés (Longman, Collins,y Wiktionary), y estructurar las definiciones en grafos dirigidos, siguiendo los principios de 4lang (Kornai et al., 2015). Utiliza el modelo de las dependencias de Stanford (DeMarneffe et al., 2006) para el análisis sintáctico de las definiciones, y a partir de ellas, construir subgrafos dirigidos en función de las relaciones que se establecen entre las palabras, convertidas en nodos, y sus relaciones sintácticas codificadas. Es decir, 4lang convierte las palabras de las definiciones lexicográficas en conceptos definidos en la red, por otros conceptos restringiendo el tipo de relaciones que se pueden mantener entre unos y otros. En dicho formalismo, como se puede apreciar en la imagen que se presenta a continuación de Recski (2106), hay tres tipos de aristas en función del número que se indica, y que dependen de las relaciones establecidas a partir del análisis de dependencias previo. El (0) se marca como rasgo de la relación cuando representa una relación atributiva entre dos conceptos, o también es usado cuando la aridad del verbo es uno en verbos intransitivos, como “el pájaro es un animal”, o “el pájaro canta”; el (1) y el (2) se usan para predicados binarios y simboliza la función de sujeto (1) y de complemento (2). Los predicados ternarios o superiores no se contemplan (Kornai, 2012). Como se observa a continuación, al no haber implementado un módulo de correferencia se pierde algo de 124 / información, que por otro lado tiene bastante valor asociativo (como “cat familiy” para “tiger”). ● Subgrafo de las relaciones de dependencia de 4lang (Recski, 2106): Figure 2: Definition built from: tiger - ‘a large wild animal that has yellow and black lines on its body and is a member of the cat family’. El formalismo que sigue dict-to-4lang es parecido a los postulados del modelo de memoria semántica ( Semantic Memory Model ) de Quillian (1968), y ha sido usado en una amplia variedad de tareas de semántica computacional, demostrando su aplicabilidad en diferentes tareas de NLU (Nemeskey et al., 2013), como en la medición de la similitud semántica entre frases y textos (Recski and Acs, 2015). Al contrario que el modelo AMRs ( Abstract Meaning Representation ) de Banarescu et al. (2012), las representaciones semánticas de 4lang son independientes tanto de dominio como del lenguaje, usando un conjunto reducido de primitivos semánticos para codificar el significado de las frases y representar las relaciones a través de la definición lexicográfica, añadiendo en las aristas el tipo de relación que se establece entre los nodos. Aunque han conseguido muy buenos resultados en la mayor parte de definiciones, todavía hay problemas que aún no se han podido resolver. Por ejemplo, hay muchas estructuras que provocan subgrafos incorrectos, como las dependencias relativas a la cuantificación, ciertos modificadores verbales, o la ambigüedad estructural en algunos tipos de frases ( Recski, 2016) y que necesitan ser procesadas con métodos más sofisticados que sean añadidos al modelo de 4lang , pues la ambigüedad lexicográfica o definicional (Porto Dapena, 2018), es un problema que afecta directamente a estos métodos. 125 / 3.2.2. FUNGRAM FunGramKB ( Functional Grammar Knowledge Base ) es una base de conocimiento léxico, construccional y conceptual (Periñán y Arcas, 2004). Además es multipropósito y multilingüe, ya que se ha aplicado en diferentes tareas de PLN (Periñán y Arcas 2004; Mairal y Periñán, 2009; Periñán y Mairal, 2010), en siete idiomas (español, inglés, catalán, alemán, búlgaro, francés, inglés e italiano). Las características de la base de conocimiento de FunGramKB están orientadas a la construcción de sistemas de PLN, fundamentados tanto en la ciencia cognitiva, como en la lingüística teórica, con el fin de simular el razonamiento humano. FunGramKB está dirigida a la representación semántica en profundidad (Periñán Pascual y Arcas Túnez, 2007), a diferencia de otras taxonomías basadas en semántica más superficial (como el caso de FrameNet, Conceptnet o MultiWordNet, entre otros). Para la Lingüística Funcional la comunicación es el eje en torno al cual el lenguaje configura sus características. Como señala Periñán (2020), FunGramKB corresponde al formato de la Gramática Funcional, a partir de un modelo enriquecido de la teoría de S. C. Dik. A raíz de sus investigaciones, Mairal y Periñán (2009) han desarrollado y descrito los rasgos esenciales que definen el componente léxico presentando el formato del nivel léxico en el contexto de la base de conocimiento léxico conceptual de FunGramKB , la cual a su vez, forma parte del Modelo Léxico Construccional, (MLC) (Ruiz de Mendoza y Mairal Usón, 2008; Mairal Usón y Ruiz de Mendoza, 2009). Los autores defienden que uno de los objetivos de FunGramKB es que el Procesamiento de Lenguaje Natural se nutra de las investigaciones de la lingüística teórica, y en concreto aluden a la teoría funcional de la Gramática del Papel y la Referencia (RRG) (Van Valin y LaPolla, 1997; Van Valin, 2005) junto con el Modelo Léxico Construccional (MLC) ya referido. Además la conceptualización de FunGramKB mantiene los postulados de Lakoff (1987) sobre los Modelos Cognitivos Idealizados (MCI). Dichos modelos recuperaron las “semejanzas de familia” de Wittgenstein (1953) aplicándola a la teoría de prototipos, permitiendo relacionar elementos a través de categorías radiales, mediante asociaciones mentales, explicando así, desde el punto de vista cognitivo, fenómenos como la metáfora, la metonimia y la polisemia (Taylor, 1995). 126 / La Gramática del Papel y la Referencia (Role and Reference Grammar, RRG), una de las teorías funcionales de mayor influencia, es un modelo gramatical donde la sintaxis y la semántica se enlazan de manera bidireccional. Aunque la FunGramKB es de corte conceptualista mientras que la RRG es un ejemplo de teoría lexicista (Periñán, 2012), la RRG ha influido en el diseño del modelo léxico de FunGramKB , mejorando la estructura lógica mediante el nuevo formalismo que proponen sus autores denominado “estructura lógica conceptual” (Periñán Pascual y Mairal Usón, 2009) donde los predicados se sustituyen por unidades ontológicas (Jiménez Briones, 2011) con sus correspondientes papeles temáticos, lo que le otorga una capacidad de representación independiente de la lengua (representación interlingüística). Para los autores la utilidad de una estructura lógica convencional implica conocer la aktionsart , y no su esqueleto pseudosemántico, el cual han enriquecido a través de los diversos tipos de esquemas conceptuales en CoRel ( Conceptual Representation language ). Por otro lado, como se ha apuntado, otra teoría lingüística de la que se han servido para desarrollar FunGramKB es el Modelo Léxico Construccional (MLC), el cual otorga a la RGG mayores ventajas para la construcción del significado añadiendo aspectos de la pragmática y el análisis del discurso. En concreto el MLC distingue 4 niveles (argumental, implicativo, ilocutivo y discursivo), que a su vez conforman la estructura del Gramaticón, el cual se verá a continuación. FunGramKB (Periñán Pascual y Mairal Usón, 2009) se compone de 3 niveles principales de conocimiento (léxico, gramatical y conceptual), con módulos independientes en cada uno, aunque muy interrelacionados. Tal y como presentan sus autores, se compone de los siguientes niveles: 1) El nivel léxico ● Lexicón: Guarda la información morfosintáctica de las unidades léxicas. ● Morficón: Ayuda al analizador y al generador para procesar los casos de morfología flexiva. 127 / 2) El nivel gramatical ● Gramaticón: Almacena los esquemas construccionales y su representación semántica. 3) El nivel conceptual ● Ontología: Se compone de una serie de relaciones jerárquicas (hipónimo-hiperónimo) de unidades conceptuales, que guardan el conocimiento del sentido común en forma de postulados de significado. ● Cognicón: Se compone del conocimiento procedimental por medio de guiones que describen ciertos procesos. ● Onomasticón: Guarda el conocimiento enciclopédico referido a instancias (ejemplos concretos) de entidades y eventos. Para la representación del conocimiento conceptual trabajan a partir del modelo de esquema (Ortony y Rumelhart, 1977), originado en la psicología cognitiva (Bartlett, 1932), e implementado y desarrollado por diferentes autores como Piaget (1952) o Anderson (1978) en campos como la educación o la lingüística, y también dentro del ámbito de la Inteligencia Artificial (Arbib, 1975). Los esquemas son una representación mental de una entidad o un evento, que se va construyendo y consolidando mediante la experiencia, conformando conocimiento generalizado que ayuda a la interpretación de información nueva. Tiene un enfoque comunicativo-cognitivo del lenguaje. En FunGramKB los esquemas conceptuales son los encargados de posibilitar la inferencia de conocimiento, y se dividen en relación a dos parámetros: prototipicidad y temporalidad. Por un lado, los esquemas conceptuales almacenan conocimiento prototípico (protoestructuras), o describen una determinada instancia de una entidad o un evento (bioestructuras). Y por otro lado, el conocimiento se puede presentar atemporalmente (microestructuras), o dentro de un paradigma temporal (macroestructuras). La combinación de estos dos parámetros, les permite crear el inventario de esquemas conceptuales: “protomicroestructuras” (postulados de significado), “protomacroestructuras” (guiones), “biomicroestructuras” (retratos) y “biomacroestructuras” (historias). 128 / La formalización del conocimiento en FunGramKB, como se ha indicado, se realiza mediante CoRel , y gracias a estos esquemas conceptuales, FunGramKB (Periñán, 2012) es capaz de describir muchos tipos de conocimiento, que Periñán Pascual y Mairal Usón (2010) codifican e ilustran de la siguiente manera: -Conocimiento del sentido común: ● When you forbid someone to do something, you tell them that they are not allowed to do it. ● +(e1: +SAY_00 (x1: +HUMAN_00)Theme (x4: (e2: obl n +DO_00 (x3: +HUMAN_00)Theme (x2)Referent))Referent (x3)Goal) -Conocimiento especializado (científico o técnico): ● A circumfix is an affix made up of two parts which surround a stem. ● +(e1: +Be_00 (x1: $CIRCUMFIX_00)Theme (x2: +AFFIX_00)Referent)+((e2: +COMPRISE_00 (x1)Theme (x3: 2 +PART_00)Referent)(e3:+SURROUND_00 (x3)Theme (x4: +sTem_00)location)) -Conocimiento cultural: ● Paris is the capital of France. ● *(e1: +Be_00 (x1: %PARIS_00)Theme (x2: $CAPITAL_00)Referent)+(e2: +Be_02 (x1)Theme (x3: %FRANCE_00)location) -Conocimiento personal: ● My wife Julia can prepare avocado and shrimp cocktails. ● *(e1: +Be_00 (x1: %JULIA_00)Theme (x2: +WIFE_00)Referent)*((e2: pos +CREATe_00 (x1)Theme (x3: $COCKTAILl_00)Referent)(e3:+COMPRISE_00 (x3)Theme (x4: $AVOCADO_00 & $SHRIMP_00) Referent)) 129 / Como se aprecia en los ejemplos anteriores de los diferentes esquemas en CoRel , la capacidad representativa que tiene esta formalización es muy amplia, y cubre con extraordinaria desenvoltura la capacidad expresiva del lenguaje. Los marcos predicativos a los que se asocia el significado permiten al sistema construir una red conceptual que relaciona los predicados en el lexicón. La estructuración cognitiva del lexicón, defendida también en el Modelo Lexemático-Funcional (Martín Mingorance, 1984, 1989, 1995; Faber y Mairal, 1999), se basa en el enfoque de la Descomposición Léxica Gradual. El uso que hacen de las dos interlinguas de FunGramKB permite la especialización de cada módulo y su complementación: la estructura lógica conceptual y el esquema conceptual en coRel . Esta separación que corresponde a los niveles lingüístico y cognitivo es el punto de partida metodológico, que permite conectar la lingüística con la Inteligencia Artificial. 3.2.3. HowNet HowNet (Dong, Dong, 2003) es una base de conocimiento en línea que propone un nuevo modelo para representar conocimiento léxico orientado a la comprensión automática de lenguaje natural (NLU). Clasifica cada concepto según diferentes tipos semánticos y define las relaciones entre esos tipos con el objetivo de que una máquina pueda procesarlos a un nivel semántico. HowNet está ideado como una plataforma para medir el significado en tareas de NLP y dispone de varias herramientas para ello, como: un buscador, relevancia de conceptos/documentos, similitud entre conceptos, inferencia de atributos, traducción, sistemas de pregunta-respuesta, o desambiguación (Dong, Dong y Hao, 2010). Para medir computacionalmente el significado HowNet se basa en la definición de los conceptos a partir de sus relaciones y atributos. Al contrario que Wordnet (Miller y Fellbaum, 1991), no está dirigido a una lengua concreta, sino que está orientado a conceptos, lo que permite llegar a compartir ontologías en varias lenguas, a partir de las definiciones. Aunque es independiente del lenguaje, ya que permite usar los mismos algoritmos y las mismas estructuras, está desarrollado con lexicones en chino, y con sus equivalentes en inglés. Mediante el buscador, una de las herramientas de que 130 / dispone, se puede acceder a las relaciones que mantienen entre sí los conceptos (sinonimia, hiponimia-hiperonimia, etc). Estas relaciones no están codificadas a mano, al contrario que Wordnet , sino que son extraídas de forma automática a través de las relaciones entre los conceptos lo que en algunos casos se puede traducir en menor precisión. Respecto a los roles semánticos, a partir de un verbo se pueden obtener los argumentos que este requiere (agente, beneficiario, paciente, instrumento, etc) gracias a las relaciones con los conceptos sustantivos pertinentes. HowNet se nutre de las relaciones que conforman la base de conocimiento de la que dispone. Estas relaciones se dividen en dos categorías: Relaciones de conceptos, que conforman una red, Concept Relation Net (CRN) y relaciones de atributo, que igualmente conforman su propia red, Attribute Relation Net (ARN), como se puede observar en las figuras 1 y 2 respectivamente, extraídas de Z. Dong et al. (2010): 131 / Esto equivale, a grandes rasgos, al conocimiento que cada individuo posee a partir de su propia red de relaciones entre conceptos. El significado de los conceptos no solo viene determinado por su CRN, sino también por las relaciones entre los atributos de cada concepto (ARN). En muchos casos los atributos juegan un papel importante en la representación del significado, ya que existen toda una serie de restricciones asociativas entre los conceptos, cuya caracterización distintiva necesita de una serie de condiciones dadas por medio de los atributos. Esta red no es estática sino que va cambiando con el tiempo gracias a la flexibilidad que posee, que le permite extenderse dinámicamente al ir incorporando nuevo conocimiento, y evolucionar hacia una red más compleja. Los datos con los que trabaja HowNet se pueden dividir en dos: la base de datos léxica, y las taxonomías. En la base de datos léxica cada concepto se describe mediante una estructura fija. Otras de las características más relevantes de HowNet es el uso de sememas para definir los conceptos, y que la estructura de la definición de los conceptos está hecha en un lenguaje formal. Cada concepto en el lexicón de HowNet está definido en KDML ( Knowledge Database Markup Language ), un lenguaje de marcado que se compone fundamentalmente de sememas y roles semánticos para estructurar sus definiciones. El KDML usa 2089 sememas, 128 características secundarias, y 94 roles semánticos, como vocabulario estructural. Usa una extensión de BNF ( Backus Naur form ) como sintaxis (Schmitz, 2007), es decir, un metalenguaje al 132 / igual que las gramáticas libres de contexto (Ginsburg y Rice, 1962) para describir de manera formal la sintaxis de las definiciones, lo que le permite una integración sistemática de las taxonomías, con capacidad de inferencia axiomática. Posteriormente a partir del trabajo de HowNet se ha desarrollado un modelo extendido de representación léxico semántica diseñado especialmente para NLU, E-HowNet (Chen et al., 2005), el cual también es un modelo uniforme de representación del significado basado en una estructura a partir del contenido de los conceptos donde las relaciones semánticas están expresadas de forma explícita, y que permite la composición semántica. Los sentidos de cada concepto están definidos por primitivos semánticos (sememas), los cuales hacen de definidores junto con otros conceptos y sus relaciones conceptuales, donde cada sentido de los conceptos se define por su semema hiperónimo, además de con otras características semánticas adicionales, con la problemática que esto conlleva, ya que solo un número restringido de palabras, en relación al léxico global puede definirse mediante este tipo de relación semántica. Respecto a Wordnet (Miller y Fellbaum, 1991) tiene la ventaja de que las propiedades inherentes de los conceptos derivan de las características codificadas en las relaciones, y también se codifica de forma separada la información entre los conceptos y la información morfosemántica. E-HowNet permite la definición en diferentes niveles, descomponiendo los conceptos mediante sus definiciones en niveles inferiores, al tiempo que, de forma inversa, permite la composición semántica. El análisis de la composición semántica se basa en un sistema de representación uniforme a través de la representación semántica de morfemas, palabras, sintagmas, frases, etc. 3.2.4. Wordnet Wordnet (Miller y Fellbaum, 1991) es posiblemente una de las bases de datos léxicas de mayor relevancia en tareas de semántica computacional actualmente. Aunque Wordnet no está basado en grafos, su estructura permite la conversión a un gran grafo (Caldarola et al., 2015). Está construido a partir del inglés pero desarrollado en parte también en otros idiomas. Los sustantivos, verbos, adjetivos y adverbios se agrupan en conjuntos de sinónimos cognitivos (llamados synsets ), donde cada uno de ellos expresa 133 / un concepto distinto. Los synsets están interconectados por medio de relaciones semánticas y léxicas creando una red de palabras y conceptos. La relación principal construida entre las palabras de WordNet es la sinonimia, por lo que en ciertos aspectos WordNet guarda algunas características comunes con un diccionario de sinónimos pues agrupa las palabras en función de sus significados, atendiendo a los sentidos que desarrolla cada palabra, pero también etiqueta las relaciones semánticas que relacionan pares o conjuntos de palabras (Fellbaum, 2005). La relación codificada más frecuentemente entre los synsets es la relación de hiponimia-hiperonimia, vinculando todas las instancias más específicas a otras más generales (nodo raíz), por lo que se produce una relación transitiva entre los elementos de las cadenas permitiendo en ciertos casos la herencia de características. De la misma manera, también se han creado relaciones semánticas de meronimia-holonimia entre los synsets . Obviamente cada categoría gramatical contemplada se presta a unas relaciones semánticas determinadas. En el caso de los verbos, por ejemplo, se organizan en categorías jerárquicas en función de parámetros como la especificidad o la generalidad de las acciones; y los adjetivos se relacionan fundamentalmente por antonimia, y por la relación de derivación ( pertainyms ) con los sustantivos. Como se ha mencionado, la base de conocimiento léxico WordNet , se ha usado en diferentes áreas del PLN, sobre todo en WSD, tratando el problema de la polisemia mediante la creación de cadenas alternativas para los distintos significados que cada palabra puede desarrollar en un texto, y la elección de la mejor cadena en función del número de relaciones comunes y sus pesos. Wordnet dispone de varios algoritmos para la desambiguación: WordNet-SenseRelate-AllWords, WordNet-SenseRelate-TargetWord y WordNet-SenseRelate-WordToSet . Dichos algoritmos miden la similitud de significados a partir de las relaciones léxicas de las palabras en Wordnet calculando su distancia. A partir de la base de datos léxica de Wordnet (Miller y Fellbaum, 1991) y su integración con la Wikipedia, la mayor enciclopedia en línea multilingüe, también cabe resaltar la red semántica multilingüe y ontología de Babelnet (Navigli y Ponzetto, 2010). Babelnet fue creada de forma automática mediante un mapeo de ambos recursos, 134 / apoyándose también en la traducción automática para rellenar los vacíos en diferentes idiomas. Como consecuencia se obtuvo un "diccionario enciclopédico" con conceptos y entidades lexicalizadas en diversos idiomas, vinculados mediante relaciones semánticas. BabelNet , de forma parecida a WordNet , se sirve de grupos de sinónimos conectados con diferentes conceptos y en diferentes idiomas, los cuales se configuran en una red por la cual, entre otras muchas cosas, se puede navegar y visualizar como un grafo. Babelnet ha obtenido bastante éxito como herramienta en PLN para tareas de similitud semántica y para desambiguación (Navigli y Ponzetto, 2012). 3.2.5. Node2vec Node2vec (Grover y Leskovec, 2016) , representa una tecnología híbrida entre los grafos y los espacios vectoriales. Node2vec lo conforman una serie de algoritmos para grafos orientados al aprendizaje automático (Machine Learning). Los embeddings se construyen de la misma manera que en Word2vec , usando el modelo de skip-gram a partir de los nodos del grafo. Para generar el corpus a partir del grafo, se puede considerar el corpus como un grupo de grafos dirigidos acíclicos de grado 1. De tal manera, una frase queda representada como una serie de nodos, compuesto cada uno por una palabra en la que se encuentra una relación de salida hacia la siguiente palabra: 135 / Sin embargo, no todos los grafos son tan simples, pueden no ser dirigidos, tener pesos, tener ciclos, etc. Para poder trabajar con grafos más complejos se utilizan una serie de hiperparámetros para generar subgrafos y construir una matriz a partir de caminos aleatorios desde cada nodo. ● Proceso para realizar los embeddings en Node2vec (imagen de Elior Cohen, 2018): Además de los parámetros del modelo de skip-gram (como son el tamaño de la ventana del contexto, el número de iteraciones, etc.) la estrategia de “muestreo” de Node2vec cuenta con 4 argumentos para generar las frases, es decir, los grafos dirigidos acíclicos, los cuales serán usados para construir los embeddings de la misma manera que si fueran texto en Word2vec : El número de caminos aleatorios que se generan para cada nodo del grafo, la longitud que recorre el algoritmo en cada camino aleatorio, un hiperparámetro que controla la posibilidad de retorno al nodo, y otro hiperparámetro que controla la probabilidad de descubrir partes no recorridas anteriormente por el algoritmo del grafo. 136 / 3.2.6. Modelos de lenguaje basados en redes neuronales Dentro del aprendizaje profundo ( Deep Learning ), en muchos aspectos, y sobre todo en muchas aplicaciones, la aparición de arquitecturas basadas en Transformers (Vaswani et al., 2017), ha supuesto un gran avance en el PLN, y en particular, en las capacidades computacionales para enfrentarse al análisis del significado. Esta arquitectura, con sus diferentes variantes, ha llegado a reemplazar en la mayoría de las tareas a las redes de gran memoria de corto plazo, LSTM. Aunque nos centraremos en BERT (Devlin et al., 2018) y en las consecuencias que ha provocado en semántica computacional, se han desarrollado multitud de modelos con aproximaciones similares. BERT ( Bidirectional Encoder Representations from Transformers ), y el resto de tecnologías que han surgido recientemente que usan arquitecturas para la codificación con “transformadores” como ElMo (Peters et al., 2018), Xlnet (Yang et al., 2019), GPT-2 (Radford et al., 2019) GPT-3 (Brown et al., 2020), o T5 (Raffel et al., 2019), entre otros, han cambiado el panorama del Procesamiento de Lenguaje Natural, mejorando el estado de la cuestión en numerosas tareas de PLN. Estos modelos, como se acaba de señalar, han sustituido en gran parte el uso de capas recurrentes como las LSTM, por las capas de atención. Dichas capas codifican cada palabra de una frase en función del resto de la secuencia, incluyendo de esa manera el contexto en la representación matemática del texto. Las representaciones de codificadores bidireccionales mediante transformadores están diseñadas para ser entrenadas previamente, de forma no supervisada, a partir de grandes cantidades de texto sin etiquetar, en las que se tiene en cuenta tanto el contexto derecho como el izquierdo (bidireccional) de cada palabra del corpus de entrenamiento, ampliando así su capacidad predictiva al contar con más datos que caractericen la distribución de cada palabra. El pre-entrenamiento permite a BERT un análisis más profundo del lenguaje estableciendo patrones que luego le servirán para acometer diversas tareas de procesamiento de lenguaje. Como resultado, el modelo previamente entrenado se puede adaptar para crear modelos específicos a cada tarea añadiendo capas adicionales de salida. BERT necesita grandes cantidades de datos para 137 / ser entrenado, aunque cada vez hay más herramientas basadas en Transformers que 48 han conseguido buenos resultados sin la necesidad de tanta cantidad de datos para entrenar, como ULMFiT, Universal Language Model Fine-tuning (Howard y Ruder, 2018), o los modelos GPT (Generative Pre-trained Transformer) de OpenAI . La escasez de corpus que contemplen de forma suficiente ejemplos del problema a resolver y el coste asociado de entrenamiento, muchas veces representan uno de los mayores inconvenientes al usar estas herramientas. Los modelos pre-entrenados a partir de texto sin etiquetar comienzan con un acercamiento parecido a los embeddings de Word2Vec y GloVe . BERT se puede usar con diferentes números de capas (o bloques transformadores), diferentes parámetros, etc., y su proceso se basa en dos pasos: primero entrena el modelo con una gran cantidad de textos del corpus sin etiquetar (es decir, de manera no supervisada, o semi supervisada), y después ajusta el modelo a una tarea específica usando el conocimiento adquirido del entrenamiento anterior ( fine tuning ). Los modelos de enmascaramiento (MLMs, Masked Language Models ) usados en los modelos bidireccionales en lugar de predecir la siguiente palabra en una secuencia, entre otras cosas, son capaces de predecir una palabra eliminada dentro de la secuencia a partir de la relación que aprenden entre las palabras (Devlin et al., 2018). Es decir, los modelos con Transformers necesitan un pre-entrenamiento, que es el proceso mediante el cual un modelo que usa Transformers aprende a crear el modelo de un idioma, codificando ciertas características del lenguaje a partir de una enorme cantidad de datos limpios, idealmente. El modelo de Transformers viene con unos valores aleatorios iniciales que deben ser ajustados en el pre-entrenamiento, de forma no supervisada con grandes cantidades de texto, para después reajustar sus representaciones específicas ( fine tuning ) para la tarea concreta que se quiere realizar. Para el fine tuning se necesita menor cantidad de texto, pero suele realizarse con texto etiquetado, de manera supervisada. De esa manera, el modelo aprende cómo las diferentes formas que se encuentran en el texto dependen unas de otras a partir del contexto en el que aparecen, pudiendo representar de forma interna secuencias de texto. BERT, en concreto, crea la representación del lenguaje a partir de texto sin etiquetar gracias a dos tareas previas 48 A partir de BERT se han creado numerosas versiones como DistilBERT o RoBERTa, más ligeras y rápidas, y también preentrenadas para modelos de otras lenguas como el CamemBERT para el francés, o BETO para el español, y para dominios específicos como SciBERT (dominio científico) o FinBERT (dominio de finanzas). 138 / mencionadas: masked language modelling (MLM) y next sentence prediction , que respectivamente aprenden a predecir las palabras ocultando de forma aleatoria algunas de ellas en el entrenamiento, o si una frase puede ser una continuación de la siguiente. La aparición de los grandes modelos de redes neuronales de lenguaje (LMs) pre-entrenados ( Large pretrained language models ) han abierto el debate sobre si realmente estos modelos entienden el lenguaje y son capaces de capturar el significado. A pesar de los grandes logros y la constante superación en las evaluaciones de rendimiento que se han conseguido en las diferentes tareas de PLN, en plataformas de análisis como GLUE, General Language Understanding Evaluation (Wang et al., 2018), las técnicas de dichos modelos trabajan con las formas, no con el contenido semántico (Bender y Collen, 2020). Su entrenamiento se basa en cadenas de caracteres caracterizadas en función de la aparición que tienen en un texto, que son codificadas en vectores, pero no tienen ni construyen ninguna representación interna del significado, y por lo que no pueden aprenderlo. Su capacidad semántica se basa en la inferencia a partir de sus características distribucionales, y por lo tanto, dependen de la calidad y cantidad de los textos utilizados en el entrenamiento para obtener una representación de calidad. Autores como Niven y Kao (2019) o McCoy et al., (2019) han manifestado los límites de estos modelos y los problemas que subyacen al margen de su aparente habilidad para la comprensión, tal como también planteó Searl (1980) con su metáfora de la Habitación China para llamar la atención sobre las diferencias entre la funcionalidad y la comprensión real del lenguaje por sistemas computacionales, y las dificultades del modelo computacional de la mente en referencia a la naturaleza semántica de la representación mental. O dentro de la Inteligencia Artificial, el Symbol Grounding Problem (SGP), al que se ha hecho alusión, que planteó Harnad (1990) para crear símbolos vinculados al mundo externo al sistema, como consecuencia de la limitada capacidad de los sistemas computacionales para procesar el contenido semántico, basado en el supuesto de que el significado de un signo está condicionado por una serie de reglas usadas para representar el referente, y que más tarde dio lugar al Social Symbol Grounding (SSG), correspondiente a la negociación que se realiza de manera colectiva para seleccionar símbolos compartidos y fundamentar su significado (Cangelosi, 2006). 139 / 140 / CAPÍTULO 4: ESTRUCTURA, RELACIONES Y PROPIEDADES DEL SIGNIFICADO A TRAVÉS DEL DEFINIENS Y EL DEFINIENDUM En el siguiente capítulo se analizan las relaciones que se establecen entre el definiendum y el definiens , y cómo a partir de ellas se puede usar la arquitectura recursiva que se forma para investigar aspectos sobre el significado. ● Figura 10. Subgrafo en el que se han expandido diferentes relaciones a partir del nodo correspondiente a “perro_01”. 141 / 4. Definiendum , definiens y significado: propiedades y relaciones 4.1. Estructura recursiva: significado y relación del definiendum con el definiens Se han hecho numerosos esfuerzos por analizar la estructura del significado, que se reflejan en la extensa bibliografía disponible. Por ejemplo si nos remontamos a Frege (1892), distinguió los términos de sentido ( Sinn ) y referencia ( Bedeutung ), donde el sentido marca la forma de presentación de la referencia; o Putnam (1975) que lo describe con una secuencia finita de elementos (que componen un vector) para definir el significado de cada término. Cada vector del los significados (S) de una palabra (x) se configura en cuatro componentes ordenados, según Putnam (1975), de la siguiente manera: S(x) = < sin, sem, est, ext> ● sin = Marcadores sintácticos (categoría gramatical de la palabra). ● sem = Marcadores semánticos (categoría de pertenencia de la palabra). ● est = Estereotipo (propiedades adicionales marcadas por el estereotipo, si las hubiera). ● ext = Extensión (descripción de la propia extensión ). 49 El vector que configura a cada palabra representa el significado asociado a una unidad léxica, ofreciendo de esa manera una descripción que posibilita su uso en una determinada lengua o comunidad que compartan el valor de dicho vector, y que, en términos ideales y generales, se permite su acceso a través del diccionario que los recoge. Putnam atiende en su obra a las dimensiones diacrónicas y sincrónicas del significado, y a la incidencia que tiene el tiempo y la sociedad en la reelaboración del mismo. Aunque en el presente trabajo no analicemos el cambio lingüístico, sí es importante señalar que el significado o las palabras que lo componen, no se configuran como una lista o conjunto cerrado, y que en este aspecto dinámico, o cambio del significado, un grafo es una tecnología muy adecuada para permitir actualizaciones, cambios, etc. de forma eficiente. 49 Es muy interesante la lectura de “ Meaning of meaning ” (1975), donde Putnam también presenta sus reticencias sobre la noción de extensión de un término, ya que un conjunto, al tratarse de un objeto matemático, tiene en su naturaleza pertenecer o no a dicho conjunto. Sin embargo, las palabras de una lengua natural no son generalmente del tipo “sí-o-no” habiendo numerosos casos dudosos, señalando a las categorías difusas avant la letrre. 142 / Consideremos dos niveles: el cognitivo, que nos permite asociar significados a significantes, y viceversa; y el lexicográfico, cuyo producto más emblemático, el diccionario, nos permite contar con un repertorio de palabras asociadas a definiciones y abstraerlas para construir, ampliar, o matizar significados a partir del trabajo codificado por el lexicógrafo. En este sentido, respecto al significado, el diccionario semasiológico lo asienta, lo objetiviza y le da una delimitación formal, reproduciendo en parte las características que los hablantes tienen en su “lexicón mental” (Aitchinson, 1987). El significante se puede considerar como la acotación social de una posibilidad perceptiva, que demarca su significado; y el diccionario, el instrumento formal que lo refrenda socialmente. Frente a una determinada percepción dentro de todas las posibilidades ontológicas, una palabra delimita un estado de cosas formando un conjunto fundamentalmente, aunque no necesariamente, a partir de elementos preexistentes en el “lexicón mental”. Tanto el significado a nivel cognitivo, como la definición a nivel lexicográfico, tienen una estructura recursiva en tanto en cuanto el segundo reproduce 50 en parte la estructura del primero. El significado, como la definición lexicográfica que lo contempla, tienen una estructura recursiva ya que se asientan en elementos que a su vez se relacionan con otros elementos de su respectiva definición de forma recurrente. Por este motivo resulta especialmente interesante acceder desde el punto de vista computacional al reservorio de significados, que son por antonomasia los diccionarios, considerando la estructura recursiva en la que están construidos, donde cada lema se asocia con unos determinados definidores que a su vez son definidos en su correspondiente lema. En este aspecto las máquinas no pueden “entender” el significado, pero sí las podemos dotar de datos lingüísticos y estrategias parecidas a los que usamos los humanos para comunicarnos. La asociación de conceptos es un aspecto toral para poder mejorar las métricas de similitud de palabras usadas en multitud de tareas relacionadas con el lenguaje (Chang, Tay y Lim, 2014) como la agrupación o clusterización de textos, la clasificación de documentos (Yu et al., 2014) o la recuperación de información (Baeza-Yates y Ribeiro-Neto, 1999) o como herramienta de apoyo en la 50 Kurt Gödel (1931), sostenía que la recursividad conceptual no es exclusiva del lenguaje, sino que también se puede encontrar en los sistemas lógico-matemáticos, y que de hecho no existen conceptos que no tengan vínculos sintagmáticos con otros conceptos en el interior de un sistema. 143 / creación y enriquecimiento de tesauros (Fernández-Pampillón Cesteros, 2010). Por lo tanto, sin tener en cuenta por el momento fenómenos como la polisemia o la sinonimia podemos decir de forma muy somera que un lema nos remite a una determinada definición. A su vez cada una de las palabras que se conforman como los definidores del significado de dicha palabra o locución nos remiten a otros lemas con sus respectivos definidores. De tal manera se establece una relación de asociación tanto horizontal: la conformada por las palabras correspondientes a una definición con el concepto que definen (lema-definidores); como una relación vertical: la que se establece por la relación entre el lema y los definidores sucesivos en los que se va descomponiendo el definiens de cada uno de sus definidores. De este modo es posible representar una red asociativa basándose en las definiciones de un diccionario (Kozima y Furugori, 1996; Torra y Narukawa, 2008). 4.1.1. Relación binaria en los diccionarios Se puede considerar el diccionario de forma naif como un conjunto de palabras (dominio) que mantiene una relación con un conjunto de significados (rango). Es decir, se puede plantear la relación señalada de manera superficial como una relación binaria donde todos los elementos definidos de un diccionario tienen su definición correspondiente formando pares ordenados 2 a 2 (Putnam, Hilary, 1975; Medina Garrido, 1988). Desde luego este planteamiento no se ajusta con la realidad polisémica de las palabras, donde la monosemia es la excepción, y por lo tanto, la relación entre palabra o lema es de “uno a muchos”. Sin embargo, como se verá más adelante desde el punto de vista computacional se puede representar el diccionario a partir de relaciones binarias, “resolviendo” la polisemia y la homografía con la asignación de un identificador único a cada definiens a partir del lema del definiendum y un número cardinal según el definiens al que haga referencia. Por ejemplo: “banco_01” sería el identificador del definiens de “asiento” y “banco_02” sería el identificador de “entidad financiera”. Veamos un ejemplo para clarificarlo: sea nuestro diccionario naif (D1) una relación de palabras formado por un conjunto (P) de 3 palabras definidas (P= { p1, p2, p3 }) y un conjunto (S) de 3 144 / significados asociados (S={ s1, s2, s3 }). El diccionario D1, o relación, quedaría definido por enumeración de la siguiente manera: D1= {< p1, s1>, {< p2, s2>, {< p3, s3>} En otras palabras en nuestro diccionario D1 se relacionarían cada palabra del dominio P con cada significado del rango S (relación biyectiva): ● p1D1s1: la relación D1 asocia la palabra 1 (p1) con el significado 1 (s1). ● p2D1s2: la palabra 2 (p2) con el significado 2 (s2) . ● p3D1s3: la palabra 3 (p3) con el significado 3 (s3). D1 es un subconjunto de P x S (D1 ⊆ P x S), donde encontramos que cada palabra del conjunto de palabras definidas (P) tiene asociado un significado (S) formando los siguientes pares: < p1, s1> ∈ D1 < p2, s2> ∈ D1 < p3, s3> ∈ D1 Sin embargo, de forma material no encontramos el significado en el diccionario, como se analizará más adelante el significado se crea y se alberga en la mente, lo que encontramos en el diccionario es un definiendum y un definiens compuesto por una serie de elementos (que llamaremos asociadores para referirnos a los definidores que constituyen núcleos semánticos fuertes en contraste con el resto de definidores descartados). La relación de base que se ha usado en esta investigación para la creación del grafo se basa en descomponer en pares ordenados que relacionan el definiendum con cada elemento relevante del definiens (asociador) del DUE , por ejemplo: < definiendum 1 , asociador 1 > ∈ DUE < definiendum 1 , asociador 2 > ∈ DUE < definiendum 1 , asociador 3 > ∈ DUE 145 / 4.1.2. El significado como función Si nos mantuviéramos en este universo del diccionario naif D1 donde a cada palabra del dominio le corresponde un significado del rango de forma unívoca, estaríamos frente a una función (Medina Garrido, 1988). Es decir un tipo de relación binaria (subconjunto del producto cartesiano) en la que se asigna de manera unívoca un elemento del primer conjunto (dominio) con otro elemento del segundo (rango), y en donde todos los elementos del dominio (en este caso, todas las palabras del diccionario) están relacionadas con algún elemento del rango o codominio: sus correspondientes significados. Esta función proyectaría el primer conjunto P (su dominio) sobre el segundo conjunto S (su recorrido o rango). Para considerar esta relación en D1 como una función, el dominio de la función F tiene que ser igual al primer conjunto, mientras que el rango de F no tiene por qué ser idéntico al segundo conjunto; F puede ser un subconjunto del segundo conjunto, pues se puede considerar que en el diccionario D1 no todos los significados están referidos o conceptualizados por una palabra, mientras que todas las palabras sí que tienen su definición correspondiente en el diccionario D1 planteado. Se puede considerar que el conjunto de palabras definidas P (dominio) del diccionario D1, mantiene una relación inyectiva con el conjunto de significados asociados, S (rango), si descartamos que en el diccionario se contemplen palabras sinónimas, ya que entonces estaríamos frente a una relación suprayectiva donde elementos del conjunto P podrían compartir la misma imagen en el conjunto S: F: P→ S ; F proyecta el conjunto P sobre el conjunto S, si su recorrido es el conjunto S. O bien, si mantenemos el universo de nuestro diccionario D1 en donde de forma exhaustiva todos los significados están considerados en el diccionario y asignados a una única palabra, el conjunto de las palabras definidas y el conjunto de los significados asociados mantendrían una relación biyectiva (inyectiva y sobreyectiva) pues a cada 146 / elemento de P le corresponde un único elemento de S, y todo elemento de S tiene su antiimagen en P. Pero ni en el diccionario ni en el lenguaje encontramos esta correspondencia certera entre palabra y significado. Han sido muchos los acercamientos y mayores los problemas a la hora de definir tanto la palabra como el significado (Lyons, 1995). Esta tarea, tal y como apunta Lyons (1981:15), es llevada a cabo por la semántica lingüística, definida como el estudio de los diferentes tipos de significados codificados sistemáticamente en las lenguas naturales . Por otro lado, este pequeño universo ideal que se planteaba en D1, a priori no tiene validez para el mundo real, o al menos para los diccionarios, donde encontramos una casuística mucho más compleja. Sin hacer una relación exhaustiva de ejemplos que rebaten el esquema de las relaciones de D1 en un diccionario real, encontramos que la sinonimia, obviando matices por el momento, hace corresponder diferentes palabras a un mismo significado; la polisemia crea una correspondencia entre una palabra con diferentes significados; y la homonimia hace corresponder diferentes significados con formas iguales, ya que a nivel diamésico el estudio que nos ocupa solo contempla como conflictivas las palabras homógrafas, no las homófonas. ¿Pero a la hora de hablar o escuchar no tratamos de hacer corresponder las palabras a los significados, o los significados a las palabras? Cuando creemos entender algo es porque nuestra mente ha hecho una asignación plausible entre las palabras percibidas y sus valores. Además, si se 51 considera el signo lingüístico en la línea de Saussure (1916), en el que se asocian significantes a significados, se puede observar que muchas veces esta asociación no tiene por qué ser compartida de forma unívoca entre los participantes de un acto lingüístico. La relación entre palabra y realidad, o significante y referente, no crea un producto unívoco de significado. Los hablantes de una determinada comunidad comparten las nociones generales de una serie de términos pero no almacenan un significado único, idéntico, perfectamente delimitado en sus mentes ( Rosh, 1975). 51 Jackendoff (1987) en su hipótesis sobre la inconsciencia del significado defendía que el significante es percibido de forma consciente, mientras que el contenido semántico es inconsciente, aunque se perciba o se tenga la sensación de que el sonido está cargado de significado. 147 / 4.1.3. Significado y definición lexicográfica Hasta ahora se ha querido hacer un uso más o menos indistinto entre definición y significado de forma capciosa. ¿Pero realmente son lo mismo? ¿Encontramos significados en los diccionarios, o solo encontramos definiciones cuyo objetivo es captar el significado de las expresiones a las que apuntan? Desde luego para la corriente mentalista los significados no están ni mucho menos en el diccionario, sino en las mentes, pero éstas se basan en la definición para acceder al significado de un concepto o construirlo, por lo que si la definición no es el significado, es decir, si no podemos decir que el diccionario sea un repositorio de significados, sino de definiciones lexicográficas, al menos consideraremos que es un acceso tan legítimo al significado como el que más. En este aspecto resulta muy esclarecedora la visión de Rey-Debove (1969, 1978) sobre los diccionarios en términos metalingüísticos, ya que los diccionarios contienen metalengua de signo, y metalengua de contenido. Por ejemplo, las conclusiones del artículo de Paolo Frassi (2008) sobre el 52 papel del metalenguaje en la definición lexicográfica a partir del análisis de la definición de palabras sincategoremáticas en el Tesoro de la Lengua Francesa (TLF), apuntan en la dirección de Rey-Debove al observar la definición lexicográfica desde el punto de vista del metalenguaje, justificando así la separación entre el estudio metalingüístico y el estudio tipológico de la definición . En cualquier caso, no cabe duda de que la definición en un 53 diccionario es el aspecto central, como también apuntaba Ignacio Bosque (1982) en la misma línea que Manuel Seco (1950), y desde luego también, la herramienta que permite a los usuarios “destilar” el significado a partir de él, y construir uno propio. La carga semántica de una palabra se basa en el número y el tipo de relaciones que cada persona ha construido a lo largo de su experiencia. El diccionario es una herramienta que propone 52 “ L´ analyse des définitions des mots syncatégorématiques nous a permis de considérer la définition lexicographique du point de vue du métalangage et de justifier la séparation entre l'étude métalinguistique et l'étude typologique de la définition. Cela ne revient pas à dire que la catégorie des définitions métalinguistiques, présentée dans plusieurs études typologiques, est fausse mais que les enjeux de ce type de définitions sont tels qu'il est nécessaire de l'aborder sous un point de vue différent. Si, tout comme la définition paraphrastique, la définition métalinguistique se compose d´un hyperonyme et d'un ensemble de sème spécifiques, pour rendre compte de sa particularité il est nécessaire de considérer le concept de référent, ce qui n e peut se faire sans envisager les différents niveaux de métalangage qu'il est possible de dégager á partir de la relation syntaxique entre le lemme et la définition ". Frassi (2008), pp. 1508. 53 Un estudio clásico sobre la definición es: “ La définition ” , de J. Chaurand y F. Mezière (1990) . 148 / o refleja el significado de las palabras, estableciendo o recogiendo un valor común y estable que escape a la subjetividad individual. 4.1.4. La asociación y el significado La capacidad asociativa es un elemento toral en diferentes funciones cognitivas, sobre todo en el pensamiento, y por lo tanto también en el lenguaje. La asociación permite no solo mantener ligadas las estructuras de un determinado conocimiento sino que además facilita la construcción de conocimiento nuevo. La teoría de la asociación tuvo sus primeros esbozos en el mundo clásico, ya en obras de Aristóteles (“De memoria et reminiscentia”) encontramos postulados asociacionistas (Fernández y Sánchez González, 2018). Desde el empirismo filosófico de Hume (Ryan, 1938), quien hizo una primera enumeración de los principios de la asociación, las teorías asociacionistas han sostenido que un fenómeno puede ser explicado por la asociación de los elementos más básicos que lo componen, a través de una relación que se ha establecido previamente (Del Barco Collazos, 1981). La conexión entre estos elementos, según Hume, respondía a tres principios de asociación: semejanza, contigüidad (en tiempo y lugar) y causalidad. Estos tres principios, extrapolados a las características del lenguaje permiten la explicación de numerosas y fecundas teorías. Por ejemplo, la linealidad del signo lingüístico ha permitido el estudio de la asociación por contigüidad de las palabras, permitiendo desarrollar tecnologías deudoras en cierto grado del distribucionalismo (Mikolov, 2013), como los n-gramas, o la incrustación de palabras ( word embeddings ). Hobbes, predecesor de Hume, consideraba lo siguiente respecto al papel que cumplía la asociación en el pensamiento (Hobbes, 1651:11) : 54 “Cuando un hombre piensa en algo, lo que le viene a la mente a continuación no es tan casual como parece. A una idea le sigue otra de un modo no indiferente. Pero como no tenemos imagen sino de lo que, total o parcialmente, hemos sentido previamente, por eso no hay tránsito de una idea a otra sin que haya habido una imagen previa en nuestros sentidos. La razón es ésta: todas las imágenes son movimientos internos, reliquias de los que hubo en los sentidos. Y esos movimientos que se suceden entre sí inmediatamente en el 54 Barco Collazos (2007). 149 / sentido, continúan también juntos después. Pero como en los sentidos, a la misma cosa percibida a veces le sucede una, y otras veces, otra, viene a ocurrir que al imaginar una cosa no hay certeza de la que vayamos a imaginar a continuación. Sólo esto es cierto: será algo que, en un momento o en otro, sucedió lo mismo anteriormente”. En el campo de la Psicología y de la Lingüística se han adoptado muchas de estas ideas de diferentes maneras y en diferentes momentos: las leyes de la asociación de ideas en la psicología mentalista; en las primeras psicologías científicas, como en Wundt y el estructuralismo de Titchener (García, 2017), quien integró el método experimental en sus investigaciones tomando índices objetivos como los tiempos de reacción y las asociaciones entre palabras para el estudio de los fenómenos mentales. También en el psicoanálisis, con la libre asociación de ideas; en el conductismo con el condicionamiento como asociación entre estímulos y respuestas; y, más recientemente, en la psicología cognitiva donde el conexionismo (McClelland, Rumelhart et al, 1986) ha investigado la asociación de elementos sencillos interconectados en redes neuronales para dar una explicación a los procesos mentales. Un hecho a destacar es que las diferentes teorías asociacionistas han investigado especialmente sobre el potencial de la asociación en el aprendizaje, y la importancia de la ligación asociativa como mecanismo para la construcción de conocimiento. En este aspecto, el significado, como constructo mental, presenta numerosas dificultades para ser medido y analizado. El significado no está en las palabras, ni en los diccionarios, ni siquiera se encuentra de forma estable en la mente, sino que es el resultado de un proceso estocástico que se construye de forma dinámica en relación a múltiples variables cognitivas (Meyer y Schvaneveldt, 1976; Donald Davidson, 1994). Sin embargo, las palabras y sus relaciones, que son el acceso por antonomasia al significado de las cosas, sí pueden ser medidas, cuantificadas y calificadas por diferentes métodos. Los diccionarios ofrecen una vía interesante como recurso lexicográfico para analizar el significado, son los mayores depositarios del significado común, socialmente aceptado, más o menos objetivo, y suponen un punto de referencia capital para el uso de la lengua por parte de los hablantes. 150 / 4.1.5. Teoría de conjuntos aplicada al significado y a las palabras Hasta el momento habíamos considerado nuestro diccionario D1 como una relación entre palabras y significados, incluido como subconjunto del producto cartesiano de P (palabras) y S (significados). D1 = {} ⊆ P x S. En un diccionario los definidores de una palabra conforman un conjunto de palabras que se relacionan tanto con el lema que definen como entre ellas. Estos dos tipos de relaciones, la establecida entre el conjunto de definidores con el definiendum , y la relación de los propios definidores entre ellos, son las que vamos a analizar a continuación. Aunque el principio de composicionalidad de Frege (1892) presente dificultades para aplicarlo al significado de las palabras a través de su definición 55 lexicográfica, podríamos extraer de forma no del todo peregrina que cada palabra de una definición contempla un porcentaje del significado de la palabra que está definiendo. Una palabra, por lo tanto, sería un conjunto compuesto por una lista de elementos que lo definen y cuyo objetivo es dar cuenta de su significado. En este aspecto, Tversky (1977) propuso aplicar la teoría de conjuntos en el cálculo de la similitud entre dos objetos. El modelo propuesto se basaba en las características de los objetos a comparar, como se verá más adelante de forma parecida, por ejemplo, con el índice de Jaccard, donde la similitud entre el elemento a y el elemento b, similitud (a, b) se puede calcular a partir de una función que coteje los elementos que comparten tanto a , como b , y que tiene en consideración también, los elementos propios y exclusivos en a y en b : ● similitud (a, b) = f (a ∩ b, a − b, b − a) De esta forma, se contemplan las características que comparten dos elementos, pero igualmente los elementos diferenciadores de a y de b . En este aspecto, el objetivo del 55 En la estructura del grafo construída se pierde la linealidad, y por lo tanto, el valor sintáctico de cada elemento del definiens . 151 / procesamiento automático de las definiciones lexicográficas llevado a cabo estaría muy relacionado con la extracción del semema (Pottier 1976) a través de los semas del definiens , o con la noción de intensión conceptual (conjunto de propiedades definitorias que permiten establecer qué objetos forman parte de una determinada extensión y cuáles no) de Eugen Wüster (2010); los nodos del grafo, como se verá más adelante, idealmente vendrían a coincidir con ellos: Palabra_01 = {definidor_01, definidor_02, definidor_03, definidor_04} Palabra_01 = {asociador_01, asociador_02, asociador_03} Una máquina no es capaz de “entender” el significado, pero sí de medir eficientemente las relaciones que se establecen en un grafo entre los nodos que lo constituyen. Este trabajo plantea analizar el significado desde una perspectiva computacional a partir de la estructura recursiva de la palabra como conjunto de significados entrelazados por una relación asociativa, que pueden ser analizados y medidos computacionalmente a través de la definición lexicográfica de un diccionario para establecer distancias asociativas entre palabras de forma intrínseca y no desde su 56 distribución en un determinado corpus. De esta forma vamos a considerar que una palabra es una familia o colección de conjuntos . Cada palabra se asocia por su 57 significado, en este caso mediante su definición lexicográfica, con otras palabras, es decir, cada palabra es un conjunto que transporta una serie de elementos característicos asociados, que son a su vez otros conjuntos. Por ejemplo, la palabra , es un conjunto A0 formado por una serie de elementos; a saber , , que son a su vez conjuntos, que ,B1 B2 B3 tienen como elementos otros conjuntos, etc: = { , } A0 },{B1 B }{ 2 B }{ 3 56 Actualmente las estrategias más utilizadas para determinar distancias entre palabras y similitud se basa en word embeddings (incrustación de palabras) en las que se mide la distribución de palabras a través de un conjunto de textos de entrenamiento, es decir el valor distribucional de una palabra en función de las palabras con las que se suele relacionar, Firth (1957). 57 En matemáticas, una familia o colección de conjuntos es un conjunto donde cada elemento es a su vez otro conjunto. 152 / Por lo tanto, si entendemos cada palabra como una agrupación concreta de significados o conjunto de palabras asociadas, entonces: x∃y | x R y ∀ n Es decir, para toda palabra existe al menos otra palabra tal, que esta primera se relaciona con la segunda mediante n-grados, siendo cada grado el salto necesario del resultado de conectar un definiendum con un elemento del definiens de otro definiendum que lo contempla. Si pudiésemos cartografiar todas las relaciones asociativas en la mente de una persona estableceríamos cadenas asociativas que conformarían distancias semánticas entre palabras. La problemática de llevar a cabo esto sería tanto el coste de extracción, como el resultado. Cada individuo almacena asociaciones entre palabras de forma particular. El significado no es algo monolítico y estático, sino abstracto, voluble, lábil y dependiente de muchos factores derivados de la experiencia subjetiva de cada uno, y de cada circunstancia concreta (Davidson, 1967). Por lo tanto, aunque en muchos aspectos un diccionario no sea el material ideal para emular la capacidad asociativa humana que nos permite adjudicar distancias semánticas entre dos o más conceptos, es una herramienta accesible y adecuada para el objetivo de construir una red donde se reflejen de la manera más estable y fidedigna posible las distancias entre palabras, tal y como las usamos de forma habitual. En el siguiente análisis se podría considerar que una palabra se relaciona consigo misma en grado 1, relación reflexiva, pero por ahora se va a obviar para clarificar mejor todo. En un diccionario podemos extraer diferentes relaciones, siendo las de primer grado las que se conforman entre una palabra , , y las palabras que lo definen, en este caso: A0 y . Nótese la diferencia respecto a anteriores representaciones donde cada ,B1 B2 B3 palabra estaba compuesta por elementos de la definición, mientras que ahora se considera cada elemento como un conjunto en sí mismo. 153 / De esta manera, de forma simplificada, podríamos considerar cada palabra como un conjunto consistente en un subconjunto de palabras que a su vez sería otro subconjunto, etc. = { , } A0 ,B1 B2 B3 = { , } B1 ,C1 C2 C3 = { , } B2 ,C4 C5 C6 = { , } B3 ,C7 C8 C9 = { , } C1 ,D1 D2 D3 = { , } C2 ,D4 D5 D6 = { , } C3 ,D7 D8 D9 = { } Xn , ..Y . ,Y n 4.2. La palabra como texto comprimido La conmutabilidad o criterio de sustitución, entre el definiendum y el definiens , se basa en la equivalencia que se establece entre ambos (ley de la sinonimia). De tal manera, siguiendo la clásica definición de Bernárdez (1982: 85): “Texto es la unidad lingüística comunicativa fundamental, producto de la actividad humana, que posee siempre carácter social; está caracterizado por su cierre semántico y comunicativo, así como por su coherencia profunda y superficial, debida a la intención (comunicativa) del hablante de crear un texto íntegro, y a su estructuración mediante dos conjuntos de reglas: las propias del nivel textual y las del sistema de lengua” , Otro aspecto interesante de esta estructura recursiva que puede ser planteado, es que se puede expandir cada palabra en sus sucesivas definiciones hasta formar un “texto” de cada palabra en función de los objetivos que queramos perseguir, como por ejemplo, en paráfrasis automática, en el entrenamiento de un modelo de redes neuronales en los que el texto para entrenar disponible sea limitado, o cuando queramos obtener vectores con valores de mayor relación. 154 / Por ejemplo, a partir de = { , } ; podemos ir expandiendo cada A0 ,B1 B2 B3 elemento en los diferentes elementos de los que está compuesto: = B1 C , , }{ 1 C2 C3 = B2 C , , }{ 4 C5 C6 = B3 C , , }{ 7 C8 C9 } C1 = D , ,{ 1 D2 D3 C2 = D , , }{ 4 D5 D6 = } C3 D , ,{ 7 D8 D9 ● A partir de los valores anteriores, descomponiendo y obtenemos: ,B1 B2 B3 = { , } ------ > = { , } A0 ,B1 B2 B3 A0 C , , },{ 1 C2 C3 C , , }{ 4 C5 C6 C , , }{ 7 C8 C9 ● Descomponiendo : , y CC1 C2 3 = { , } A0 {D , , }, D , , }, D , , }},{ 1 D2 D3 { 4 D5 D6 { 7 D8 D9 C , , }{ 4 C5 C6 C , , }{ 7 C8 C9 La noción de cadenas léxicas (Morris y Hirst, 1991) se puede considerar y aplicar a la definición lexicográfica como texto, entendido como una unidad fundamental del lenguaje con un valor comunicativo (Bernárdez, 1982). Dichas cadenas se definen como una secuencia de palabras interrelacionadas que abarcan un tema del texto, en este caso el tema sería el propio definiendum . En la definición lexicográfica se encuentran por norma general numerosos términos agrupados mediante distintas relaciones de cohesión textual: sinonimia-antonimia, repetición, hiponimia-hiperonimia y meronimia-holonimia (Barzilay y Elhadad, 1997). Hay muchos trabajos que utilizan variantes de las cadenas léxicas para extraer las relaciones implícitas entre las unidades textuales, como por ejemplo, mantener la cohesión en la generación de resúmenes extractivos en el dominio biomédico (Reeve, Han y Brooks, 2007), traduciendo los conceptos al UMLS ( Unified Medical Language System ) y creando cadenas de conceptos del mismo tipo semántico en UMLS a través de la puntuación obtenida con la frecuencia y el número de conceptos por documento para determinar la cadena que represente con mayor probabilidad el tema principal del documento. 155 / 4.2.1. Función característica Una función característica (μ) asigna a cada elemento del dominio (en este caso las palabras definidas anteriormente) un elemento del rango formado únicamente por dos elementos, el valor 1 (cuando estén dentro de la relación DEFINIDO_POR) o el valor 0, del conjunto V ={1, 0} cuando los pares no estén dentro de dicha relación, por ejemplo siguiendo el caso anterior: ● μ ( , ) = 1 PxP A0 B1 ● μ ( , ) = 0 PxP A0 C1 La función característica nos puede ayudar para representar las asociaciones entre palabras en una matriz cuadrada con tantas filas y columnas como el número total del vocabulario del diccionario que se quiera representar. Aunque la matriz resultante sería muy dispersa, se podrían rellenar los ceros computando el número de saltos necesarios entre todas las palabras. 4.2.2. Matriz de adyacencia de la relación: “definido por” En la siguiente matriz de adyacencia se ha representado la función característica de la relación DEFINIDO_POR. Como se puede observar en la matriz solo se han reflejado completamente las definiciones de los elementos y con los definidores A0 B1 que encontraríamos en sus respectivas definiciones. El valor 1 indica que un elemento del eje vertical está definido por un elemento del eje horizontal. Por otro lado el 0 representaría la no relación directa entre unos y otros. De tal manera cada línea indicaría la definición de cada uno de los conceptos de la columna de la izquierda, estando cada concepto relacionado en grado 1 con los conceptos de su definición, y consigo mismos (relación reflexiva, lo que produce una matriz escalar, ya que todos los elementos de la diagonal principal son iguales). 156 / De la misma manera a partir de las definiciones de un diccionario, depurando previamente las definiciones para quedarnos con los elementos característicos (asociadores) de cada definiens, obtendríamos una matriz cuadrada de tipo disperso (sparse) con tantas columnas y filas como acepciones de palabras se quisieran representar. 4.2.3. Grados de relación a través de los definidores Aunque en la anterior matriz como se acaba de ver solo se han representado las relaciones entre y con sus definidores, y las relaciones reflexivas de cada elemento A0 B1 consigo mismo. Si quisiéramos indicar el grado de relación de primer grado (es decir, definidos directamente por ese elemento) podríamos indicarlo con un superíndice que especificara la distancia de 1 salto entre dos términos, o cualquier otra distancia, por ejemplo: ; donde está relacionado por 4 grados con . En la matriz solo A0 R4 T 8 A0 T 8 están reflejadas las relaciones de grado 1, que por ahora son las que nos interesan pues son las que se derivan directamente de la definición lexicográfica del diccionario: 157 A0 B1 B2 B3 C1 C2 C3 A0 1 1 1 1 0 0 0 B1 0 1 0 0 1 1 1 B2 0 0 1 0 0 0 0 B3 0 0 0 1 0 0 0 C1 0 0 0 0 1 0 0 C2 0 0 0 0 0 1 0 C3 0 0 0 0 0 0 1 / A0 R1 A0 A0 R1 B1 A0 R1 B2 A0 R1 B3 B1 R1 B1 B1 R1 C1 B1 R1 C2 B1 R1 C3 B2 R1 B2 B3 R1 B3 C1 R1 C1 C2 R1 C2 C3 R1 C3 De tal manera, se pueden computar los caminos necesarios para ir de un punto A (palabra origen) a un punto B (palabra destino) para cada una de las palabras del diccionario gracias a diferentes estrategias en las consultas en Cypher de Neo4j , o con los algoritmos de caminos más cortos ( Shortest Path algorithms) que veremos más adelante, y que optimizan la búsqueda de un camino entre dos puntos. A continuación se presentan dos subgrafos en los que se han obtenido diferentes caminos sin usar algoritmos de rutas óptimas para observar las distancias que se establecen entre dos o más nodos: ● Figura 11a. Subgrafo en el que se muestra un recorrido de 97 nodos entre el sustantivo “árbol_01” (nodo de inicio, arriba a la izquierda) y el verbo “estrellar_01” (nodo de destino, abajo a la derecha), sin usar algoritmos de rutas óptimas. Consulta en Cypher : MATCH p= (b:NC{termId : "mm_árbol_01" })-[*]- (a:V{termId: "mm_estrellar_01" }) return p limit 1 158 / ● Figura 11b. Subgrafo en el que se muestra un recorrido aleatorio de 500 nodos desde el nodo de inicio correspondiente al verbo “estrellar_01”, situado arriba a la izquierda. Se han resaltado los nodos con etiqueta de verbo (en magenta) y los adjetivos (en azul claro). Consulta en Cypher: MATCH p= (a:V{termId: "mm_estrellar_01" })-[*]-( b ) return p limit 500 159 / 4.2.4. Matriz de adyacencia de la relación: “asociado con” En las anteriores representaciones hemos tenido en cuenta la relación entre una palabra y sus definidores, es decir, una relación uno a muchos, que hemos identificado mediante la relación ESTAR_DEFINIDO_POR. Esta relación, como se ha señalado, es una relación binaria formada por pares ordenados entre una palabra con cada elemento de su definición. De donde extraemos a partir de la definición de la palabra la relación A0 R de todos los definidores con la palabra a la que definen: = { , } A0 ,B1 B2 B3 < , > ∊ R A0 A0 < , > ∊ R A0 B1 < > ∊ R A0 ,B2 > ∊ R ,< A0 B3 Esta relación está dirigida, no es simétrica. Sin embargo, si queremos medir la asociación entre palabras se puede considerar que la relación asociativa de un concepto con otro es simétrica, es decir, si una palabra A está relacionada con una palabra B, entonces la palabra B está relacionada con la palabra A. Esta nueva relación se puede identificar como: ESTAR_ASOCIADO_CON: ∀ x,y ∊ D: xRy → yRx 160 / Esta bidireccionalidad se podría representar simplemente construyendo la matriz traspuesta sobre la matriz anterior, es decir, a partir de la base de la primera matriz se cambian las filas por las columnas y se realiza una operación de disyunción lógica entre la base y la matriz traspuesta (en programación, operación “or”). De esta forma además de asociar con sus definidores, se asocian sus definidores con , como quedaría A0 A0 reflejado en la primera columna de valores destacado en azul: 161 A0 B1 B2 B3 C1 C2 C3 A0 1 1 1 1 0 0 0 B1 1 1 0 0 1 1 1 B2 1 0 1 0 0 0 0 B3 1 0 0 1 0 0 0 C1 0 1 0 0 1 0 0 C2 0 1 0 0 0 1 0 C3 0 1 0 0 0 0 1 / 4.3. Otras relaciones a partir del definiens Una palabra se asocia con una serie de palabras que “encienden” un significado concreto en cada cabeza. En un diccionario, a la hora de definir un término, se suele recurrir a una serie de relaciones semánticas que ayudan a entender mejor el significado de la palabra: hiponimia-hiperonimia, meronimia-holonimia, o sinonimia-antonimia. En concreto en las definiciones frecuentemente encontramos en primer lugar el hiperónimo de la palabra definida ( genus ) ya que éste al ser la categoría inmediatamente superior permite contextualizar de manera más rápida y efectiva el significado que se está queriendo alcanzar. Esta característica de las definiciones, en el caso de ser sistemáticas y consistentes nos permitiría crear una estructura ontológica de manera automática recurriendo a la identificación de los hiperónimos del definiens . La cadena de hiperónimos que vamos a analizar a continuación se ha extraído del DLE cogiendo la primera palabra de cada definición a partir de la palabra “gallina”. Aunque el ejemplo se ajuste bastante al objetivo, se pueden ver algunas de las problemáticas que se encontrarían para establecer cadenas de hiperónimos de manera automática forzando la estructura de lo que María Moliner consideraba “cono léxico” (Cuadrado, 1995), es decir, el vértice último de la estructura ascendente en la relación hiponimia-hiperonimia que debían tener las definiciones, normalmente representado por el genus de la definición lexicográfica: ● Gallina: Ave doméstica del orden de las galliformes, con cresta roja y carnosa,pico corto, grueso y arqueado, de plumaje abundante, lustroso y a menudo con visos irisados, cuyo macho tiene tarsos fuertes armados de espolones, y cuya hembra es de menor tamaño y tiene la cresta más pequeña. 162 / ● Ave: Animal vertebrado, ovíparo, de respiración pulmonar y sangre de temperatura constante, pico córneo, cuerpo cubierto de plumas, con dos patas y dos alas aptas por lo común para el vuelo, y que, en estado embrionario, tiene amnios y alantoides. ● Animal: Ser orgánico que vive, siente y se mueve por propio impulso. ● Ser: Cosa creada, especialmente las dotadas de vida. ● Cosa: Lo que tiene entidad, ya sea corporal o espiritual, natural o artificial, concreta, abstracta o virtual. La cadena de hiperónimos formada a partir del genus (resaltados en negrita) de las definiciones del DLE anteriores que quedaría sería la siguiente: Gallina > Ave > Animal > Ser > Cosa (creada) En la anterior cadena vemos cómo ya en el último elemento de la cadena, “cosa”, de extraerse de forma automática, se desvanece en parte la relación de hiperónimo respecto a “gallina”. En la cadena, que tendría muchas semejanzas con una taxonomía por la naturaleza del ejemplo elegido, podemos ver cómo “gallina” se relaciona en grado 1 con “ave” (Gallina Ave), en grado 2 con “animal” (Gallina Animal), en 3 grados con “ser” R1 R2 (Gallina Ser) y en 4 grados con “cosa” (Gallina Cosa). R3 R4 163 / Si se recurriera a un mecanismo de herencia, y se adaptasen mínimamente sendas definiciones podríamos obtener una nueva definición de “gallina” de “arriba a abajo” del cono léxico , como la siguiente: ● gallina: Es una entidad corporal, natural, concreta. Es una cosa creada, dotada de vida. Es un ser orgánico que vive, siente y se mueve por propio impulso. Es un animal vertebrado, ovíparo, de respiración pulmonar y sangre de temperatura constante, pico córneo, cuerpo cubierto de plumas, con dos patas y dos alas aptas por lo común para el vuelo, y que, en estado embrionario, tiene amnios y alantoides. 4.3.1. Observaciones sobre la sinonimia En el marco planteado, se podría pensar que si dos palabras comparten exactamente los mismos definidores serán sinónimas por el axioma de la extensión, o mantendrán una relación muy próxima a la sinonimia según el grado o el número de significados comunes (Benzmüller, 2004). El problema en este caso es que para crear las relaciones y construir el grafo desechamos una serie de palabras que pueden determinar totalmente el valor de la definición. Sobre todo en el caso de la negación o de las palabras exceptivas (salvo, menos, excepto, etc), que al ser descartadas no se tienen en cuenta y sin embargo invierten al menos parcialmente el sentido de la definición lexicográfica. Imaginemos que tenemos definido en un diccionario la palabra “valiente” como 58 “persona sin miedo”; y “cobarde” como “persona con miedo”. La lista de definidores extraídos serían los mismos para ambas palabras, pues se habrían desechado las preposiciones “con” y “sin” : 58 Aunque la” ley de la sinonimia” impida en un diccionario lexicográfico definir un adjetivo con un sustantivo, en este caso es una concesión para clarificar mejor el ejemplo. 164 / Valiente = {Persona, Miedo} Cobarde = {Persona, Miedo} Teniendo esta consideración en cuenta, se debe ser cauto en nuestro proceso a la hora de establecer los criterios para definir e interpretar las distancias semánticas que se obtienen a partir de la extracción de los definidores válidos de una definición, y la construcción de la matriz correspondiente. La relación asociativa que podemos establecer entre palabras no distinguiría a priori entre estos casos en los que dos palabras comparten exactamente los mismos definidores. Por otro lado, sinonimia y antonimia son dos relaciones que están en los diccionarios codificadas de forma muy diferente. La sinonimia suele ser consignada, en la medida en que suponemos que existe (Salvador, 1985; Rey-Debove, 1998), aunque se deben tener en cuenta los trabajos de Bréal (1904) y su conocida ley de repartición del significado , en la que este autor ya señalaba que la sinonimia absoluta tendía a desaparecer, diferenciándose semánticamente los términos al adquirir matices, por especialización en el uso de alguno de los términos, o imponerse finalmente sobre el otro con el paso del tiempo. En el caso del Diccionario del Uso del Español , aunque se pueden encontrar en muchos casos sinónimos dentro del catálogo de voces que presentan algunas entradas, son un conjunto de palabras afines “ incluidas dentro del artículo correspondiente al término considerado más representativo del respectivo campo semántico ” (Seco 1987). No así la antonimia, salvo en diccionarios de aprendizaje o escolares, como Clave de SM. Sinonimia, antonimia u otras relaciones semánticas se podrían trabajar y analizar a través del grafo pero siempre teniendo en cuenta la dependencia respecto a la definición lexicográfica y los límites y problemas de la extracción de los definidores. El grafo representa el potencial asociativo de un término en niveles discretos, y por lo tanto, no se podría distinguir a priori dentro del mismo nivel de asociación el grado o tipo de relación. 165 / 4.3.2. Desambiguación: observaciones sobre la polisemia y la homonimia Uno de los problemas que más ha suscitado el interés dentro del PLN es la desambiguación (Montoyo et al., 2005). Hasta ahora, los modelos de Markov (Zhang, Rettinger y Philip, 2016), los n-gramas (Preotiuc y Hristea, 2014), los árboles de decisión (Quinlan, 1993), las redes neuronales (Veronis e Ide, 1990), etc., han ido mejorando tanto la precisión como la cobertura a la hora de establecer el correcto etiquetado morfológico, y en cierta medida, la desambiguación (Martí, 2002). Sin embargo, aunque la desambiguación estructural o de dependencia sintáctica, ayuda a su vez a la desambiguación léxica y a la semántica (misma forma, diferente categoría, y por lo tanto diferente sentido, o misma forma, diferente y sentido), la correcta realización de la última todavía necesita de más herramientas para la consecución del objetivo. Por ejemplo, muchos autores se han servido de los synsets de Wordnet para llevar a cabo tareas de desambiguación (Banerjee S, Pedersen, 2002), o WSD ( Word Sense Disambiguation ) a partir del algoritmo Lesk (Lesk, 1986). La coherencia discursiva permite, o al menos facilita, el proceso cognitivo que permite la desambiguación, estando entrelazados diferentes niveles lingüísticos: morfología, sintaxis, semántica, pragmática... (Kehler et al. 2008). Dada la complejidad de la operación parece lógico los problemas que tiene una máquina para desambiguar correctamente. Un humano cuenta con muchos más recursos externos al texto que quiere desambiguar, y aún así son frecuentes los errores. A la hora de entrenar una red neuronal, o cuando se vectoriza la distribución de las palabras en el texto con “ embeddings ” (Chen y Sun, 2017) usando Word2vec, Glove, ELMo , etc., se trabaja únicamente con la información relativa al texto y se prescinde de la información intrínseca de las palabras que lo componen. Sin embargo, hay numerosa información que combinada con los datos que da el propio texto pueden ayudar a mejorar los resultados (Wu y Wang, 2017). Aunque no siempre es factible aprovechar la coherencia relacional, la relación de semejanza, o la contigüidad (Kehler et al., 2008), en muchos casos sí se puede encontrar un hilo temático que ayude a la desambiguación automática a partir de la información extraída de los diccionarios. Para ofrecer una perspectiva de la complejidad de la 166 / combinatoria de posibilidades, en la siguiente frase se ha indicado entre paréntesis el número de significados posibles (acepciones) de los 4 sustantivos que encontramos. La combinatoria posible como se puede ver a continuación es apabullante. Sin embargo, si descomponemos cada palabra en su conjunto de definidores, o medimos el número de denominadores comunes entre ellos y las distancias de cada uno en un espacio 59 semántico, se obtiene una probabilidad mayor en aquellas acepciones que están más cerca. ・ El nogal (2) es un árbol (8) que da unos frutos (3) llamados nueces (5). nogal_01 árbol_01 fruto_01 nuez_01 nogal_02 árbol_02 fruto_02 nuez_02 árbol_03 fruto_03 nuez_03 árbol_04 nuez_04 árbol_05 nuez_05 árbol_06 nuez_06 árbol_05 nuez_05 árbol_06 árbol_07 árbol_08 A continuación se presentan las definiciones lexicográficas del DUE correspondientes a las palabras del ejemplo anterior, para observar aquellos denominadores comunes que permiten conectar unas acepciones con otras a partir del contexto de la frase: 59 Hay numerosos algoritmos para calcular distancias y similitud a partir de grafos: similaridad de Jaccard, si milaridad del Coseno, similaridad de Pearson; distancia euclidiana, distancia de Manhattan, etc. 167 n.termId n.definition (DUE) mm_nogal_01 Árbol juglandáceo cuyos frutos son las nueces. mm_nogal_02 Se aplica a «color» para designar el ocre más o menos claro, sobre todo hablando de maderas o muebles. mm_árbol_01 Planta con el tallo simple que se ramifica a cierta distancia del suelo. formando una «copa». mm_árbol_02 Barra que sirve de soporte a otras piezas. girando ella misma o permaneciendo fija. / El ejemplo que se acaba de presentar, aunque forzado y simplificado, representa en parte la problemática de la desambiguación, y cómo los definidores usados en las definiciones lexicográficas pueden servir de apoyo en el estudio o la resolución de esta tarea. Por ejemplo, entre la definición de nogal_01 (árbol) y nogal_02 (color), se puede observar cómo el contexto fuerza a un tipo de lectura al coincidir determinados elementos (árbol, fruto, o nuez). Obviamente en casos reales de desambiguación, las coincidencias no son tan abundantes y se deben combinar con métodos probabilísticos que ayuden a elegir la acepción adecuada en función de la frecuencia de uso, entre otros. 168 mm_árbol_03 Palo: cada uno de los maderos redondos puestos verticalmente que sostienen las vergas y las velas de un barco. mm_árbol_04 Pieza de hierro en la parte superior del husillo de la prensa de imprimir. mm_árbol_05 En el órgano, eje que. movido por el ejecutante. acciona los registros. mm_árbol_06 Altura del tipo desde la base hasta el comienzo del hombro. mm_árbol_07 Cuerpo de la camisa. sin las mangas. mm_árbol_08 Punzón con mango de madera que usan los relojeros. mm_fruto_01 Parte de la planta en que se transforma el ovario de la flor. que contiene las semillas y se separa de la planta cuando alcanza la madurez. mm_fruto_02 Lo que produce la tierra. en forma de vegetales útiles. mm_fruto_03 Cualquier cosa. útil o no. o incluso perjudicial. producida por algo. mm_nuez_01 Fruto del nogal; mm_nuez_02 Fruto seco. monospermo. indehiscente y con pericarpo leñoso. como el del avellano. mm_nuez_03 Prominencia que forma en el exterior de la garganta de los hombres la laringe. mm_nuez_04 En los instrumentos musicales de la familia del violín. pieza movible situada en el extremo inferior del arco que sirve para tensar las cerdas. mm_nuez_05 Pieza hecha con la parte inferior de un mogote de ciervo. que se fijaba en el tablero de la ballesta para afianzar la cuerda. / CAPÍTULO 5: DICCIONARIO DE USO DEL ESPAÑOL DE MARÍA MOLINER En el siguiente capítulo se exponen las características más sobresalientes del diccionario empleado para este trabajo, el Diccionario del Uso del Español de María Moliner. ● Figura 12. Subgrafo en el que se pueden apreciar diferentes nodos relacionados con “conocer_01” (en el centro, como nodo concentrador), con la etiqueta de verbo (enmagenta), de sustantivo (en azul) y de adjetivo (en azul claro). 169 / 5. El DUE de María Moliner Tal como expuso María Moliner en la presentación del DUE , el Diccionario de Uso del Español (1966-1967), el objetivo que tenía era satisfacer las dudas sobre el léxico del español, centrándose en la vertiente más pragmática respecto a la consulta, es decir, su uso. Además, como indica Manuel Seco (2007), el principio metodológico que rige el diccionario de Moliner no está orientado de manera exclusiva a los hablantes de lengua materna española, sino que sus características lo hacen adecuado para cualquier aprendiente de español, remozando el concepto de diccionario de entonces, y considerándolo por sus características como una “herramienta total” (Seco, 1985: 208). Este concepto de “herramienta total” fue introducido por el lexicógrafo Paul Robert, autor del “ Dictionnaire alphabétique et analogique de la langue française (1953-1964), y por Julio Casares, autor del celebrado “ Diccionario ideológico de la lengua española ” (1942), y se refiere a la capacidad tanto decodificadora, como codificadora a la que se ha hecho referencia en numerosos trabajos (Pérez, 2002). La estructura del DUE ha ido modificándose desde la primera edición (1967) a la última, aunque en cierta medida mantiene los principales rasgos de los que se ha podido enriquecer este trabajo a partir fundamentalmente de la segunda edición, la de 1998 . Aunque las consultas relativas a la 60 información semasiológica, es decir, sobre el significado de las palabras en sí, no ha experimentado demasiados cambios, sí lo han hecho otras partes del diccionario (Dacosta Esteban, 2008). Respecto a las búsquedas de significado, las más frecuentes, en este apartado no se harán demasiadas consideraciones especiales: las palabras se encuentran ordenadas alfabéticamente respecto a su forma canónica, el lema. Como veremos a lo largo de los siguientes apartados las características del Diccionario de uso del español de María Moliner lo hacen especialmente interesante para la representación en grafo de las relaciones entre las palabras de la definición lexicográfica y el definiendum . Quizá uno de los inconvenientes que se han señalado más frecuentemente sea el manejo del diccionario por el orden morfológico interno y la cantidad de información adicional que ofrece, lo que para la tarea que vamos a realizar es 60 La principal modificación la constituye la organización de la propia nomenclatura del diccionario. 170 / irrelevante, pues las consultas al grafo en el lenguaje Cypher , como se irá viendo, permiten una alta flexibilidad para realizar búsquedas y consultas de diferente índole. Quizá las dos principales características del diccionario de María Moliner, que apuntó Seco (2003: 275), de las que se han beneficiado enormemente los resultados del grafo construido son: 1. La adaptación del lenguaje usado en las definiciones, asimilándolo más al lenguaje real de los usuarios. 2. La eliminación de los círculos viciosos en las definiciones, que rompen el bucle que muchas veces se establece al definir una palabra con otra, y esta segunda con la primera. Estas dos características son especialmente importantes para el objetivo que se pretende alcanzar con la creación del grafo, pues es esencial contar con unas definiciones cercanas al uso común de la lengua que permitan construir relaciones contrastables, y con sentido desde el punto de vista del usuario (Castroviejo, 1969). Aunque pueda ser un aspecto criticable el hecho de que las definiciones del DUE se basen en el idiolecto de Moliner, algo frecuente en otros diccionarios de la época, y que la confección del diccionario no se base en la explotación estadística de un corpus lingüístico, como apunta Aliaga en su publicación “ En defensa de algunas características del DUE ” (2000), no es 61 un aspecto negativo per se, ya que María Moliner fue “ una atenta observadora del uso lingüístico de su tiempo ” (Aliaga, 2000) lo que tuvo como resultado una excelente calidad en las definiciones lexicográficas en un lenguaje sencillo, que busca ser lo más transparente para el usuario. Por otro lado, la eliminación de los círculos viciosos es una característica fundamental que permite vincular y estructurar los nodos de manera más lógica para constituir la red, y analizarla computacionalmente. 61 El artículo se puede encontrar en: https://cvc.cervantes.es/lengua/mmoliner/aliaga.htm (consultado 17/11/10 171 / 5.1. Estructura del DUE La organización del diccionario de María Moliner responde, por un lado, a la organización externa (macroestructura) de sus entradas léxicas, la organización y relación que tienen unas entradas con otras (Haensch, 2004). Y por otro lado, a la organización interna (microestructura), donde se relaciona cada tipo de información proporcionada de la entrada en cuestión. El afán de María Moliner era, entre otros, crear un diccionario que supliera las carencias de los diccionarios existentes hasta la fecha. En este aspecto encontramos reflejada en la propia estructura características que lo distinguen de los diccionarios de la época, como el de la Real Academia Española, y el de Julio Casares, de los que se sirvió, especialmente para la confección del DUE . De forma general se puede decir que los diccionarios siguen una organización alfabética respecto al lema de cada entrada. Sin embargo, en el caso del DUE encontramos características especiales que pasaremos a comentar tanto en la macroestructura como en la microestructura, que reúnen un vasto conjunto léxico ordenado mediante un sistema de familias de palabras en las que se ofrece por cada entrada: la definición, las acepciones, subacepciones, sinónimos, régimen preposicional, etc. Para María Moliner, en la redacción del diccionario estuvo constantemente presente la preocupación por hacer innecesario cualquier tipo de aclaración respecto a las instrucciones que debía seguir el usuario para su uso, al margen de lo que figura en la presentación del diccionario. Con la ordenación de los artículos y acepciones, los tipos de letra usados, los signos, símbolos, parénesis, etc., intentó construir un conjunto suficientemente expresivo para no hacer necesaria una aclaración adicional. El presente trabajo se nutre del cuidado afán con el que María Moliner confeccionó su diccionario, que pretendía cubrir dos tipos de consulta: en la vertiente decodificadora, resolver dudas sobre la forma o el significado de una palabra; y en la vertiente codificadora, llegar a la palabra que expresa una determinada idea. Con el objetivo de crear el grafo se atenderá particularmente a la microestructura, es decir, a la disposición interna que presentan las entradas del diccionario para poder eliminar todos los elementos adicionales y podernos enfocar en la información otorgada por el definiens 172 / de cada acepción. Las múltiples características sobresalientes y la abrumadora cantidad de información (Fuentes, 2000) que hay en el diccionario hacen que solo nos hayamos detenido en algunas de ellas, pero sin duda el DUE de María Moliner se presta hoy en día con más razón, a múltiples estudios con las herramientas surgidas gracias a las nuevas tecnologías. 5.1.1. Macroestructura del DUE La macroestructura de un diccionario da cuenta de la organización de los diccionarios, ocupando un espacio fundamental la estructuración de las unidades léxicas en una sucesión de artículos o entradas (Kocjancic, 2004). Además de esta organización externa del conjunto de los artículos lexicográficos que forma el cuerpo del diccionario de María Moliner, en la versión física encontramos una introducción donde se explica la finalidad y a quién va dirigida la obra; la simbología o las abreviaturas usadas para el manejo del diccionario; y las instrucciones y consideraciones relevantes para el uso del diccionario de acuerdo con los criterios de ordenación para poder realizar las búsquedas. Todo ello está en la línea con la inclinación didáctica de la autora, que pone a disposición del usuario, no solo una serie de pautas metodológicas para realizar las búsquedas, sino una manual para entender y sacar provecho de toda la codificación de información que se encuentra en el diccionario (ver apartados 5 y 5.1). En los diccionarios semasiológicos, el proceso de búsqueda que se sigue es del significante al significado, siendo la ordenación típica el orden alfabético. Aunque este criterio es eficaz y rápido en un formato físico, pierde gran parte de su sentido en formato electrónico. El cambio entre el formato físico y el formato electrónico ha tenido numerosas consecuencias, ya que el espacio en formato físico juega un papel determinante en la construcción del diccionario como limitador, mientras que en el formato electrónico no encontramos esos límites tan estrictos de espacio (Fernández-Pampillón, Matesanz del Barrio, 2006). Aunque respecto a la ordenación de 173 / las palabras en el diccionario el DUE presenta varias particularidades (Orera, 2009) en relación con otros diccionarios como el DLE, se vuelve irrelevante para el propósito que nos ocupa, puesto que a la hora de construir el grafo se rompe con la ordenación vertical del diccionario. En ese aspecto, aunque estaba supeditada a la ordenación alfabética, en la primera ordenación por familias etimológicas que hizo María Moliner (1967), cada palabra proporcionaba información de su familia etimológica y remitía a la entrada principal para obtener la definición completa, la información gramatical, léxica, etc. Dicha forma de organización desaparece en la edición de 1998. Una presentación u otra no hubiera supuesto demasiado cambio para el resultado final de las relaciones del grafo, aunque hubieran hecho más compleja su extracción con la primera edición. Tanto en las versiones antiguas como en las más recientes, ya sea en papel o en las versiones electrónicas, toda la información viene convenientemente estructurada e indicada con signos especiales, lo que facilita enormemente tanto la lectura o búsqueda de una palabra, como la extracción automática de aquellos apartados que nos interesan. Es importante volver a recalcar que la extraordinaria y extensa información que incluye María Moliner no está representada totalmente en el grafo, ya que por ejemplo, se ha obviado la frecuente información de carácter sintáctico que aparece acompañando a los verbos sobre su régimen preposicional, la información de los catálogos, o la abundante información sobre la combinatoria de la palabra-entrada que acompaña a ciertos vocablos. Este trabajo se ha centrado en la explotación de la información aportada únicamente por la definición lexicográfica y las relaciones que algunos de sus elementos mantienen con el definiendum . En numerosas ocasiones se ha resaltado que María Moliner se adelantó en muchos aspectos a su tiempo (De la Fuente, 2011), y especialmente, a los diccionarios de su tiempo. Por ejemplo, entre otros aspectos a los que se hará alusión, separó los dígrafos “ch” y “ll” en letras independientes como acercamiento a la ordenación alfabética internacional (Porto Dapena, 1999). Pero como se ha comentado, su característica más significativa en cuanto a la ordenación de sus entradas es la ordenación por familias morfosemánticas (Porto Dapena, 2000). Aunque esta ordenación está supeditada a la alfabética, es posible encontrar en una entrada vocablos que comparten una misma raíz, lo que permite realizar búsquedas y relaciones a partir de la etimología. Este rasgo ha sido controvertido, de hecho la presentación por familias y el procedimiento de búsqueda quizá haya sido uno 174 / de los rasgos más criticados del diccionario por la confusión que en algunos casos se podía dar, por lo que como se ha señalado se ha modificado en versiones posteriores (Alvar Ezquerra, 1983). Estas trabas, derivadas en parte de la limitación física del papel a las que se ha hecho alusión, ya no se dan en estos días (Seco, 1987). En este aspecto, María Moliner volvió a adelantarse a su tiempo: se podrían comparar los hipervínculos actuales a la labor manual de agrupación, vinculación y unión de información que hizo en su día la lexicógrafa. 5.1.2. Microestructura del DUE La microestructura de un diccionario hace referencia a la estructuración interna de los artículos lexicográficos. Como apuntaba Julio Casares en su “Introducción a la lexicografía moderna” (1950), respecto a la separación de acepciones, no es un asunto trivial, sino una tarea que presenta dificultades considerables para la decisión del lexicógrafo, y una vez resuelta esta tarea, queda otra, y es la ordenación de dichas acepciones. Según Casares, se recogen habitualmente en dos posibles opciones: la empírica, que prima a las acepciones más frecuentes; y la histórica, que otorga preferencia a las acepciones que conservan un valor más próximo a su etimología, aunque su uso haya caído. Por ejemplo, esta era la ordenación habitual del DLE en esos momentos. Con respecto a la primera opción, la ausencia de una estadística probatoria del uso real de las acepciones se ha resuelto en parte con las nuevas tecnologías, aunque aún así dificulta la labor lexicográfica, que además queda a expensas de los imprevisibles vaivenes y cambios constantes en la historia semántica de muchas palabras. La segunda opción, por su parte, puede contribuir a que el lector reciba una información filológica más completa, pero también se corre el riesgo de desorientar al usuario (Gargallo Gil, 1992). Ambos métodos presentan inconvenientes y ventajas. En cualquier caso, Moliner se mostraba más partidaria de la ordenación etimológica, concediendo prioridad a la acepción más próxima a la etimología, aunque no fuera esta la usual, de tal manera que la ordenación 175 / de acepciones constituya una especie de encadenamiento semántico que lleve desde la acepción más etimológica hasta la más usual. (Moliner, 1966). Como ya se ha comentado, en el caso del DUE la presentación del contenido ha variado a lo largo de sus numerosas ediciones, pero a grandes rasgos se ha mantenido el mismo contenido (Porto Dapena, 1999). La microestructura u organización de los artículos en el Diccionario de uso del español de María Moliner puede ser diferente según cada entrada, pero mantienen la estructura básica: el enunciado, la entrada junto con el lema, y un paréntesis inicial, donde se presenta otra información, como la etimológica, la morfológica, cuestiones ortográficas, etc; y el cuerpo, donde se da cuenta del significado asociado. Mientras que en la primera edición (volúmen I: A-G, 1966; volúmen II: H-Z, 1967) aparecía reunida la información onomasiológica, representada básicamente por los catálogos de voces afines de aquellos artículos que lo tenían, con el semasiológico, o conjunto de acepciones y subacepciones, en posteriores ediciones los catálogos aparecen al final, como un apéndice. Encontramos asimismo, que la nomenclatura, el conjunto de voces lematizadas en el DUE , incluye información adicional que no está considerada en otros diccionarios generales (Porto Dapena, 2000). Así, por ejemplo, en el de María Moliner se incluye en la nomenclatura, entre otras cosas, raíces y afijos, sonidos de carácter onomatopéyico , símbolos químicos, nombres científicos de flora y fauna, etc. El cuerpo del artículo tiene toda la información relevante para el grafo, es decir, los definidores válidos (asociadores) para generar una relación de asociación entre un nodo y otro. Cada acepción refleja un sentido de la palabra, por lo que en el grafo, cada acepción de cada palabra constituirá un nodo diferenciado. En las entradas se puede encontrar, dependiendo de la palabra definida, diferente información. Aunque como se ha visto, en la primera edición (1966-1967) se primaba la ordenación etimológica, en las posteriores ediciones se han modificado parte de las estructuras en las que encontramos la información. La ordenación de las acepciones priorizaba aquella que estuviera más próxima a la etimología, aunque no fuera la acepción más usual, y colocaba el resto en orden de proximidad conceptual a la primera hasta llegar, si así fuera el caso, a la que estuviera más desligada de la etimología. María Moliner justificaba esta decisión frente a las posibles críticas por no haber seguido un criterio de frecuencia, aduciendo que la primera acepción, al no ser el DUE un diccionario bilingüe, no era la que más interés 176 / podía suscitar en el lector, sino más bien al contrario, ya que las acepciones más frecuentes tenían menos posibilidades de ser buscadas en el diccionario, y por el contrario, como defiende en la presentación del DUE (Moliner, 1967: XVIII): “ descubrir de primera intención el auténtico genio de la palabra, más interesante de recordar cuanto más olvidado, en muchos casos hará necesaria otra búsqueda y, en otros, ayudará a comprender cualquier otra acepción ”. Aún así en términos generales, como presenta Porto Dapena (2000) en referencia a las características del DUE , podemos encontrar en cada acepción un modelo que responde a los siguientes puntos: ● El lema, o forma canónica de la palabra, la forma afija de la palabra de la entrada, y las raíces cultas asociadas a la misma. ● Un paréntesis (paréntesis inicial) con información sobre la categorización gramatical, y otras indicaciones relativas al uso. ● Los sinónimos totales, parciales o parasinónimos, indicados mediante comillas, así como equivalencias de perífrasis que contengan el mismo significado. O de modismos y frases hechas que se relacionen con una palabra. ● La definición de la acepción correspondiente. ● Uno o varios ejemplos identificados con comillas sencillas. ● El catálogo de voces afines (que en la versión usada se encuentra al final de la acepción), con grupos de palabras relacionados semánticamente como hipónimos y merónimos (palabras más específicas) o hiperónimos y holónimos (palabras con un sentido más general), al igual que antónimos. ● Las subacepciones que pueda tener la acepción, identificado con un pequeño círculo con un punto en su centro y que a su vez pueden reproducir la estructura referida de la acepción. A continuación vemos un ejemplo de una entrada del DUE de María Moliner tomado del CVC, Centro Virtual Cervantes del Instituto Cervantes. (Consultado: diciembre de 2019), y después, una vez creado el grafo, el subgrafo correspondiente de los asociadores de “presentir_01”, conectado con “barruntar_01” como relación de entrada. (“presentir_01” es un asociador de barruntar_01”). 177 / La consulta en Cypher (una vez construido el grafo) para obtener nodos asociados a “presentir_01” con todos los asociadores de este último es la siguiente: ● Match(n)-[:RELATED_TO]->(z:V{termId:"mm_presentir_01"})-[:RELATED_TO]->(v) return n,z,v limit 15 ● Figura 13. Subgrafo en el que se pueden apreciar diferentes relaciones de entrada y de salida respecto al nodo “presentir_01”. 178 / Como vemos en el subgrafo anterior, una vez creado el grafo, los nodos azul oscuro representan la categoría de los sustantivos, y la magenta la categoría de los verbos, aunque únicamente se ha realizado una consulta sobre la palabra “presentir”, a través de la información de la definición lexicográfica de dicha palabra vemos que es suficiente para conectar con palabras como “barruntar”, debido a que en el definiens de ésta a su vez aparece la palabra “presentir_01”. La calidad de las definiciones del DUE permite este tipo de vinculación gracias a la interconexión que se encuentra en los artículos lexicográficos. En el apéndice, además de los catálogos de palabras, muchas veces se encuentran indicaciones suplementarias a las que ya se ha hecho referencia, como irregularidades de la conjugación de los verbos, notas de uso o formas de expresión, todas ellas siempre introducidas mediante el signo de apéndice o nota que se ha señalado. Los apartados que constituyen el cuerpo de los artículos, a pesar de ofrecer valiosa información, como ya se ha comentado, no han sido recuperados para el grafo, ya que parte del objetivo de la tesis es crear un grafo de vinculación semántica entre palabras a partir únicamente del definiens , además, en casos como los ejemplos de uso, pueden introducir mucho ruido y suponen un problema en el proceso de extracción para vincularlos correspondientemente. 179 / 5.2. Definiciones del DUE Tal y como comenta Alvar Ezquerra (1998), uno de los aspectos que más cuidó María Moliner es el sistema de definiciones, aspecto que es justamente la parte más importante para la creación del grafo con las relaciones apropiadas. Cada definición, para evitar circularidades, procura seguir un procedimiento ascensional, es decir, una definición lógica compuesta por una palabra de contenido más general (normalmente un hiperónimo, un archilexema, que forma el genus ) acompañado por las diferencias o características específicas ( diferentiae ) que separa el término definido de la categoría expresada por el hiperónimo (Díaz Cama, 1998). Aunque no siempre la naturaleza del unidad léxica no siempre permite poder seguir este modelo y a veces se recurre a definiciones de tipo relacional. Tal y como relata la propia María Moliner en el Prólogo de la presentación de la primera edición (1966:II) se persiguen dos objetivos: “ En primer lugar, trayendo a la mano del usuario todos los recursos de que el idioma dispone para nombrar una cosa, para expresar una idea con la máxima precisión o para realizar verbalmente cualquier acto expresivo. Y, en segundo lugar, resolviendo sus dudas acerca de la legitimidad o ilegitimidad de una expresión, de la manera correcta de resolver cierto caso de construcción, etc.”. Para lograr dicho objetivo, María Moliner se sirvió de fórmulas definitorias que tuviesen en consideración la naturaleza de un diccionario, en la que inevitablemente algunas de las características de la explicación de las palabras se repiten. El conjunto de las fórmulas de la definición aplicadas con rigor y uniformidad por María Moliner buscaba, por una parte no omitir ninguna información necesaria referente a la palabra definida y al correcto uso de ella, y por otro lado, obviar aquella información que no aportase nada a la explicación del significado de la expresión, como por ejemplo, el caso de la fórmula usada en el DLE para sustantivos deverbales “acción y efecto de” que como explica Moliner (1966), su uso junto con otros tipos de fórmulas, en algunos casos es excesivo, y en otros insuficiente para dilucidar por parte del usuario el significado de una palabra. 180 / El procedimiento ascensional con que María Moliner confeccionó el diccionario permite según la autora llegar o “ascender” al cono léxico . El cono léxico corresponde al último elemento de una ontología, al elemento supraordinado más alto de la estructura, lo que evita que se produzcan circularidades. Esto representa una oportunidad excepcional para extraer cadenas ontológicas a partir de los términos. ● Esquema parcial del cono léxico de María Moliner, Presentación (1966:XVI), en el prólogo del Diccionario de Uso del Español, Madrid, Gredos, 1967. 181 / En los últimos eslabones de la cadena, donde se encuentra el cono léxico , la naturaleza abstracta es mayor, y si mantenemos la idea de que una palabra está compuesta por un subconjunto de palabras, los conos léxicos serían los superconjuntos en los que se categorizan todos los términos. A mayor “profundidad” del término, mayor es el grado de especificidad, como por ejemplo, queda reflejado parcialmente en el valor obtenido con los algoritmos de centralidad que veremos más adelante. Como observamos en la siguiente imagen, el esquema parcial del cono léxico , extraído de la presentación del DUE , la representación de dicha estructura ascensional bien podría considerarse un grafo, al que María Moliner se refirió como “estructura íntima del diccionario”, o también como ya hemos señalado, cono léxico (Moliner, 1966: XVI). Las cadenas que se forman están constituidas por un número variable de “grados”, es decir, cada paso de un término a otro más extenso, hasta desembocar todos en la cúspide. La vestidura formal que tiene como resultado la estructura que acabamos de presentar nace de la cuidadosa manera con que Moliner realizó el procedimiento para crear las definiciones, y que la autora expresa a la perfección de la siguiente manera en la presentación del diccionario (1967: XVII): “Teóricamente, el esclarecimiento total de un término requiere no solo el de los términos G (genéricos) situados más altos que él en su cadena, sino, también, el de los términos D (diferenciadores) de los mismos triángulos. No solo teóricamente, sino de hecho ocurre así cuando el término G es una palabra abstracta tal como 'aspecto, cantidad, forma, parte', o 'propiedad', que designa algo hallable en la generalidad de las cosas. Así, en uno de los ejemplos del esquema, es indudable que, para formar la idea de 'piedra', es más necesario definir 'roca' que definir 'trozo'. Ahora bien: la definición de ese término D será preciso buscarla en su propia cadena en la que figurará como término G-T; pues el cono es una representación gráfica del diccionario y, lo mismo que en este, cada término está definido una sola vez”. Además Moliner también advierte en la presentación que si el término genérico completado con otro lleva un segundo término aclaratorio, el conjunto del nombre y su primer complemento, no es el conjunto del término genérico y otro diferenciador, sino un término genérico compuesto, y lo ilustra con el ejemplo de: “ flor es una parte de la planta, que contiene los órganos de reproducción ”. En ese caso “ parte de la planta ” es un 182 / término genérico complejo, y el término diferenciador es el resto de la definición. De esta manera, la estructura del diccionario está constituida por definiciones lógicas y explicaciones que vierten el contenido conceptual de las palabras a las que la definición lógica no es aplicable, a otras a las que sí lo es, hasta llegar a las cúspides nominal y verbal: “cosa” y “ser”. 5.3. Información gramatical del DUE Otra característica fundamental del DUE es sin duda la información gramatical o morfosintáctica que aporta, encontrándose numerosos artículos con desarrollo gramatical, que en un principio estaban integrados en el diccionario, y en sucesivas ediciones puestos en un apéndice (Díaz Hormigo, 1998). Los artículos con desarrollo gramatical tienen que ver con la propia gramática del español en los que se aportan datos de los fenómenos y de los vocablos específicos del mismo; por otro lado, también se encuentra la información gramatical asociada a cada palabra concreta como su categoría gramatical, morfología, comportamiento sintáctico, posibilidades combinatorias, etc. Lo que puede considerarse también como característica propia de los diccionarios de valencias. Como ya se ha señalado, Manuel Seco (2007) entre otros, y la propia María Moliner, resaltaron el principio básico metodológico que inspiró el diccionario y que lo dotó de gran parte de las características novedosas que aportó el DUE , y es que no iba orientado únicamente a los hablantes de lengua materna de español, sino que lo pensó como herramienta de uso igualmente válida para hablantes no nativos. A este respecto, como comenta la propia María Moliner (1966: IX): “ La denominación 'de uso' aplicada a este diccionario significa que constituye un instrumento para guiar en el uso del español tanto a los que lo tienen como idioma propio como a aquellos que lo aprenden y han llegado en el conocimiento de él a ese punto en que el diccionario bilingüe puede y debe ser substituido por un diccionario en el propio idioma que se aprende' ”. 183 / Por lo tanto, el diccionario se concibió no sólo para atender las necesidades de los que tienen como lengua materna el español, sino también para las de los no nativos, y en consonancia con esto, revisó las definiciones tradicionales para adaptarlas a un lenguaje más moderno e inteligible para un público general (Seco, 2007), al mismo tiempo que lo concibió como una herramienta útil para conocer la información gramatical o morfosintáctica, más orientado a aprendientes de español. Dicha información puede ser general o específica, donde la general se corresponde con los artículos con desarrollo gramatical, es decir, una gramática del español ordenada alfabéticamente con artículos más o menos extensos de tipo enciclopédico sobre vocablos relativos a la terminología gramatical, y la información específica, que se refiere a aspectos gramaticales determinados de las palabras: morfología, comportamiento sintáctico o combinatorio, etc., y que pueden estar registrados de forma explícita o implícita en diversas partes del artículo (Porto Dapena, 2000). De forma implícita encontramos la información gramatical cuando puede ser deducible de otros elementos presentes en el artículo, de forma mayoritaria y práctica, a través de los numerosos ejemplos de los que consta, y de forma explícita, por ejemplo, en el propio contorno definicional para indicar el complemento directo del verbo mediante un símbolo especial de una flecha inclinada delante de la palabra, con una explicación al lado de la definición, entre paréntesis al principio del artículo, o precediendo a la acepción afectada. También encontramos en la codificación de mayúsculas y minúsculas iniciales de las palabras comprendidas en el paréntesis una función de marcación sintáctica que registra información sobre la colocación anterior o posterior del vocablo que hace de entrada. Para Porto Dapena (2000) el tipo de indicación gramatical más destacable en el DUE es el referido al régimen preposicional y de construcción de verbos y adjetivos, para conocer las posibilidades combinatorias habituales de las palabras. 184 / 5.4. Las marcas y los símbolos del DUE El uso que encontramos en el DUE de los marcadores es tan complejo como enriquecedor para el usuario reciba una información de lo más completa (Porto Dapena, 2000). Estos marcadores permiten separar los diferentes apartados de forma rápida y visual, lo que constituye una ayuda extra a la hora de interpretar y extraer la información apropiada en cada palabra. Esta inclinación de María Moliner por ayudar al lector a darse cuenta de la información añadida con la que se encuentra, se observa igualmente en el tipo de letra usado como un apoyo visual adicional para señalar una información determinada: -Versalita: En los catálogos la letra versalita indica la palabra de una expresión fija bajo la cual se estudia dicha expresión, o también en el epígrafe introductorio de los apéndices. -Cursiva: Indica que una determinada acepción no es usual, es decir, se puede interpretar como información que marca la frecuencia de un término. El DUE se sirve, por lo tanto, de una amplia variedad de estrategias de codificación orientadas a la ayuda visual para el usuario, quien de forma rápida y simple puede recibir mucha más información adicional sobre las características de la palabra sobre la que ha realizado la consulta. Todas las marcas presentadas a continuación, aunque no son necesarias para el objetivo de esta tesis en sí mismas, suponen una oportunidad quizá para trabajos futuros de enriquecer la información de cada nodo con un tipo de propiedad o de etiqueta, y también como nuevas relaciones o propiedades de las mismas. 185 / Símbolos del DUE ∝ Introduce sinónimos y variantes. ⇒ Introduce catálogos breves. * Se coloca sobre una palabra con sinónimos o con catálogo. ↘ Se usa tanto en verbos transitivos como en sustantivos que suelen ser el complemento directo. [...] Encierra elementos opcionales. ⊚ Encierra elementos alternativos. ➤ Separa bloques homogéneos dentro de un catálogo. □ Introduce etiquetas de notas de uso, formas de expresión y conjugación. Marcas del DUE ● Marca cronológica ( ant.): indica que la palabra ha caído en desuso. ● Marca de localización geográfica: indica el origen o el marco geográfico de uso: Ur. (Uruguay), Filip. (Filipinas), Sev. (Sevilla), Antill. (Antillas), etc. ● Marca de registro lingüístico: indica el nivel o registro donde se usa la palabra form. (formal), inf. (informal), lit. (literario), vulg. (vulgar), etc. ● Marca de variedad sociolingüística, como la indicación de pop. (popular) o argot , así como la marca de valoración, relativa al carácter irónico ( irón. ), despectivo ( desp. ), ponderativo ( pond. ), hiperb. (hiperbólico), etc. ● Marca de especialidad: aparece después de la indicación de la marcación de categoría gramatical, del tipo Bot. (Botánica), Mil. (Milicia), Econ. (Economía), Electr. (Electricidad), Cine. (Cinematografía), Dep. (Deportes), Fort. (Fortificación), etc. 186 / 5.5. Los catálogos del DUE Los catálogos del DUE registran una serie de palabras asociadas con el término buscado que enriquece enormemente las asociaciones que encontramos en la definición. Aunque en el catálogo se encuentra información de diferente tipo, no es exclusivamente del campo semántico (Casas Gómez, 1994), básicamente el catálogo reproduce en cierta manera una de las posibles aplicaciones de este trabajo: extraer las relaciones asociativas entre palabras de manera que se establezcan más vínculos entre las palabras, y ayudar así tanto a la construcción de estructuras que permitan ponderar el significado de manera computacional, como a la búsqueda de un término por medio de palabras relacionadas. En este aspecto el catálogo ofrece además de palabras semánticamente cercanas por el paradigma léxico, también las palabras conceptualmente asociadas. Es decir, el criterio del catálogo viene establecido por distancias semánticas. El carácter práctico con el que María Moliner acometió la tarea del diccionario se ve reflejado en la información que se detalla. Es un diccionario de uso, una guía para el usuario, en el que se le intenta dotar de todos los recursos disponibles de la lengua para nombrar una cosa, y para saber cómo se usa. La naturaleza semasiológica como onomasiológica del DUE permite en este aspecto varias vías adicionales para la resolución de dudas, tanto de significado, como de otros aspectos fuera estrictamente de la definición lexicográfica. Los motores de búsqueda actuales han modificado la manera en la que podemos encontrar una determinada información, sin embargo no han dejado obsoletas muchas de las vías que la lexicografía y la biblioteconomía abrieron para enlazar información, sirviéndose en muchos casos de métodos combinados y complementarios. El valor onomasiológico del diccionario de María Moliner para la consulta de sinónimos y parasinónimos es quizá otra de las cuestiones más interesantes y características de esta obra (Cortés Alonso, 2003). En la versión que se ha usado para este trabajo, la edición de 1998, se pueden consultar los sinónimos introducidos inmediatamente después de cada definición lexicográfica, o el catálogo de ideas afines, en el caso de que el artículo disponga de él. En el caso de la información sinonímica que ofrece el diccionario se puede llegar a considerar casi un diccionario ideológico adicional. 187 / De diferente manera que en el Diccionario de Ideas Afines de Eduardo Benot (1899) o el Diccionario Ideológico de Casares (1942), en el DUE dicha información no pretende plantear una lista exhaustiva de sinónimos en toda circunstancia, sino más bien, y según la naturaleza de cada artículo, plantea o sugiere una lista de parasinónimos o palabras de fuerte afinidad semántica. Teniendo en cuenta el planteamiento del presente trabajo esta información es particularmente productiva para mejorar las relaciones de asociación o distancia semántica que refleja el grafo, y comparar resultados. De la misma manera que la información contenida en el DUE permite navegar por los significados e ir desenmarañando los matices semánticos de cada término y la relación que éstos contraen asociándose unos con otros, la información reflejada en el grafo permite recorrer los significados y fortalecer aquellas relaciones que por su frecuencia relacional resulten más próximas. 188 / PARTE III: PARTE EXPERIMENTAL, CONSTRUCCIÓN Y ANÁLISIS DEL GRAFO ● Figura 14. Subgrafo obtenido a partir de las relaciones expandidas de forma aleatoria del verbo “escribir” con otros verbos. 189 / 190 / CAPÍTULO 6: CONSTRUCCIÓN DEL GRAFO Creación del grafo a partir del Diccionario de uso del español de María Moliner. En estos capítulos se exponen ciertas las distintas fases llevadas a cabo para el procesamiento del DUE y para la creación del grafo en Neo4j . ● Figura 15. Subgrafo de un camino aleatorio en el que se han expandido y conectado los resultados a partir del nodo “tranquilidad_01”. 191 / 6. Proceso de construcción del grafo 6.1. Esquema del proceso de construcción del grafo Para la construcción del grafo se ha llevado a cabo un proceso previo en el que se ha extraído del DUE aquella información relevante que constituirá la estructura del grafo, gracias a una versión digitalizada. Dicho proceso ha consistido en la transformación de cada definición lexicográfica en un conjunto de relaciones y nodos, que tiene como base de inicio una relación diádica entre el definiendum y determinados elementos del definiens , los asociadores. Aunque en los siguientes apartados nos detendremos en las partes relevantes de dicho proceso, el guion básico es el siguiente: ● Extracción de las definiciones lexicográficas del DUE . ● Segmentación en acepciones, y asignación de un ID a cada una de ellas. ● Tokenización (separación en unidades). ● Análisis morfológico (POS). ● Lematización. ● Eliminación de stopwords . ● Desambiguación del definiens y asignación de su ID correspondiente. ● Creación del CSV con los nodos. ● Creación del CSV con las relaciones. ● Carga en Neoj4 y construcción del grafo. ● Análisis y depuración del grafo. ● Construcción de nuevas relaciones aplicando algoritmos de grafos. 192 / 6.2. Estructura del grafo En el grafo que se ha creado se han representado como nodos: los sustantivos, los adjetivos y los verbos, con sus respectivas relaciones. En la estructura del grafo, esquema o metagrafo, que ha sido obtenido tras su consulta en Cypher , se pueden observar las 62 diferentes relaciones con las que cuentan los tres tipos de nodos etiquetados según su categoría gramatical: el nodo azul oscuro representa a los sustantivos, el nodo azul claro a los adjetivos, y el magenta a los verbos. Como se explicará a continuación se ha mantenido este código de colores para facilitar la interpretación de los subgrafos que se van a presentar. Asimismo, se observan los diferentes tipos de relaciones que los unen: reflexivas (por ejemplo, los sustantivos se relacionan con otros sustantivos), recíprocas (por ejemplo, vemos cómo los sustantivos se relacionan con los verbos, y los verbos a su vez con los sustantivos), etc, también con un código de color asignado. ● Figura 16. Metagrafo del grafo construido de vinculación semántica a partir del definiens del DUE . 62 Consulta en Cypher : CALL db.schema() 193 / Aunque el color es fácilmente personalizable en Neo4j , a lo largo de este trabajo, siempre que pueda ayudar a la interpretación de los subgrafos (partes del grafo) representados, se ha seguido el código de color ya aludido para visualizar de forma más cómoda los nodos según su categoría gramatical: ● Sustantivos (NC): Azul oscuro. ● Adjetivos (AQ): Azul claro y menor dimensión del nodo. ● Verbos (V): Magenta. ● Figura 17. Subgrafo aleatorio que contempla las 3 categorías analizadas. En cuanto a las relaciones se ha usado rojo para la relación “RELATED_TO”; amarillo para la relación “SIMILAR”; y azul para la relación “NARROWER_THAN”. Estas dos últimas relaciones se han construido una vez formado el grafo a partir de algoritmos disponibles en la biblioteca de Neo4j , y serán introducidas en los capítulos correspondientes. La relación “RELATED_TO” es la relación que se ha usado como base para construir el grafo. Dicha relación se ha construido a partir de la información extraída del DUE , y concretamente, como se verá de forma más pormenorizada, codificando la relación entre el definiendum con elementos del definiens seleccionados . 194 / 6.3. Asociadores semánticos El definiens está compuesto por una serie de elementos o palabras que conforman la definición lexicográfica. Una parte de estos elementos se ha eliminado, aquellos definidores que no constituyen un vínculo semántico fuerte con el definiendum , mientras que con el resto de definidores, con una carga semántica fuerte, se ha construido la relación “RELATED_TO”. Para denominar de forma más clara y rápida a los definidores relevantes extraídos de definiens del DUE para el trabajo propuesto, aquellos que se constituirán como nodos en el grafo, se hará referencia a ellos como “asociadores”. Los asociadores, por lo tanto, serán aquellos definidores lematizados, semánticamente relevantes para la relación, y en la medida de los posible, con una vinculación preferente con el definiendum , que encontramos dentro de cada definición lexicográfica del DUE . Estos definidores válidos para el grafo, o asociadores, son los que se constituyen posteriormente como nodos en el grafo. El objetivo de esta primera fase en la creación del grafo es la extracción de los asociadores a partir del definiens del DUE . De tal manera, en esta fase, se ha tratado de conseguir un equilibrio entre las palabras de la definición lexicográfica descartadas, como stopwords y demás definidores no válidos (Rachel Tsz-Wai et al., 2005), y los definidores relevantes o asociadores, que se constituirán como los nodos del grafo formando la red de vinculación semántica entre los conceptos. Dentro de los asociadores de una palabra, como se verá más detenidamente, se pueden establecer diferentes subdivisiones, por ejemplo: a través de la categoría gramatical, por las relaciones semánticas que se mantienen entre palabra y asociador, por el grado de prototipicidad como rasgo del definiendum que podamos percibir con el asociador, o por el valor asignado a cada nodo o relación mediante diferentes algoritmos de grafos, que serán aplicados y analizados, como se verá en los capítulos correspondientes. Podemos ilustrar el ejemplo anterior de la siguiente manera: si estableciéramos 3 asociadores 63 63 Respecto a los criterios empleados a la hora de ejemplificar las diferentes cuestiones aludidas, durante este trabajo se han intentado tener en cuenta dos aspectos fundamentalmente: la pertinencia del ejemplo, y su claridad, lo que en muchos casos se ha intentado conjugar simplemente con la consideración de la belleza intrínseca que suscitan determinadas palabras. Cuando han fallado los criterios anteriores se ha optado por la aleatoriedad. 195 / hipotéticos de “perro” como: “mamífero”, “hocico”, “ladrar”, podríamos plantear las siguientes relaciones entre la palabra “perro” y sus asociadores: ● perro---> mamífero; hay una relación del asociador con la palabra de hiponimia. ● perro---> hocico; hay una relación del asociador con la palabra de meronimia. ● perro---> ladrar; aquí la relación entre la palabra perro en cuanto a la categoría gramatical es asimétrica: sustantivo (perro) y verbo (ladrar). Sin embargo, “ladrar” podría considerarse como el asociador más prototípico respecto a los otros dos de la palabra “perro”, es decir, el más típicamente asociado al concepto por su alto grado de especificidad, ya que los otros dos, “mamífero” y “hocico”, son asociadores compartidos por una cantidad mayor de definienda . La relación de asociación que vincula el definiendum con cada uno de sus asociadores puede ser caracterizada de múltiples maneras, tanto por relaciones semánticas clásicas, como por “pesos” en función de diferentes algoritmos de grafos como la “distancia”, la “centralidad”, “comunidad”, etc., algoritmos creados específicamente para trabajar con grafos que determinan la importancia de un nodo respecto al resto del grafo y que permiten establecer más filtros para seleccionar los nodos en los que estamos interesados analizar. Cuantos más filtros se puedan emplear, más posibilidades tendremos de caracterizar las relaciones entre los nodos para establecer mejor patrones que resulten interesantes de ser estudiados posteriormente. Al igual que se han desarrollado numerosos trabajos para determinar la importancia de ciertas palabras en una oración en relación con un texto desde los años 70 (Edmundson, 1969; Rush et al., 1971) y clasificarlas así según la relevancia que tienen en dicho texto, también se pueden aplicar los mismos principios a las palabras que conforman las definiciones de una palabra del diccionario, los definidores convertidos en asociadores en el grafo, para establecer nuevas relaciones, jerarquías, categorías, o prelación respecto al grado de vinculación que mantienen. En la siguiente imagen del subgrafo de “espada_01” se pueden ver los asociadores con la etiqueta de sustantivo en azul oscuro, y los adjetivos en azul claro: 196 / ● Figura 18. Subgrafo con las relaciones de salida (RELATED_TO) del nodo “espada_01”. En la imagen superior se puede observar el nodo “mm_espada_01”, que tiene como asociadores sustantivos diferentes nodos (en azul oscuro) y mantiene diferentes relaciones semánticas o vínculos con cada uno de sus asociadores: mm_arma_01 (hiperónimo de espada) mm_empuñadura_01 (merónimo de espada) mm_hoja_01 (merónimo de espada) mm_guarnición_01 (mismo campo semántico que espada) Y como asociadores con la etiqueta de adjetivos, los nodos (en azul claro) relativos a: mm_cortante_01 mm_agudo_01 mm_recto_01 mm_largo_01 197 / Una vez realizado el proceso de extracción, procesamiento y vinculación de los asociadores, el cual se va a explicar en los siguientes apartados, se estructuran para preparar los datos en formato CSV y que puedan ser importados como nodos y relaciones. Neo4j ofrece diferentes herramientas para cargar los datos y crear el grafo. El esquema del grafo de inicio va a estar compuesto por nodos, que corresponden con los asociadores, y la relación “RELATED_TO”, que los va a unir con una relación de salida desde el definiendum hacia sus asociadores, es decir, con determinadas palabras que forman parte de la definición lexicográfica de otra, cuando cumpla determinadas condiciones y no hayan sido descartados como asociadores. Aunque más adelante se construirán otras relaciones en función del tipo de relación entre los nodos, el objetivo principal como se ha explicado es extraer las relaciones a través de la definición lexicográfica del DUE . Respecto a los nodos, se van a considerar todos los definienda de las categorías aludidas anteriormente. ● Figura 19. Ejemplo de visualización de un subgrafo de 1000 nodos aleatorios con sus etiquetas de color. (Consulta: Match n return n limit 1000). 198 / Una vez extraídos todos los asociadores y sus relaciones en dos ficheros CSV, se cargan en Neo4j para crear el grafo. Para generar el grafo, Neo4j permite varias opciones, cada una orientada para unas funciones concretas. Los CSV son archivos con valores separados normalmente por comas que se pueden visualizar en Excel o herramientas similares, los cuales Neo4j puede leer y cargar de forma muy eficiente. Debido al tamaño de los datos se ha optado por realizar la carga en CSV desde la herramienta neo4j-admin bulk, aunque Neo4j permite crear grafos (hasta 10 millones de líneas) desde los comandos de Cypher . Esta herramienta permite importar datos en CSV a una base de datos vacía especificando de en archivos diferentes los nodos y las relaciones. ● Figura 20. Ejemplo de un subgrafo obtenido tras la consulta a partir de cinco nodos (en las cuatro esquinas y en el centro), en el que se han expandido sus relaciones de entrada y salida para conocer su conectividad. 199 / 6.4. Preparación de los datos Para la tarea de ETL se ha contado con el apoyo del proyecto “Axones” de 64 semántica computacional y Procesamiento de Lenguaje Natural del Departamento de Inteligencia Artificial de MMG . Para la “ingesta” de los datos en Neo4j , primero se ha 65 debido preprocesar las definiciones lexicográficas del Diccionario de uso del español ( DUE ) de tal manera que se establezca la estructura con la información relativa a los nodos de los que se va a componer el grafo, y las relaciones que los unen en dos archivos separados en CSV (Vukotic, Aleksa, et al., 2014) . El grafo en Neo4j , por lo tanto, se ha construido con dichos archivos en CSV, uno para los nodos y otro para las relaciones, tal como se indica en el manual de Cypher para el proceso de carga de los datos . A partir del 66 DUE de María Moliner, se ha conseguido en formato digital el HTML, usándose también para consulta la versión de 1998 en formato físico . Con el HTML se ha construido una 67 estructura en formato JSON de donde se han extraído las definiciones, se han depurado y se han desambiguado, separándolas del resto de información disponible para su ulterior procesamiento. En formato JSON se han estructurado las más de 80.000 entradas originales y unas 190.000 definiciones, en los diferentes apartados que la constituyen, usándose para ello las propias marcas del diccionario que se han indicado. Por ejemplo, la información gramatical del definiendum se ha recuperado para descartar las categorías gramaticales que no sean sustantivos, adjetivos o verbos, ya que al contrario que con los elementos del definiens no se cuenta con contexto que permita la desambiguación. En este sentido el DUE ofrece mucha más información en su microestructura (Casado Velarde, 1994) de la estrictamente necesaria para el propósito que nos ocupa (información etimológica, temática, ejemplos, notas de construcción, frases hechas, ortografía, etc), información que por otra parte puede resultar especialmente interesante para trabajos futuros, como por ejemplo, crear un grafo con las palabras relacionadas a partir de su 64 ETL: Extract, Transform and Load. (Proceso usado típicamente en minería de datos para la preparación de los datos). 65 MMG (Medlab Media Group), es una startup dedicada a desarrollar proyectos de Inteligencia Artificial, y en concreto, “Axones,” es un proyecto iniciado en 2018 para mejorar buscadores semánticos aplicados inicialmente al dominio médico. 66 Manual de Cypher consultado: https://neo4j.com/docs/cypher-manual/3.5/clauses/load-csv/ (17-5-2018). 67 Diccionario de uso del español, Madrid, Gredos, (2 vols.). 2.ª edición revisada y aumentada, 1998. 200 / etimología. Respecto a esta cuestión, las características que ofrece trabajar con este tipo de tecnología, los grafos, frente a bases de datos, que aunque sean relacionales no están optimizadas para trabajar con muchas relaciones, permite ir aumentando las características a posteriori , por lo que el modelo se puede adaptar en función de los objetivos que vayan persiguiéndose. Una vez creado el grafo, se pueden construir nuevas relaciones, y escribir nuevas propiedades y características que amplíen la información sobre los nodos. Tras completar el proceso de ETL, depurar las definiciones, desambiguar tanto los definienda, como los definidores válidos, y preparar toda la información seleccionada, se han obtenido los dos archivos en formato CSV para cargarlos en Neo4j , el archivo con los nodos y el otro con las relaciones. En los nodos la información que se ha guardado para la construcción del grafo es el “id” de la palabra y su definición, como propiedades de los nodos, y la categoría gramatical, como una etiqueta de cada nodo (sustantivo, adjetivo y verbo); mientras que en el CSV de las relaciones lo que se indica son los pares de nodos conectados, con cada campo separado entre comas indicando el nodo de salida, el nodo de llegada, y la relación que los une, que en este caso la única relación del grafo inicial como se ha expresado es “RELATED_TO”. Una vez cargado el CSV hay numerosas opciones para la visualización de los nodos y de las relaciones, no solo en cuanto al color y al tamaño, que se irán comentando en los respectivos capítulos. Como se puede observar a continuación la estructura del archivo de los nodos en CSV está compuesta por un primer argumento con el “id” del definiendum , consistente en la palabra en sí misma acompañada del número cardinal de su acepción, que como veremos a continuación, en otros casos se corresponderá con el asociador extraído del definiens que se convertirá en nodo; en el segundo argumento, se encuentra la definición lexicográfica; y por último la etiqueta gramatical. Los nodos inicialmente solo tienen estos tres argumentos, aunque posteriormente se enriquecerán con más datos. ● Ejemplo de la estructura de los nodos en CSV para ser cargados en Neo4j : ID - DEFINICIÓN - CATEGORÍA GRAMATICAL mm_abad_01, superior de un monasterio o de algunas colegiatas. ,NC 201 / ● Visualización del nodo “mm_abad_01” en Neo4j , etiquetado como sustantivo 68 (NC) tras la consulta en Cypher : Match (n:NC{termId:"mm_abad_01"}) return n Respecto al archivo CSV con la información relativa a las relaciones entre los nodos, su estructura está compuesta por un primer argumento con el “id” de la palabra correspondiente al nodo con la relación de salida; en el segundo argumento se encuentra el “id” de la palabra con la relación de llegada; y por último, la relación “RELATED_TO” que los une. ● Ejemplo de la estructura de las relaciones en CSV para ser cargados en Neo4j : ID DEL NODO DE SALIDA - ID DEL NODO DE LLEGADA - RELACIÓN 68 En este caso “abad” es un ejemplo aleatorio elegido por orden alfabético, tras haberse descartado otros ejemplos menos claros que lo precedían, como “aba”,”ababa”, “ababillarse”, “ababol”, etc. 202 mm_abad_01,mm_superior_01,RELATED_TO mm_abad_01,mm_monasterio_01,RELATED_TO mm_abad_01,mm_colegiata_01,RELATED_TO / ● Visualización del nodo “mm_abad_01”, una vez cargados los archivos CSV en Neo4j , junto con los 3 definidores extraídos del definiens (“superior”, “monasterio” y “colegiata”) correspondientes a la primera acepción de la palabra “abad” del DUE : mm_abad_01 = “ superior de un monasterio o de algunas colegiatas ”. ● Figura 21. Subgrafo con los asociadores (relaciones “RELATED_TO” de salida) del nodo correspondiente a “abad_01”. Antes de crear los archivos en CSV para cargarlos en Neo4j , se ha llevado a cabo un proceso para transformar las definiciones lexicográficas del DUE en los nodos y relaciones que luego tendrá el grafo. El objetivo de la fase de preparación de los datos es doble, por un lado extraer la información pertinente de cada acepción, y por otro lado, desambiguar cada elemento mediante la asignación de una forma única, que permita identificar y hacer corresponder el definiendum adecuado con los asociadores extraídos del definiens . Una vez realizado el proceso, se preparan los datos para la “ingesta” en formato CSV con el objetivo de construir los nodos y las relaciones en Neo4j . Así, cada definiendum se transformará en un nodo, que a su vez creará una relación con ciertos elementos del definiens, que se constituirán también como nodos, ya que a su vez estos son los definienda relacionados por medio de la definición lexicográfica con sus respectivos definidores. 203 / 6.4.1. Extracción de la microestructura de una entrada Como ya se ha comentado en el capítulo correspondiente a la estructura del Diccionario de Uso de Español de María Moliner, la microestructura del diccionario forma parte constituyente de la macroestructura, y se caracteriza tanto por el contenido como por la organización del artículo lexicográfico (Porto Dapena, 2002). Como se puede ver en la estructura interna, o microestructura, en la siguiente imagen del artículo del 69 DUE , la palabra “cachirulo” tiene un primer paréntesis con la información etimológica, seguido por un total de nueve acepciones, separadas entre sí mediante un número cardinal, y cada una con diferente información adicional: nombre de género masculino, información sobre el catálogo, información diatópica, información sobre el registro ( pop. e inf. ), etc. Dicha información, a pesar de ser muy interesante desde el punto de vista lingüístico, sobrepasa los objetivos del grafo que se quiere construir, ya que como se ha comentado, el estudio se centra en la información aportada por el definiens , por lo que se ha descartado para este trabajo el resto. Únicamente se han recuperado los asociadores de cada definición para formar los nodos del grafo, es decir, la información codificada en la definición lexicográfica. 69 Imagen de la entrada del DUE de “cachirulo”, extraída de: cvc.cercantes.es . 204 / Cada entrada por lo tanto está constituida por una serie de acepciones; cada acepción está indicada con un número cardinal que separa unas de otras, lo que permite diferenciar y extraer automáticamente cada acepción fácilmente. Los asteriscos indican que la palabra que lo sigue dispone de catálogo en su correspondiente entrada. También se encuentra la información consignada por medio del uso de marcas técnicas “TAUROM.”, o a la desambiguación de una unidad léxica: “Cometa (juguete)”. Gracias a la consistencia en la distribución de la microestructura, y a las marcas usadas para cada tipo de información, se ha separado convenientemente toda la información en formato JSON para procesar y extraer del definiens los elementos adecuados para constituir los nodos del grafo, los asociadores. 6.4.2. Depuración de las definiciones Para construir la cadena de asociadores semánticos de cada definición lexicográfica se necesita depurar la definición de elementos que puedan introducir ruido en las relaciones de vinculación semántica, por ejemplo, unidades léxicas con una intensión muy débil como ‘cosa’, o ‘algo’... Para llevar a cabo este proceso de limpieza de los elementos innecesarios de la definición lexicográfica se debe recurrir tanto a una selección de palabras a través de su categoría gramatical, como a una serie de palabras determinadas que igualmente deben ser eliminadas (palabras desechadas, vacías o stopwords ) por su alta frecuencia o por su contenido semántico escaso (Rachel Tsz-Wai et al., 2005). Estas palabras introducen ruido y han sido objeto de estudio en numerosos trabajos de recuperación de información desde finales de los años 50 (Luhn, 1957). Para el caso que nos ocupa, las categorías abiertas de sustantivos, adjetivos y verbos son las más interesantes, aunque como se verá un poco más adelante, también se ha recurrido a análisis de frecuencia de palabras para eliminar algunos términos excesivamente habituales en las definiciones lexicográficas, y por lo tanto, poco específicos y escasamente útiles para determinar una relación asociativa fuerte con el término definido. Para realizar la tarea de depuración se han procesado las definiciones lexicográficas del DUE antes de crear el grafo, y posteriormente se ha completado el proceso de depuración directamente 205 / desde el grafo eliminando los elementos innecesarios a través de consultas sobre los asociadores más frecuentes. Tanto el proceso de descarte de palabras por selección categorial, como el proceso de descarte por razones de frecuencia, tienen como objetivo seleccionar para el grafo únicamente aquellos elementos que mantengan una vinculación semántica lo más distintiva posible, de manera que, en cierta manera, reflejen lo más completamente posible el semema del definiendum, o conceptos propios del respectivo campo semántico al que pertenecen, tejiendo así una red de relación entre unos conceptos y otros, con los que están vinculados de diferentes maneras, guardando diferentes grados de cercanía semántica entre sí. Por último, se debe tener en cuenta que para evitar una longitud excesiva en cuanto a los asociadores recuperados se ha limitado dicha longitud a veinticinco asociadores. 6.4.3. Depuración de la definición: selección categorial Para la selección categorial se han usado dos estrategias, una para determinar la categoría gramatical del definiendum , y otra para determinar la categoría gramatical de los elementos del definiens . La primera parte de la depuración consiste en discriminar las categorías gramaticales de las palabras definidas usando la etiqueta gramatical que acompaña a cada entrada. Esto reduce considerablemente el trabajo de procesamiento posterior, disminuyendo el ruido respecto al número de nodos, y por lo tanto de relaciones, que tendrá el grafo. Para distinguir qué palabras son interesantes en la extracción de la definición lexicográfica se ha pasado un proceso automático de PoS 70 tagging (análisis morfológico) para descartar las categorías cerradas usando el “ tagger ” de SpaCy , una biblioteca de software de código abierto para procesamiento de lenguaje natural escrita en Python . Tal como refiere Edmundson (1964), para ciertas tareas de NLP es necesario depurar las palabras de mayor contenido semántico de las palabras de contenido gramatical. Para establecer una lista exhaustiva de las palabras que deben ser descartadas ( stopwords ) como veremos más adelante también se puede recurrir a funciones que se ofrecen dentro del propio Neo4j . 70 PoS ( Part of Speech ) 206 / Siguiendo con el ejemplo anterior de “cachirulo_01” (es interesante pues representa bien el procedimiento seguido y su polisemia ejemplifica diferentes problemas habituales) obtenemos, tras los procesos anteriores de depuración y normalización, una estructura que consiste en el “id” a partir del lema, y el número cardinal de la acepción, asociado a su definición lexicográfica del DUE : Cachirulo_01= Vasija para guardar el aguardiente u otros licores. Usando el analizador morfológico ( tagger ) de SpaCy obtenemos la categoría gramatical de las palabras de la definición. Se puede visualizar el resultado del análisis morfológico de forma rápida en la página: https://explosion.ai/demos/ la cual utiliza SpaCy, donde además del análisis morfológico se puede ver el análisis de dependencias. Aunque obviamente SpaCy tiene fallos en el análisis morfológico del español, su precisión supera holgadamente el 90% por lo que es una herramienta suficientemente útil para la selección categorial de las palabras de la definición lexicográfica. Imagen del resultado del “pos tagging” de la definición lexicográfica del DUE de “cachirulo_01”, en la que se pueden observar las etiquetas relativas a la categoría gramatical, y el análisis sintáctico o de dependencias. Herramienta de visualización de Explosion, en la que se usa SpaCy . 207 / ● Resultado tras el análisis morfológico del definiens de “cachirulo_01”: Cachirulo_01= Vasija(NOUN) para(ADP) guardar(VERB) el(DET) aguardiente(NOUN) u(CONJ) otros(DET) licores(NOUN). Como se ha referido para el grafo nos interesa contemplar únicamente nombres, adjetivos y verbos, por lo que una vez pasado el proceso de selección categorial de cada definición, quedarían únicamente las categorías indicadas. Aunque la selección categorial resulta enormemente útil para el proceso de depuración se ha tenido que complementar con una lista de palabras desechadas ( stopwords ) como se indicará más adelante. Continuando con el ejemplo de “cachirulo_01”, obtendríamos como definidores válidos, sin lematizar, los siguientes: ● Cachirulo_01= vasija, guardar, aguardiente, licores. Sin embargo, como se verá en el siguiente apartado, para crear los nodos se han usado las formas lematizadas de los asociadores: ● Cachirulo_01= vasija, guardar, aguardiente, licor. ● Figura 22. Subgrafo con los asociadores (relaciones “RELATED_TO” de salida) del nodo correspondiente a “cachirulo_01”. 208 / En una definición se pueden encontrar palabras de todas las categorías gramaticales, si bien es cierto que hay una mayor prevalencia de sustantivos, adjetivos y de verbos en aquellas definiciones pertenecientes a sendas categorías, tanto en las categorías abiertas o léxicas, como en las cerradas o funcionales. En una red como la que se ha construido donde el objetivo principal es poder establecer relaciones de vinculación semántica, las categorías que resultan más interesantes a la hora de extraer los asociadores, son aquellos definidores que comparten la misma categoría gramatical con la palabra definida. Esto responde a una regla lexicográfica, la “ley de la sinonimia”, por la que toda unidad léxica debe poder ser sustituida por la definición (conmutabilidad o sustitución), que como indica Manuel Seco (1981, 36), “ es norma universalmente aceptada en la lexicografía la ley de la sinonimia ”. En parte como consecuencia de ello, gozan de mayor relevancia los sustantivos en las definiciones de sustantivos, verbos en las de verbos y los adjetivos, en las definiciones de adjetivos, también debido a la regla lexicográfica de la identidad categorial o equivalencia funcional, la cual es fundamental: toda palabra debe definirse en su categoría gramatical (por ejemplo, un sustantivo no puede definirse con un verbo). Estas tres categorías serán las que analicemos para construir el grafo en los siguientes capítulos. Al igual que en el diccionario de María Moliner, en otros diccionarios también se ve reflejada la “ley de la sinonimia”, y la proporción e importancia de las palabras de la misma categoría de la palabra que se está definiendo. Por ejemplo, en el siguiente ejemplo extraído del DLE (actualización de 2018) podemos ver la preponderancia en cuanto a la cantidad de verbos para definir el verbo “romper”: 1. tr. Separar con más o menos violencia las partes de un todo , deshaciendo su unión . U. t. c. prnl. 2. tr. Quebrar o hacer pedazos algo . U. t. c. prnl. 3. tr. Gastar , destrozar . U. t. c. prnl. Por otro lado, la relación que guardan los adjetivos de una definición con la palabra definida suponen un mayor reto en la elaboración de la red cuando forman parte de un sintagma nominal, pues establecen un nivel distinto de asociación con la palabra definida, siendo su asociación directa con el núcleo del sintagma en el que aparecen, y no con el 209 / definiendum . Por este motivo, a la hora de elaborar la cadena de definidores relevantes únicamente se pueden aprovechar con cierta seguridad los adjetivos que no están modificando a otro sustantivo, lo cual suele darse normalmente en las definiciones de los propios adjetivos, como se puede ver en el siguiente ejemplo del DLE de la palabra “valiente”: 1. adj. Fuerte y robusto en su línea. Respecto a las categorías cerradas, al poseer un mayor significado gramatical y un reducido o nulo valor semántico, no se han tenido en cuenta como definidores relevantes a la hora de crear el grafo, puesto que aportan poca información semántica, y además su frecuencia es muy alta por lo que introducen mucho ruido. De las categorías cerradas se han desechado la totalidad, pues no suponen ningún valor relevante que se pueda aprovechar para la red asociativa que se ha querido construir. Sin embargo, en las categorías abiertas encontramos una mayor problemática respecto a incluir ciertas palabras o no en la red. El objetivo como se ha señalado es extraer de la definición de cada palabra aquellas con las que se asocie de manera más directa y distintiva con el definiendum . Respecto a los sustantivos, aunque es la categoría más útil para establecer una red asociativa, hay numerosas palabras que no van a dar ninguna información asociativa con la palabra definida. En especial se han tenido en cuenta dos criterios para eliminarlas de la red asociativa: la frecuencia, que engloba las fórmulas típicas de las definiciones lexicográficas y la pertenencia a una locución; y el valor semántico distintivo que puedan aportar vinculado al definiendum . En relación a la frecuencia, se ha creado una lista de palabras cuya aparición en el diccionario del DUE es demasiado alta como para que resulten significativas a la hora de establecer una relación asociativa distintiva para cada palabra, como: “vez”, “hora”, “respecto”, “relación”, “dicho”, etc. Para determinar la categoría gramatical del definiendum se ha usado la información gramatical de las entradas pertenecientes al DUE , y para determinar la categoría gramatical de los elementos del definiens se ha 210 / recurrido al mencionado POS tagger de SpaCy, la librería para el análisis morfosintáctico 71 de código abierto en Python, con la que se puede desambiguar, por ejemplo, la homonimia entre “dicho” como sustantivo o como verbo. Por último, en relación a las locuciones, que veremos a continuación, la marca de locución del diccionario del DUE se ha usado para identificar a todas ellas, ya que al tener un significado propio, frecuentemente pueden desviar el significado del sustantivo o de los elementos que las componen: “sin embargo”, “respecto a”, “a la vez”, “a la hora de”, etc. 6.4.4. Tokenización: el caso de las locuciones y estructuras compuestas Para construir el grafo a la hora de realizar el proceso de “tokenización”, es necesario contemplar el caso particular de las estructuras complejas, puesto que la segmentación de unidades simples no ofrece ninguna complicación al usar directamente el propio definiendum del DUE . Básicamente, para la red que se ha construido son interesantes todas las palabras que guarden relación con cierto lema, entendido como pieza léxica o unidad de sentido, al margen del número de componentes que las formen. La relación que que se pretende establecer se puede ver afectada por el número de tokens del lema si no se tratan de forma unitaria, como una unidad de significado. Por ejemplo, las relaciones que nos interesan de la locución nominal “pata de cabra”, como se ha mencionado en apartados anteriores, es de tipo “uno a muchos”, no de “muchos a muchos” en lo referente a las relaciones que desarrollan las unidades que la componen, por lo que no se descompondría cada locución en sus respectivos elementos, sino que se tratarían como una unidad, siempre y cuando aparezcan recogidos como una forma del definiendum . Representan una mayor problemática las expresiones fijas que se encuentren en la definición lexicográfica. En este sentido, para no desvirtuar las relaciones que se construyan, habría que localizar todas las locuciones que estén en cada acepción haciendo un proceso adicional que las reconociera, ya que al procesar la definición y extraer los definidores, si se procesaran de manera aislada y no de forma unitaria, se relacionarían sus componentes de forma inconveniente. Por ejemplo, imaginemos que queremos obtener 71 POS, Part of Speech tagger, son etiquetadores gramaticales. 211 / las relaciones asociativas de “bayonesa” (sustantivo). Nos interesa que se asocie a “pastel”, “hojaldre”, o a “cabello de ángel”. Sin embargo, si no tenemos en cuenta las locuciones, se asociaría “bayonesa” a “cabello”, y a “ángel”, lo que tendría finalmente como resultado en el grafo situar semánticamente próximos un tipo de pastel con palabras como “peine”, o “alas”, entre otras. Por lo tanto, de manera óptima sería necesario tratar de forma especial las locuciones para evitar este tipo de desviaciones que se darían en las asociaciones por causa del significado no componencial de las locuciones. Cabe mencionar que en DUE las expresiones fijas se reflejan en todos los artículos de cada uno de los términos que lo componen (lógicamente exceptuando preposiciones, conjunciones, artículos, etc), aunque solo se estudian de forma jerárquica en el primer sustantivo, verbo, adjetivo, etc., del que están compuestos, y remitiendo mediante letra versalita en el resto de los casos a este primer componente significativo. El DUE como se ha mostrado, ofrece muchas herramientas y alternativas para la búsqueda de significados respecto a otros diccionarios y, lo que resulta más atractivo para este trabajo, antepone el contenido semántico a otras consideraciones. A este respecto, las locuciones compuestas de un auxiliar o de un verbo con función atributiva también son relegadas a favor de otras palabras con mayor contenido semántico. Para el procesamiento de las definiciones lexicográficas del DUE no se han tenido en cuenta las locuciones nominales, verbales ni adjetivales, solo los definienda compuestos con guion del tipo “hara-kiri”, “piano-bar”, “ping-pong”, etc. 6.4.5. Análisis de bigramas por frecuencia A la hora de establecer las stopwords o lista de palabras descartables, nos hemos servido tanto de los monogramas, como de los bigramas más frecuentes (ver tabla 1 del apéndice: listado de bigramas por frecuencia de aparición, entre 7514, la más alta, y 50 apariciones). Se ha establecido ese rango porque a partir de cierto número deja de ser significativa la distribución de los bigramas. Frente a los monogramas, los bigramas aportan más información contextual, y evitan problemas derivados de una mala lematización, ya que, al no tener contexto, muchas veces surgen problemas a la hora de identificar correctamente la palabra, como consecuencia de una lematización incorrecta. Este es el caso de “cosa”, como sustantivo, y “coser”, como verbo, o entre el participio del 212 / verbo “dar” (dado) y el sustantivo “dado”. El análisis de este listado de bigramas permite mejorar la lista de stopwords para la depuración de la definición, que, como puede observarse, implica a muchos sustantivos que, de no añadirse a la lista de palabras descartadas, podrían introducir demasiado ruido (palabras como: acción, conjunto, cualidad, manera, especie, nombre, forma, etc.) . ● Extracto de la tabla 1 del apéndice: bigramas por frecuencia de aparición (entre 7514 y 50 apariciones): se aplica 7514 acción de 3047 aplicado a 1491 conjunto de 1250 acción y 1245 cualidad de 1190 persona que 1186 de manera 644 de o 470 de la 459 especie de 437 se dice 437 susceptible de 379 parte de 354 cada una 350 hombre que 337 aplicable al 324 cada uno 291 nombre dado 268 hacer que 266 pieza de 233 cosa que 219 en el 214 se emplea 209 nombre aplicado 207 falta de 194 estado de 178 en la 163 circunstancia de 160 cualidad o 159 aplicado al 158 en los 154 trozo de 154 con respecto 139 porción de 139 operación de 135 golpe dado 134 se aplicaba 134 de forma 134 aplicable a 132 hacer una 130 variedad de 124 sitio donde 124 juego de 119 cierta tela 119 medida de 118 poner una 116 falto de 113 en las 112 nombre de 112 en algunos 106 arte de 103 variante ortográfica 103 se aplica 100 manera de 99 se usa 98 parte del 97 que se 97 especialista en 97 por extensión, 96 instrumento musical 95 de los 94 desp. 90 unidad de 89 utensilio para 88 quitar la 87 afectado de 85 lugar donde 85 utensilio de 84 sitio en 81 dar a 80 moneda de 77 cargo de 76 de las 76 en lenguaje 76 213 / 6.4.6. Lematización El problema de la variabilidad morfológica a menudo se ha acometido mediante la aplicación de algoritmos de conflación (Karttunen 1983), consistentes en la fusión de las variantes léxicas en formas comunes. Tienen como meta que las diferentes variantes léxicas se puedan considerar unidades equivalentes. Los algoritmos de lematización y stemming , como el algoritmo de Porter (1980) son una de las técnicas de conflación más extendidas, por medio de las cuales las variantes flexionales y derivacionales se reducen a una forma común: el lema o la raíz respectivamente. Ambos procesos emplean diferentes técnicas de análisis morfológico para la reducción a las formas canónicas. Se desarrollan a partir de bases de información léxicas o lexicones computacionales, y también mediante reglas o heurísticas, que también pueden usar métodos probabilísticos. Paralelamente al proceso de análisis morfológico para construir el grafo, se ha realizado una lematización de las formas de la definición. Puesto que el grafo va a relacionar conceptos con conceptos, y no conceptos con formas de esos conceptos, es necesario conseguir el lema de cada una de los definidores que hemos obtenido. Pasar un proceso de lematización permite obtener la forma canónica de cada palabra, lo que resulta totalmente necesario para después poder relacionar cada nodo de forma correcta. Una vez obtenida la primera lista de palabras válidas para construir el grafo, se lematizan las definiciones lexicográficas con la biblioteca de SpaCy (Lemmatizer ) . El lematizador extrae el lexema de la palabra 72 correspondiente reduciendo la enorme casuística de formas que presenta una palabra con todos sus morfemas flexivos: ● Ejemplo de los asociadores de “cachirulo_01” sin lematizar y lematizados: Cachirulo_01= vasija, guardar, aguardiente, licores . Cachirulo_01= vasija, guardar, aguardiente, licor . 72 Según los datos publicados del modelo es_core_news_ sm) de lematización en la página de Spacy alcanza el 0,99 (Accuracy evaluation: https://spacy.io/models/es (consultado el 09/09/2019). 214 https://spacy.io/models/es#es_core_news_md / La selección categorial permite limitar las asociaciones en las relaciones del grafo a los elementos más relevantes de la manera más adecuada posible. A este respecto cabe advertir que para modelar las relaciones que tendrá el grafo, se deben tener en cuenta todas las consideraciones pertinentes sobre las características de dichas relaciones que vincularán entre sí los nodos. Como se ha mencionado anteriormente, en el grafo se van a construir las relaciones que establecen el definiendum con sus respectivos asociadores. Sin embargo, en una definición lexicográfica muchas veces vamos a encontrar otras dependencias quizá más directas entre los propios asociadores, que entre un asociador y el definiendum . Aunque no se van a tener en cuenta relaciones pertenecientes al eje sintagmático para la construcción del grafo, es necesario tenerlas en consideración para entender convenientemente los resultados que podamos obtener. Si extraemos los definidores de una sustantivo, por ejemplo, la casuística fácilmente hará que se encuentren sintagmas nominales donde la asociación entre un sustantivo y el adjetivo desvirtúe la relación entre la palabra definida y el adjetivo, que lógicamente incidirá sobre el núcleo del sintagma nominal, y no sobre la palabra definida. Este posible problema para ciertas tareas de procesamiento de lenguaje natural se puede resolver mediante un análisis de dependencias, relacionando los adjetivos con el núcleo al que modifican y no con el definiendum, pero para el objetivo de este trabajo no se ha tenido en cuenta las dependencias sintácticas dentro de la definición lexicográfica. Ilustremos lo anterior con un ejemplo en el que podamos forzar este tipo de cuestiones, que son bastante frecuentes en las definiciones. Considérese un animal típicamente pequeño, por ejemplo “ratón”. En la definición del DUE encontramos lo siguiente (se ha resaltado en color rojo los asociadores que se extrairían): ● mm_ratón_01: " mamífero roedor de pequeño tamaño que vive en las casas , donde roe las comidas y otras cosas." 215 / De la definición de “ratón_01” extraeríamos las siguientes relaciones con las formas ya lematizadas a través de la vinculación entre el definiendum y los asociadores, nombradas en el grafo con la relación “RELATED_TO”: ● Figura 23. Subgrafo con los asociadores (relaciones “RELATED_TO” de salida) del nodo correspondiente a “ratón_01”. 216 ● ratón---> mamífero ● ratón---> roedor ● ratón---> roer ● ratón---> comida ● ratón---> pequeño ● ratón---> tamaño ● ratón---> casa ● ratón---> vivir / En el grafo resultante vemos que algunos de los elementos de la definición de “ratón_01”, extraídos como asociadores, están relacionados también por su definición respectiva, unidos por una relación, como por ejemplo “mamífero” y “roedor” . Al ser un grafo dirigido, las aristas que salen de cada nodo indican qué elemento o nodo está presente en su definición lexicográfica. Neo4j no permite relaciones bidireccionales por lo que crea una segunda relación en los casos como el de “ratón_01” y “roedor_01”, donde se puede observar una relación recíproca en la que cada uno de los nodos apunta al otro. Respecto al resto de relaciones que se pueden observar, al margen de las propias extraídas de “ratón_01”, encontramos: roedor---> mamífero roedor---> ratón pequeño---> tamaño casa---> vivir Este tipo de relaciones “reforzadas” por relaciones con otros asociadores son las que nos permitirán más adelante, gracias a algoritmos de grafos, establecer ciertos grados de relevancia entre los asociadores de cada definiendum . Por otro lado, como se avanzaba anteriormente, un aspecto a tener en cuenta es que si en la definición lexicográfica se hubiera hecho referencia a que “ratón” es de pequeño tamaño, que tiene los incisivos grandes y alargados, la cola larga, etc, el resultado que obtendríamos sería una lista con pares asociados de forma incongruente, como: R= {,,, … } Uno de los objetivos del grafo que se desea construir es poder plasmar las relaciones asociativas que tenemos entre las palabras por medio de los definidores típicamente asociados a la palabra definida, por lo que la selección gramatical es de vital importancia para que el grafo refleje adecuadamente las distancias semánticas entre unas palabras y otras. Como se ha comentado en el grafo se rompe la linealidad de la definición lexicográfica, y con ello la posibilidad de tener en cuenta las dependencias entre sus elementos a nivel sintáctico. Para evitar estos casos donde se añade un grado de 217 / separación asociativa, al perderse la relación directa entre definiendum y asociador por no tenerse en cuenta el eje sintagmático (ratón - incisivo - grande), se recurrirá a ciertas funciones y estrategias que ayuden a manejar los asociadores devueltos cuando sea necesario. Es lógico pensar que a causa de estas circunstancias sería conveniente reducir las relaciones extraídas según la categoría gramatical del definiendum, por ejemplo, siguiendo la siguiente pauta: ● Sustantivos: se extraerían sustantivos y verbos de la definición. ● Verbos: se extraerían los verbos, y los sustantivos. ● Adjetivos: se extraerían únicamente los adjetivos. Sin embargo, dado que las consultas se pueden hacer a posteriori filtrando de diferentes maneras, es más interesante recuperar el máximo de relaciones posibles para proceder después a una selección por categoría gramatical (en las etiquetas creadas) si fuese necesario para alcanzar un objetivo específico. 6.4.7. Desambiguación Como ya se ha señalado, la desambiguación (WSD, Word Sense Disambiguation ) es una de las tareas aún no resueltas dentro del PLN (Hadiwinoto, 2019). Desambiguar, a grandes rasgos, consiste en seleccionar correctamente uno de los posibles valores que desarrolla una palabra en un contexto determinado (Llisterri, 2019). Sin contexto no hay desambiguación posible, sino una serie de significados en potencia. Las palabras polisémicas, que son la mayor parte, se sirven del contexto para “colapsar” su significado, por lo que, metafóricamente, poner las palabras en contexto es como destapar la famosa caja de Schrödinger y resolver la “superposición” de significados posibles. Pero normalmente el cerebro no es amigo de considerar un estado cuántico en las palabras, por lo que aún sin contexto se suele forzar el significado hacia un sentido, ya sea por frecuencia, por familiaridad, conveniencia, etc. En Lingüística cognitiva, Pragmática o Psicología, el escotoma, como agente condicionante de la desambiguación, puede arrojar 218 / mucha luz para explicar por qué entendemos lo que entendemos, y a qué se deben nuestras “cegueras lingüísticas” (Shacks, 2017). La desambiguación que se ha realizado es una tarea de vital importancia para la creación del grafo, en aras de poder constituir una red que realmente vincule adecuadamente los significados a los que accedemos mediante las palabras. Nuestro cerebro continuamente está desambiguando palabras, la naturaleza del significado es profundamente lábil, no decimos: “pásame el gato_02”, sino que nos servimos de una gran información complementaria que nos ayuda constantemente a interpretar el significado correcto de las palabras. A continuación exponemos el proceso llevado a cabo para identificar cada concepto mediante una única forma, en el que se ha tomado como base el número de acepción del definiendum , y se ha hecho coincidir con los asociadores que aparecen en cada definición lexicográfica del DUE . 6.4.7.1. Asignación de un ID al definiendum La primera parte del proceso consiste en separar cada una de las acepciones asignando una identificación única (id) a cada acepción o sentido de la forma de una palabra, aprovechando el propio número cardinal que aparece en la entrada, y añadiéndoselo con una barra baja al final de la palabra de manera que haya una forma unívoca de referirnos a cada una de las acepciones asociadas a un lema: cachirulo_01 cachirulo_02 cachirulo_03 cachirulo_04 cachirulo_05 cachirulo_06 cachirulo_07 cachirulo_08 cachirulo_09 219 / Una vez extraída del formato JSON la información que nos interesa del definiens, ya es identificada cada entrada con un “id” que permita distinguir cada una de las acepciones o sentidos de una palabra con su correspondiente definición lexicográfica: Como se puede observar, hay nueve significados asociados a sus nueve lemas desambiguados mediante una forma única para cada uno de los significados. De esta manera, se resuelve una parte de la problemática de lidiar con la polisemia de las palabras definidas, ya que para cada forma (sufijada con el número de acepción, y prefijada con las iniciales de María Moliner) hay un único significado asociado. Como se analizará a continuación, la estructura del grafo determina las distinciones que se tengan que hacer a la hora de diferenciar los diferentes datos de cada entrada. Baste decir por el momento que, para conseguir crear las relaciones que se encuentran en la definición lexicográfica, obviamente se deberán desambiguar tanto las palabras definidas como los definidores válidos, los asociadores. 220 ● mm_cachirulo_01,"vasija para guardar el aguardiente u otros licores." ● mm_cachirulo_02,"vasija ordinaria y pequeña." ● mm_cachirulo_03,"barco muy pequeño, de tres palos, con velas al tercio." ● mm_cachirulo_04,"nombre dado en el siglo XVIII a cierto adorno que las mujeres llevaban en la cabeza." ● mm_cachirulo_05,"pañuelo que forma parte del atuendo tradicional aragonés." ● mm_cachirulo_06,"moña o adorno que se pone encima de la divisa del toro." ● mm_cachirulo_07,"cometa (juguete)." ● mm_cachirulo_08,"amante." ● mm_cachirulo_09,"refuerzo que se les pone a los pantalones, particularmente a los de montar, en la entrepierna." / En el caso de las palabras homónimas (más concretamente, en este caso las homógrafas), en el identificador único de la palabra se ha asignado el siguiente número consecutivo al usado en la última acepción de la anterior palabra homónima. Por ejemplo, si “cachirulo”, con nueve acepciones como se ha visto, tuviese una palabra homónima, se le asignaría el identificador “cachirulo_10” a la primera hipotética acepción, etc. Con este criterio el origen común de las palabras se vuelve opaco, pero como ya se ha comentado, para el propósito que se persigue la información etimológica no se ha tenido en cuenta. Por el momento, por lo tanto, se ha desambiguado únicamente cada una de las palabras definidas, los definienda , añadiendo un número cardinal al final de la palabra, pero no las palabras de la definición para desambiguar cada uno de los definidores que componen el definens . Además de la sufijación para desambiguar las acepciones de cada palabra, se ha añadido un prefijo con las iniciales de María Moliner seguidas de una barra baja: “mm_palabra_01”, seguidos de la palabra y el cardinal correspondiente con el objetivo de trabajar en el futuro en la fusión de diccionarios. Esto no dificulta la búsqueda de palabras en el grafo ya que como se verá más adelante, Cypher , el lenguaje de consulta para el grafo, permite expresiones regulares, por lo que para consultar todas las acepciones de “cachirulo” valdría con una consulta usando la cláusula “WHERE”: MATCH (n:Concept) WHERE n.termId =~ '.*cachirulo.*' RETURN n.termId ● Respuesta devuelta por Neo4j : 221 n.termId "mm_cachirulo_01" "mm_cachirulo_02" "mm_cachirulo_03" "mm_cachirulo_04" "mm_cachirulo_05" "mm_cachirulo_06" "mm_cachirulo_07" "mm_cachirulo_08" "mm_cachirulo_09" / Una vez que se ha obtenido una identificación única (id) del definiendum para cada acepción, o de cada sentido que puede tener una misma forma, ya que como se ha comentado, no se va a hacer distinción en el “id” entre polisemia y homonimia, es necesario tomar una decisión sobre la estructura que tendrá el grafo. De todas las opciones posibles pasaremos a comentar las 2 opciones que nos parecen más interesantes. Una primera opción sería construir una estructura con un nodo intermedio con la forma de la palabra conectado con todos sus posibles sentidos, cada uno a su vez con nodo intermedio que recogiera las diferentes acepciones. De tal manera el grafo representaría posibilidades de asociación por la forma de cada palabra del definiens , no a través del contenido semántico de la palabra, por lo que la desambiguación se tendría que hacer de forma manual al analizar el grafo eligiendo en cada caso el nodo adecuado. Sin embargo, al crear las relaciones a través del significante se estaría creando una matriz de “significante” por “concepto” (y no de “concepto” por “concepto”, o “acepción por “acepción”) por lo que a la hora de computar las relaciones se verían muy distorsionadas al estar asociados por un significante común los sentidos de cada palabra (el nodo intermedio) y también por incorporar un grado de separación añadido, dado igualmente por el nodo intermedio, entre una palabra y sus asociadores, lo que afectaría considerablemente a los algoritmos para el análisis del grafo: (palabra_Id: “cachirulo_01”)-->(nodo_intermedio: “vasija”)--> (palabra_Id: “vasija_01”). --> (palabra_Id: “vasija_02”). --> (palabra_Id: “vasija_03”). En la imagen siguiente se muestra una de las versiones de prueba descartada a las que se ha hecho alusión anteriormente, en la que se introdujo un nodo intermedio con la definición entre el definiendum y los asociadores. Se puede observar en el subgrafo, a la izquierda, el nodo en azul claro correspondiente a la palabra “vira”, el nodo intermedio en naranja, con la definición del DUE : “franja de adorno que se pone en los vestidos de las mujeres”, y a la derecha los asociadores lematizados: “franja”, “adorno”, “poner”, “vestido”, y “mujer”. 222 / ● Figura 24. Subgrafo de la opción descartada con los definidores de la palabra “vira” sin desambiguar. Por las razones expuestas anteriormente se ha optado por construir una relación directa mediante la desambiguación de cada uno de los elementos del definiens extraídos, los asociadores, que pasaremos a comentar a continuación. De esta manera se mantiene la idea de crear una matriz de concepto por concepto, donde cada forma está relacionada con un único significado, y no una forma con varios significados. 6.4.7.2. Asignación de un ID a los asociadores del definiens Para la tarea de desambiguación del diccionario de María Moliner se ha realizado un proceso de vinculación básico entre los asociadores y la acepción correspondiente, usando las definiciones lexicográficas como contexto, y aprovechando su estructura recursiva para ampliarlo en los casos en que fuera necesario. Dicho proceso de asignación de acepciones se ha realizado adaptando una variante del algoritmo Lesk (Lesk, 1986) para desambiguar el diccionario, y una vez que se ha obtenido un significante único para cada definiendum, (“mm_palabra_01”), se han desambiguado cada una de las palabras del 223 / definiens. Para conseguir la raíz (stemma) se ha optado por usar una versión adaptada del algoritmo de Porter (Porter, 1980), y por realizar un proceso en el que se compara, la raíz del definiendum , las raíces de los asociadores del definiens , y las raíces de los asociadores de cada definiens de cada una de las posibles acepciones, vinculándolo con la acepción que guarda mayor número de raíces en común con el definiendum . Cuando no era posible encontrar raíces en común se ha escogido por defecto la primera acepción, aunque se debe recordar que María Moliner no ordenó originalmente las acepciones por criterios de frecuencia, sino por proximidad conceptual con la etimología de la palabra. En otros diccionarios, como el DLE en las dos últimas ediciones y en palabras que han sido revisadas sí se prima la frecuencia de uso. En el resto el orden es también etimológico, que es el tradicional. Veamos unos ejemplos de los primeros asociadores de la desambiguación de “persona_03” a partir de la definición del DUE , donde el contexto ha podido ofrecer suficientes conexiones para realizar una desambiguación motivada, es decir, cuando se ha podido encontrar una coincidencia entre las raíces comparadas, ya que de lo contrario, como se ha señalado, cuando no se encuentran raíces en común, por defecto se toma la acepción “01”. Por lo tanto, en este trabajo se consideran desambiguaciones motivadas, al menos, a todas las que tienen un cardinal mayor que uno, ya que indica que ha habido como mínimo una raíz común encontrada. mm_persona_03: "accidente gramatical por el cual el pronombre y el verbo pueden variar para referirse a la persona que habla, (...)",NC. Pasado el proceso de desambiguación sobre los asociadores extraídos, la información asociada a “persona_03” quedaría de la siguiente manera con sus identificadores asignados correctamente : ● Acepción: NC:mm_persona_03 224 / ● Asociadores extraídos del definiens ya desambiguados: 0_NC:mm_accidente_05; 1_AQ:mm_gramatical_01; 6_NC:mm_pronombre_01; 9_NC:mm_verbo_04; 10_V:mm_poder_03; 11_V:mm_variar_01; 13_V:mm_referir_03; 16_NC:mm_persona_01; 18_V:mm_hablar_02; Nótese que, por un lado está el número cardinal pospuesto que refleja la acepción, y por otro lado, el número cardinal prefijado, que refleja el orden original de aparición en el definiens , acompañado de la categoría gramatical, ya que para la correcta desambiguación de cada elemento nos hemos apoyado tanto en la desambiguación morfológica, como en una prelación por proximidad usando ventanas para poder jerarquizar el alcance a la hora de asociar raíces en común, y así poder distinguir “persona_01” de “persona_03”. A continuación comprobamos que la acepción de los asociadores extraídos es la correcta verificando la definición en el Diccionario de uso del español de María Moliner de cada uno de ellos: mm_accidente_05: "cada una de ciertas posibilidades de variación en su forma que tienen algunas clases de palabras, por las que pueden expresar determinadas circunstancias de la idea fundamental.",NC. mm_gramatical_01: "de gramática.",AQ. mm_pronombre_01: "palabra que se utiliza para designar a alguien o algo sin emplear su nombre, como «éste, ellos, algunas», etc.",NC. 225 / mm_verbo_04: "palabra con que se expresan las acciones y estados de los seres, y los sucesos.",NC. mm_poder_03: "existir posibilidad o probabilidad de que ocurra cierta cosa.",V. mm_variar_01: "alterarse o cambiar;",V. mm_referir_03: "aplicar una cosa a otra o establecer relación no recíproca de una cosa con otra.",V. mm_persona_01: "individuo de la especie hombre.",NC. mm_hablar_02: "decir.",V. Una vez comprobadas las definiciones correspondientes de cada acepción de los definidores válidos, se puede observar en el ejemplo, que en este caso, la asignación se ha realizado satisfactoriamente, excepto quizá en la asignación de “hablar”, ya que de las 7 acepciones posibles, como vemos a continuación, el algoritmo ha optado por la acepción de “hablar_02” (“decir”), cuyo mejor candidato posiblemente hubiera sido la primera acepción, “hablar_01”: 226 mm_hablar_01,"emitir sonidos que forman palabras.",V mm_hablar_02,"decir.",V mm_hablar_03,"criticar o murmurar.",V mm_hablar_04,"ser novios.",V mm_hablar_05,"expresarse de cualquier manera.",V mm_hablar_06,"hacer pensar en cierta cosa.",V mm_hablar_07,"dar a alguien el tratamiento que se expresa.",V / Para este proceso en lugar de la librería de Python , Spacy , también se ha usado la librería de NLTK, Snowball Stemmer para el español. Aunque los algoritmos de truncación o “ stemming ” tienen el riesgo de recortar la palabra en exceso ( overstemming ) y encontrar relaciones entre palabras inexistentes, o a la inversa ( understemming ), el grado de cobertura y precisión que ofrecen es alto, y resulta más eficiente para el proceso de comparación que la lematización únicamente. La comparación con la raíz en lugar de la palabra completa lematizada permite mayores posibilidades de unión en la comparación entre palabras comunes entre los elementos del definiens . Sin embargo, con este proceso no siempre es posible encontrar raíces en común. En tales casos, cuando no se encuentra una raíz en común en los diferentes definiens , y por lo tanto, no se puede optar por ninguna de las acepciones, como ya se ha indicado, se ha optado por elegir por defecto el sentido expresado en la primera acepción. En el siguiente ejemplo, aunque todavía no se ha introducido el tipo de relación que va a verse reflejada entre los nodos, la relación “SIMILAR”, se puede observar un caso de desambiguación con el ejemplo anterior de “cachirulo_08”, que ha permitido construir las relaciones pertinentes con aquellas palabras que tienen como elemento común en el definiens la palabra “amante”. ● Consulta en Cypher : MATCH p=(m)-->(n:Concept) WHERE n.termId =~ '.*cachirulo_08' RETURN m.termId Started streaming 7 records after 1 ms and completed after 312 ms. 227 m.termId "mm_querendón_01" "mm_mozo_09" "mm_requiebro_02" "mm_chino_13" "mm_entretenida_01" "mm_camote_06" "mm_coamante_01" / En la visualización del subgrafo correspondiente a la anterior consulta realizada en Cypher observamos el nodo “cachirulo_08” en una posición central con las siete relaciones de entrada del resto de los nodos: ● Figura 25. Subgrafo de palabras con la relación “SIMILAR” respecto a “cachirulo_08”. 228 / 6.4.8. Depuración de los nodos: criterio de frecuencia y contenido semántico Para depurar las definiciones lexicográficas y eliminar todos los elementos que puedan introducir ruido en las relaciones, como se ha comentado, además de analizarse los bigramas más frecuentes antes de crear el grafo, una vez construido este, también se han analizado las palabras más frecuentes, transformadas ya en nodos, con el objetivo de descartar aquellas palabras que por su frecuencia de uso y escaso contenido semántico, no aportan demasiada información útil para establecer una relación. Una vez construido el grafo, Cypher permite hacer determinadas consultas para analizar las palabras más frecuentes y seguir con el proceso de depuración de aquellos nodos que no ofrecen información relevante, o que directamente introducen ruido para el trabajo ulterior. El siguiente listado es un ejemplo extraído del apéndice 2, con los nodos más frecuentes del grafo, mediante la siguiente consulta en Cypher : MATCH n= (v)-[:RELATED_TO]->(m:NC) RETURN count(m) as apariciones, m.termId as concepto order by count(m) DESC limit 50 ● Extracto del apéndice 1, tabla 2: Frecuencia de aparición de los nodos Nº APARICIONES / CONCEPTO 229 8894 "mm_cosa_01" 5750 "mm_persona_01" 3766 "mm_acción_01" 2466 "mm_planta_01" 2252 "mm_aplicado_01" 2236 "mm_parte_01" 1795 "mm_conjunto_05" 1718 "mm_sitio_01" 1659 "mm_cualidad_01" 1533 "mm_efecto_01" 1519 "mm_acción_02" 1455 "mm_pequeño_01" 1418 "mm_forma_01" 1222 "mm_persona_03" 1215 "mm_producir_01" 1199 "mm_servir_01" 1168 "mm_nombre_01" 1163 "mm_semejante_01" 1157 "mm_cosa_03" 1084 "mm_animal_03" / Recuperando el ejemplo de las acepciones de “cachirulo”, se puede apreciar que, una vez hecha la lematización y el descarte por selección categorial, todavía quedan palabras que aportan poca información relevante como asociadores, aún formando parte de las categorías gramaticales no descartadas (sustantivos, adjetivos y verbos), como por ejemplo: “nombre”, “siglo”, “llevar”, “formar”, “parte”, “poner”, etc. La vaguedad semántica 230 1063 "mm_color_01" 1044 "mm_mismo_01" 1037 "mm_ejemplo_01" 1002 "mm_vez_01" 986 "mm_lugar_01" 960 "mm_hecho_07" 954 "mm_árbol_01" 941 "mm_pieza_01" 914 "mm_hombre_01" 880 "mm_expresar_01" 863 "mm_fruto_01" 862 "mm_barco_01" 842 "mm_agua_01" 828 "mm_ave_01" 816 "mm_especie_01" 798 "mm_mujer_01" 771 "mm_flor_01" 735 "mm_grande_01" 729 "mm_usado_01" 702 "mm_tela_01" 688 "mm_hecha_01" 686 "mm_hoja_01" 675 "mm_estado_01" 655 "mm_objeto_01" 649 "mm_sustancia_01" 626 "mm_terreno_03" 620 "mm_quitar_01" 617 "mm_utensilio_01" 603 "mm_manera_01" 581 "mm_madera_01" 544 "mm_modo_01" 542 "mm_caballería_01" 535 "mm_antiguo_01" 531 "mm_instrumento_01" 527 "mm_tiempo_01" 520 "mm_causar_01" 518 "mm_propio_01" 517 "mm_enfermedad_01" 515 "mm_consistente_01" 513 "mm_empleado_01" 511 "mm_utilizar_01" 496 "mm_cuerpo_01" 495 "mm_dedicar_01" 481 "mm_clase_01" / de estas palabras, unidas a su alta frecuencia, hace que sea aconsejable su descarte como asociadores de una palabra. Para localizar y descartar más cantidad de palabras poco útiles, una vez creado el grafo también se ha recurrido a otras funciones dentro del propio Neo4j que se verán a continuación. ● Asociadores de todas las acepciones de “cachirulo” (sin desambiguar): cachirulo_01 = vasija, guardar, aguardiente, licor. cachirulo_02 = vasija, ordinario, pequeño. cachirulo_03 = barco, palo, vela, tercio, tres, pequeño. cachirulo_04 = nombre, siglo, adorno, mujer, llevar, cabeza. cachirulo_05 = pañuelo, formar, parte, atuendo. cachirulo_06 = moña, adorno, poner, divisa, toro. cachirulo_07 = cometa, juguete. cachirulo_08 = amante. cachirulo_09 = refuerzo, poner, pantalón, montar, entrepierna. Los anteriores asociadores, es decir, las formas lematizadas correspondientes a las categorías gramaticales de sustantivos, adjetivos y verbos, extraídas de las definiciones lexicográficas de las nueve acepciones correspondientes al lema “cachirulo”, tienen cada uno una serie de relaciones que, como se puede observar en determinados casos, mantienen una intersección con otras acepciones. Como vemos en el subgrafo que se presenta a continuación, la visualización del mismo permite rápidamente ver que dichas intersecciones se producen entre “cachirulo_01” y “cachirulo_02”, mediante el nodo “vasija”, y entre “cachirulo_04” y “cachirulo_06” mediante el nodo “adorno”. El subgrafo de los nodos y de las relaciones de todas las acepciones de “cachirulo” sería el siguiente, a partir del correspondiente patrón presentado. 231 / ● Consulta en Cypher : MATCH (n:Concept)-[:RELATED_TO]->(m:Concept) WHERE n.termId =~ '.*cachirulo.*'RETURN n, m ● Figura 26. Subgrafo obtenido con una expresión regular para visualizar todas las acepciones de la palabra “cachirulo”. Como se puede observar en el subgrafo anterior, se han extraído de forma correcta los asociadores de las nueve acepciones de “cachirulo”, formando nueve grupos, correspondientes a las nueve acepciones, en los que podemos observar que, por ejemplo, como se ha comentado, hay una intersección entre los asociadores de “cachirulo_01” y “cachirulo_02” que es el nodo correspondiente a “vasija_01”. (Nótese también la relevancia 232 / de la dirección de la arista para realizar una lectura correcta del subgrafo). A continuación, se puede apreciar el mismo subgrafo, únicamente con la intersección aludida entre “chachirulo_01” y “cachirulo_02” a través de “vasija_01”. ● Figura 27. Subgrafo en el que “vasija_01” es la intersección entre dos acepciones de “cachirulo”. En el siguiente subgrafo de “cachirulo_03” se puede observar que ciertos nodos, como “vela_01”, “palo_02” y “barco_03”, además de ser asociadores de “cachirulo_03” también mantienen relaciones entre ellos, es decir, son palabras que forman a su vez parte de los definidores del definiens de otras. En este caso “vela_01”, y “barco_03” son a su vez asociadores de “palo_02”, ya que la definición lexicográfica del DUE es: " madero de los que sirven en los barcos para sostener las velas ." 233 / ● El subgrafo con las relaciones de “cachirulo_03” se puede consultar de la siguiente manera en Cypher : MATCH (n:Concept)-[:RELATED_TO]->(m:Concept) WHERE n.termId =~ '.*cachirulo_03' RETURN n, m ● Figura 28. Subgrafo de las relaciones de “cachirulo_03”. En el anterior subgrafo de “cachirulo_03” se pueden observar, además de las relaciones de salida propias de los asociadores pertenecientes a dicha palabra, como se ha señalado, las relaciones de “palo_02” que tiene como asociadores a “vela_01” y a barco_01”, además de la relación de salida que une a “tercio_02” con “tres_01”, es decir, el nodo “tres_01” forma parte a su vez de los asociadores de “tercio_02”. Una vez realizadas diferentes comprobaciones y la depuración de los nodos del grafo, se procederá al enriquecimiento de los datos del mismo, así como a detallar las diferentes posibilidades de explotación de los datos a través de la herramienta de Neo4j . 234 / CAPÍTULO 7: CARACTERÍSTICAS DEL GRAFO EN NEO4J En el siguiente capítulo se presentan las características de los modelos de grafos de propiedades etiquetadas (LPGM) y en concreto, las de Neo4j , el software empleado para la construcción del grafo de vinculación semántica construido a partir de las relaciones entre el definiendum y el definiens . ● Figura 29. Subgrafo tras una consulta aleatoria en el que no se han conectado los resultados de tal manera que ciertos nodos se han desplazado a la periferia. 235 / 7. Análisis del grafo de propiedades etiquetadas (LPG) 7.1. Modelo del grafo Se puede definir un grafo de forma naif como un conjunto de nodos unidos entre sí por un conjunto de aristas (Needham y Hodler, 2019) . De manera más formal un grafo se define como un par ordenado, G = (N, A ), donde: ● N es un conjunto de nodos ● A es un conjunto de aristas con los que se relacionan estos nodos. El orden del grafo, G, es el número de nodos, N, que constituyen el grafo. En este caso el número de nodos es equivalente al número de acepciones de cada lema validado de las categorías de: sustantivos, adjetivos y verbos del diccionario de María Moliner que han sido extraídos, en total 124.638 nodos y 726884 relaciones finales (las relaciones de 73 base extraídas del DUE más las creadas a partir de los algoritmos de grafos usados). El grafo creado es un grafo dirigido o digrafo, ya que las aristas tienen una dirección determinada siempre. Un grafo dirigido o digrafo es un grafo, G = (N, A), donde: ● N ≠ ∅ ● A ⊆ { (a,b) ∊ N x N : a ≠ b } es un conjunto de pares ordenados de elementos de N. 73 Dicha información se puede consultar en las características del propio grafo, o haciendo dos consultas sencillas en Cypher , para los nodos: MATCH (n) RETURN count(n), y para las relaciones: MATCH ()-->() RETURN count(*). 236 / Sin embargo, un grafo no dirigido es un conjunto de pares no ordenados de elementos de N, donde el orden de sus elementos no condiciona la identidad del conjunto {a,b} = {b,a}. En este caso, además de que Neo4j no permite grafos no dirigidos, la relación de base creada tiene una dirección definida, marcada por la naturaleza de la relación entre el definiendum y los elementos del definiens , aunque si bien es cierto, se podría hacer bidireccional: si A está relacionado con B, entonces B está relacionado con A, pero ya sería otra relación diferente. Otra aclaración pertinente frente a la definición de grafo dirigido dada, es que los grafos dirigidos por definición no contienen bucles, y como veremos en este caso, esto no se cumple, ya que hay elementos que se relacionan consigo mismos. Por esta razón, el grafo creado debe ser considerado más correctamente como un multigrafo, es decir, un grafo que tiene la facultad de tener aristas cuyos nodos de inicio y nodos finales pueden ser los mismos. También se usa a veces el término pseudografo para indicar que se permiten tanto bucles, como múltiples aristas entre cada par de vértices (Balakrishnan, 1997), aunque de forma general, tanto en este trabajo como en la bibliografía, se suele denominar simplemente como grafo. Las visualizaciones parciales del grafo al mismo tiempo se denominan subgrafos, aunque también es frecuente que simplemente se aluda a ellos como grafos. ● Figura 30. Subgrafo de “árbol_01” con miembros de su misma partición tras la consulta en Cypher : MATCH (p:NC{termId:"mm_árbol_01"})--(q:NC{partition:16139}) return q,p 237 / 7.2. Características del grafo de propiedades etiquetadas (LPG) En la creación y el manejo de un grafo debemos tener claro el objetivo que se busca para adecuar el trabajo a los requerimientos del dominio, o a la información que podemos tratar, ya que el dominio y los tipos de datos asociados a este condicionan el modelo del grafo. En este caso, uno de los objetivos principales ha sido emular la capacidad que tenemos los seres humanos de establecer la lejanía o cercanía de un concepto respecto a otro, y poder acceder a las relaciones que se dan entre las palabras, lo que se suele denominar “distancia semántica” (Rips et al., 1973). A este respecto, los grafos permiten modelar el lenguaje de una manera muy compatible con nuestra capacidad. En el caso concreto de un diccionario tal como se ha señalado, nos encontramos con un modelo libre de escala, pues hay palabras que mantienen muchas relaciones, mientras que otras están muy poco relacionadas. Tradicionalmente se ha usado el concepto de modelo de grafo etiquetado, Labeled Property Graph Model (LPGM), para referirse a aquellos grafos cuyas aristas están ponderadas con números reales. Sin embargo, con la expansión del uso de los grafos a dominios complejos con otros requerimientos, se usa dicho término, Labeled Property Graph Model (LPGM), para referirse a aquellos grafos cuyos nodos o aristas están acompañados de una información adicional, con propiedades de pares atributo-valor o etiquetas, que aumentan la capacidad de expresión del modelo (Partner, Vukotic y Watt, 2015). Paradójicamente las bases de datos relacionales trabajan mal con las relaciones en sí. Cuanto mayor es el grado de recursión que implica la consulta mayor es el coste computacional y el tiempo de latencia. Las relaciones que mantienen los nodos en un grafo forman caminos. A la hora de hacer una consulta básicamente lo que se hace es devolver caminos que encajen con los patrones expresados, como se verá al hablar del lenguaje de consulta de Neo4j , Cypher . Las bases de datos NOSQL, almacenan gran cantidad de datos no conectados, lo que muchas veces obliga a recorrer en una consulta toda la base de datos para encontrar la respuesta. En un grafo los datos relacionados son almacenados con la relación que mantienen, por lo que son mucho más eficientes para trabajar con datos conectados (Partner, Vukotic y Watt, 2015). Las propiedades del 238 / modelo de grafos son muy adaptables a las necesidades que se encuentran al modelar las relaciones de asociación entre palabras teniendo como base el DUE . El esquema es libre, lo que proporciona la posibilidad de un modelo más expresivo para representar la conexión entre palabras. La tecnología de grafos resulta muy adecuada para modelar las relaciones entre las palabras de un diccionario por su flexibilidad, rapidez y adecuación de los datos. Una base de datos de grafos dispone de todos los métodos usados de una BD relacional ( CRUD methods, Create, Read, Update, and Delete ). Las tecnologías de base de datos basadas en grafos pueden usar un almacenamiento del grafo de forma nativa, o bien serializar los datos del grafo en una base relacional, o en otro tipo de bases de datos. El almacenamiento en grafos nativos está más indicado para trabajar con grafos, ya que está optimizado para ello, aunque todo depende del propósito del grafo (Rodríguez y Neubauer, 2011). En un modelo de grafos las relaciones, o aristas, desempeñan un papel de una importancia especial, a diferencia de lo que ocurre en las bases de datos relacionales, como en SQL, donde dichas relaciones son inferidas. Para modelar las conexiones que mantienen las palabras de un diccionario entre ellas, los grafos son la tecnología que pone más y mejor en valor estas relaciones permitiendo tanto su visualización como su manejo de forma más clara y eficiente. Además, los motores para la computación de grafos permiten trabajar con algoritmos con grandes conjuntos de datos, estando dichos algoritmos optimizados para las operaciones que permiten los grafos, como la identificación de patrones, la agrupación ( clustering ) o la extracción de relaciones complejas entre los nodos. La velocidad en la consulta a un grafo es muy alta, y no se ve condicionada por el tamaño del grafo, aunque este sea de grandes dimensiones. Esto es debido a que cuando hacemos una consulta al grafo, esta solo involucra a una parte del grafo, por lo que el tiempo de ejecución es proporcional únicamente a la parte del grafo que se ve afectada por la consulta, no a todo el grafo, como puede ocurrir con otro tipo de bases de datos. La naturaleza del grafo es profundamente relacional, y de naturaleza aditiva, como la naturaleza del propósito de esta memoria de tesis, es decir, se pueden ir añadiendo fácilmente nuevos nodos y relaciones o etiquetas al grafo, en función de las necesidades del dominio que manejemos. Esto permite la sostenibilidad y el mantenimiento del grafo con muchas menos dificultades, a lo que se suman las posibilidades de visualización del grafo, que permiten obtener una visión mucho más clara de las características de la red. 239 / Un modelo de grafo de propiedades etiquetadas (LPGM) como el que se construido, además tiene, entre sus características y propiedades más importantes, una serie de elementos en los cuales nos detendremos para verlos más en profundidad en los respectivos apartados (Needham & Hodler, 2019) : ● Cuatro tipos de elementos básicos: el grafo está constituido por nodos, relaciones, propiedades y etiquetas. ● Nodos: los nodos pueden contener propiedades de la forma atributo-valor y pueden ser etiquetados con una o varias etiquetas, de tal forma que permiten la agrupación de nodos según sus características. ● Relaciones: las relaciones conectan los nodos y estructuran el grafo. Las relaciones siempre tienen una dirección (grafo dirigido), un nombre, un nodo de origen, y un nodo final. Al igual que los nodos, las relaciones también pueden tener propiedades, lo que permite añadir más información (relaciones ponderadas) u otras características de las relaciones que proveen de metadatos adicionales para trabajar con ellas. ● Adyacencia: dos o más nodos son adyacentes si están conectados por una arista, y dos, o más aristas, son adyacentes si tienen un nodo en común. ● Incidencia: una arista es incidente a un nodo si dicha arista lo une a otro nodo. ● Ponderación: es una función que asocia a una arista un valor determinado (como veremos más adelante, por ejemplo, las aristas estarán ponderadas con valores de similitud). ● Etiquetado: permite la distinción de los nodos y las aristas mediante la asignación de características adicionales (por ejemplo, la categoría gramatical). 240 / Conviene recordar también que un grafo es la representación de un determinado conocimiento en forma de nodos y de las relaciones que los unen. De la misma manera, una matriz de adyacencia puede expresar la misma información en forma de arreglo bidimensional. Se podría representar en una matriz de dimensiones n × n (en este caso, conceptos por conceptos del diccionario de María Moliner), donde las filas y las columnas indicasen la relación entre los nodos o vértices, para almacenar en cada celda, la conexión o la distancia entre cada par de nodos de un grafo. La representación en grafo frente a la representación matricial ofrece una mejor visualización y manejo de los datos. Pensemos que la matriz de adyacencia correspondiente al grafo tendría tantas filas y columnas como conceptos desambiguados, es decir, correspondiente a los nodos (124.638 x 124.638) y sería muy dispersa ( sparse matrix ). 7.2.1. Nodos del grafo Los nodos son los elementos que corresponden con las entidades o conceptos que conforman el grafo. En el grafo construido cada nodo corresponde, como se ha indicado, con cada una de las acepciones de las palabras del DUE de María Moliner. Para indicar los nodos en Cypher se usan los paréntesis, por ejemplo: “(nodo)”. Para hacer referencia a un nodo se puede usar una variable nombrándola de la forma que más convenga en minúscula: (n), (nodo), (v), (variable), etc. Al igual que en los lenguajes de programación, las variables sirven para nombrar nodos o relaciones que más tarde queremos referenciar en una consulta. Si el nodo no es relevante para la consulta, y no se quiere devolver en el resultado, se puede usar un nodo anónimo mediante paréntesis vacíos: “()”. Cada nodo va a tener una serie de aristas de entrada (relaciones que indican que la palabra de dicho nodo forma parte del definiens de otra palabra) que constituyen su grado de entrada, y unas aristas de salida (que indica qué palabras forman parte del definiens de esa palabra), y constituyen su grado de salida. 241 / El grado o valencia de un nodo es el número de aristas que inciden en dicho nodo, es decir, la cantidad de relaciones que mantienen con otros nodos, o consigo mismo en el caso de que tenga un bucle. El grado de un nodo se puede definir a través de su vecindad, es decir, el número de nodos adyacentes que tiene (Erdos, 1960): g (x) = | N (x)| La vecindad de un nodo x, denotado como N(x) viene determinada por todos los nodos adyacentes a x: N(x) = {y ∊ V G | {x,y} ∊ E G } En el siguiente subgrafo, el nodo “mm_vista_01” es de grado 2, ya que tiene dos relaciones de salida (relación “RELATED_TO”), correspondientes con los nodos “mm_sentido_04” y “mm_ojo_01”: ● Figura 31. Subgrado correspondiente al nodo “vista_01”. 242 / En el siguiente subgrafo, el nodo “mm_virtud_02” tiene seis relaciones de entrada (relación “SIMILAR”, en color amarillo), correspondientes con los nodos “mm_portento_02”, “mm_sabiduría_01”, “mm_joya_03”, “mm_punto_32”, “mm_sintonía_03” y “mm_bienquerer_01”, y ninguna relación de salida: ● Figura 32. Subgrafo de las relaciones “Similar” del nodo “virtud_02”. 243 termID definición ( DUE ) mm_virtud_02 "Cualquiera de las cualidades que se estiman buenas en una persona." mm_portento_02 "Persona extraordinaria por alguna cualidad. generalmente buena. que se expresa o se sobreentiende." mm_sabiduría_01 "Conjunto de los conocimientos. particularmente los de Dios o los adquiridos por estudio que alguien tiene." mm_joya_03 "Persona de muy buenas cualidades." mm_punto_32 "Hecho muy bueno o favorable." mm_sintonía_03 "Buen entendimiento entre personas debido a afinidades entre ellas." mm_bienquerer_01 "Estimar". / 7.2.2. Etiquetas de los nodos Otra de las características de Neo4j es que se pueden asignar etiquetas a los nodos (y a las relaciones) para agruparlos en diferentes categorías. A la hora de referenciar un nodo, las etiquetas se ponen a la derecha de la variable en mayúscula después de los dos puntos: “(nodo: Etiqueta). En el grafo que se ha construido se ha optado por asignar como etiqueta a cada nodo la categoría gramatical usando el POS tagging : (nodo: V) para los verbos, (nodo: NC), para los sustantivos, y (nodo: AQ) para los adjetivos. ● Figura 33. Etiquetas de los nodos (código de color). Las etiquetas permiten especificar el tipo de nodo sobre el que nos interesa obtener resultados, es decir, sirven como un filtro adicional, descartando la búsqueda de todos los nodos que no tienen la etiqueta especificada, y optimizando así el tiempo de ejecución de una consulta, de la misma manera que en una consulta SQL se indica en qué tabla se debe buscar cierta información. Si no se especifica la etiqueta de los nodos, Cypher no filtra ninguna y debe recorrer todos los nodos para verificar si cumplen o no el patrón de la consulta, lo que en grafos de gran dimensión puede originar un problema de latencia excesiva en consultas muy exigentes. Ejemplo: ● (): nodo anónimo (sin etiqueta ni variable, puede referirse a cualquier nodo del grafo). ● (n: V): nodo con la variable “n” y la etiqueta “V” de los verbos. ● (nodo: V): nodo con la variable “nodo” y la etiqueta “V” de los verbos. 244 / En el siguiente ejemplo estaríamos consultando por un nodo anónimo (de cualquier tipo), relacionado (mediante una relación de salida sin especificar) con un sustantivo (nodo1), relacionado con un adjetivo (nodo2) por una relación de entrada sin especificar, y este a su vez con un verbo (nodo3) con otra relación de entrada sin especificar. ● Figura 34. Subgrafo que encaja con el patrón: MATCH p= ()-->(nodo1:NC)<--(nodo2:AQ)<--(nodo3:V) RETURN p En los patrones que se establecen en las consultas con Cypher se puede recurrir a las etiquetas para filtrar los resultados. Se debe considerar que aunque por ahora los ejemplos tratan de ser lo más sencillos posible, en otras consultas al grafo los resultados pueden ser de miles o millones de nodos, por lo que es conveniente filtrar o restringir la búsqueda que se hace. Por ejemplo, si queremos recuperar los nodos conectados a “loro_01” con la etiqueta de verbo (V) se puede realizar la siguiente manera: ● Figura 35. Subgrafo que encaja con el patrón: MATCH p = (n:NC{termId:"mm_loro_01"})-[]->(b:V) RETURN p 245 / 7.2.3. Relaciones entre los nodos del grafo Una de las grandes ventajas de las bases de datos basada en grafos es la capacidad de relación. Las aristas que unen los nodos indican las relaciones que estos mantienen entre sí. Los tipos de relación categorizan y añaden significado a la relación de manera similar a como lo hacen las etiquetas al agrupar nodos. Las relaciones en el grafo, por lo tanto, conectan los nodos entre sí, e indican el tipo de relación por el que se vinculan. En nuestro caso, la relación que se ha usado de base para construir el grafo a partir de los asociadores de la definición lexicográfica del DUE de María Moliner, se ha nombrado como “RELATED_TO”, aunque como veremos más adelante, a partir de esta relación extraída del diccionario se han construido otras usando diferentes algoritmos de grafos. ● Figura 36. Ejemplo del resultado de una consulta en Cypher donde se han visualizado las relaciones expandidas a partir de 5 nodos del grafo (en las 4 esquinas y en el centro, pertenecientes a los colores amarillo, rojo, verde y azul). 246 / Las relaciones entre los nodos se representan en Cypher mediante barras y flechas que indican la dirección. Como se ha señalado el grafo creado es dirigido (aunque en Neo4j todas las relaciones lo son, para las consultas se pueda obviar su dirección), por lo tanto, la dirección de la relación nos va a indicar si un concepto está definido por otro, o a la inversa: ● (a: V)-->(b: V) ● (a: V)<--(b: V) En el ejemplo anterior, no se ha especificado el tipo de relación, por lo que al igual que con el nodo anónimo, al hacer una consulta no se establecería ningún filtro respecto a la relación que une un par de nodos. En el primer caso el patrón consultado sería sobre un primer elemento (en este caso un verbo) relacionado con un segundo elemento presente originalmente en la definición lexicográfica del DUE (otro verbo), y en el segundo caso sería a la inversa, el segundo elemento sería el que estuviese como asociador del primer elemento. Como se muestra a continuación en el patrón escrito en Cypher , en el caso de la relación “RELATED_TO”, en la figura 37 la dirección nos indica que los sustantivos que se instancien con la variable “a” serán las palabras correspondientes a los lemas en origen, en este caso “vista_01”, mientras que los sustantivos instanciados con la variable “b” serán sus asociadores, y a la inversa en la figura 38, donde observamos en el centro al nodo correspondiente a “vista_01” rodeado por 10 palabras que la tienen como asociador: ● Figura 37 : (a: NC)-[relation: RELATED_TO]->(b: NC) 247 / ● Figura 38 : (a: NC)<-[relation: RELATED_TO]-(b: NC) En el ejemplo anterior, sí se ha especificado el tipo de relación entre los dos nodos, y la categoría gramatical que deben tener, en este caso sustantivos, por lo que a la hora de hacer una consulta solo se buscaría entre los nodos que cumpliesen con ese filtro. Como se puede observar, resulta bastante visual la estructura de las consultas, y como veremos más detalladamente en las características del lenguaje Cypher , este permite filtrar por una serie de características de forma bastante intuitiva. En cuanto a la dirección de la relación, también puede ser obviada en la consulta no indicando con el símbolo la dirección (2): 1. ()-->() 2. ()--() 248 / En el primer caso del ejemplo anterior estaríamos consultando por cualquier tipo de nodo conectado con otro en esa determinada dirección, mientras que en el segundo caso estaríamos haciendo una consulta igualmente amplia, pero aún menos restrictiva: cualquier nodo que estuviese conectado con otro sin importar la dirección. Aunque en las consultas al grafo usando Cypher se puedan usar relaciones sin dirección, en la base de datos del grafo todas las relaciones tienen una determinada dirección. Cuando no especificamos la dirección significa que la relación entre dos nodos puede ser en ambas direcciones, por lo que Cypher obviará este particular y devolverá todas las relaciones que encajen con el patrón sin importar la dirección de la relación. Esto permite mayor flexibilidad en las consultas, pues no obliga a conocer de antemano la dirección que conecta a dos nodos, ni el tipo de relación que los une. Como se verá en los siguientes capítulos se han creado más relaciones a partir de la relación “RELATED TO”. ● Figura 39. Subgrafo donde se visualizan relaciones de salida (“RELATED_TO”) del nodo “presentir_01”, y todas las relaciones que se establecen entre los asociadores, más la relación de entrada de “presentir_01” que lo conecta con “barruntar_01”. 249 / ● Figura 40. En el subgrafo anterior se ejemplifican el resto de relaciones creadas que serán introducidas en los siguientes apartados. 250 / 7.2.4. Propiedades de los nodos y de las relaciones Además de las características que hemos visto anteriormente se pueden añadir propiedades tanto a los nodos como a las relaciones. El tipo de relación, las etiquetas y las propiedades sirven para afinar el filtro sobre el que se realizará la consulta. Las propiedades se indican introduciendo entre llaves el nombre de la propiedad y el valor, justo después de la etiqueta. Las propiedades pueden ser de diferente tipo, y como se irá mostrando, son muy útiles para filtrar búsquedas. Entre las propiedades de los nodos destacaremos por el momento la propiedad “termId”, cuyo valor es un significante desambiguado, es decir, el significante más el número de la acepción. Además de las propiedades “termId” y “definition” (para hacer más eficaz la búsqueda y la comparación se ha añadido la definición lexicográfica del DUE correspondiente a cada nodo), se han creado una serie de propiedades a través de diferentes algoritmos de grafos, que se explican en el apartado correspondiente, y sirven para ampliar la información de los nodos a partir del valor que tienen en el grafo y poder filtrar los nodos a partir de sus valores. ● Nodo con la etiqueta de adjetivo (nótese el código de color azul claro) que tiene la propiedad “termId” con el valor: “mm_quijotesco_01: ● Patrón de la consulta en Cypher : Match (a: AQ{termId: “mm_quijotesco_01”}) Return a 251 / ● Otras propiedades que han sido escritas en los nodos (y que todavía no han sido introducidas): articlerank: 0.15000000000000002 centrality: 0.0 closeness: 0.0 coefficient: 0.0 community: 16811 definition: que actúa con quijotería. followers: 0.0 following: 2 pagerank: 0.15000000000000002 partition: 16811 termId: mm_quijotesco_01 triangles: 0 Como se acaba de mostrar una de las propiedades de los nodos se ha escrito con la propia definición del DUE (propiedad “ definition ” ). 74 ● Propiedad de una relación: ()-[r:RELACIÓN{nombre_propiedad: “valor”}]->() En el caso de la relación RELATED_TO no se han creado propiedades, pero por ejemplo, la relación creada “SIMILAR” tiene la propiedad “score”, con un valor numérico asociado, fruto del algoritmo usado para construir la relación, como podemos observar en el siguiente subgrafo sobre algunas palabras (limitadas a 6) en las que se ha vuelto a consultar la relación “SIMILAR” de la palabra “virtud_02”, cuya definición lexicográfica en el DUE era : “Cualquiera de las cualidades que se estiman como buenas en las personas”. 74 En el proceso de escritura de la propiedad “definition” en los nodos la definición del DUE por cuestiones de formato se ha podido ver afectada en la puntuación, sobre todo en mayúsculas y en las comas. 252 / ● Patrón de consulta en Cypher : a partir del subgrafo de “virtud_02”, visto anteriormente para observar la puntuación (“score”) de la relación “SIMILAR” MATCH p= (a: NC {termId:"mm_virtud_02"})-[r:SIMILAR]-(b) RETURN r.score, b.termId, b,definition limit 6 ● Figura 41. Subgrafo de las relaciones de similitud del nodo “virtud_02”. 253 r.score b.termId b.definition 1.0 "joya_03" “Persona de muy buenas cualidades” 0.5 "portento_02" "Persona extraordinaria por alguna cualidad, generalmente buena. que se expresa o se sobreentiende." 1.0 "bienquerencia_01" "Cariño o buena voluntad hacia alguien." 1.0 "sintonía_03" "Buen entendimiento entre personas debido a afinidades entre ellas." 0.5 "punto_32" "Hecho muy bueno o favorable." 1.0 "sabiduría_02" "Buen juicio o prudencia con que alguien gobierna sus actos o aconseja a otros." / 7.3. Lenguaje de consulta del grafo: Cypher Como ya se ha visto, un grafo se compone de nodos y de relaciones, que pueden tener propiedades asociadas a ellos ( Neo4j’s property graph model ). La estructura que conforman estos elementos convierte a los grafos en una herramienta altamente útil para la búsqueda de patrones. El reconocimiento de patrones, las posibilidades computacionales o la accesibilidad visual, junto con la capacidad relacional, son las características quizá más sobresalientes a la hora de trabajar con grafos. Para crear, manipular y consultar los datos del grafo, se usa un lenguaje específico al que nos hemos referido anteriormente, llamado Cypher . Cypher , el lenguaje de consulta de grafos de Neo4j , es un lenguaje declarativo y compacto para la consulta de grafos en Neo4j (Francis, et al., 2018), de la misma manera que en otros lenguajes de consulta encontramos RDF Query Language , GREMLIN, o SPARQL. Cypher está pensado para describir grafos, lo que lo hace un lenguaje bastante intuitivo para consultar un determinado patrón del grafo. Cypher , está pensado justamente para reconocer diferentes tipos de patrones, siendo un lenguaje muy expresivo, simple y lógico para analizar grafos. Este lenguaje de consulta de grafos está diseñado para ser fácilmente legible por humanos, y aunque está construido en base al inglés, su estructura es fácil de entender para cualquier otro idioma. Cypher usa una estructura que representa de forma visual los patrones que podemos extraer del grafo. Recordemos que los nodos representan entidades o conceptos, mientras que las aristas indican la relación que mantienen los nodos entre sí. Con estos dos tipos de elementos y sus características, que pasaremos a explicar a continuación, se realizan consultas sobre el grafo, a través de los filtros que se establecen en los patrones, obteniendo de ellas, entre otras muchas cosas, un subgrafo (una parte del grafo total) que encaje con los patrones indicados en la consulta. Para entender mejor cómo se crean las consultas en Cypher , se hará un recorrido por los componentes principales, y cómo se representan en ASCII para formar los patrones en ASCII. Como la mayoría de lenguajes de consulta Cypher está compuesto 254 / por cláusulas. La más simple consiste en una cláusula MATCH, donde se declara el patrón que se quiere obtener, con otra de RETURN, para devolver el resultado que se ha buscado. Por ejemplo, la representación en ASCII de un patrón simple en Cypher sería: MATCH p = (a)<-[conectado_con1]-(b)-[conectado_con2]->(c)-[conectado_con3]->(a) RETURN p limit 1 Este patrón describe un camino triangular que conectaría el nodo “b”, con “a” y con “c”. Las variables nos permiten hacer referencia al mismo nodo, y como se puede observar a continuación, reproducen en una dimensión la estructura de un subgrafo. El anterior patrón describe una estructura simple, en la que no se hace referencia a ningún dato del grafo en concreto, sino a todas las estructuras que cumplan dicho patrón, por ello se debe limitar la consulta. Para referirnos a un nodo específico, o a relaciones de un conjunto de datos, se deben determinar algunos valores de las propiedades y etiquetas de los nodos que permitan localizar la información que buscamos. ● Figura 42. Subgrafo devuelto que encaja con el patrón anterior. 255 / 7.3.1. Escritura de patrones con Cypher para las consultas Los nodos y las relaciones conforman la estructura del grafo permitiendo construir patrones y consultarlos. Como se ha mencionado, los patrones representan una de las mayores ventajas al trabajar con grafos. Cada consulta de Cypher es un patrón sobre el que Cypher intenta hacerlo coincidir con la estructura del grafo y devolver un subgrafo coincidente con la consulta. Como en la mayoría de lenguajes de programación, en Cypher hay ciertas palabras reservadas para acciones específicas en partes de la estructura de la consulta (“CREATE”, “MERGE”, “MATCH”, “DELETE”, etc). Nosotros nos centraremos en la cláusula “MATCH” (y su variante OPTIONAL MATCH), la cual fundamentalmente es la que se usará para consultar y analizar el grafo, aunque sin duda se han usado muchas otras (por ejemplo, la cláusula “DELETE” / “DETACH” se ha usado para depurar los nodos del grafo que no eran relevantes). “MATCH” es la cláusula de Cypher que permite hacer una búsqueda sobre nodos 75 y relaciones existentes, pero también sobre etiquetas, propiedades o cualquier tipo de patrón del grafo. Se puede ver la cláusula “MATCH” como el equivalente de “SELECT” de SQL ( Search Query Language ). Acompañando a la cláusula “MATCH” se debe indicar qué valores o resultados queremos que Cypher nos devuelva con “RETURN” al final de la consulta. Se puede especificar que sean solo nodos, relaciones, etiquetas, propiedades o patrones, usando las variables con las que se han instanciado en el cuerpo de la consulta. Aunque hay multitud de opciones para hacer las consultas, en este trabajo fundamentalmente se ha usado la cláusula “MATCH”, y puntualmente la variante optativa “OPTIONAL MATCH”, cuya diferencia radica en que si no se encuentran coincidencias, OPTIONAL MATCH utiliza un valor nulo ( null ) para las partes que faltan del patrón. 75 En Cypher el uso entre mayúsculas y minúsculas es indiferente (al igual que los saltos de línea) para el tipo de consultas que se va a realizar excepto en las etiquetas (por ejemplo: A, NC, V, etc.), por lo que aunque se ha intentado mantener cierta coherencia y usarlo con el objetivo de resaltar ciertas partes, como se verá en las consultas, puede aparecer de diferentes maneras: MATCH, Match, match, etc. 256 / Para consultar todas las palabras del grafo que tengan la etiqueta “NC” (sustantivo) deberemos limitar el número de resultados, ya que en el siguiente caso, estaríamos preguntando por gran parte de la base de datos, por lo tanto, es conveniente muchas veces limitar los resultados introduciendo un límite al final de la consulta (“ limit ”): ● Patrón de consulta cuyo resultado se ha limitado a uno: MATCH (a:NC) RETURN a limit 1 Para hacer una consulta sobre un nodo específico (en este caso una palabra con la etiqueta de categoría gramatical de sustantivo, y con el valor de la propiedad “termId” de “mm_palabra_01”), la consulta en Cypher sería la siguiente: ● Consulta en Cypher: MATCH (a:NC{termId: “mm_palabra_01”}) RETURN a ● Nodo devuelto por Neo4j : 257 / Con la consulta anterior simplemente hemos preguntado por el nodo con la propiedad “termId” de “mm_palabra_01”, si lo que nos interesa es conocer las relaciones que tiene “mm_palabra_01” con otras palabras, entonces deberemos hacer la consulta indicando la dirección de la relación de la siguiente manera: ● MATCH (a:NC{termId: “mm_palabra_01”})-[:RELATED_TO]->(b:NC) RETURN a, b En este caso especificar la etiqueta “NC” como filtro en la consulta correspondiente a sustantivo se podría obviar para el nodo de la relación de salida, no sería necesario ya que la propiedad “termId” del nodo en este caso la palabra queda desambiguada directamente al no existir otras opciones: ● Figura 44. Subgrafo devuelto que encaja con el patrón anterior de la consulta anterior. 258 / Si por el contrario lo que queremos obtener son las palabras que contienen “palabra_01” en su definición, simplemente modificamos la dirección de la relación, haciendo la consulta no sobre las relaciones que salen de “palabra_01” sino sobre las relaciones que tiene de entrada, es decir, las palabras en cuya definición lexicográfica se ha recuperado como asociador “palabra_01”. Este tipo de consultas pueden tener resultados muy numerosos por lo que, como se ha visto, es conveniente en muchas ocasiones limitar los resultados, introduciendo “ limit ” al final del patrón, aunque en el siguiente caso, como se puede observar, no se ha puesto límite. Displaying 268 nodes, 994 relationships ● Figura 45. Subgrafo devuelto tras la siguiente consulta: MATCH (a:NC{termId: "mm_palabra_01"})<-[:RELATED_TO]-(b:NC) RETURN a, b . 259 / Para obtener el listado de las palabras que tienen como asociador “palabra_01”, es decir, conceptos que tenían originalmente en el DUE como definidor “palabra_01”, en lugar de visualizar el subgrafo, se indica en la consulta que se devuelva la propiedad “termId” de la variable en cuestión (b), obteniéndose 268 nodos: ● MATCH (a:NC{termId: "mm_palabra_01"})<-[:RELATED_TO]-(b:NC) RETURN b.termId b.termId 260 "mm_turf_01" "mm_tropo_01" "mm_traslación_03" "mm_trac_01" "mm_trabalenguas_02" "mm_trabalenguas_02" "mm_pedigrí_01" "mm_pavada_02" "mm_tita_01" "mm_tiroriro_01" "mm_tintín_01" "mm_parónimo_01" "mm_participio_01" "mm_parte_08" "mm_tilín_01" "mm_paronomasia_01" "mm_paronimia_01" "mm_tictac_01" "mm_tic-tac_01" "mm_parasíntesis_01" "mm_paramnesia_01" "mm_tesauro_01" "mm_paragoge_01" "mm_terno_02" "mm_terminación_03" "mm_terminacho_01" "mm_palabro_01" "mm_palabrita_01" "mm_palabrería_01" "mm_palabreja_01" "mm_palabra_07" "mm_palabra_06" "mm_palabra_02" "mm_padrenuestro_01" "mm_oxímoron_01" "mm_ortografía_01" "mm_garrulería_02" "mm_oración_03" "mm_oración_03" "mm_oración_02" "mm_galimatías_01" "mm_onomatopeya_03" "mm_onomatopeya_02" "mm_onomatopeya_01" "mm_súplica_02" "mm_ojo_12" "mm_síncopa_01" "mm_sustantivo_02" "mm_octosílabo_01" "mm_ociosidad_03" "mm_clasificado_01" "mm_sufijo_01" "mm_sufijación_01" "mm_cifra_04" "mm_subordinante_01" "mm_nomenclatura_01" "mm_nombre_07" "mm_subdelirio_01" "mm_floreo_02" "mm_subacepción_01" "mm_stabat_01" "mm_spleen_01" "mm_nitos_01" "mm_soplavivo_01" "mm_nema_02" "mm_charada_01" "mm_charada_01" "mm_chacota_01" "mm_sinónimo_01" "mm_sintaxis_01" "mm_sinonimia_01" "mm_sinalefa_01" "mm_similicadencia_01" "mm_silepsis_02" / 261 "mm_sigla_02" "mm_sigla_01" "mm_evangelio_02" "mm_etimología_02" "mm_morfosintaxis_01" "mm_serenata_03" "mm_catáfora_01" "mm_monstruo_06" "mm_semicultismo_01" "mm_semema_01" "mm_semantema_01" "mm_cascote_02" "mm_sedicioso_01" "mm_saudade_01" "mm_esprit_01" "mm_sarmenticio_01" "mm_miserere_01" "mm_sanguis_01" "mm_sanctus_01" "mm_mimo_04" "mm_carga_08" "mm_espacio_04" "mm_metátesis_01" "mm_metáfora_01" "mm_metábasis_01" "mm_metaplasmo_02" "mm_mercader_01" "mm_réplica_02" "mm_régimen_03" "mm_récipe_01" "mm_escansión_02" "mm_ruego_02" "mm_rondel_01" "mm_epítome_02" "mm_epístrofe_01" "mm_enunciado_01" "mm_entrada_20" "mm_rima_02" "mm_retruécano_02" "mm_reto_02" "mm_retartalillas_01" "mm_calco_04" "mm_calambur_01" "mm_enclisis_01" "mm_malicia_04" "mm_cacatúa_01" "mm_encabezamiento_01" "mm_encabalgamiento_02" "mm_remoque_01" "mm_madama_01" "mm_macarronea_01" "mm_léxico_03" "mm_léxico_02" "mm_regionalismo_02" "mm_regaño_01" "mm_refutación_02" "mm_logomaquia_01" "mm_logogrifo_01" "mm_llamada_03" "mm_redopelo_02" "mm_bradilalia_01" "mm_eco_08" "mm_eco_08" "mm_borrufalla_01" "mm_reclamo_08" "mm_libreto_01" "mm_rección_01" "mm_liaison_01" "mm_lexicología_01" "mm_lexema_01" "mm_letra_08" "mm_lema_07" "mm_raya_07" "mm_doblete_03" "mm_disyunción_03" "mm_disfasia_01" "mm_disemia_01" "mm_discurso_04" "mm_radical_05" "mm_disartria_01" "mm_benedícite_01" "mm_bendición_02" "mm_quiquiriquí_01" "mm_batología_01" "mm_kirie_01" "mm_diccionario_01" "mm_justificación_02" "mm_quejido_01" "mm_desvergüenza_02" "mm_jitanjáfora_01" "mm_pío_01" "mm_párrafo_02" "mm_destemplado_03" "mm_pupa_02" "mm_prótesis_03" "mm_proverbio_02" "mm_desinencia_01" "mm_protesta_02" "mm_proposición_02" / 262 "mm_índice_04" "mm_intercalo_01" "mm_pronombre_01" "mm_étimo_01" "mm_inri_01" "mm_descriptor_03" "mm_descriptor_03" "mm_infijo_01" "mm_prefijo_01" "mm_prefijación_01" "mm_predicción_02" "mm_zafaduría_01" "mm_incremento_04" "mm_asperges_01" "mm_aspaviento_01" "mm_asonante_01" "mm_asonancia_01" "mm_preciosa_02" "mm_aserto_02" "mm_derivativo_02" "mm_derivativo_02" "mm_derivado_01" "mm_derivación_03" "mm_imprentilla_01" "mm_artículo_09" "mm_artículo_02" "mm_voz_12" "mm_arrumaco_01" "mm_vocabulario_01" "mm_definición_02" "mm_defensa_04" "mm_hápax_01" "mm_declinación_05" "mm_dativo_01" "mm_datismo_01" "mm_dancing_01" "mm_apócope_01" "mm_apócopa_01" "mm_polisílabo_01" "mm_polisemia_01" "mm_poleo_02" "mm_homónimo_03" "mm_homógrafo_01" "mm_homófono_01" "mm_verso_04" "mm_homografía_01" "mm_apofonía_01" "mm_verbalismo_01" "mm_verbalismo_01" "mm_cucho_02" "mm_hipónimo_01" "mm_hipérbaton_01" "mm_hipérbato_01" "mm_anáfora_02" "mm_anáfora_01" "mm_hiperónimo_01" "mm_cucamona_01" "mm_heteronimia_01" "mm_crucigrama_01" "mm_cruce_06" "mm_angliparla_01" "mm_anaptixis_01" "mm_analogía_03" "mm_analogía_02" "mm_anagrama_01" "mm_peñolada_01" "mm_corrección_05" "mm_término_22" "mm_término_21" "mm_alteza_02" "mm_groom_01" "mm_grito_01" "mm_perengano_01" "mm_almibarado_01" "mm_conversión_03" "mm_aliteración_01" "mm_contracción_02" "mm_glosario_01" "mm_consonante_02" "mm_consonancia_02" "mm_considerando_02" "mm_consagración_02" "mm_germanía_04" "mm_germanía_04" "mm_alalimón_01" "mm_confíteor_01" "mm_confíteor_01" "mm_conduplicación_01" "mm_agnusdéi_01" "mm_agnus_01" "mm_aféresis_01" "mm_afijo_01" "mm_afijo_01" "mm_composición_06" "mm_complexión_02" "mm_acusativo_01" "mm_combinación_08" "mm_acrónimo_01" "mm_acrónimo_01" / Recordemos que en la consulta anterior se ha especificado la categoría gramatical en la etiqueta del nodo, por lo que si queremos recuperar todas las palabras sin filtrar por categoría gramatical (sustantivos, adjetivos y verbos) relacionadas con “palabra_01” con aristas de entrada, habrá que eliminar el filtro de la etiqueta: ● Figura 46. Subgrafo devuelto tras la siguiente consulta: MATCH (a:NC{termId: "mm_palabra_01"})<-[:RELATED_TO]-(b) RETURN a, b 263 "mm_aclaración_02" "mm_achachay_01" "mm_acepción_01" "mm_abreviatura_01" "mm_abraxas_01" "mm_abracadabra_01" / 7.3.2. Búsquedas y consultas en Cypher Para realizar una búsqueda en el diccionario semasiológico, como se ha señalado, el usuario tiene que conocer de antemano la forma de la palabra buscada. Sin embargo, puede suceder que el usuario desconozca la palabra que busca. En esos casos los diccionarios onomasiológicos, ideológicos o de ideas afines, permiten hacer la búsqueda inversa: del significado al significante, siguiendo un orden entre relaciones de palabras, por familias, en una serie de categorías y subcategorías. En el grafo, al igual que en la versión electrónica del DUE (Buenaventura, 1996: 60), se pueden hacer búsquedas por coincidencia exacta, y también usando expresiones regulares. Este recurso resulta muy útil para recuperar palabras según los patrones que nos interesen (prefijos, sufijos, grafías determinadas, etc). De la misma manera, una vez construido el grafo, usando Cypher se pueden realizar búsquedas a partir de patrones específicos, mediante expresiones regulares: ● Consulta en Cypher para obtener una lista de 10 palabras que empiecen por “antropo-”, y que sean sustantivos (NC): MATCH ( n:NC ) WHERE n . termId =~ 'mm_antropo.*' RETURN n . termId limit 10 En el anterior patrón de consulta se ha mantenido el código de color del manual de Cypher para facilitar la lectura de los diferentes componentes implicados. Las cláusulas en azul, las etiquetas en morado, las propiedades en verde, el texto de la expresión regular en amarillo y el límite de resultados en rojo (la variable “n” toma el color del componente con el que se encuentra). 264 / ● Resultados obtenidos: Started streaming 10 records after 55 ms and completed after 55 ms. En el lenguaje, de forma episódica o debido a una patología, el cerebro puede tener dificultades en el acceso léxico (como ocurre en la afasia anómica o anomia, y en otras lesiones del área de Broca y Wernicke). En la vida cotidiana podemos desconocer o no recordar cierto término. Cuando esto ocurre de forma puntual se suele referir a este hecho como “TOT”, tip of tongue (Brown y McNeill, 1966). Es en esos casos, se puede intentar recurrir al diccionario. Sin embargo, en un diccionario general la búsqueda es en un único sentido: de la palabra al significado. La vertiente onomasiológica del DUE , compartida con los diccionarios ideológicos, permite, como planteara Julio Casares (1942), hacer más fácil el camino de la idea a la palabra y de la palabra a la idea . Los diccionarios ideológicos o el catálogo del DUE son muy útiles a la hora de “encender” significados cuyo acceso es problemático. Estos bloqueos pueden deberse a un fallo en la recuperación de la representación fonológica del término por causas relacionadas con la memoria o por simple desconocimiento. Cuando ocurre por un fallo en el acceso léxico, se suele tener una idea aproximada del término bloqueado, o se dispone de información 265 n.termId "mm_antropocentrismo_01" "mm_antropofagia_01" "mm_antropografía_01" "mm_antropolatría_01" "mm_antropología_01" "mm_antropometría_01" "mm_antropomorfismo_01" "mm_antropomorfismo_02" "mm_antropomorfismo_03" "mm_antroponimia_01" / sobre algunas de las características del mismo. Sin embargo, se hace imposible la producción del término en ese momento (Borodkin y Faust, 2012). El valor de la información de palabras afines, parasinónimos, etc, está reflejado continuamente en el lenguaje. A veces recurrimos a él voluntariamente para evitar la redundancia, otras como estrategia para desbloquear el término que se ha quedado “en la punta de la lengua”. La cuestión es que el lenguaje ofrece muchos caminos para llegar a un significado. Tanto en los modelos conexionistas (MacKay y Burke, 1990) como en los modelos seriales (Levelt, Roelofs y Meyer, 1999) se considera que están involucrados dos procesos cognitivos en paralelo, y que cuando se enciende la representación semántica se produce un fallo en la activación fonológica (Belinchón, Igoa y Rivière, 1994). Los modelos conexionistas en este aspecto recurren a la metáfora neuronal donde encontramos 76 neuronas (nodos) y axones (aristas). El peso de los nodos vendría determinado por la frecuencia y el número de conexiones en su activación. La frecuencia de activación de un nodo por lo tanto fortalecería las relaciones que mantiene una palabra (McClelland y Rumelhart, 1981), por lo que cuanto más común es una palabra, plantea menos dificultades de acceso a la información asociada. Como señala Porto Dapena, (2003: 291), el DUE nace de la simbiosis del Diccionario de la Real Academia , el Corominas (1954) y el Diccionario ideológico de Casares (1942). Cruz (2003: 291) recuerda que, junto con la información semasiológica dispuesta en orden alfabético, María Moliner ofrece la información onomasiológica mediante la incorporación de sinónimos, catálogos de referencias y agrupación por familias. Por lo tanto, se puede considerar su vertiente onomasiológica como una herramienta que permite la “reversibilidad” en las búsquedas, permitiendo la interpretación o decodificación, mientras que su vertiente semasiológica permite consultar la codificación por su ordenación alfabética. Como veremos más adelante, a partir de las relaciones del grafo se pueden usar los asociadores para trabajar con la memoria implícita en el efecto de la preparación, o cumplir una función onomasiológica. 76 Los modelos conexionistas, también conocidos como modelos de Procesamiento Distribuido en Paralelo (PDP) son un tipo de modelos de computación para diferentes aspectos de la percepción, cognición y comportamiento humano. También han servido para el desarrollo en Inteligencia Artificial de las redes neuronales artificiales. 266 / Los patrones que podemos usar para recuperar información del grafo permiten no tener en cuenta la dirección de la relación, es decir, en un grafo dirigido como el que se ha creado la dirección de la relación va del definiendum a los asociadores, que a su vez son definienda de otros asociadores: ● ( definiendum )-[relación]->(asociador); ● ()-->(); Estructura en la que no se especifica el tipo de relación ni el tipo de nodo, solo la dirección. Esto permite total flexibilidad para obtener las diferentes relaciones entre las palabras explicitando la dirección o la relación, o ninguna: ● ( palabra )<-[relación]-(palabra); Se especifica dirección y relación. ● ( palabra )-[relación]-(palabra); No se especifica dirección, solo relación. ● ()--(); estructura en la que la dirección y la relación no son determinantes. Un ejemplo de la búsqueda inversa de palabras a través del grafo creado sería el siguiente. En la consulta en Cypher se ha escrito un patrón en el que se busca un nodo (p) que esté relacionado con “abeja_01”(q), y con “sustancia_01”(r), obteniéndose el siguiente subgrafo en el que se han recuperado 7 palabras con la etiqueta de sustantivo (NC). Aunque por ahora solo se han introducido la relación “RELATED_TO” (en rojo), también se ha visualizado la relación construida posteriormente “SIMILAR” (en amarillo). 267 / ● Consulta en Cypher : Match (p:NC)-[:RELATED_TO]->(q:NC{termId:"mm_abeja_01"}), (p:NC)-[:RELATED_TO]->(r{termId:"mm_sustancia_01"}) return p,q,r limit 10 ● Figura 47. Subgrafo devuelto tras la anterior consulta. Dicha consulta se podría considerar como una búsqueda inversa, ya que lo que se está pidiendo en la consulta son palabras que estén relacionadas con “abeja_01” y con “sustancia_01”, es decir, nodos cuyos elementos del definiens contengan ambas palabras. En la imagen del subgrafo, se observa en rojo la relación “RELATED_TO” que une los nodos anteriormente indicados, con “abeja_01” y con “sustancia_01”. Ambos nodos se pueden considerar los denominadores comunes del resto. Como se ha comentado, también se pueden observar relaciones (en amarillo) que se explicarán en el capítulo: “Creación de la relación SIMILAR”, y que unen los nodos por su grado de semejanza mediante el algoritmo de Jaccard. 268 / En la tabla siguiente, se puede observar que en las definiciones lexicográficas de los elementos devueltos tras la consulta, todas tienen como denominador común “abeja_01” y “sustancia_01”. ● Consulta en Cypher para obtener las definiciones relativas a las palabras que tengan como asociadores “abeja_01” y “sustancia_01”: Match(p:NC)-[:RELATED_TO]->(q:NC{termId:"mm_abeja_01"}), (p:NC)-[:RELATED_TO]->(r{termId:"mm_sustancia_01"}) return p.termId, p.definition limit 7 ● Tabla con los resultados obtenidos con el definiens correspondiente del DUE : Started streaming 7 records after 2 ms and completed after 64 ms 269 p.termId p.definition "mm_tanque_01" "Sustancia cérea con que las abejas bañan el interior de las colmenas antes de empezar a elaborar la miel." "mm_cerumen_02" "Sustancia de color pardo segregada por ciertas abejas." "mm_ceroleína_01" "Sustancia que se encuentra en la cera de abeja." "mm_miel_01" "Sustancia dulce elaborada por las abejas." "mm_propóleos_01" "Sustancia cérea con que las abejas revisten las colmenas o vasos antes de empezar a elaborar la miel." "mm_ámago_01" "Sustancia amarga que elaboran las abejas y se encuentra en algunas celdillas de los panales." "mm_hámago_01" "Sustancia amarga que elaboran las abejas." / La complejidad que permiten los patrones escritos en Cypher para realizar búsquedas hace posible la obtención de listas de palabras que cumplan determinados requisitos. De tal manera, por ejemplo, se puede obtener una lista bastante amplia de mamíferos carnívoros, (en total 120 resultados), entre los cuales se encuentran los siguientes (ver la lista completa en el apéndice 5, tabla 28): " mm_turón_01", "mm_patialbillo_01", "mm_tasugo_01", "mm_ganeta_01", "mm_onza_05", "mm_fuina_01", "mm_chita_01", "mm_chinga_01", "mm_chacal_01", "mm_caracal_01", "mm_rámila_01", "mm_meloncillo_02", "mm_melandro_01", "mm_cangrejero_02", "mm_rezmila_01", "mm_maracayá_01", "mm_vulpeja_01", "mm_vormela_01", "mm_vivérrido_01", "mm_visón_01", "mm_triquina_01", "mm_marta_01", "mm_mapache_01", "mm_lince_01", "mm_civeta_01", "mm_tejón_02", "mm_coyote_01", "mm_tigre_01", "mm_félido_01", "mm_armiño_01", "mm_jineta_01", "mm_garduña_01", "mm_guepardo_01", "mm_leopardo_01", "mm_jaguar_01", "mm_hurón_01", "mm_mofeta_01", "mm_comadreja_01", "mm_león_01", "mm_lobo_01", "mm_zorro_01" 270 / Exceptuando tres resultados que introducen ruido (los nodos "mm_triquina_01", "mm_abazón_01" y "mm_dentición_01" tras un análisis manual), ya que no se han filtrado los resultados únicamente por la relación “RELATED_TO” que se presentan a continuación, que si bien están relacionados con los mamíferos carnívoros de diferentes maneras, no son ningún tipo de ellos (“triquina”, “abazón”, “dentición”), el resto de resultados corresponde a dicha categoría, es decir, tienen en común el nodo “mamífero” y el nodo “carnívoro” y pertenecen a dicha categoría. ● Las tres excepciones encontradas que no corresponden a la categoría de mamíferos carnívoros de la tabla 28, de un total de 120 resultados, con sus correspondientes definiciones lexicográficas del DUE , son: 271 termId definición ( DUE ) "mm_triquina_01" "Gusano nematodo de unos 3 mm de longitud. parásito de mamíferos carnívoros y omnívoros. cuya larva se enquista enrollada en los músculos." "mm_abazón_01" "Buche o bolsa de los dos que tienen dentro de la boca algunos mamíferos. particularmente algunos monos. en los que depositan los alimentos antes de masticarlos. para comerlos más tarde." "mm_dentición_01" "Acción de dentar." / En el subgrafo que se presenta a continuación se puede observar en el extremo izquierdo el nodo “mamífero_01”, cuya definición lexicográfica en el DUE es la siguiente: “Se aplica a los animales vertebrados homeotermos, con pelos sobre la piel y cuyos embriones están cubiertos de amnios y alantoides” y en el extremo derecho el nodo “carnívoro_02”, definido en el DUE de la siguiente manera: “ Se aplica a los mamíferos pertenecientes a un orden caracterizado por poseer una dentición adaptada al consumo de carne ”, y en el centro, se halla el conjunto de todos los nodos con la etiqueta de sustantivo (NC) que guardan una relación directa con ellos. ● Consulta en Cypher : MATCH (n:NC{termId:"mm_mamífero_01"})-[]-(o)-[]-(m:NC{termId:"mm_carnívoro_02"}) RETURN n, m, o ● Figura 48. Subgrafo devuelto tras la anterior consulta. 272 / 7.3.3. Búsqueda inversa y efecto de facilitación (priming) Con el efecto de facilitación, preparación, imprimación (o también primado , por 77 influencia anglosajona) se hace referencia en el marco de la memoria implícita a la influencia que posee un estímulo perceptivo en el rendimiento subsiguiente del sistema de procesamiento (Schacter, 1995: 587). La facilitación, por lo tanto, consiste en estímulos que tienen una repercusión ponderable en ciertos aspectos cognitivos percibidos con posterioridad al estímulo inicial. La preparación sirve para activar partes de nuestra memoria léxica a partir de términos cercanos que guardan cierta relación. Existen diferentes tipos de preparación, pero cuando escuchamos una palabra se encienden significados en torno a ella que no siguen una categoría específica, las palabras que nos vienen a la cabeza son de diferentes tipos según la experiencia que hayamos tenido asociada al estímulo facilitado, y según el momento en el que lo percibimos. El significado de una palabra se procesa de forma más rápida cuando está precedida por otra palabra con algún tipo de vinculación semántica, facilitando de esa manera su reconocimiento. Este vínculo que establecemos entre las palabras facilitando la aparición secuencial de la siguiente, está en íntima conexión con la generación del discurso (Hovy, 1990) por lo que resulta de enorme interés para el análisis de la generación automática (NLG). A continuación, nos detendremos en dos tipos de preparación: la semántica y la asociativa, pues tienen un correlato en el tipo de resultados obtenidos pues son fácilmente recuperables en las relaciones del grafo como asociadores. Por un lado, en la preparación semántica el estímulo facilitador y la respuesta buscada pertenecen al mismo campo semántico, compartiendo ciertas características comunes que hacen posible asociar los dos conceptos. Cuando pensamos en una palabra perteneciente a una categoría determinada podemos construir toda una lista de asociaciones motivada por dicha palabra. La preparación semántica funciona mediante la propagación de la activación de redes neuronales (Reisberg, 2007). Por ejemplo: >VERANO (estímulo de preparación semántica). < Otoño, invierno, primavera... (Posibles respuestas para las que prepara el estímulo). 77 El uso del término “primado” no está recogido en el American Psychological Association. APA. Diccionario conciso de psicología (2010), y en su lugar se recoge el término “preparación”. 273 / Por otro lado, la preparación asociativa estimula asociaciones de índole más diversa a partir de la probabilidad que tiene de aparecer junto con el estímulo que produce la preparación: >VERANO (estímulo de preparación asociativa) < Calor, vacaciones, playa... (Posibles respuestas para las que prepara el estímulo). El siguiente subgrafo muestra las relaciones de entrada de “verano_01”, donde se pueden observar nodos que podrían encajar perfectamente con la preparación semántica y asociativa: “primavera”, “estío”, “siesta”, “veraniego”, “veranear”, “camisa”, “júmel”, “cabañuelas”, “braña”, “veranadero”, “fresco”, etc. Figura 49. Subgrafo tras la consulta: match p =( n { termId : "mm_verano_01" })<--(m) return p 274 / 7.3.4. Localización de los círculos viciosos del DUE Otra de las características más elogiadas del DUE es la eliminación de los llamados “círculos viciosos” (Orera, 2009). Esto consiste en usar una palabra para definir una segunda, y usar la segunda para definir a su vez la primera. Al tratar de aproximar las distancias semánticas entre palabras, o para trabajar con ontologías, este fenómeno no es favorable, ya que puede desvirtuar las métricas de ciertos algoritmos e introducir ruido a la hora de establecer la distancia entre palabras. Seco (2003: 275) se refiere a los círculos viciosos con el siguiente ejemplo: a) En los diccionarios tradicionales, se define escalón como: ''Cada una de las partes de un tramo de escalera'' . Y escalera como: ''Serie de escalones que sirven para subir y bajar''. b) En el DUE, sin embargo el círculo vicioso se rompe definiendo escalón como: ''Cada una de las partes horizontales o con un plano horizontal que constituyen una escalera''. Y escalera como: ''Construcción formada por una sucesión de planos horizontales situados cada uno a más altura que el anterior''. La eliminación de círculos viciosos en las definiciones lexicográficas va en correspondencia con la estructura ascensional del DUE , lo que favorece enormemente el resultado obtenido en el grafo, y permite plantear vías de investigación sobre la selección automática de hiperónimos (Díaz Cama, 1998), en concreto, para la creación de ontologías semiautomáticas a partir del definiens . Aún así, como es lógico, podemos encontrar asociadores de un definiendum que tienen a su vez como asociador ese mismo definiendum , es decir relaciones recíprocas entre nodos. 275 / La consulta en Cypher para obtener, por ejemplo, sustantivos (limitados a 15) que tuviesen un asociador, y que a su vez ese asociador fuese el primer sustantivo sería: ● Match (n:NC)-[:RELATED_TO]->(z),(z:NC)-[:RELATED_TO]->(n) return n, z limit 15 ● Figura 50. Subgrafo devuelto tras la anterior consulta. 276 / De todos los grupos anteriores que podemos observar, para poder verlos con más detalle, seleccionaremos uno de los grupos obteniendo el subgrafo de los nodos relacionados con “abeja_01” y las definiciones del DUE correspondientes de los 3 nodos, donde se encuentran claramente las referencias cruzadas en cada definiens : ● Figura 51. Subgrafo con los asociadores de “abeja_01”. Started streaming 2 records after 2 ms and completed after 64 ms. 277 z.termId z.definition “mm_abeja_01” "Insecto himenóptero que produce la cera y la miel." "mm_miel_01" "Sustancia dulce elaborada por las abejas." "mm_himenóptero_01" "Se aplica a los insectos del orden de las abejas. las avispas y las hormigas. de metamorfosis complicada. masticadores y lamedores a la vez." / A partir de la definición lexicográfica del DUE se pueden observar los elementos comunes de las tres palabras anteriores: “abeja”, “miel”, e “himenóptero”, y las relaciones bidireccionales que se establecen en cada uno. A saber, en la definición de “abeja_01” encontramos las palabras: “miel”, e “himenóptero”; en la de “miel_01”, la palabra “abeja”; y en la de himenóptero, de nuevo la palabra “abeja”. Esta distribución desigual en las relaciones, que a veces produce concentraciones en las relaciones de entrada sobre ciertos nodos, entre otras cosas permite aplicar algoritmos, como los de centralidad (Green, McColl y Bader, 2012) , para determinar la “importancia” de ciertos términos. Si las anteriores consultas nos permiten localizar posibles círculos viciosos en las definiciones lexicográficas gracias al patrón de las relaciones recíprocas entre nodos, ahora pasaremos a comentar las relaciones reflexivas que se han construido en el grafo como consecuencia de que el definiendum forme parte a su vez del definiens . Por ejemplo, para consultar sobre el conjunto de las palabras cuyo definiendum aparece en el definiens formando una relación reflexiva procederemos de la siguiente manera: ● Patrón de la consulta en Cypher : MATCH (a:NC)-[:RELATED_TO]->(a:NC) RETURN a limit 300 ● Figura 52. Nodos con relaciones reflexivas. 278 / Como observamos en el subgrafo obtenido de la consulta, hay una serie de nodos (limitados a 300 resultados), que tienen un bucle, una arista que relaciona al mismo nodo; es decir, una arista donde el nodo inicial y el nodo final es el mismo (relación reflexiva). Como se puede comprobar son palabras que en el Diccionario de Uso del Español de María Moliner se encuentran tanto en el lema como en el definiens : “mm_acetilsalicílico_01”, definida como " ácido acetilsalicílico. ", “mm_acrílico_01”, cuya definición es: " se aplica a las fibras plásticas producidas a partir de la polimerización del ácido acrílico o de sus derivados" , o el término “mm_zarpanel_01", definida como “arco zarpanel”. ● Extracto del listado de términos del DUE en los que los definienda forman parte de su definiens (ver listado completo en la tabla 3 del apéndice). 279 mm_acetilsalicílico_01 mm_arménico_01 mm_bornero_01 mm_acrílico_01 mm_ascórbico_01 mm_borriquero_01 mm_acutángulo_01 mm_astático_01 mm_borriqueño_01 mm_adragante_01 mm_astático_01 mm_brabántico_01 mm_adónico_01 mm_atabernado_01 mm_bragado_02 mm_albarrana_02 mm_baquero_01 mm_bóreo_01 mm_alcaceña_01 mm_barbato_01 mm_cabelludo_01 mm_alcaico_01 mm_barbitúrico_01 mm_caldaria_01 mm_alícuota_01 mm_bayal_01 mm_campal_01 mm_amarguero_01 mm_bisiesto_01 mm_cande_01 mm_amarillo_03 mm_bitango_01 mm_candeal_01 mm_aneroide_01 mm_bitongo_01 mm_candeal_01 mm_apainelado_01 mm_blancal_01 mm_carpanel_01 mm_ardero_01 mm_bodocal_01 mm_cataléctico_01 mm_arije_01 mm_bombacho_01 mm_cañihueco_01 / 280 / CAPÍTULO 8: RESULTADOS Y ANÁLISIS En los siguientes capítulos se explican los algoritmos de las librerías de Neo4j usados sobre el grafo creado a partir del DUE de María Moliner, y se analizan los resultados obtenidos, así como las posibles aplicaciones que pueden tener los grafos tanto para la investigación como para la industria. ● Figura 53. Subgrafo tras una consulta con los resultados sin conectar. 281 / 8. Algoritmos de grafos: aplicación y estudio Las conexiones en el mundo son ubicuas, unen elementos de lo más diverso en todos los ámbitos. Poder acceder al significado que se encuentra detrás de estas conexiones nos brinda nuevas posibilidades en todos los campos de aplicación de los grafos (Needham y Hodler, 2019). En los últimos años se ha demostrado su eficacia en numerosas industrias para el manejo de grandes cantidades de datos interconectados, en áreas como la detección de fraude (Bodaghi y Teimourpour, 2018), la optimización de sistemas de recomendación (Catherine y Cohen, 2016), en la evaluación de la cohesión de grupos (Chen, Ren y Zongli Lin, 2017), o en la predicción de nuevas conexiones entre elementos en sistemas complejos. Los grafos están detrás de muchas redes sociales, de páginas de comercio electrónico, o de sistemas de seguridad informáticos. La conectividad que permite la tecnología hoy en día ofrece muchas ventajas, pero también plantea muchos retos (Castelltort y Laurent, 2017). Como todo avance, la capacidad de analizar información de forma masiva gracias a la tecnología de grafos debe ser cuidadosamente explorada y orientada hacia fines que redunden en la construcción de conocimiento puesto al servicio de la sociedad. Actualmente la mayor parte de la información que se genera no está estructurada, y prácticamente la totalidad de esa información es en lenguaje natural. Pero el lenguaje es justamente la herramienta que tiene el ser humano para estructurar la información. La lengua es un sistema especialmente adaptable a un modelo de grafos. Los algoritmos de grafos se han desarrollado notablemente debido a que están basados en matemáticas específicamente dirigidas a obtener resultados sobre las relaciones que mantienen los datos en el grafo (Kepner y Gilbert, 2011). El análisis de grafos puede destapar conexiones en sistemas complejos a gran escala imposibles de detectar para los humanos por la cantidad y complejidad de los mismos (Nisar, Fard y Miller, 2013). En el caso que nos ocupa las relaciones se han creado entre los nodos en función de la conexión que se establece entre el definiendum y los elementos de la definición lexicográfica, por lo que se ha establecido una red en la que están relacionadas unas palabras con otras de diferentes características, guardando eso sí, una cercanía semántica, asociativa o algún tipo de relación semántica específica al pertenecer en la 282 / amplia mayoría de las veces al mismo campo semántico, sobre todo en el caso de los sustantivos, donde es frecuente encontrar en el genus del definiens un hiperónimo que marque la categoría superior a la que pertenece el definiendum . Cada palabra construye unas relaciones determinadas con las palabras del definiens pero todas, obviando las funcionales, guardan una relación de cercanía semántica entre sí, en mayor o menor grado. A continuación se hará una relación de los algoritmos de las librerías de Neo4j usados en el grafo creado, y las consultas correspondientes en Cypher para analizar los resultados y observar las posibilidades que ofrecen los grafos para el estudio del lenguaje, y, en concreto, los grafos de asociación semántica para tareas de semántica computacional. 283 / 8.1. Algoritmos de similitud Los algoritmos de similitud, realizan cálculos matemáticos para determinar el grado de semejanza que existe entre conjuntos de datos (Zager y Verghese, 2007). En las librerías de algoritmos de Neo4j se pueden usar diferentes algoritmos capaces de realizar cálculos de coeficientes de similitud (Needham y Hodler, 2019). En nuestro caso, cada nodo es una palabra desambiguada, recordemos que el número cardinal pospuesto hace referencia a una determinada acepción, que forma conjuntos con los nodos a los que apunta, es decir, la dirección de la relación marca si una palabra es un asociador de otra o a la inversa. La hipótesis distribucional basada en la idea de que las palabras que aparecen en contextos similares tienen significados similares (Wittgenstein, 1953; Harris, 1954; Weaver, 1955; Firth, 1957; Deerwester, Dumais, Landauer, Furnas, & Harshman, 1990), ha permitido el desarrollo actual de la incrustación de palabras ( word embeddings ) para numerosas tareas de Procesamiento de Lenguaje Natural, y ha medido la semejanza de significado a partir de la coocurrencia de palabras, es decir, a partir de su contexto (Potts, 2013). En el cognitivismo, también la teoría de los prototipos a menudo hace uso de vectores (Sahlgren, 2008). Como se ha señalado la idea de la teoría de los prototipos es que algunos miembros de las categorías ocupan una posición central, mientras que otros ocupan una posición más periférica (Rosch & Lloyd, 1978; Lakoff, 1987). Los conceptos mantienen grados de pertenencia en las categorías, y una manera de formalizar esto es representar los conceptos como vectores, y las categorías en sí, como un conjunto de vectores (Nosofsky, 1986; Smith, Osherson, Rips, & Keane, 1988). En cualquier caso, como señalan Turney y Pantel (2018) estos vectores normalmente se han basado en una puntuación numérica conseguida a través de los resultados de cuestionarios a humanos, y no están basados en frecuencias. 284 / En este caso, las relaciones de similitud construidas entre las palabras del grafo se basan en algo quizá más evidente, pero efectivo: las palabras con definidores parecidos tienen significados parecidos, dicho de forma general, ya que en realidad no es una palabra sino cada una de las definiciones de la palabra (acepciones), lo que se está comparando (salvo las monosémicas) sino entre significados expresados en acepciones de las palabras del diccionario. Dicho de forma genérica, induce un poco a error porque la polisemia es mayoritaria. Mediante la comparación del conjunto de elementos del definiens se puede establecer una similitud entre el significado de las palabras recurriendo al axioma de la extensión (Gandy, 1956), por el que dos conjuntos son iguales si y solo si tienen exactamente los mismos elementos: , ( A,∀ B : ∀ x x A )∈ ↔ x ∈ B ⇒ A = B Esto como se ha visto, crea problemas al extrapolarlo al proceso realizado con el definiens, pero aún así nos permite mantener la idea de que dos palabras son sinónimas si tienen el mismo definiens , y que dos palabras serán parecidas (siempre y cuando no sean variantes ortográficas) en la medida en la que compartan mayor número de elementos del definiens . Este planteamiento obvia en parte la sinonimia de las palabras que se pueden 78 usar en la definición lexicográfica, y las relaciones sintácticas entre los elementos, no teniendo en cuenta las relaciones que se establecen entre ellas, pero como se verá más adelante, permite una aproximación interesante. Por ejemplo, si realizamos la siguiente consulta en la que queremos obtener los asociadores compartidos entre “ratón_01” y “rata_01”, obtenemos el siguiente subgrafo: ● Patrón de la consulta en Cypher : Match (a{termId:"mm_ratón_01"})-[r:RELATED_TO]->(b), (c{termId:"mm_rata_01"})-[s:RELATED_TO]->(b) return a,b,c, r, s limit 50 78 Nótese la ausencia del elemento sintáctico mencionado, es decir, se está simplificando, obviando las relaciones entre los elementos del definiens para centrarnos únicamente en los elementos que lo componen. 285 / ● Figura 54. Subgrafo con la intersección entre “ratón_01” y “rata_01”. En el anterior subgrafo se puede ver que “ratón_01” y “rata_01” tienen un grado de semejanza considerable, ya que comparten cuatro asociadores: “mamífero”, “roedor”, “vivir” y “casa”. Sin embargo, su semejanza no se limita únicamente a los elementos del definiens del DUE que comparten, sino que entre ambos conceptos se establecen muchas más relaciones. Si en lugar de limitar la consulta a los asociadores comunes mediante la relación “RELATED_TO”, obtenemos los nodos asociados a “ratón_01” y “rata_01” por una relación de salida (si no lo limitamos a las relaciones de salida, obtendríamos un subgrafo demasiado grande), podemos hacernos una idea del resto de relaciones que se establecen entre ambos conceptos. 286 / ● Consulta en Cypher : Match (a{termId:"mm_ratón_01"})-[r]->(b), (c{termId:"mm_rata_01"})-[s]->(d) return a,b,c,d, r, s limit 50 ● Figura 55. Subgrafo con las relaciones entre “ratón_01” y “rata_01”. En el anterior subgrafo se han colocado los nodos relativos a “ratón_01” y “rata_01” en el centro, y en la parte superior los nodos de “mamífero” y “roedor” que claramente recogen un número de relaciones de entrada superior al resto, ya que en este caso no se han limitado los tipos de relaciones en la consulta, y muchos nodos con la relación “SIMILAR_TO”, en amarillo, construida de manera automática y que se explicará en el siguiente apartado, comparten dichos asociadores (“hámster_01”, “lirón_01”, “guanta_01” y “guiguí”, todos ellos mamíferos roedores). En cuanto a los nodos con la etiqueta de adjetivo, en azul claro, vemos que “pequeño” está relacionado con 287 / “ratón” y “grande” con “rata” (del resto no se han sacado todos sus asociadores para no dificultar más la visualización). Para poder detenernos de manera más pormenorizada y visualizar más claramente aspectos mencionados en el anterior subgrafo, veamos el subgrafo con las relaciones de “ratón_01” limitando los resultados. ● Patrón de consulta en Cypher : Match (a{termId:"mm_ratón_01"})-[r]->(b) return a,b, r limit 50 ● Figura 56. Subgrafo con las relaciones de “ratón_01”. 288 / El anterior subgrafo ejemplifica la relación “SIMILAR” que se ha construido a partir de la relación RELATED_TO, en este caso, las relaciones de “ratón_01”, donde se pueden ver las conexiones construidas con sus asociadores “RELATED_TO” (en rojo) y la relación “SIMILAR” (en azul) que lo vincula con “rata_01”, a partir del algoritmo de Jaccard que veremos a continuación. Nótese que respecto a la diferencia categorial de los nodos, en esta ocasión no se ha diferenciado por colores, al no resultar pertinente y poder distraer, por lo que aparecen sustantivos, verbos y adjetivos del mismo color. Al ser un grafo dirigido, la dirección de la arista sí tiene importancia: las relaciones “RELATED_TO de salida son las correspondientes a los asociadores extraídos de la definición lexicográfica del DUE de María Moliner de cada palabra, y a la inversa, las relaciones de entrada indican que una palabra forma parte de la definición lexicográfica de otra. Como se puede apreciar por la dirección de la relación “RELATED_TO”, el nodo correspondiente a “ratón” no está asociado por la relación “RELATED_TO” a “rata”, pero “rata” sí que tiene como asociador a “ratón”. El algoritmo de Jaccard en este caso ha creado la relación “SIMILAR” entre “ratón” y “rata”, y no a la inversa. En el próximo apartado se mostrará qué algoritmos son pertinentes para sacar información útil del grafo que se ha construido, y las precauciones que se deben tener a la hora de analizar los resultados obtenidos. 289 / 8.1.1. Distancia de Jaccard El índice o coeficiente de Jaccard, nombre puesto en referencia a su creador, el botánico Paul Jaccard (1901), es un algoritmo que permite calcular la distancia entre elementos del grafo a partir de las intersecciones que estos mantienen (Needham y Hodler, 2018). El algoritmo de Jaccard mide la similitud entre 2 conjuntos de la siguiente manera: J(A,B) = |A ∩ B| / |A ∪ B| La distancia de Jaccard entre el conjunto A y el conjunto B, es igual a la cardinalidad de la intersección del conjunto A con el conjunto B, partido por la cardinalidad de la unión del conjunto A con el conjunto B . Pensemos que en el grafo que se ha construido cada palabra se puede considerar como un conjunto de palabras, cuyos elementos son los asociadores, y que de manera recursiva se componen de otros subconjuntos (es decir, un conjunto de conjuntos, o familia de conjuntos). A diferencia de otros algoritmos para medir la semejanza entre nodos, como la similaridad del coseno, la distancia euclídea, o la similaridad de Pearson, con el algoritmo de Jaccard no es necesario que las relaciones tengan pesos. Este algoritmo es usado, por ejemplo, en sistemas de recomendación para calcular la similitud entre dos elementos a partir de sus elementos comunes (Gomaa, Fahmy, 2013). En el caso que nos ocupa, el grafo construido relaciona los nodos (palabras) a través de los elementos relevantes de su definición lexicográfica (asociadores), por lo que se puede decir de manera sucinta que los resultados obtenidos al usar el algoritmo de Jaccard se calculan básicamente a partir del número de asociadores que tengan en común dos palabras, es decir, es una medida de similitud que pondera la intersección proporcional de dos conjuntos a través de sus elementos comunes. Teniendo esto en cuenta, la longitud de los elementos de la definición va a ser un parámetro que afecte 290 / directamente al resultado obtenido. En este sentido, dos palabras serán más parecidas según el número de elementos de sendas definiciones que sean compartidos entre ambos. Cuanto mayor sea la semejanza entre la definición lexicográfica de dos palabras, mayor será la semejanza que guarden entre sí. Veamos un ejemplo de lo anterior: Sea A (gallina) un conjunto formado por 3 elementos (ave, huevo, corral) y el conjunto B (golondrina) por 4 elementos (ave, huevo, volar, nido). El índice de Jaccard, o la distancia, entre “gallina” y “golondrina” sería de 0,4. A(gallina)= [ave, huevo, corral] B(golondrina)= [ave, huevo, volar, nido] J(A,B) = ∣A ∩ B∣ / ∣A∣ + ∣B∣ - ∣A ∩ B| J(A,B) = 2 / 3 + 4 - 2 J(A,B) = 2 / 5 J(A,B) = 0.4 Como vemos, el índice de Jaccard va a estar condicionado en el caso del grafo de asociación semántica, tanto por el número de elementos de la definición lexicográfica válidos, los asociadores, como por el número de elementos comunes que tengan dos palabras entre sí. Trabajar con el índice de Jaccard refuerza la necesidad de depurar las definiciones lexicográficas aquellas palabras comunes a muchos definiens que no suponen ningún elemento realmente característico, definitorio, y por lo tanto, no añaden ninguna ligazón verdaderamente útil entre las palabras que comparten esos elementos comunes. Por otro lado, también se debe tener en consideración la heterogeneidad en cuanto a la longitud de la definición lexicográfica que se encuentra en un diccionario como el DUE , y el número final de asociadores que se han recuperado de cada definiens . Se podría considerar homogeneizar la longitud de los asociadores, fijando un número de asociadores determinado para todos los conceptos. No supondría un problema técnico limitar de manera automática el número máximo de los asociadores, aunque la pérdida de asociadores valiosos que conllevaría sería considerable, y difícilmente controlable, a pesar de que se podría limitar dicha pérdida si se tiene en cuenta la estructura informacional de las definiciones lexicográficas. Pero fundamentalmente el problema de homogeneizar el 291 / número de asociadores no vendría por el límite de arriba, sino de abajo, ya que hay muchas palabras que solo tienen uno o dos asociadores, por lo que no sería una solución viable. La distancia o el algoritmo de Jaccard se puede usar en nuestro grafo tanto para determinar la distancia semántica entre dos palabra: distancia entre el concepto A y el concepto B, como para conseguir las palabras más cercanas semánticamente a un concepto determinado. A continuación veremos ambos procedimientos, y los resultados que se obtienen en diferentes ejemplos. 8.1.1.1. Distancia entre dos palabras con el índice de Jaccard Como se acaba de mostrar, con el algoritmo de Jaccard se puede determinar la distancia semántica entre dos palabras a través de los asociadores que tienen en común dos palabras. Aunque la medida de semejanza va de 0 a 1, la disimetría de la cardinalidad de los asociadores es muy alta, es decir, la longitud de las definiciones lexicográficas de donde se han extraído los asociadores es muy dispar, por lo que las medidas resultantes son muy bajas a pesar de la proximidad semántica que haya entre ellas. No obstante permite establecer gradientes de cercanía semántica entre conjuntos de palabras de forma bastante pertinente. A continuación se presenta un listado de las distancias que mantiene “perro_01” con palabras seleccionadas previamente, correspondientes a conceptos que representen diversos contrastes (animado-no animado, mamífero-no mamífero, etc), para que reflejen las diferencias en las distancias semánticas: “llave_01”, “ave_01”, "víbora_01", “delfín_01”, “gato_01”, “galgo_01”, y “lobo_01”, ordenados de mayor a menor distancia, desde “llave_01” que no guarda similitud alguna con “perro_01” (0,0), a lobo (0,0184). 292 / ● Tabla de la distancia semántica entre perro y un conjunto de palabras, ordenadas de mayor a menor distancia semántica: ● Ejemplo de la consulta en Cypher para obtener la distancia entre “perro_01” y “llave_01”: MATCH (p1:NC {termId: "mm_perro_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:NC {termId: "mm_llave_01"})-[:RELATED_TO]-(conjunto2) WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity 293 from to similarity "mm_perro_01" "mm_llave_01" 0.0 "mm_perro_01" "mm_ave_01" 0.001984126984126984 "mm_perro_01" "mm_víbora_01" 0.004524886877828055 "mm_perro_01" "mm_delfín_01" 0.005 "mm_perro_01" "mm_gato_01" 0.008130081300813009 "mm_perro_01" "mm_galgo_01" 0.009852216748768473 "mm_perro_01" "mm_lobo_01" 0.018433179723502304 / Como se puede comprobar, el índice de Jaccard no nos aporta demasiada información analizando dos elementos por separado, pero sí es interesante para establecer relaciones entre varios elementos. La información que obtenemos sobre el grado de similitud es relativa: una palabra es más o menos semejante a otra respecto a una tercera. Respecto a “perro_01”, por lo tanto, se establecería una lista del concepto más lejano al más cercano (llave < ave < víbora < delfín < gato < galgo < lobo < perro) en la que vemos rasgos opuestos que van conformando los diferentes grupos de semejanza: como “animado” y “no animado”, “mamífero marino”, frente a “mamífero terrestre”, etc. Los resultados obtenidos encajarían aceptablemente en una lógica de distancias semánticas, excepto en el caso de “galgo_01” y “lobo_01”, ya que con la distancia de Jaccard, “lobo_01” estaría más próximo a “perro_01”, que este último a “galgo_01”, es decir, por los asociadores usados en la definición lexicográfica, “lobo” está más cerca de perro, que “galgo”, hecho que se puede explicar por la descripción fisonómica de cada uno, que los aleja notablemente. Si observamos el subgrafo a continuación, con las relaciones de salida de “lobo_01”, “perro_01” y “galgo_01” (correspondientes a los tres nodos superiores respectivamente del siguiente subgrafo), se puede comprobar que, entre el enjambre de relaciones que obtenemos, que hay más relaciones compartidas entre “perro_01” y “lobo_01”, que con “galgo_01”. ● Consulta en Cypher del subgrafo: Match (a{termId:"mm_perro_01"})-[r]->(b), (c{termId:"mm_lobo_01"})-[r1]->(d), (e{termId:"mm_galgo_01"})-[r2]->(f) return a, b, c, d,e, f, r, r1, r2 limit 500 294 / ● Figura 57. Subgrafo obtenido de la anterior consulta donde se ha escrito un patrón para recuperar las relaciones de salida de “lobo_01”, “perro_01” y “galgo_01”, correspondientes a los tres nodos superiores respectivamente, donde se puede observar entre otras cosas, que el nodo más arriba a la derecha, el que corresponde a “galgo_01”, está más aislado en relación a los otros dos, “perro_01” y “lobo_01”, los cuales mantienen más relaciones y nodos comunes. 295 / 8.1.1.2. Distancia entre una palabra y el conjunto más cercano Además de computar la distancia de Jaccard entre pares de palabras, se puede obtener el conjunto de n-palabras más cercanas a una determinada palabra. Es una consulta bastante pesada, ya que el algoritmo calcula la distancia entre una determinada palabra, con cada uno de los nodos del grafo, y ordena los resultados, obteniendo así un listado de las n-palabras más cercanas a la palabra dada. Como vemos a continuación, aunque la medida de similitud, entre 0 y 1, sale baja de nuevo debido a la disparidad de la cardinalidad de origen de los elementos de la definición lexicográfica, y a los elementos comunes, los resultados que se obtienen son bastante acertados, la mayor parte podría aparecer en el catálogo del propio DUE , o en un diccionario onomasiológico o de ideas afines, si bien es cierto que cuanto más avanzamos en la lista, menor es la relación hasta que se pierde por completo. Cabe señalar que por un lado se ha ido cambiando el filtro de la categoría gramatical de los nodos que se querían recuperar, para observar el contraste en los resultados respecto a la categoría gramatical de las palabras de origen escogidas (“rey_01”, “valiente_01”, “pereza_01” y “cantar_01”), y que por otro lado, se han escogido estas 4 palabras para tener una pequeña muestra fácilmente comparable (sustantivo concreto, adjetivo, sustantivo abstracto y verbo). En el caso de “valiente” y “cantar” también se presenta una tabla adicional, limitada a 100 resultados igualmente, para poder cotejar los resultados cuando es diferente o igual la categoría gramatical entre la palabra de origen y la palabra de llegada. En las demás tablas también se han limitado los resultados a 100 para poder tener una muestra suficiente para analizar, pero se podría haber calculado la distancia respecto a cada palabra del diccionario representada en el grafo. Para facilitar la lectura se presentará un pequeño extracto y se remitirá al listado más extenso en el apéndice correspondiente. También se mostrará la definición del DUE para poder comprobar el alcance del algoritmo con las diferencias y semejanzas de los elementos del definiens de cada uno. 296 / ● Consulta en Cypher para obtener las 100 palabras más cercanas a “rey” sin restricciones de categoría gramatical: MATCH (p1:NC {termId: "mm_rey_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 ● Definición lexicográfica del DUE : “ Jefe del Estado en una monarquía”. ● Extracto de la tabla 4: las 100 palabras más cercanas a “rey_01” usando el índice de Jaccard, sin restricción por categoría gramatical. 297 from to similarity "mm_rey_01" "mm_soberano_06" 0.04046242774566474 "mm_rey_01" "mm_palacio_01" 0.037267080745341616 "mm_rey_01" "mm_dignidad_01" 0.03463203463203463 "mm_rey_01" "mm_príncipe_06" 0.034482758620689655 "mm_rey_01" "mm_servidor_01" 0.034482758620689655 "mm_rey_01" "mm_señor_01" 0.03431372549019608 "mm_rey_01" "mm_ceremonia_01" 0.02824858757062147 "mm_rey_01" "mm_real_01" 0.02702702702702703 "mm_rey_01" "mm_oficio_09" 0.02631578947368421 "mm_rey_01" "mm_tributo_01" 0.025974025974025976 "mm_rey_01" "mm_macero_01" 0.02586206896551724 "mm_rey_01" "mm_trono_01" 0.025423728813559324 "mm_rey_01" "mm_capilla_01" 0.0234375 "mm_rey_01" "mm_título_03" 0.02158273381294964 "mm_rey_01" "mm_emperador_01" 0.02112676056338028 "mm_rey_01" "mm_representación_01" 0.02030456852791878 "mm_rey_01" "mm_derecho_17" 0.0196078431372549 "mm_rey_01" "mm_palaciego_01" 0.018867924528301886 / ● Consulta en Cypher para obtener las 100 palabras más cercanas a “valiente_01” sin restricciones de categoría gramatical: MATCH (p1:NC {termId: "mm_valiente_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 10 ● Definición lexicográfica del DUE : “Se aplica a la persona capaz de acometer empresas peligrosas o de arrostrar los peligros o dificultades sin eludirlos”. ● Extracto de la tabla 5 (ver apéndice): palabras más cercanas a “valiente_01” usando el índice de Jaccard, sin restricción de categoría gramatical. 298 from to similarity "mm_valiente_01" "mm_audaz_01" 0.13157894736842105 "mm_valiente_01" "mm_bravo_01" 0.1282051282051282 "mm_valiente_01" "mm_desafíar_03" 0.1111111111111111 "mm_valiente_01" "mm_atrevido_01" 0.08163265306122448 "mm_valiente_01" "mm_emprendedor_01" 0.07894736842105263 "mm_valiente_01" "mm_temple_04" 0.075 "mm_valiente_01" "mm_animoso_01" 0.06976744186046512 "mm_valiente_01" "mm_dialogador_02" 0.05714285714285714 "mm_valiente_01" "mm_escollo_02" 0.05714285714285714 "mm_valiente_01" "mm_entrador_01" 0.05714285714285714 / En lugar de que no haya restricción por categoría gramatical, como el caso que acabamos de ver con el adjetivo “valiente” o con el sustantivo “rey”, se puede repetir la misma consulta, esta vez restringiendo la categoría gramatical con la etiqueta de adjetivo (AQ) para que coincida con la categoría de la palabra de partida (en este caso el adjetivo “valiente”). Como se puede observar en la lista presentada a continuación los resultados parece que lógicamente son más significativos, al compartir tanto el nodo de origen, como de llegada la misma categoría gramatical, en este caso la de adjetivo (AQ), el grado de relación que se percibe es mayor. ● Consulta en Cypher para obtener las 100 palabras más cercanas a “valiente_01” con restricción de categoría gramatical a adjetivos (AQ) : MATCH (p1:NC {termId: "mm_valiente_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:AQ)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 30 ● Extracto de la tabla 6: los adjetivos más cercanos a “valiente_01” con restricción de categoría gramatical a adjetivos (AQ). (Ver lista completa en el apéndice correspondiente). 299 from to similarity mm_valiente_01 mm_audaz_01 0.13513513513513514 mm_valiente_01 mm_bravo_01 0.13157894736842105 mm_valiente_01 mm_atrevido_01 0.08163265306122448 / ● Consulta en Cypher para obtener las palabras más cercanas a “pereza_01” con restricción de categoría gramatical de sustantivos (NC), y limitando los resultados a 100 : MATCH (p1:NC {termId: "mm_pereza_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:NC)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 ● Definición lexicográfica del DUE : “ Falta de ganas de moverse”. ● Extracto de la tabla 7: las 100 palabras más cercanas a “pereza_01” con restricción de categoría gramatical de sustantivos. (Ver lista completa en el apéndice correspondiente). 300 mm_valiente_01 mm_emprendedor_01 0.07894736842105263 mm_valiente_01 mm_animoso_01 0.07142857142857142 mm_valiente_01 mm_entrador_01 0.05714285714285714 mm_valiente_01 mm_hazañoso_01 0.05714285714285714 mm_valiente_01 mm_sencillo_07 0.05555555555555555 mm_valiente_01 mm_dificultador_03 0.05555555555555555 mm_valiente_01 mm_impávido_01 0.05405405405405406 / ● Consulta en Cypher para obtener las 100 palabras más cercanas a “cantar_01” con restricción de categoría gramatical de sustantivos (NC) : MATCH (p1:V {termId: "mm_cantar_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:NC)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 301 from to similarity "mm_pereza_01" "mm_abandono_01" 0.08333333333333333 "mm_pereza_01" "mm_desgana_02" 0.07142857142857142 "mm_pereza_01" "mm_dejadez_01" 0.07142857142857142 "mm_pereza_01" "mm_abulia_01" 0.06896551724137931 "mm_pereza_01" "mm_holgazanería_01" 0.06666666666666667 "mm_pereza_01" "mm_desidia_01" 0.06451612903225806 "mm_pereza_01" "mm_marro_03" 0.041666666666666664 "mm_pereza_01" "mm_perecear_01" 0.041666666666666664 "mm_pereza_01" "mm_espurrir_02" 0.041666666666666664 "mm_pereza_01" "mm_changallo_01" 0.041666666666666664 "mm_pereza_01" "mm_esperezarse_01" 0.041666666666666664 "mm_pereza_01" "mm_echado_02" 0.041666666666666664 "mm_pereza_01" "mm_empoltronecerse_01" 0.041666666666666664 "mm_pereza_01" "mm_inasistencia_01" 0.04 "mm_pereza_01" "mm_desentrenamiento_01" 0.04 "mm_pereza_01" "mm_descoordinación_01" 0.04 "mm_pereza_01" "mm_vaguería_01" 0.04 / ● Definición lexicográfica del DUE : “Emitir con la boca abriéndola y cerrándola (no silbando) sonidos musicales. formando o sin formar palabras”. ● Extracto de la tabla 8: las 100 palabras más cercanas a “cantar_01” con restricción de categoría gramatical de sustantivos (NC). (Ver lista completa en el apéndice correspondiente). 302 from to similarity "mm_cantar_01" "mm_canción_01" 0.043478260869565216 "mm_cantar_01" "mm_composición_01" 0.033444816053511704 "mm_cantar_01" "mm_rezar_01" 0.03225806451612903 "mm_cantar_01" "mm_versículo_01" 0.03076923076923077 "mm_cantar_01" "mm_componer_07" 0.030534351145038167 "mm_cantar_01" "mm_popular_01" 0.03007518796992481 "mm_cantar_01" "mm_bailar_01" 0.029585798816568046 "mm_cantar_01" "mm_poético_01" 0.02857142857142857 "mm_cantar_01" "mm_trino_01" 0.024 "mm_cantar_01" "mm_tiroriro_01" 0.024 "mm_cantar_01" "mm_músico_02" 0.023529411764705882 "mm_cantar_01" "mm_magníficat_01" 0.0234375 "mm_cantar_01" "mm_chillar_01" 0.023255813953488372 "mm_cantar_01" "mm_evangelio_03" 0.023076923076923078 "mm_cantar_01" "mm_chillido_01" 0.022900763358778626 "mm_cantar_01" "mm_hora_06" 0.022388059701492536 "mm_cantar_01" "mm_orlo_01" 0.022222222222222223 "mm_cantar_01" "mm_salmo_01" 0.022058823529411766 "mm_cantar_01" "mm_gorgorito_01" 0.021897810218978103 "mm_cantar_01" "mm_gemir_01" 0.021739130434782608 "mm_cantar_01" "mm_proferir_01" 0.02112676056338028 "mm_cantar_01" "mm_canónico_01" 0.02112676056338028 "mm_cantar_01" "mm_copla_02" 0.020833333333333332 / Como hemos hecho en las tablas anteriormente, los resultados obtenidos pueden tener un filtro de categoría gramatical para que se puedan apreciar las diferencias modificando la etiqueta de los nodos que se quieren obtener. En el siguiente caso, se ha repetido la consulta poniendo un filtro para que nos devuelva los nodos más cercanos a “cantar_01” con su misma categoría, es decir, verbos (V). ● Consulta en Cypher : MATCH (p1:V {termId: "mm_cantar_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:V)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 30 ● Definición lexicográfica del DUE : “Emitir con la boca abriéndola y cerrándola (no silbando) sonidos musicales. formando o sin formar palabras”. ● Extracto de la tabla 9: los verbos más cercanos a “cantar_01”. 303 from to similarity mm_cantar_01 mm_rezar_01 0.03184713375796178 mm_cantar_01 mm_componer_07 0.03007518796992481 mm_cantar_01 mm_bailar_01 0.029069767441860465 mm_cantar_01 mm_chillar_01 0.022727272727272728 mm_cantar_01 mm_gemir_01 0.02142857142857143 mm_cantar_01 mm_proferir_01 0.02054794520547945 mm_cantar_01 mm_tocar_01 0.01702127659574468 mm_cantar_01 mm_designar_02 0.015873015873015872 mm_cantar_01 mm_chistar_02 0.015748031496062992 mm_cantar_01 mm_deletrear_01 0.015625 mm_cantar_01 mm_rechistar_01 0.015503875968992248 mm_cantar_01 mm_gargantear_01 0.015503875968992248 / 8.1.1.3. Construcción de la relación de similitud a partir del índice de Jaccard Usando Neo4j no solo es posible calcular las distancias que acabamos de presentar, también se pueden grabar estos y otros resultados, y construir relaciones que cumplan una serie de parámetros, o escribir datos adicionales como propiedades en los nodos. En este caso, a partir del algoritmo de Jaccard se ha construido una relación que une pares de palabras de la misma categoría gramatical por su grado de semejanza. De esta manera se amplía la capacidad del grafo de relacionar palabras, en este caso, por compartir elementos de la definición lexicográfica, y por lo tanto, tener una relación de similitud mayor. Al contrario que la relación “RELATED_TO” construida a partir de los elementos del definiens , que son a su vez definienda de otros definiens , con el definiendum , la relación “SIMILAR” conecta diferentes definienda entre sí en función de los elementos del definiens que compartan, lo que permite obtener nueva información no codificada explícitamente en el DUE de María Moliner, que vendría a corresponderse en parte con la información que aportan los catálogos, que no se tuvo en cuenta para la construcción del grafo. Con la siguiente consulta en Cypher se ha construido la relación “SIMILAR” estableciendo un filtro para construir una relación entre el elemento más parecido ( topK ) de cada palabra, y también un filtro que solo cree las relaciones cuando, por ejemplo, tengan un índice mayor que 0,5 ( similarityCutoff ). A este respecto, para generar la relación “SIMILAR” en el grafo que se presenta se ha puesto un filtro muy bajo ( similarityCutoff : 0.001), ya que de no ser así, como veremos a continuación se perderían muchas relaciones interesantes y pertinentes, aunque el valor de la relación obtenido sea bajo a causa de la elevada cardinalidad de los elementos de la definición lexicográfica y su diferente longitud. Esta nueva relación (“SIMILAR”) se ha construido usando el filtro de categoría gramatical, por lo que la relación se ha construido de forma separada entre sustantivos, adjetivos y verbos. Acompañando a cada una de las consultas de Cypher se muestra el número de nodos afectados por la nueva relación, el número de relaciones creado (es decir, los pares de nodos conectados), el valor mínimo de las relaciones obtenido (Min), el valor máximo (Max), y la media de los valores de la propiedad ( score ) 304 / de la relación “SIMILAR” en cada una de las 3 categorías usadas para la nueva relación (sustantivos, adjetivos y verbos). ● Consulta en Cypher para construir la relación “SIMILAR” entre sustantivos: MATCH (p:NC)-[:RELATED_TO]->(q:NC) WITH {item:id(p), categories: collect(id(q))} as userData WITH collect(userData) as data CALL algo.similarity.jaccard(data, {topK: 1, similarityCutoff: 0.001, write:true}) YIELD nodes, similarityPairs, write, writeRelationshipType, writeProperty RETURN nodes, similarityPairs, write, writeRelationshipType, writeProperty ● Nodos afectados: 79756 ● Pares de similitud creados: 154076 ● Min: 0.0666666030883789 ● Max: 1.0 ● Media: 0.5605029935743204 ● Ejemplo de un subgrafo con las nuevas relaciones creadas (sustantivos), en el que se han obtenido los nodos más similares a “bicicleta_01”, que son “ciclomotor_01” y “rodado_05”. ● Figura 58. Subgrafo donde se aprecia la relación “SIMILAR” entre “bicicleta_01”, “ciclomotor_01” y “rodado_05”. 305 / ● Definiciones respectivas en el DUE (cabe recordar que la definición se grabó como una propiedad de cada nodo y que la conversión del formato a veces produjo errores) : ● Consulta en Cypher para construir la relación “SIMILAR” entre adjetivos: MATCH (p:AQ)-[:RELATED_TO]->(q:AQ) WITH {item:id(p), categories: collect(id(q))} as userData WITH collect(userData) as data CALL algo.similarity.jaccard(data, {topK: 1, similarityCutoff: 0.001, write:true}) YIELD nodes, similarityPairs, write, writeRelationshipType, writeProperty RETURN nodes, similarityPairs, write, writeRelationshipType, writeProperty ● Nodos afectados: 11868 ● Pares de similitud creados: 20221 ● Min: 0.11111068725585938 ● Max: 1.0 ● Media: 0.8021433360616365 306 mm_bicicleta_01 “Vehículo de dos ruedas al que hace avanzar el que va montado en él moviendo una de las ruedas mediante unos pedales. un piñón y una cadena de transmisión”. mm_ciclomotor_01 “Vehículo de dos ruedas provisto de pedales. con un motor de pequeña cilindrada y cambio automático”. mm_rodado_05 “Vehículo de ruedas”. / ● Figura 59. Ejemplo de un subgrafo con las nuevas relaciones construidas entre adjetivos, en el que se han obtenido los nodos conectados a “alegre_02” con la relación “SIMILAR”, que son: “ojialegre_01”, “deportoso_01”, “bizbirondo_01”, “gayo_02”, “alacre_01”, “jovial_02”, “godible_01” y “ledo_01”, cuya definición en el DUE tiene como elemento común entre ellos la palabra “alegre”. 307 / ● Definiciones lexicográficas respectivas del DUE : ● Consulta en Cypher para construir la relación “SIMILAR” entre verbos (V): MATCH (p:V)-[:RELATED_TO]->(q:V) WITH {item:id(p), categories: collect(id(q))} as userData WITH collect(userData) as data CALL algo.similarity.jaccard(data, {topK: 1, similarityCutoff: 0.001, write:true}) YIELD nodes, similarityPairs, write, writeRelationshipType, writeProperty RETURN nodes, similarityPairs, write, writeRelationshipType, writeProperty ● Nodos afectados: 16515 ● Pares de similitud creados: 30068 ● Min: 0.125 ● Max: 1.0 ● Media: 0.796717826143706 308 mm_alegre_02 “Se aplica a las personas y, correspondientemente a sus actos, que obran alegre, frívola o irreflexivamente o con exceso de confianza”. mm_ojialegre_01 “Se aplica al que tiene ojos de expresión alegre”. mm_deportoso_01 “Alegre o gracioso”. mm_bizbirondo_01 “Alegre o vivaracho”. mm_gayo_02 “Alegre o vistoso”. mm_alacre_01 “Alegre, animado” . mm_jovial_02 “Alegre, bromista o de buen humor”. mm_godible_01 “Alegre”. mm_ledo_01 “Alegre”. / ● Figura 60. Ejemplo de un subgrafo de las relaciones construidas entre verbos, en el que se han obtenido los nodos más similares a “escribir_01”, que en este caso son “pintar_06” y “granear_04”. ● Definiciones lexicográficas respectivas del DUE : Como se acaba de mostrar la nueva relación construida (“SIMILAR”) a partir del índice de Jaccard abre numerosas posibilidades para el estudio del léxico, y de la semántica computacional entre otros. A partir de la nueva relación de semejanza establecida se pueden agrupar las palabras, siguiendo el mismo objetivo que en el semantic clustering (Kuhn et al., 2007), o que en numerosas técnicas dentro del campo de 309 mm_escribir_01 “Representar sonidos o expresiones con signos dibujados” mm_pintar_06 “Dibujar” mm_granear_04 “Sacarle grano a la superficie de una piedra litográfica para dibujar en ella con lápiz litográfico”. / los sistemas ISR, en la clasificación de “topics” o de textos: la agrupación por analogía (Larcheveque, 2016). Dentro de las posibilidades que ofrece la nueva relación en la tipología de búsquedas por ejemplo se pueden forzar patrones específicos . El siguiente subgrafo se ha hecho una consulta a partir del nodo “letra_01”, donde se ha establecido un patrón muy largo en la consulta a partir de la relación “SIMILAR”. Se puede apreciar la alta presencia de letras griegas, cuya estructura respecto a la relación “SIMILAR” encaja con el siguiente patrón: ● Consulta en Cypher : Matchp=(a:NC{termId:"mm_letra_01"})-[:SIMILAR]->()-[:SIMILAR]-> ()-[:SIMILAR]->()-[:SIMILAR]->()-[:SIMILAR]-> ()-[:SIMILAR]->()-[:SIMILAR]->()-[:SIMILAR]->() return p limit 16 ● Figura 61. Subgrafo con la relación “SIMILAR” a partir del nodo “letra_01”. 310 / Aunque no se pueda apreciar convenientemente en el subgrafo, cada una de las relaciones que se ven (las aristas amarillas con el nombre “SIMILAR”) tienen un valor diferente en cada unión con los nodos. El resultado que observamos es uno de los posibles subgrafos que encaja con el patrón escrito, ya que el resto de resultados se han limitado para que la imagen quede más clara y se pueda apreciar mejor. La relación “SIMILAR” que se ha construido a partir de la relación de base “RELATED_TO”, enriquece considerablemente las relaciones y las posibilidades del grafo, uniendo palabras de gran cercanía semántica, que no están contempladas en la definición lexicográfica, como podemos ver a continuación en el ejemplo del subgrafo, el cual une mediante la relación “SIMILAR” a “perro_01”, con “dingo_01”, con “chachal_01” y con“fiera_01”: ● Consulta en Cypher : Match (a:NC{termId:"mm_perro_01"})-[r:SIMILAR]-(b) return a, r,b limit 10 ● Figura 62. Subgrafo con la relación “SIMILAR” a partir del nodo “perro_01”. 311 / ● Definiciones lexicográficas respectivas del DUE : - mm_perro_01 : “mamífero carnívoro cánido. doméstico. del que hay infinidad de razas muy distintas entre sí por la forma, el tamaño y el pelaje”. -mm_dingo_01 : “mamífero cánido de pelaje amarillento o rojizo, que habita en Australia”. -mm_chacal_01 : “mamífero carnívoro cánido, parecido al lobo, pero algo menor que él, que vive, a veces en manadas,en las regiones templadas de Asia y África”. -mm_fiera_01: “mamífero carnívoro de gran tamaño”. Como resultado de las relaciones “RELATED_TO” y “SIMILAR”, la red que se conforma es mucho más rica, permitiendo la asociación motivada por la intrincada red de elementos comunes entre multitud de conceptos que no estaban relacionados directamente en la definición lexicográfica. En el siguiente subgrafo, a partir del anterior de “perro_01”, se han expandido únicamente las relaciones, de entrada y de salida, de uno de los nodos con los que estaba conectado mediante la relación “SIMILAR”: el nodo “fiera_01”, es decir, el subgrafo es el resultado de visualizar los 4 nodos anteriores, más las relaciones de entrada y de salida solamente de “fiera_01” (a la derecha): ● Figura 63. Subgrafo con relaciones de “perro_01” y de “fiera_01”. 312 / El resultado de expandir, o abrir las relaciones de entrada y salida, de los nodos correspondientes al subgrafo anterior de “perro_01”, “dingo_01”, “chachal_01” y “fiera_01, como vemos en el siguiente subgrafo es bastante caótico, aun limitando los resultados. Como es lógico si pensamos en todos los conceptos que puede haber en el diccionario en el que se utilice la palabra “perro”, el nodo “perro_01” concentra un mayor número de relaciones frente al resto. En este caso el subgrafo no es el resultado de solo una consulta, sino que a partir del resultado de la consulta anterior, Neo4j permite seleccionar los nodos que se deseen y abrir todas sus relaciones (de entrada y de salida). ● Figura 64. Subgrafo en el que se han expandido ciertas relaciones a partir de los nodos “perro_01”, “dingo_01”, “chachal_01” y “fiera_01. 313 / 8.1.1.4. Propiedad (“score”) de la relación “SIMILAR” Una vez construida la relación “SIMILAR”, ya se pueden hacer consultas de la misma manera que con la relación “RELATED_TO” extraída del DUE . Además la relación se graba con una propiedad añadida en las relaciones, “score”, que guarda el valor del índice de similitud por el que se ha construido la relación. Para conocer, por ejemplo, una palabra semejante a “almendra_01” hacemos la siguiente consulta: ● Patrón en Cypher : MATCH (p1:NC {termId: "mm_almendra_01"})-[:SIMILAR]->(s1) return p1, s1 score: “SIMILAR” 0,5 (en ambas relaciones) ● Figura 65. Subgrafo en el que se muestra la relación bidirecciónal entre “almendra_01” y “arzolla_03”. La palabra que obtenemos es “mm_arzolla_03”, definida en el DUE de María Moliner como “ almendruco (fruto verde del almendro) ”, con el valor de la propiedad (score) de la relación en 0,5. Si observamos las conexiones en común, mostradas a continuación, abriendo las relaciones de “arzolla_03”, vemos que hay tanto elementos compartidos directamente, como varios elementos intermedios que son igualmente comunes. Se puede observar también que la relación entre las dos palabras es recíproca, en ambas se ha construído de manera bidireccional la relación “SIMILAR”. Aunque el algoritmo de Jaccard es simétrico, por lo que al calcular el valor de las distancias entre pares de palabras va a dar igual la dirección, la relación “SIMILAR” no va a construir relaciones simétricas siempre, pues como se ha comentado depende de los asociadores en común de unos nodos con otros. 314 / ● Figura 66. Subgrafo de “arzolla_03”. En la imagen anterior se puede ver el subgrafo obtenido entre “mm_almendra_01” y “mm_arzolla_03” con los nodos conectados, donde también se observa rápidamente que el nodo con mayor grado de entrada es su hiperónimo “fruto_01”, y también la relación “SIMILAR” (en amarillo) entre “mm_almendra_01” y “mm_arzolla_03”, y viceversa. Para obtener únicamente los asociadores en común entre ambas palabras se puede hacer la siguiente consulta. ● Patrón en Cypher : MATCH (p1:NC {termId: "mm_arzolla_03"})-[]->(c1)<-[]-(p2:NC {termId: "mm_almendra_01"}) return p1, c1, p2 315 / ● Figura 67. Subgrafo de elementos compartidos entre “almendra_01” y “arzolla_03”. En el subgrafo anterior se pueden observar los 3 elementos compartidos por “almendra_01” y “arzolla_03”, que son: “almendro_01”, “fruto_01”, y “verde_04”. También se aprecia más claramente como se ha indicado que la relación “SIMILAR” que se ha construido es recíproca entre ambos elementos, algo bastante frecuente al crearse la relación “SIMILAR”, cuya propiedad (score) tiene un valor de 0.5, y aunque es una puntuación baja, ambos conceptos de manera intuitiva sí son semejantes, por lo que la relación constituida entre ambos es bastante pertinente. La relación “SIMILAR”, pese a haberse construido de forma automática, da en general resultados con un grado de aceptabilidad alto, aunque hemos de recordar que es dependiente de los elementos del definiens , y de la desambiguación realizada, y que por consiguiente, no siempre se van a establecer de forma correcta. En el siguiente ejemplo, se ha extraído la relación “SIMILAR” de “mujer_01”, obteniéndose como resultado 316 / “hembra_02” correspondiente a la definición del DUE de "persona de sexo femenino", teniendo el valor de la propiedad “score” en 1.0, el valor posible más alto. Sin embargo, con “persona_01” establece la relación “SIMILAR” con un valor de 0,25. Hemos de subrayar así mismo, que como se ha visto, el algoritmo crea la relación entre pares de palabras con asociadores en común, y elige aquellos que tienen el valor de la propiedad por encima del corte indicado ( similarityCutoff ). ● Consulta en Cypher para obtener el nodo conectado a la relación “SIMILAR” de “mujer_01”: MATCH (p1: NC {termId: "mm_mujer_01"})-[r:SIMILAR]->(s1) return p1, r, s1 score “SIMILAR” 1.0 (en ambas relaciones). DUE_definition (mm_hembra_02): Persona de sexo femenino. ● Figura 68. Subgrafo en el que se muestra la relación entre “mujer_01” y “hembra_02”. ● Consulta en Cypher para obtener el nodo conectado a la relación “SIMILAR” de “persona_01”: MATCH (p1:NC {termId: "mm_persona_01"})-[:SIMILAR]->(s1) return p1, s1 317 / ● Figura 69. Subgrafo de “persona_01”, “singular_05”, y “roto_12”. La definición en el DUE de “singular_05” es: " individuo, persona cualquiera ." y la de “roto_12” es: "individuo (persona). " En el subgrafo se puede observar que en este caso las relaciones “SIMILAR” son disimétricas. El algoritmo ha construido la relación “SIMILAR” de “persona_01” con las 2 palabras más similares ( topK2 ), pero no las ha construido a la inversa, es decir desde “singular_05” a “persona_01”, ni desde “roto_012” a “persona_01”. Tanto la longitud de la cardinalidad de los asociadores de cada concepto, como el número de conceptos en común, determinan la relación “SIMILAR” por lo que el algoritmo no siempre construye la relación SIMILAR de manera bidireccional entre dos nodos. Como se puede apreciar en el siguiente ejemplo, tras consultar qué palabra está conectada a “árbol_01” por la relación “SIMILAR”, se obtiene “arbusto_01”. Si se consultan los asociadores en común entre estas dos palabras (a continuación del siguiente subgrafo), se descubre que comparten los asociadores: “tallo_01”, “plantar_02” y “suelo_04”. En este caso, ha habido una mala lematización con “plantar_02”, definido en el DUE como " colocar una planta, un plantón, una semilla, etc., en un terreno, para que viva y crezca en él ", cuando el asociador correcto en ambos casos hubiera sido “planta_11”, definido en el DUE como “ vegetal ”. 318 / La longitud de la definición configura las posibilidades de conectar un concepto con otro, de tal manera que, a mayor longitud, más opciones hay de realizar la desambiguación y la asociación de manera correcta, como sí ocurre con “suelo_04”, definido en el DUE como “ parte de la superficie terrestre en donde se cultivan plantas ”, pero al mismo tiempo más se diluye el valor del índice de Jaccard. ● Consulta en Cypher para obtener un nodo conectado con la relación “SIMILAR” a “árbol_01”: MATCH (p1:NC {termId: "mm_árbol_01"})-[:SIMILAR]->(s1) return p1, s1 limit 1 score: “SIMILAR” 0,5 ● Figura 70. Subgrafo de la relación “SIMILAR” entre “árbol_01” y “arbusto_01”. ● Consulta en Cypher para obtener los asociadores en común entre “árbol_01” y “arbusto_01”: MATCH (p1:NC {termId: "mm_árbol_01"})-[]->(c1)<-[]-(p2:NC {termId: "mm_arbusto_01"}) return p1, c1, p2 319 / ● Figura 71. Subgrafo con los asociadores en común entre “árbol_01” y “arbusto_01”. A pesar de que la relación “SIMILAR” al haberse creado sobre todo el conjunto de palabras no siempre va a tener un resultado óptimo, es una vía adicional para relacionar palabras por su contenido semántico. Además, la puntuación o valor de la propiedad (“score”) asociado a la relación “SIMILAR” permite hacer consultas a partir de un valor específico, filtrando la relación “SIMILAR” para que se ajuste a nuestro objetivo. Por ejemplo, podemos obtener un listado de pares de palabras que tengan un valor en la relación “SIMILAR” específico, o filtrar por cualquier palabra. En el apéndice se muestran una serie de tablas de similitud: las palabras más cercanas a “hombre” (tabla 10), a “mujer” (tabla 11), un listado de pares de sustantivos cuya puntuación de la relación se encuentra en el límite inferior (tabla 12), un listado de pares de palabras que tienen una puntuación en la relación de similitud de 0,6 (tabla 13), y un listado de pares de palabras que tienen un valor en la relación de similitud de 1,0 (tabla 14). A continuación se muestra otro pequeño ejemplo poniendo como condición que el valor ( score ) de la relación de similitud sea 0,8, limitado a 8 resultados. 320 / ● Consulta en Cypher , con las correspondientes definiciones del DUE : MATCH (p1:NC)-[r:SIMILAR{score:0.8}]->(s1) return p1.termId, s1.termId,r.score limit 8 321 from to score " mm_arroyada_02 " "Surco hecho en la tierra por el agua de lluvia". " mm_zanja_02 " "Surco hecho en la tierra por el agua". 0.8 " mm_arsenito_01 " "Sal formada por la combinación del ácido arsenioso con una base". " mm_arseniato_01 " "Sal formada por la combinación del ácido arsénico con una base". 0.8 " mm_artimaña_01 " "Engaño hábil con que se consigue una cosa". " mm_treta_02 " "Medio hábil en que hay algo de engaño o trampa. que se emplea para conseguir una cosa". 0.8 " mm_asolapar_01 " "Poner cosas superpuestas. de modo que cada una cubra sólo parte de la que está debajo". " mm_montar_06 " “Ponerse o estar una cosa de modo que cubre con su borde parte de otra”. 0.8 " mm_atalvina_01 " "Talvina: gachas hechas con leche de almendras." " mm_talvina_01 " "Gachas hechas con leche de almendras". 0.8 " mm_avampiés_01 " "Parte de la bota o polaina que cubre el empeine." " mm_sobreempeine_01 " "Parte de la polaina que cubre el empeine". 0.8 " mm_azar_01 " "Supuesta causa de los sucesos no debidos a una necesidad natural ni a una intervención intencionada. humana o divina". " mm_casualidad_01 " "Supuesta causa de los sucesos no debidos a una necesidad natural ni a una intervención intencionada". 0.8 " mm_añero_01 " "Se dice de la planta. particularmente del árbol que alterna un año de mucho fruto con otro de poco". " mm_vecero_01 " "Se aplica a las plantas que alternan los años de mucho fruto con los de poco o nada". 0.8 / Se ha de tener en cuenta que en la consulta se hace un filtro por el valor exacto (“score”) de la relación, en el caso anterior de 0,8. Como se observa en el resto de tablas donde se ha filtrado por diferentes valores, el tipo y la calidad de relaciones que se obtienen varía tanto por el filtro del valor que se marca, como por la longitud y elementos de la definición lexicográfica asociados a estos. Como se ha visto, el índice de Jaccard se ve muy afectado por la longitud de los asociadores de cada palabra. La heterogeneidad de la cardinalidad de los asociadores extraídos de la definición lexicográfica es un problema para extraer resultados que estén distribuidos proporcionalmente en función del valor de la relación “SIMILAR”. Idealmente como se ha comentado, esto se podría modificar normalizando el número de asociadores de cada concepto, igualando todos a un determinado número, pero en la práctica no es una tarea viable. Cuanto más se suba el valor de la relación (“score”), intuitivamente deberían salir palabras más cercanas a la sinonimia (Blondel et al., 2004). Y así es hasta cierto punto. Sin embargo, se ha de tener en cuenta que la relación “SIMILAR” se ha creado sobre todos los conceptos, con el concepto que guarda mayor grado de semejanza en relación con los asociadores, por lo que en definiciones con uno o dos asociadores se puede haber creado la relación mediante alguna palabra poco definitoria, común entre los dos conceptos. Por otro lado, hay conceptos que realmente están definidos por los mismos asociadores por lo que el valor de semejanza es máximo (1.0) y corresponden con sinónimos: 322 from to score " mm_abarraganarse_01 " "Ponerse a vivir juntos un hombre y una mujer como si estuvieran casados, sin estarlo". " mm_acollarar_06 " "Ponerse a vivir juntos un hombre y una mujer como si estuvieran casados, sin estarlo". 1.0 " mm_abestializado_01 " "Bestial o brutal". " mm_abestiado_01 " "Bestial o brutal". 1.0 " mm_ahijado_02 " "Una persona respecto de su padrino o madrina". " mm_alevo_01 " "Una persona con respecto a su padrino o madrina". 1.0 / La anterior consulta se ha realizado poniendo como filtro que la puntuación de la relación entre los nodos fuese 1.0, de tal manera que devuelve nodos que lo cumplan (se puede elegir que sea de manera aleatoria, por orden alfabético, estableciendo un límite de resultados, etc). Aunque como se ha señalado anteriormente, no se han tenido en cuenta las marcas, en el futuro se podrían establecer como filtros adicionales para controlar más los resultados que vemos (marcas cronológicas, marcas diatópicas, etc). Otra de las observaciones que se debe tener en cuenta, es respecto a los antónimos. Son conceptos que muchas veces guardan un número alto de asociadores en común con su correspondiente antónimo, y por lo tanto, en muchos casos se puede observar que la relación “SIMILAR” se ha creado a partir de estos, como por ejemplo: “alborotar_01” - “acallar_03”, o “aerobiosis_01” - “anaerobiosis_01”: SIMILAR (score 0,5): aerobiosis_01: "Vida en presencia de oxígeno libre". anaerobiosis_01: "Vida en ausencia de oxígeno libre". ● Figura 72. Relación “SIMILAR” creada entre “aerobiosis_01” - y“anaerobiosis_01” . La nueva relación, “SIMILAR”, amplía la capacidad del grafo para reunir conceptos que mantienen una relación de cercanía semántica. Aunque hay que considerar que la relación “SIMILAR” puede no construirse de manera bidireccional entre dos conceptos, con mayor frecuencia como es lógico, encontramos esa bidireccionalidad 323 / como se puede apreciar tanto en el anterior subgrafo como en el siguiente que se presenta a continuación: ● Figura 73. Subgrafo con diferentes relaciones a partir del nodo “acallar_01”. A pesar de esto, como vemos a continuación en el ejemplo, las conexiones que se establecen mantienen un grado alto de relaciones pertinentes. En el siguiente subgrafo se pueden observar las relaciones establecidas en torno a “adolescencia_01” mediante la relación “RELATED_TO” (en rojo), y la relación “SIMILAR” (en amarillo): “adolescente_01”, “niño_01”, “achaparrado_01”, “_01”, “lolita_01”, “efebo_01”, “muchacho_01”, “doncel_02”, “pavo_02”, “persona_01” y “niñez_01”. 324 / ● Figura 74. Subgrafo con diferentes relaciones a partir del nodo “adolescencia_01”. 8.1.2. Algoritmo de Superposición El índice o coeficiente de Superposición (también llamado coeficiente de Szymkiewicz-Simpson) es otro algoritmo de similitud que mide la superposición entre dos conjuntos de datos, en este caso, entre dos conjuntos de palabras (Vijaymeena, y Kavitha, 2016). Este algoritmo se encuentra disponible en la biblioteca de Neo4j , y al igual que con la distancia de Jaccard, con la que está muy relacionado, y con los siguientes algoritmos que se van a ver, se han seguido las instrucciones del manual de Neo4j y el libro de Mark Needham & Amy E. Hodler, Graph algorithms, Practical Examples in Apache Spark & Neo4j , (Needham & Hodler, 2019). El algoritmo de similitud de 325 / Superposición ( Overlap similarity algorithm ) calcula la superposición existente entre dos conjuntos a partir del coeficiente de Superposición. Como se ve a continuación, tiene muchas similitudes con el índice Jaccard, pero en lugar de dividir entre la suma de la cardinalidad de los 2 conjuntos contemplados, se divide entre la cardinalidad del conjunto más pequeño. El algoritmo de similitud de Superposición mide la similitud entre 2 conjuntos a partir del tamaño de la intersección existente entre los conjuntos, dividido por el conjunto de menor tamaño, o lo que es lo mismo: La distancia de Superposición entre el conjunto A y el conjunto B es igual a la cardinalidad de la intersección del conjunto A con el conjunto B, partido por la cardinalidad del menor conjunto: S(A,B) = (|A ∩ B| )/ (min|A ∪ B|) Este algoritmo también es usado en sistemas de recomendación para calcular la similitud entre dos elementos a partir de sus elementos comunes (Vijaymeena, y Kavitha, 2016). Si recuperamos el ejemplo usado en el apartado anterior vemos las diferencias con Jaccard en el valor obtenido: Sea A (gallina) un conjunto formado por 3 elementos (ave, huevo, corral) y el conjunto B (golondrina) por 4 elementos (ave, huevo, volar, nido). El índice de Superposición, o la distancia, entre “gallina” y “golondrina” sería de 0,66 frente al resultado de 0,4 que obtenemos con el índice de Jaccard. A(gallina)= [ave, huevo, corral] B(golondrina)= [ave, huevo, volar, nido] J(A,B) = (∣A ∩ B∣) / (min(∣A∣,∣B∣)) J(A,B) = 2 / min(3 , 4) J(A,B) = 2 / 3 J(A,B) = 0.666 326 / La distancia de similitud de Superposición se puede usar igualmente en nuestro grafo, tanto para determinar la distancia semántica entre dos palabras, como para conseguir las palabras más cercanas semánticamente a una dada, como se ha visto con el anterior algoritmo. En este caso, el índice sirve para calcular la superposición existente entre dos conjuntos de datos, lo que permite identificar, cuando los conjuntos están equilibrados, subconjuntos y superconjuntos de manera automática. Traducido a las definiciones lexicográficas y al conjunto de asociadores de cada palabra, puede señalar la relación de hiponimia-hiperonimia, aunque como es lógico, la desigualdad en los conjuntos de asociadores no permite obtener siempre buenos resultados en ese aspecto. A continuación veremos ambos procedimientos y los resultados que se obtienen. 8.1.2.1. Distancia entre dos palabras con el índice de Superposición Al igual que con el algoritmo de Jaccard se puede determinar la distancia semántica entre dos palabras a través de los asociadores que tienen en común dos palabras. En este caso el índice que sale es algo más alto, ya que no tiene tanto impacto en el cálculo la longitud de los asociadores. Comparando con las distancias vistas entre “perro_01”, con “llave_01”, “ave_01”, "víbora_01", “delfín_01”, “gato_01”, “galgo_01”, y “lobo_01” se mantiene el mismo orden de menor a mayor cercanía respecto a los valores obtenidos con el algoritmo de Superposición, pero con diferentes valores. ● Ejemplo de consulta para obtener las distancias entre “perro_01” y “lobo_01”: MATCH (p1:NC {termId: "mm_perro_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:NC {termId: "mm_lobo_01"})-[:RELATED_TO]-(conjunto2) WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.overlap(p1Conjunto, p2Conjunto) AS similarity 327 / ● Resultados obtenidos: Started streaming 1 records after 158 ms and completed after 158 ms. 8.1.2.2. Distancia entre una palabra y el conjunto de palabras más cercanas Al igual que con el índice de Jaccard, además de calcular distancias entre pares de palabras, se puede obtener el conjunto de n-palabras más cercanas a una determinada palabra. Para obtener una referencia respecto a los resultados anteriores con Jaccard, vemos cómo la calidad de los resultados obtenidos es inferior en algunos aspectos, aunque es difícil evaluarlos en conjunto. En la siguientes tablas se muestran extractos de la tabla con el listado de las n-palabras más cercanas a las palabras de los ejemplos analizados anteriormente con el índice de Jaccard (“rey_01”, “valiente_01”, “pereza_01” y “cantar_01”). Para ver el listado completo de cada uno de los ejemplos, en el que se han sacado las 100 palabras más cercanas se puede consultar la tabla correspondiente del apéndice. 328 from to similarity "mm_perro_01" "mm_lobo_01" 0.11764705882352941 ● Consulta en Cypher : MATCH (p1:NC {termId: "mm_rey_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:NC)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.overlap(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 / ● Extracto de la tabla de similitud del índice de Superposición a partir de la palabra “valiente_01” sin filtro de categoría gramatical (ver el listado completo en la tabla 16). 329 ● Extracto de la tabla de similitud del índice de Superposición a partir de la palabra “rey_01”, restringido a sustantivos (ver el listado completo en la tabla 15). from to similarity mm_rey_01 mm_realdad_01 1.0 mm_rey_01 mm_visorrey_01 1.0 mm_rey_01 mm_hacendeja_01 1.0 mm_rey_01 mm_czarina_01 1.0 mm_rey_01 mm_czar_01 1.0 mm_rey_01 mm_piloto_02 1.0 mm_rey_01 mm_hacienda_03 1.0 mm_rey_01 mm_jefatura_01 0.666666666 mm_rey_01 mm_jacobita_03 0.666666666 mm_rey_01 mm_curia_02 0.5 mm_rey_01 mm_centurión_01 0.5 mm_rey_01 mm_cheche_01 0.5 mm_rey_01 mm_bwana_01 0.5 from to similarity "mm_valiente_01" "mm_diablo_03" 1.0 "mm_valiente_01" "mm_desgraciado_04" 1.0 "mm_valiente_01" "mm_entender_08" 1.0 "mm_valiente_01" "mm_guapeza_02" 1.0 "mm_valiente_01" "mm_hacedor_01" 1.0 "mm_valiente_01" "mm_escarabajo_05" 1.0 / ● Extracto de la tabla de similitud del índice de Superposición a partir de la palabra “valiente_01” con filtro de categoría gramatical de adjetivo (ver el listado completo en la tabla 17). 330 "mm_valiente_01" "mm_quídam_01" 1.0 "mm_valiente_01" "mm_chévere_04" 1.0 "mm_valiente_01" "mm_enrollar_07" 1.0 "mm_valiente_01" "mm_empachado_03" 1.0 "mm_valiente_01" "mm_despejar_06" 1.0 "mm_valiente_01" "mm_sarmentador_01" 1.0 "mm_valiente_01" "mm_tener_17" 1.0 "mm_valiente_01" "mm_vanistorio_02" 1.0 from to similarity mm_valiente_01 mm_descerrajado_01 1.0 mm_valiente_01 mm_bagual_02 1.0 mm_valiente_01 mm_falible_02 1.0 mm_valiente_01 mm_camicace_02 1.0 mm_valiente_01 mm_trasnochado_03 1.0 mm_valiente_01 mm_exagerador_01 1.0 mm_valiente_01 mm_feróstico_02 1.0 mm_valiente_01 mm_repolludo_01 1.0 mm_valiente_01 mm_desgarrado_02 1.0 mm_valiente_01 mm_postinero_01 1.0 mm_valiente_01 mm_guapote_01 1.0 mm_valiente_01 mm_berrinchudo_01 1.0 / ● Extracto de la tabla de similitud del índice de Superposición a partir de la palabra “pereza_01”, con filtro de categoría gramatical de sustantivos (ver el listado completo en la tabla 18). ● Extracto de la tabla de similitud del índice de superposición a partir de “cantar_01” con filtro de sustantivos (ver el listado completo en la tabla 19). 331 from to similarity mm_pereza_01 mm_echado_02 1.0 mm_pereza_01 mm_marro_03 1.0 mm_pereza_01 mm_desprevención_01 1.0 mm_pereza_01 mm_secatura_01 1.0 mm_pereza_01 mm_desencuentro_02 1.0 mm_pereza_01 mm_impericia_01 0.5 mm_pereza_01 mm_incivismo_01 0.5 mm_pereza_01 mm_inasistencia_01 0.5 mm_pereza_01 mm_desabor_01 0.5 mm_pereza_01 mm_vaguería_01 0.5 mm_pereza_01 mm_desaseo_01 0.5 mm_pereza_01 mm_tumbón_03 0.5 mm_pereza_01 mm_inadecuación_01 0.5 from to similarity mm_cantar_01 mm_tono_10 1.0 mm_cantar_01 mm_semicultismo_01 1.0 mm_cantar_01 mm_silbador_01 1.0 mm_cantar_01 mm_cantadera_01 1.0 mm_cantar_01 mm_bocacha_01 1.0 mm_cantar_01 mm_sueno_01 1.0 mm_cantar_01 mm_saetero_03 1.0 mm_cantar_01 mm_cantada_01 1.0 / ● Extracto de la tabla de similitud del índice de Superposición a partir de “cantar_01” con otros verbos (ver el listado completo en la tabla 20). 332 mm_cantar_01 mm_bocaza_01 1.0 mm_cantar_01 mm_justificación_02 1.0 mm_cantar_01 mm_apócopa_01 0.666 mm_cantar_01 mm_rugido_02 0.666 mm_cantar_01 mm_son_01 0.666 mm_cantar_01 mm_dueto_01 0.666 mm_cantar_01 mm_trino_01 0.6 mm_cantar_01 mm_milonguero_01 0.5 from to similarity mm_cantar_01 mm_chuflar_01 1.0 mm_cantar_01 mm_esdrujulizar_01 1.0 mm_cantar_01 mm_salmodiar_01 1.0 mm_cantar_01 mm_designar_02 1.0 mm_cantar_01 mm_rechiflar_01 1.0 mm_cantar_01 mm_tatarear_01 1.0 mm_cantar_01 mm_chiflar_02 1.0 mm_cantar_01 mm_chistar_02 0.666 mm_cantar_01 mm_vaporear_02 0.5 mm_cantar_01 mm_radiar_01 0.5 mm_cantar_01 mm_bichofear_01 0.5 mm_cantar_01 mm_mascar_02 0.5 mm_cantar_01 mm_boquear_01 0.5 mm_cantar_01 mm_gorgoritear_01 0.5 mm_cantar_01 mm_escupir_02 0.5 mm_cantar_01 mm_discordar_01 0.5 mm_cantar_01 mm_asonar_03 0.5 / 8.1.2.3. Construcción de una relación a partir del índice de Superposición A partir del algoritmo de Superposición se ha construido una relación que une pares de palabras por su grado de semejanza. Con la siguiente consulta en Cypher se ha construido la relación “NARROWER_THAN” estableciendo un filtro para construir una relación entre los 2 elementos más parecidos ( topK= 2) de cada palabra, y también un filtro, que aunque bajo, solo cree las relaciones cuando tengan un índice mayor que 0,001 ( similarityCutoff ). Esta relación se ha construido usando también el filtro de categoría gramatical, por lo que la relación se ha construido de forma separada entre sustantivos, adjetivos y verbos. ● Consulta en Cypher para construir la relación “NARROWER_THAN” entre sustantivos: MATCH ( a:NC ) - [ :RELATED_TO ] -> ( b:NC ) WITH { item:id ( b ), categories: collect ( id ( a ))} as userData WITH collect ( userData ) as data CALL algo . similarity . overlap ( data , { topK: 2 , similarityCutoff: 0 . 01 , write:true }) YIELD nodes , similarityPairs , write , writeRelationshipType , writeProperty , min , max , mean , stdDev , p25 , p50 , p75 , p90 , p95 , p99 , p999 , p100 RETURN nodes , similarityPairs , write , writeRelationshipType , writeProperty , min , max , mean , p95 Esta nueva relación contribuye a ampliar la capacidad del grafo de relacionar palabras de manera diferente a como lo hace la relación “SIMILAR”, señalando relaciones de semejanza igualmente, pero poniendo el acento en la jerarquía que podríamos encontrar en el cono léxico , es decir conceptos más generales (que se encontrarían más arriba del árbol, y que suelen representar hiperónimos y holónimos), y conceptos más específicos (que se encontrarían más abajo, en las hojas del árbol, y que suelen coincidir con hipónimos o merónimos). Como se ha indicado anteriormente no siempre se da esta 333 / correspondencia debido a que las definiciones lexicográficas, que son la base indirecta de las relaciones usadas para esta nueva relación, no son del todo sistemáticas ni homogéneas: ○ Figura 75. Subgrafo con relaciones “NARROWER_THAN”. El objetivo que se busca es establecer más conexiones pertinentes entre palabras por su semejanza semántica, y comparar los resultados con la anterior relación establecida. En los siguientes subgrafos mostrados se puede observar cómo la relación permite unir conceptos que aumentan la capacidad del grafo de relacionar palabras con una motivación de contenido semántico. El nombre dado a la relación en este caso se ha dejado por defecto el del manual de Cypher , ya que el índice de Superposición, como se ha comentado, además de servir como medida de similitud, cuando se usa en taxonomías y ontologías en las que encontramos datos estructurados y más equilibrados que los que se han usado para crear el grafo, permite determinar cuál de los elementos del par sobre los que se calcula, es más amplio o más restringido. A continuación presentamos algunos subgrafos en los que se ha creado la relación “NARROWER_THAN” que contemplan dicha característica. Por ejemplo, respecto a la relación “tipo de” (hipónimo-hiperónimo) se puede apreciar que “olmo_01”, “chopo_01” y “arce_01” son conceptos que forman parte del concepto “árbol_01”, en este caso sus hipónimos, o también vemos que se refleja la relación “parte de” entre el merónimo “tronco” y su holónimo “árbol”: 334 / ● Consulta en Cypher : Match(n:NC{termId:"mm_árbol_01"})-[r:NARROWER_THAN] -(m:NC{termId:"mm_olmo_01"}) return n,m,r ● Figura 76. Subgrafo con la relación “NARROWER_THAN”.. ● Consulta en Cypher : Match(n:NC{termId:"mm_árbol_01"})-[r:NARROWER_THAN] -(m:NC{termId:"mm_chopo_01"}) return n,m,r ● Figura 77. Subgrafo con la relación “NARROWER_THAN”. ● Consulta en Cypher : Match(n:NC{termId:"mm_árbol_01"})-[r:NARROWER_THAN] -(m:NC{termId:"mm_arce_01"}) return n,m,r ● Figura 78. Subgrafo con la relación “NARROWER_THAN”. 335 / ● Consulta en Cypher : Match(n:NC{termId:"mm_árbol_01"})-[r:NARROWER_THAN] -(m:NC{termId:"mm_tronco_01"}) return n,m,r ● Figura 79. Subgrafo con la relación “NARROWER_THAN”. Aunque muchas veces la relación construida de manera automática es capaz de establecer esta relación jerárquica de forma correcta entre hipónimos-hiperónimos, y merónimos-holónimos, como se aprecia en los anteriores subgrafos con “chopo_01”, “olmo_01”, “arce_01” y “tronco_01”, o igualmente en el ejemplo precedente de “escribir_01” donde la relación (“NARROWER_THAN”) indica que “paréntesis_01” es un concepto que forma parte, o es más restringido, que “escritura_01”, y a su vez esta de “signo_01”, no siempre se ha establecido de forma indiscutible o directamente correcta. Por ejemplo, entre “bosque” y “árbol” vemos cómo la relación se ha creado a la inversa, aunque con una puntuación baja, ya que hay muchas más definiciones que contienen la palabra “árbol” que “bosque”: ● Figura 80. Subgrafo con la relación “NARROWER_THAN”. Si obtenemos todas las relaciones “NARROWER_THAN” (en color azul) , y mostramos todas las relaciones entre los nodos, de forma general podemos obtener los hipónimos-hiperónimos y merónimos-holónimos con resultados satisfactorios, aunque como mostraremos más adelante también conceptos fuera de esta relación. 336 / ● Consulta en Cypher conectando resultados (mostrando todas las relaciones de los nodos implicados): Match (n:NC{termId:"mm_árbol_01"})<-[r:NARROWER_THAN]-(m:NC) return n,m,r ● Figura 81. Subgrafo a partir de “árbol_01” con la relación “NARROWER_THAN” y sus nodos conectados. Para facilitar la visualización de los 394 resultados obtenidos, se presenta a continuación un pequeño extracto limitado a 15 resultados, con la correspondiente definición del DUE : 337 / 338 termId m.definition mm_cafeto_01 Árbol rubiáceo de regiones tropicales y subtropicales. de pequeño tamaño. con hojas opuestas siempre verdes y brillantes en cuyas axilas se desarrollan las flores. blancas y muy aromáticas; mm_chirimoyo_01 Árbol anonáceo cuyo fruto es la chirimoya. mm_cigua_01 Árbol lauráceo de las Antillas. de tronco maderable. mm_copaiba_01 Copayero (árbol leguminoso). mm_cúpula_02 Involucro que cubre total o parcialmente algunos frutos. como la bellota. la avellana o la castaña. mm_encina_01 Árbol fagáceo de hojas pequeñas coriáceas con los bordes con puntas que pinchan. que da como fruto bellotas. que se emplean como pasto para el ganado de cerda. y son dulces y comestibles para las personas en algunas variedades; mm_guinda_02 Cierta fruta semejante a la cereza, pero más ácida. mm_loganiáceo_01 Se aplica a las plantas de la misma familia que el haba de San Ignacio y la nuez vómica. que son árboles. arbustos o bejucos trepadores de hojas opuestas. flores solitarias o en inflorescencias y frutos en cápsula o baya; mm_lúcuma_01 Fruto del lúcumo de sabor ácido. que se guarda. como las serbas, algún tiempo entre paja antes de comerlo. mm_molle_02 Otro árbol también anacardiáceo del Ecuador y el Perú. con cuyos frutos se fabrica una especie de chicha. mm_moráceo_01 Se aplica a las plantas de la familia de la morera y el moral que son árboles y arbustos. principalmente de zonas tropicales y subtropicales. caracterizados por poseer savia con látex; mm_moringáceo_01 Se aplica a las plantas de la familia del ben o moringa. que son pequeños árboles distribuidos principalmente por la región mediterránea y norte de África hasta la India; mm_ramnáceo_01 Se aplica a las plantas de la familia del azufaifo. que son principalmente árboles y arbustos cosmopolitas, a veces espinosos. con hojas alternas u opuestas. flores pequeñas en inflorescencias en cima y el fruto en drupa o nuez; mm_rosáceo_02 Se aplica a las plantas de la familia del rosal silvestre o de la mayoría de los árboles frutales. que son hierbas. arbustos y árboles de todas las regiones del mundo. los cuales tienen flores de cinco pétalos y cinco sépalos. mm_serbal_01 Árbol rosáceo que produce las serbas. mm_tronco_01 Tallo de una planta cuando es leñoso; / Con otras categorías gramaticales, como se puede ver en los verbos a continuación en las relaciones entre “cejar_01”, “desamparar_01” y “apartar_07” con “abandonar_01”; y “deprimir_01” con “abatir_01”, los resultados observados no son siempre tan buenos como en los sustantivos, pero aún así mantienen cierta lógica. En el siguiente subgrafo merece la pena observar el contraste con los sustantivos y las relaciones que se han construido, donde tampoco se ve claramente una estructura que marque claramente el grado de generalidad y especificidad representado en la relación “NARROWER_THAN” (en color verde) pero sí mantiene cierto sentido que “desvalimiento” y “dejadez” sean un tipo de abandono, al igual que “abatido” sea algo más específico que el concepto “deprimido”: ● Consulta en Cypher donde se ha obtenido de forma aleatoria relaciones entre verbos y sustantivos: Match (n:NC)-[r:NARROWER_THAN]-(m), (a:V)- [b:NARROWER_THAN] -(c) return n,m,r,a,b,c limit 11 ● Figura 82. Subgrafo aleatorio con relaciones “NARROWER_THAN”. 339 / Recuperando el ejemplo de las relaciones de entrada “NARROWER_THAN” de “árbol_01”, y limitando los resultados de la búsqueda, podemos ver que dicha relación no siempre construye de forma automática relaciones de hiponimia-hiperonimia y meronimia-holonimia, y tampoco de forma general entre un concepto más restringido y otro más amplio, ya que depende de la relación “RELATED_TO”, que depende a su vez de la propia definición lexicográfica de María Moliner. Sin embargo, se puede apreciar que las relaciones que establece por lo general marcan conceptos más generales frente a los más específicos. A fin de cuentas el genus suele ser compartido en la definición por todos los subtipos de una clase. En los casos donde falla el algoritmo, el desequilibrio que se produce viene motivado por la naturaleza y el número de conceptos contemplados en el diccionario, que a su vez son reflejo importante de la realidad de una lengua. En este caso, por ejemplo, en el DUE podemos encontrar numerosos tipos de árboles que se han constituido como nodos en el grafo (mm_cafeto_01, mm_chirimoyo_01, mm_cigua_01, mm_copaiba_01, mm_encina_01, y un largo etcétera; frente a un número más reducido de tipos de bosque (como: “catinga”, “taiga”, “algaba”, “algaide”, “manigua”, etc), lo que provoca que la relación se establezca en la dirección contraria, como hemos visto anteriormente. Además, entre las relaciones de entrada de “árbol_01” que lo conectan con la relación” NARROWER_THAN” con otros conceptos, observamos: familias de árboles: “lauráceo_01”, “ramnáceo_01”, “anonáceo_01”, etc; otros tipos del reino vegetal como “planta_01”, o “arbusto_01”; partes del árbol como “tronco_01”, partes de los frutos como “cúpula_02” y “guinda_02”, y multitud de tipos de árbol a los que ya se ha hecho referencia: “serbal_01”, “molle_02”, etc. 340 / ● Consulta en Cypher para observar más detalladamente dichas relaciones y nodos: Match (n:NC{termId:"mm_árbol_01"})-[r:NARROWER_THAN]-(m) return n,m,r limit 15 ● Figura 83. Subgrafo con las relaciones “NARROWER_THAN” incidentes en el nodo “árbol_03”. Si volvemos a repetir la misma consulta en Cypher pero limitando los resultados en un punto medio (el primer ejemplo no se limitó y se mostraron los 394 resultados con todas las relaciones conectadas, y en el último se limitó a 15) se puede observar que se mantiene el tipo de relaciones ya aludidas, aunque también encontramos otras que tienen una relación diferente, si bien es cierto, están de alguna manera asociadas con árbol, como: “sombra_01”, “hilera_01”, “fila_01” o “fila_04”, mucho más alejada, definida en el DUE como “madero de 26 a 30 palmos de longitud. de canto y tabla casi iguales entre sí”; también otros conceptos nada relacionados como: “balata_01”, “espacio_02”, o “ratón_01”; y algún error debido a la desambiguación, ya que el algoritmo de Superposición ha construido la relación tanto con “rama_02”, definido en el DUE como “ cada división o 341 / subdivisión del tronco o tallo de una planta ”, como con “rama_03”, definida como “ cada parte de otras cosas que se subdividen de modo semejante a como lo hacen las ramas de los árboles ”, y el caso de “tronco_01” definido c omo “tallo de una planta cuando es leñoso” y tronco_02 definido como “parte de un cono o una pirámide al que falta el vértice”. ● Consulta en Cypher : Match (n:NC{termId:"mm_árbol_01"})-[r:NARROWER_THAN]-(m) Return n,m,r limit 90 ● Figura 84. Subgrafo con relaciones “NARROWER THAN” de “árbol_01” 342 / Por último, en el subgrafo que se presenta a continuación se pueden observar todas las relaciones de “árbol_01” con la relación “NARROWER_THAN” sin limitar los resultados, en total como se ha indicado 396 nodos, pero esta vez visualizando únicamente la relación “NARROWER_THAN”. Aunque no sea posible apreciar el nombre de los nodos sirve para poder hacerse una idea del número de relaciones construidas en el grafo, (tan solo se muestran las relaciones pertenecientes a “árbol_01” y la consulta se ha realizado sin conectar los resultados entre sí para que quede más claro visualmente, y se pueda apreciar cómo a partir de del definiens es posible recuperar una información muy interesante para construir nuevas relaciones. ● Consulta en Cypher mostrando todas las relaciones “ NARROWER_THAN” de “árbol_01” : Match (n:NC{termId:"mm_árbol_01"})<-[r:NARROWER_THAN]-(m:NC) return n,m,r ● Figura 85. Subgrafo con las relaciones “NARROWER THAN” de “árbol_01” 343 / 8.1.2.4. Propiedad “ score ” de la relación “NARROWER_THAN” La relación “NARROWER_THAN” construida a partir del algoritmo de Superposición relaciona palabras fundamentalmente en función de los elementos comunes entre dos conjuntos. En principio puede parecer que no aporta demasiado respecto a la relación anterior ya construida en el grafo (las relaciones “SIMILAR” y “RELATED_TO”). Sin embargo, como veremos en el apartado siguiente, algunos de los algoritmos que se van a usar se pueden ver beneficiados por el refuerzo que se ha producido al solaparse varias de estas relaciones entre pares de nodos, y también al crearse una red mucho más tupida que relacione pertinentemente los conceptos de los nodos. La relación “NARROWER_THAN” también se ha escrito con una propiedad (score) que permite filtrar por el rango de ésta. En el siguiente subgrafo se puede comprobar cómo se solapan algunas relaciones, reforzándose el vínculo entre los correspondientes pares de nodos de “arzolla_03”, definido en el DUE como “ almendruco (fruto verde del almendro) ”, “almendruco_01”, “almendra_01” y “fruto_01”: ● Consulta en Cypher : MATCH (p1:NC {termId: "mm_almendra_01"})-[:NARROWER_THAN ]->(s1),(p1:NC {termId: "mm_almendra_01"})-[:SIMILAR]->(s2) return p1, s1, s2 ● Figura 86. Subgrafo con relaciones de “almendra_01”. 344 / La cantidad de las relaciones del grafo han aumentado considerablemente sin afectar de forma negativa a la calidad de las mismas. Por ejemplo, en el siguiente subgrafo se pueden comprobar las relaciones de entrada con la relación “NARROWER_THAN” (en color verde) establecidas con la palabra “almendra_01”, donde se han establecido numerosas conexiones entre las que destaca la presencia de otros frutos: “piñón_05”, “maní_01”, “avellana_01”, “cacahuete_01”, etc, o de postres que tienen como ingrediente principal la almendra: “carquiñol_01”, “talvina_01”, etc., los cuales, ya no están relacionados por ser elementos del definiens de un determinado definiendum (relación “RELATED_TO”), sino, principalmente, por tener un número alto de asociadores comunes. ● Consulta en Cyhper : Match (n:NC{termId:"mm_almendra_01"})<-[r:NARROWER_THAN]-(m) return n,m,r limit 15 ● Figura 87. Subgrafo con relaciones de “almendra_01”. 345 / A continuación se muestra una comparación entre el valor mínimo de las relaciones obtenido ( Min ), el valor máximo ( Max ), y la media de los valores de la propiedad ( score ) de la relación “NARROWER_THAN” (NT), con respecto a la relación “SIMILAR”, en sustantivos, adjetivos y verbos de forma separada, apreciándose un valor medio ligeramente mayor en adjetivos y verbos en la relación “SIMILAR” (SIM), y a la inversa con los sustantivos. Se han sacado estos valores porque son indicativos de las relaciones creadas y contrastan en las diferencias entre las tres categorías contempladas: ● Sustantivos ● Adjetivos ● Verbos 346 min(r.score) max(r.score) avg(r.score) NT 0.011627906976744186 SIM 0.0666666030883789 1.0 1.0 0.5644673979013398 0.5605029935743204 min(r.score) max(r.score) avg(r.score) NT 0.010101010101010102 SIM 0.1111111111111111 1.0 1.0 0.497594555800274 0.7756608541348784 min(r.score) max(r.score) avg(r.score) NT 0.010101010101010102 SIM 0.125 1.0 1.0 0.46198776079625636 0.7967149353240821 / En el siguiente subgrafo se puede ver un ejemplo de las tres relaciones construidas (“RELATED_TO”, “SIMILAR” y “NARROWER_THAN”), a partir del siguiente patrón de consulta sobre la palabra “ave_01”, donde se pueden apreciar las diferencias y los matices que se establecen entre cada una de estas tres relaciones. ● Consulta en Cypher : MATCH p= (o:NC{termId:"mm_ave_01"})-->(n) return p ● Figura 88. Subgrafo con diferentes relaciones del nodo "ave_01" . 347 / 8.1.3. Distancia euclidiana El algoritmo de la distancia euclidiana se aplica en el estudio de grafos y es útil para obtener la similitud entre dos conjuntos de datos (Keil, 1988). La distancia euclidiana es un algoritmo simétrico que permite evaluar la similitud entre todos los pares de elementos que conforman un grafo midiendo la línea recta entre dos puntos en un espacio n-dimensional mediante la siguiente fórmula : 79 Este algoritmo es bastante usado en sistemas de recomendación (Arora et al., 2014), ya que son muy adecuados para identificar elementos que tengan características similares, a partir de una puntuación o una valoración. Sin embargo, para el grafo creado no es el algoritmo más adecuado. Las relaciones más abundantes y con mayor interés son las sacadas directamente del DUE (la relación “RELATED TO”), que no están ponderadas, y dicha distancia necesita que lo estén. Por lo tanto, los resultados, aunque interesantes, son muy desiguales, ya que la distancia se calcula sobre dimensiones que no estén vacías. Al ejecutar la función es necesario que las listas contengan elementos superpuestos, y que los vectores tengan la misma longitud. ● Consulta en Cypher : MATCH (p1:NC{termId: 'mm_palabra_01'})-[l1:SIMILAR]->(c) MATCH (p2)-[l2:SIMILAR]->(c) WHERE p2 <> p1 RETURN p1.termId AS from, p2.termId AS to, algo.similarity.euclideanDistance(collect(l1.score), collect(l2.score)) AS similarity ORDER BY similarity ASC 79 Imagen tomada de la documentación de Neo4j (9/06/2019): https://neo4j.com/docs/graph-algorithms/current/labs-algorithms/euclidean/ 348 / Como ejemplo, a continuación se presenta la distancia euclidiana retomando los ejemplos de los que nos hemos servido con anterioridad para poder cotejar las diferencias, con “rey_01”, “pereza_01”, y “valiente_01”, y sus respectivas palabras más cercanas, donde se puede apreciar la limitación cualitativa y cuantitativa respecto a los algoritmos presentados anteriormente. En el caso de “rey_01” solo se obtienen 4 resultados vagamente relacionados con la idea de “rey”: Las definiciones respectivas en el DUE nos permiten comprobar la diferencia con los resultados obtenidos usando el índice de Jaccard o con el índice de Superposición. Cualitativamente, aunque mantienen cierto tipo de relación (“ámel”, por ejemplo en relación con “rey”, contemplado en la definición de “amelía” mostrada a continuación, se define en el DUE como: “ Entre los árabes, jefe de un distrito” ), no son comparables a las listas presentadas en las tablas correspondientes (tablas 4 y 15), y cuantitativamente, el número de resultados de las anteriores fue limitado en la consulta a 100, no como en este caso, donde solo se han obtenido los 4 resultados mostrados: 349 from to distance mm_rey_01 mm_amelía_01 0.0 mm_rey_01 mm_taha_01 8.333.333.333.333.330 mm_rey_01 mm_sobreguarda_02 23.570.226.039.551.500 mm_rey_01 mm_piloto_02 23.570.226.039.551.500 termID definición ( DUE ) mm_amelía_01 Distrito gobernado por un ámel. mm_taha_01 Territorio, comarca o distrito. mm_sobreguarda_02 Guarda que es jefe de otros. mm_piloto_02 Segundo jefe de un buque mercante. / El valor de similitud en la distancia euclídea es mayor cuanto más se acerque al cero, como se puede observar en los ejemplos. En el caso de “rey_01” como se ha comentado, se han obtenido únicamente los 4 resultados presentados, sin limitarlos en la consulta; y en el caso de “pereza_01”, se presenta un extracto de los 48 resultados totales, donde también se observa un gran solapamiento en las distancias (0,0), es decir están todas a la misma distancia. Recordemos que con la distancia calculada con el índice de Jaccard se puede calcular sobre todo el conjunto del grafo. 350 from to distance mm_pereza_01 mm_pecado_02 0.0 mm_pereza_01 mm_deslealtad_01 0.0 mm_pereza_01 mm_primilla_01 0.0 mm_pereza_01 mm_desapostura_01 0.0 mm_pereza_01 mm_descuido_01 0.0 mm_pereza_01 mm_desagradecimiento_01 0.0 mm_pereza_01 mm_desabastecimiento_01 0.0 mm_pereza_01 mm_desentrenamiento_01 0.0 mm_pereza_01 mm_desmesura_01 0.0 mm_pereza_01 mm_descontrol_01 0.0 mm_pereza_01 mm_desapteza_01 0.0 mm_pereza_01 mm_desaplicación_01 0.0 mm_pereza_01 mm_desaseo_01 0.0 mm_pereza_01 mm_desdón_01 0.0 mm_pereza_01 mm_desapercibimiento_01 0.0 mm_pereza_01 mm_desgalichadura_01 0.0 / ● Distancia calculada sin filtro de categoría gramatical, con la palabra “valiente_01” (mostrados los 12 resultados devueltos): 351 from to distance mm_valiente_01 mm_resguardo_05 0.0 mm_valiente_01 mm_audaz_01 0,16.666.666.666.666.600 mm_valiente_01 mm_bravo_01 0,16.666.666.666.666.600 mm_valiente_01 mm_sacrificio_05 0,16.666.666.666.666.600 mm_valiente_01 mm_comprometido_01 0,16.666.666.666.666.600 mm_valiente_01 mm_fichado_02 0.5 mm_valiente_01 mm_capotazo_02 0.5 mm_valiente_01 mm_peligrosidad_01 0.5 mm_valiente_01 mm_cambímbora_01 0.5 mm_valiente_01 mm_especialista_03 0.5 mm_valiente_01 mm_expuesto_03 0.5 mm_valiente_01 mm_incertidumbre_01 0.6 / ● Distancia calculada con filtro de categoría gramatical para verbos (V), con la palabra “cantar_01”. (Extracto de los primeros resultados ordenados por distancia de un total de 40 devueltos): 352 from to distance mm_cantar_01 mm_chistar_02 0.0 mm_cantar_01 mm_arrullar_01 0.0 mm_cantar_01 mm_sonreír_01 0.0 mm_cantar_01 mm_ronronear_01 0,16.666.666.666.666.600 mm_cantar_01 mm_trinar_01 0,23.570.226.039.551.500 mm_cantar_01 mm_gemir_01 0,23.570.226.039.551.500 mm_cantar_01 mm_ajear_01 0,23.570.226.039.551.500 mm_cantar_01 mm_arruar_01 0,23.570.226.039.551.500 mm_cantar_01 mm_arrancar_10 0.25 mm_cantar_01 mm_gruir_01 0.5 mm_cantar_01 mm_graznar_01 0.5 mm_cantar_01 mm_crascitar_01 0,7.071.067.811.865.470 mm_cantar_01 mm_refulgir_01 0,7.071.067.811.865.470 mm_cantar_01 mm_relinchar_01 0,7.071.067.811.865.470 "mm_cantar_01" "mm_hablar_01" 0.7071067811865476 "mm_cantar_01" "mm_himplar_01" 0.7071067811865476 "mm_cantar_01" "mm_gluglutear_01" 0.7071067811865476 "mm_cantar_01" "mm_maullar_01" 0.7071067811865476 "mm_cantar_01" "mm_berrear_01" 0.7071067811865476 "mm_cantar_01" "mm_balar_01" 0.7071067811865476 "mm_cantar_01" "mm_fosforecer_01" 0.7071067811865476 "mm_cantar_01" "mm_pronunciar_01" 0.7071067811865476 / 8.2. Algoritmos de rutas óptimas o caminos más cortos Los algoritmos de detección de rutas óptimas y búsqueda sirven para encontrar los caminos más cortos entre pares de nodos en el grafo, es decir, el recorrido de menor coste (Floyd, 1962). El cálculo de caminos más cortos (Shortest Path algorithm) es fundamental para el análisis de grafos y tienen múltiples aplicaciones (Goldberg, Andrew y Harrelson, 2005). Los algoritmos de detección de rutas óptimas y búsqueda se aplican fundamentalmente en transporte para crear recorridos entre dos puntos, o entre lugares físicos, pero igualmente tienen un uso extendido en logística, diseño eficiente, robótica, etc. El popularizado problema de los “seis grados de separación” (Watts y Strogatz, 1998) también se basa en este tipo de algoritmos, en el que se busca el camino más corto entre dos personas en una red social. ● Ejemplo de una consulta en Cypher en el que se conectan dos nodos aleatorios por un camino muy largo: ● Figura 89. Ejemplo de un subgrafo a partir de un camino aleatorio. 353 / Los algoritmos del camino más corto o rutas óptimas calculan el recorrido más rápido entre un par de nodos en función del número de saltos necesarios, es decir, el número de nodos que debe recorrer el algoritmo, o del valor del peso de las aristas que unen los nodos. La búsqueda de caminos más cortos es considerada uno de los problemas clásicos de grafos. A mediados del siglo XX (Dijkstra, 1959) ganó popularidad añadida con los “enrutamientos adaptativos” para buscar segundas opciones cuando la primera ruta está bloqueada (Cherkassky et al., 1996). Extrapolándolo a nuestro grafo, nos puede dar una idea de la distancia entre 2 conceptos en función de los nodos intermedios que los separan, por lo que también es aplicado en algoritmos de similitud. Cuanto más cerca estén dos nodos, es decir, cuanto menor sea el camino que recorrer para llegar de un nodo a otro, mayor será el grado de semejanza que mantengan entre sí. Hay multitud de algoritmos para encontrar caminos entre nodos, que fundamentalmente se basan a su vez en otros dos algoritmos (Papamanthou, 2004): -Búsqueda en anchura ( Breadth First Search, BFS ): Atraviesa una estructura de árbol explorando los vecinos más cercanos primero, y luego sus subniveles vecinos (Lee, 1961). BFS se usa más comúnmente como base para otros algoritmos, por ejemplo, la ruta más corta, componentes conectados, o para algunos algoritmos de centralidad. -Búsqueda en profundidad ( Depth First Search, DFS ): Atraviesa una estructura de árbol explorando en profundidad cada rama antes de pasar a la vecina. Este algoritmo fue creado por Charles Pierre Trémaux (1859) y popularizado por Hopcroft y Tarjan (1973). Dentro de la categoría de algoritmos de camino más corto o rutas óptimas, existen numerosos algoritmos, entre los cuales se pueden encontrar implementados en las librerías de Neo4j los siguientes: ● Shortest Path (algo.shortestPath) ● Single Source Shortest Path (algo.shortestPath.deltaStepping) 354 / ● All Pairs Shortest Path (algo.allShortestPaths) ● A* (algo.shortestPath.astar) ● Yen’s K-shortest paths (algo.kShortestPaths) ● Minimum Weight Spanning Tree (algo.spanningTree) ● Random Walk (algo.randomWalk) Cada uno de estos algoritmos son variantes para encontrar caminos diferentes entre nodos. A continuación, se muestra una consulta con el algoritmo de Dijkstra (1959), uno de los algoritmos más usados para calcular rutas óptimas, que no necesita pesos en las relaciones, en el que se han calculado las distancias entre “podenco_01” y “mamífero_01” usando la implementación de Neo4j (shortestpath): MATCH ( start:NC { termId: 'mm_podenco_01' }), ( end:NC { termId: 'mm_mamífero_03' }) CALL algo . shortestPath . stream ( start , end , 'cost' ) YIELD nodeId , cost RETURN algo . asNode ( nodeId ). termId AS palabra , cost Los resultados obtenidos en el cálculo del camino más corto entre “podenco_01” y “mamífero_01” muestran cómo la distancia entre este par de nodos es de 2 saltos. Es lógico que como podemos observar se obtenga la relación “es un” (hiponimia-hiperonimia) entre los 3 nodos conectados por el camino más corto: Started streaming 3 records after 1 ms and completed after 320 ms. 355 termId cost "mm_podenco_01" 0.0 "mm_perro_01" 1.0 "mm_mamífero_01" 2.0 / En el siguiente ejemplo, se ha consultado la distancia más corta entre “podenco_01” y “animal_03”, definido en el DUE como. “organismo vivo que posee sensibilidad, movilidad propia y alta capacidad de respuesta”. Como limitación se ha indicado que, como máximo, el camino devuelto debe estar a 7 saltos. Aunque en el ejemplo también se haya establecido una cadena de hiponimia-hiperonimia de forma automática (“podenco” -> “perro” -> “cánido” -> “animal”), no siempre resulta ser el camino más corto entre un hipónimo con un hiperónimo, pero abre una posible línea de investigación muy interesante, en concreto para la estructuración automática de conocimiento, en sistemas ISR, etc.: ● Consulta en Cypher : OPTIONAL MATCH (a: NC {termId: "mm_podenco_01" }), (b: NC {termId: "mm_animal_03"} ) , p = shortestPath((a)-[*..7]->(b)) RETURN p ● Figura 90. Cadena de hipónimos-hiperónimos. Como es lógico la distancia entre “podenco” y el verbo “ladrar” es mucho menor que la distancia entre “podenco” y un verbo típicamente humano como “reflexionar”. En la siguiente tabla se puede ver que únicamente hay dos saltos de distancia entre el sustantivo “podenco” y el verbo “ladrar” mientras que entre “podenco” y “reflexionar” hay cinco saltos, lo que permite usar el algoritmo, como ya se ha comentado, para establecer distancias semánticas entre conceptos. Es decir, el sustantivo “podenco” está más cerca o tiene mayor semejanza con el verbo “ladrar” que con el verbo “reflexionar”. 356 / ● Consulta en Cypher para encontrar el camino más corto entre “podenco_01” y “ladrar_03”: MATCH ( start:NC { termId: 'mm_podenco_01' }), ( end:V { termId: 'mm_ladrar_01' }) CALL algo . shortestPath . stream ( start , end , 'cost' ) YIELD nodeId , cost RETURN algo . asNode ( nodeId ). termId AS palabra , cost ● Resultado devuelto por Neo4j tras la consulta anterior: Started streaming 3 records after 2 ms and completed after 263 ms. Si realizamos la consulta entre “perro_01” y la tercera acepción del verbo “ladrar”, “ladrar_03”, definido en el DUE como: "dirigir o dedicar a alguien insultos o críticas ásperas", la distancia lógicamente es mayor (cuatro saltos en lugar de dos) y el recorrido que realiza el algoritmo es diferente: 357 termId cost "mm_podenco_01" 0.0 "mm_perro_01" 1.0 "mm_ladrar_01" 2.0 n.termId cost "mm_podenco_01" 0.0 "mm_perro_01" 1.0 "mm_grifón_02" 2.0 "mm_áspero_02" 3.0 "mm_ladrar_03" 4.0 / En la siguiente tabla se puede observar cómo a pesar de que se ha acortado el camino por un error en la lematización de “perro_01”, en lugar de “perra_01”, que se encuentra como definidor en el definiens de “petera_02”, cuya definición lexicográfica en el DUE de María Moliner es “ perra o rabieta: deseo violento de una cosa expresado con lloro o violencia” , las distancias que se establecen con el algoritmo entre los nodos sirve para establecer referencias en las distancias semánticas entre las palabras. ● Consulta en Cypher para encontrar el camino más corto entre “podenco_01” y “reflexionar_01” (5 saltos de distancia): MATCH ( start:NC { termId: 'mm_podenco_01' }), ( end:V { termId: 'mm_reflexionar_01' }) CALL algo . shortestPath . stream ( start , end , 'cost' ) YIELD nodeId , cost RETURN algo . asNode ( nodeId ). termId AS palabra , cost Started streaming 6 records after 2 ms and completed after 401 ms. 358 palabra cost "mm_podenco_01" 0.0 "mm_perro_01" 1.0 "mm_petera_02" 2.0 "mm_expresar_01" 3.0 "mm_pensar_01" 4.0 "mm_reflexionar_01" 5.0 / Para encontrar caminos entre dos conceptos, las relaciones construidas “SIMILAR” y “NARROWER_THAN”, ofrecen posibilidades complementarias para recorrer el grafo, y añadidas a relación RELATED_TO enriquecen enormemente las posibilidades con dicho algoritmo. Además, las restricciones en la etiqueta del nodo (como sustantivo, adjetivo o verbo), en el tipo de relación, en la dirección de la relación, etc., condicionan las posibilidades del recorrido del algoritmo para recorrer diferentes caminos. ● Patrón de consulta para obtener el camino más corto (camino de 4 saltos) entre “sonrisa_01” y “tortuga_01”, sin restringir la búsqueda (por la dirección de las relaciones por donde pasa, por el tipo de relación entre los nodos, la categoría gramatical, etc): MATCH (start:NC{termId:'mm_sonrisa_01'}), (end:NC{termId:'mm_tortuga_01'}) CALL algo.shortestPath.stream(start, end, 'cost') YIELD nodeId, cost RETURN algo.asNode(nodeId) (sonrisa_01)--> (sonreir_01)--> (músculo_01)--> (animal_03) <--(tortuga_01) ● Figura 91: Camino entre los nodos “sonrisa_01” y “tortuga_01”. En el siguiente subgrafo se ha hecho una consulta para obtener el camino más corto entre “sonrisa_01” y “dios_01”, sin restringir la dirección de las relaciones por donde pasa, ni el tipo de relaciones, etc. En este caso, el camino pasa por “nepente_02” ( νηπενθής, “ que disipa el dolor ” ), definido en el DUE como: "licor que los dioses 80 empleaban para curarse los dolores y las heridas y que también producía olvido, como las aguas del Leteo ". 80 Definición consultada en Inter Clássica, Universidad de Murcia (consultado el 3/9/2019): http://interclassica.um.es/didactica/etimoclassica/palabras/n/nepente/(ver)/1 359 / ● Consulta en Cypher para obtener el camino más corto entre dichas palabras (camino de 3 saltos): MATCH (start:NC{termId:'mm_sonrisa_01'}), (end:NC{termId:'mm_dios_01'}) CALL algo.shortestPath.stream(start, end, 'cost') YIELD nodeId, cost RETURN algo.asNode(nodeId) (dios_01) <--(nepente_02)--> (dolor_01) <--(sonrisa_01) ● Figura 91. Camino entre los nodos “dios_01” y “sonrisa”. Si comprobamos todas las definiciones lexicográficas del DUE de María Moliner, se puede comprobar que todos los nodos reflejan ese elemento común del definiens excepto en el caso entre “dolor” y “sonrisa”, ya que dicha relación se ha creado con el algoritmo de Superposición, y no están conectados por la relación “RELATED_TO” construida directamente a partir del definiens del DUE : 360 ● dios_01 “Ser sobrenatural al que se rinde culto” . ● nepente_02 “Licor que los dioses empleaban para curarse los dolores y las heridas y que también producía olvido, como las aguas del Leteo ". ● dolor_01 “Sensación que causa padecimiento en alguna parte del cuerpo”. ● sonrisa_01 “Gesto de sonreír”. / ● En la siguiente consulta en Cypher se muestra un ejemplo en el que el nodo de partida y el nodo de llegada pertenecen a categorías gramaticales diferentes (camino de 4 saltos): “sonrisa_01” (sustantivo) y “simple_01” (adjetivo): MATCH (start:NC{termId:'mm_sonrisa_01'}), (end:AQ{termId:'mm_simple_01'}) CALL algo.shortestPath.stream(start, end, 'cost') YIELD nodeId, cost RETURN algo.asNode(nodeId) (sonrisa_01)--> (dolor_01) <--(analgésico_01)--> (sustancia_01) <--(simple_01) ● Figura 92. Camino entre los nodos “sonrisa_01” y “simple_01”. Para ejemplificar las posibilidades de los caminos más cortos variando algunos parámetros o estableciendo algunas restricciones, a continuación se van a mostrar los subgrafos de los caminos más cortos entre diferentes palabras, forzando algunas características del recorrido. Por ejemplo, en la siguiente consulta se ha usado una variante de un patrón en Cypher para poder seleccionar un recorrido sin restricción del número de nodos intermedios, ni tipo de relación, ni dirección de la relación, entre el nodo de inicio “ simbiosis_01” y el nodo de llegada “terremoto_01”. ● Consulta en Cypher (camino de 4 saltos): MATCH (from: NC {termId:"mm_simbiosis_01"}), (to: NC {termId:"mm_terremoto_01"}) , path = shortestPath((from)-[*]-(to)) RETURN path (simbiosis_01)--> (especie_01) <--(endémico_01)--> (zona_01) <--(terremoto_01) ● Figura 93. Camino entre los nodos “simbiosis_01” y “terremoto_01”. 361 / En el camino mostrado a continuación entre los dos nodos anteriores, el nodo de inicio “simbiosis_01” y el nodo de llegada “terremoto_01”, esta vez se ha restringido la dirección de las relaciones hacia “simbiosis_01” (relación de llegada). Como es lógico, la restricción en la dirección de las relaciones provoca que el recorrido sea mucho más largo al reducir las posibilidades del algoritmo de recorrer el camino. ● Consulta en Cypher (camino de 10 saltos): MATCH (from: NC {termId:"mm_simbiosis_01"}), (to: NC {termId:"mm_terremoto_01"}) , path = shortestPath((from)<-[*]-(to)) RETURN path ● Figura 94. Camino entre los nodos “terremoto_01” y “simbiosis_01”. En el subgrafo anterior se puede apreciar la restricción de la dirección en la relación reflejada en el siguiente esquema (obviando que las relaciones bidireccionales): (terremoto_01)-->( )-->( )-->( )-->( )-->( )-->( )-->( )-->( )-->( )--> (simbiosis_01) 362 / En el siguiente caso, se ha forzado la dirección a la inversa entre los dos puntos anteriores, entre el nodo de inicio “simbiosis_01” y el nodo de llegada “terremoto_01”, en esta ocasión restringiendo la dirección de las relaciones hacia este último, pero no el tipo de relaciones. Tanto en los anteriores subgrafos como en el siguiente, encontramos que el algoritmo se ha servido como puente de las relaciones “RELATED_TO”, “SIMILAR” y “NARROWER_THAN”. También la dirección en este sentido provoca que el recorrido sea mucho más largo al reducir las posibilidades del camino, aunque no tanto como el anterior: (terremoto_01) <--( )<--( )<--( )<--( ) <--( ) <--( )<--(simbiosis_01) ● Consulta en Cypher (camino de 7 saltos): MATCH (from: NC {termId:"mm_simbiosis_01"}), (to: NC {termId:"mm_terremoto_01"}) , path = shortestPath((from)-[*]->(to)) RETURN path ● Figura 95. Camino entre los nodos “terremoto_01” y “simbiosis_01”. 363 / 8.2.1. Algoritmo SPF (Shortest Path First Algorithm) El algoritmo de Dijkstra, SPF ( Shortest Path First algorithm ), (Dijkstra, 1959) y sus variantes, no solo sirven para calcular la distancia entre dos puntos, con ellos también se puede calcular la distancia entre un punto y el resto de los nodos del grafo. Aunque en este caso el grafo que se ha construido no tiene pesos en todas las relaciones, por ejemplo, usando una variante del algoritmo de Dijkstra, el SSSP ( Single Source Shortest Path algorithm ), se pueden obtener distancias entre cualquier nodo del grafo, lo que en la práctica es otra posibilidad de establecer grados de similitud entre palabras a través de dichas distancias. También se puede recurrir al algoritmo APSP ( All Pairs Shortest Path ) para calcular directamente las distancias entre todos los nodos. Como es lógico, una consulta de este tipo resulta muy costosa, ya que el algoritmo debe calcular la distancia con todos y cada uno de los nodos. Dichos procedimientos son usados fundamentalmente en protocolos de enrutamiento para redes IP en los que se utiliza el algoritmo de Dijkstra (1959) para ayudar a detectar cambios en la topología (como por ejemplo, fallos en los enlaces) y crear de forma rápida una nueva estructura de enrutamiento. Sin embargo, como se puede observar en las siguientes tablas, los resultados usando esta distancia a partir del nodo correspondiente a “pájaro_01”, a “hablar_01” y a “tosco_01”, aunque algunos casos tienen cierto sentido (en los adjetivos), tras las pruebas realizadas con diferentes palabras, de diferentes categorías gramaticales, se observa que no sirve adecuadamente para establecer distancias semánticas. Para realizar las pruebas, se ha usado la implementación de Neo4j del algoritmo “delta-stepping” (Needham y Hodler, 2019) . ● Consulta de ejemplo en Cypher, donde se ha escrito un patrón para obtener los 8 nodos más cercanos a “pajaro_01” (se han limitado los resultados, ya que como se ha comentado anteriormente se debe calcular la distancia con todos y cada uno de los nodos del grafo, y no aportan información relevante el resto de resultados): MATCH (n:NC {termId:'mm_pájaro_01'}) CALL algo.shortestPath.deltaStepping.stream(n, 'score', 10) YIELD nodeId, distance RETURN algo.asNode(nodeId).termId AS destination, distance order by distance limit 8 364 / ● Tablas correspondientes a las distancias a partir de los nodos: “mm_pájaro_01”, mm_hablar_01”, y “mm_tosco_01”: 365 destination distance "mm_pájaro_01" 0.0 "mm_ave_01" 188 "mm_árbol_01" 4.142 "mm_pez_01" 4.184 "mm_cuerpo_01" 5.035 "mm_excremento_01" 5.801 "mm_pollo_01" 7.008 "mm_animal_03" 7.179 destination distance mm_hablar_01 0.0 mm_convertir_01 0.0101 mm_conseguir_01 0.01176 mm_impedir_01 0.01612 mm_empezar_01 0.01639 mm_seguir_01 0.01639 mm_llegar_01 0.02352 mm_comunicar_01 0.02702 destination distance mm_tosco_01 0 mm_vulgar_01 0.14285 mm_grueso_01 0.14285 mm_interior_03 0.17856 mm_gran_01 0.20736 mm_tropical_01 0.21427 mm_rojizo_01 0.21977 mm_inferior_01 0.21977 / 8.2.2. Algoritmo de Yen (KSP) El algoritmo de K-rutas más cortas de Yen (Yen, 1971), o KSP ( K Shortest Path) , calcula las K-rutas, sin bucle, más cortas, de una sola fuente para un grafo con relaciones ponderadas no negativas (Needham y Hodler, 2019). En la librería de Neo4j se ha implementado usando en una primera fase el algoritmo de Dijkstra para encontrar el camino más corto, y después con el algoritmo KSP, se encuentran las desviaciones de los caminos más cortos. En la siguiente consulta de ejemplo, se ha establecido como nodo de inicio el sustantivo "mm_lápiz_01", y como nodo de llegada el sustantivo "mm_bosque_01", y se han pedido las 4 posibilidades de ruta más eficientes para recorrer el camino. Como se puede observar en la tabla a continuación, en las 4 posibilidades de ruta devueltas entre "mm_lápiz_01", y "mm_bosque_01" se establece un camino “asociativo” con bastante sentido. ● Consulta en Cypher : MATCH (start:NC{termId:'mm_lápiz_01'}), (end:NC{termId:'mm_bosque_01'}) CALL algo.kShortestPaths.stream(start, end, 4, 'score' ,{}) YIELD index, nodeIds, costs RETURN [node in algo.getNodesById(nodeIds) | node.termId] AS camino, costs, reduce(acc = 0.0, cost in costs | acc + cost) AS totalCost limit 5 366 ruta coste coste total [ "mm_lápiz_01" , "mm_tinta_01", "mm_metal_01", "mm_moneda_01", "mm_juego_01", "mm_dado_01", "mm_nombre_01", "mm_árbol_01", "mm_bosque_01" ] [0.3333333432674408, 0.06666667014360428, 0.026946106925606728, 0.020958084613084793, 0.029605263844132423, 0.032894738018512726, 0.016393441706895828, 0.13333334028720856] 0,6601309888064.860 / Started streaming 4 records after 4296 ms and completed after 4399 ms . Si en lugar de buscar las k-rutas óptimas entre dos nodos con la misma categoría gramatical (en el caso anterior entre dos sustantivos), realizamos una consulta entre dos nodos con categorías diferentes, se puede comprobar que no afecta a la eficiencia del algoritmo. En el siguiente caso, el nodo de inicio es el verbo “respirar_01” y se ha mantenido el nodo de destino “bosque_01”. Respecto a la anterior consulta y a la siguiente, destaca el concepto “nombre_01” como nodo “concentrador”. Dependiendo de la aplicación o el uso que se le diese al grafo, dicho nodo o sería muy útil respecto a la conectividad del grafo, o sería un candidato para ser eliminado ya que al ser un asociador tan general de naturaleza inespecífica, no aporta información relevante. 367 [ "mm_lápiz_01" , "mm_utensilio_01", "mm_pieza_01", "mm_conjunto_05", "mm_ave_01", "mm_especie_01", "mm_árbol_01", "mm_bosque_01" ] [0.2916666567325592, 0.048986487090587616, 0.01861042156815529, 0.01944444514811039, 0.02916666679084301, 0.019480518996715546, 0.13333334028720856] 0,5606885366141790 [ "mm_lápiz_01" , "mm_trazo_01", "mm_hecho_07", "mm_escrito_01", "mm_nombre_01", "mm_árbol_01", " mm_bosque_01" ] [0.095238097012043, 0.2380952388048172, 0.03664921596646309, 0.04188481718301773, 0.016393441706895828, 0.13333334028720856] 0,561941509604450 [ "mm_lápiz_01" , "mm_utensilio_01", "mm_pieza_01", "mm_conjunto_05", "mm_ave_01", "mm_pájaro_01", "mm_especie_01", "mm_árbol_01", "mm_bosque_01" ] [0.2916666567325592, 0.048986487090587616, 0.01861042156815529, 0.01944444514811039, 0.018808776512742043, 0.021943572908639908, 0.019480518996715546, 0.13333334028720856] 0,5722742192447180 / ● Consulta en Cypher : MATCH (start: V{termId:'mm_respirar_01'}), (end:NC{termId:'mm_bosque_01'}) CALL algo.kShortestPaths.stream(start, end, 4, 'score' ,{}) YIELD index, nodeIds, costs RETURN [node in algo.getNodesById(nodeIds) | node.termId] AS camino, costs, reduce(acc = 0.0, cost in costs | acc + cost) AS totalCost limit 5 368 ruta coste coste total [ mm_respirar_01 mm_aire_01 mm_espíritu_01 mm_hombre_01 mm_nombre_01 mm_árbol_01 mm_bosque_01 ] 1.0 0.0476190485060215 0.0476190485060215 0.01847575046122074 0.016393441706895828 0.13333334028720856 1.2634406295 [ mm_respirar_01 mm_matar_01 mm_introducir_01 mm_dado_06 mm_árbol_01 mm_bosque_01 ] [1.0 0.021276595070958138 1.0 0.055776894092559814 0.13333334028720856] 2.2103868295 [ mm_respirar_01 mm_órgano_01 mm_planta_01 mm_especie_01 mm_árbol_01 mm_bosque_01 ] [1.0 0.07425742596387863 0.05714285746216774 0.019480518996715546 0.13333334028720856] 1.2842141427 [ mm_respirar_01 mm_órgano_01 mm_planta_01 mm_nombre_01 mm_árbol_01 mm_bosque_01 ] [1.0 0.07425742596387863 0.06270996481180191 0.016393441706895828 0.13333334028720856] 1.2866941728 / 8.2.3. Caminos aleatorios Los caminos aleatorios (“ random walks ”) son usados para crear recorridos de forma aleatoria en un grafo. A partir de un nodo de inicio, el algoritmo va recorriendo el grafo de manera aleatoria o basándose en una probabilidad de distribución, repitiendo el mismo procedimiento por cada nodo que atraviesa (Lovász, 1993). El término “random walk" fue introducido por Karl Pearson (1905) en una publicación en la revista Nature , y su estudio ha sido foco de mucho interés en las últimas décadas, sobre todo respecto a las redes. Es un algoritmo frecuentemente usado como parte de otros algoritmos de grafos. Por ejemplo, en los algoritmos de Node2vec (Grover y Leskovec, 2016) y Graph2vec (Narayanan, Annamalai, et al., 2017) que generan embeddings de nodos, en la detección de comunidades ( Walktrap o Infomap ), ya que si el algoritmo devuelve de forma frecuente un conjunto de nodos repetidos es un indicador de que esos nodos pertenecen a la estructura de una comunidad. También se usa como parte del proceso de entrenamiento en modelos de aprendizaje de máquinas, machine learning (Needham y Hodler, 2019). ● En la siguiente consulta en Cypher se ha pedido un recorrido aleatorio a partir del nodo “mm_fiesta_01” con una longitud máxima de 5 nodos: MATCH (inicio:NC {termId: "mm_fiesta_01"}) CALL algo.randomWalk.stream(id(inicio), 5, 1) YIELD nodeIds UNWIND nodeIds AS nodeId RETURN algo.asNode(nodeId).termId AS camino 369 / ● Camino devuelto por Neo4j a partir del algoritmo: Si repetimos la misma consulta, obtenemos otro camino aleatorio, que como se refleja en el siguiente camino devuelto puede volver a pasar por un nodo por el que ya pasó, en este caso el nodo inicial “fiesta_01”: ● Recorrido devuelto: 370 camino definición del DUE "mm_fiesta_01" Reunión de gente en algún sitio para divertirse o pasar agradablemente el tiempo unos con otros, por ejemplo bailando. "mm_zambra_01" Fiesta bulliciosa con baile que se hacía entre los moriscos. "mm_verbena_02" Fiesta popular que se celebra en los días de alrededor del de algunos santos (...). "mm_jorco_01" Fiesta o baile algo libre. "mm_libre_01" Aplicado a personas, se aplica al que puede dirigir su conducta, y por lo tanto, es responsable de ella. "mm_buenaboya_01" Remero libre asalariado, a diferencia del forzado. camino mm_fiesta_01 mm_confeti_01 mm_fiesta_01 mm_cruz_02 mm_fiesta_01 mm_bailable_01 / ● En la siguiente consulta en Cypher se ha pedido un recorrido aleatorio a partir del nodo “fiesta_01”, esta vez con una longitud máxima de 100 nodos. MATCH (inicio:NC {termId: "mm_fiesta_01"}) CALL algo.randomWalk.stream(id(inicio), 100, 1) YIELD nodeIds UNWIND nodeIds AS nodeId RETURN algo.asNode(nodeId) ● Subgrafo obtenido: ● Figura 96. Camino aleatorio a partir del nodo “fiesta_01”. 371 / En la siguiente consulta en Cypher se ha vuelto a establecer un recorrido aleatorio a partir del nodo “fiesta_01”, en esta ocasión aumentando la longitud máxima a 1000 nodos en el camino devuelto por Neo4j , como se puede observar, cuanto más largo es el recorrido, mayores son las posibilidades de que los nodos afectados mantengan algún tipo de relación entre sí, además de la relación usada por el algoritmo para recorrer el grafo y devolver el camino aleatorio. ● Consulta en Cypher : MATCH (inicio:NC {termId: "mm_fiesta_01"}) CALL algo.randomWalk.stream(id(inicio), 1000, 1) YIELD nodeIds UNWIND nodeIds AS nodeId RETURN algo.asNode(nodeId) ● Subgrafo obtenido donde se puede observar que los caminos aleatorios sacan a la superficie numerosas relaciones comunes entre los nodos afectados: ● Figura 97. Camino aleatorio a partir del nodo “fiesta_01” con un recorrido de 1000 nodos. 372 / 8.2.4. Árbol recubridor mínimo (MST) En un grafo conexo y no dirigido, un árbol recubridor mínimo ( Minimum Weight Spanning Tree, MST ) es el subgrafo de menor costo posible conectando todos los vértices (Awerbuch, 1987). El algoritmo se inicia a partir de un nodo determinado, y encuentra todos los nodos a los que se puede llegar a partir de él, estableciendo el conjunto de relaciones que los conectan entre sí con el mínimo peso posible. Dicho subgrafo contiene todos los vértices del grafo inicial, donde cada arista tiene asignado un peso, a partir del cual se asigna un peso total al árbol recubridor mínimo computado como la suma de todos los pesos de las aristas del árbol en cuestión. Un árbol recubridor mínimo , o árbol expandido mínimo , es un árbol recubridor que pesa menos o igual que otros árboles recubridores (Needham y Hodler, 2019). Todo grafo tiene un bosque recubridor mínimo , es decir, puede haber más de un árbol recubridor posible. El árbol recubridor mínimo es el de menos coste, al igual que los bosques recubridores. El primer algoritmo conocido para encontrar un árbol recubridor mínimo fue desarrollado por Otakar Borůvka (1926) con el objetivo de desarrollar una heurística que permitiera construir de manera eficiente una red eléctrica en Moravia. El algoritmo de Prim (Jarnik, 1930) es uno de los algoritmos más sencillos y más conocidos dentro de esta categoría. Fue redescubierto y popularizado por Prim (1957). Es parecido al algoritmo de Dijkstra, pero en lugar de minimizar la longitud total del final de un camino en cada relación, minimiza la longitud de cada relación de manera individual. Los k-means, o k-medias son una variante de este tipo de algoritmos, muy usada en la detección de grupos en un grafo (Dhillon, Inderjit, Guan, y Kulis, 2004). Se usan como método de agrupamiento en minería de datos con el objetivo de la partición de un conjunto en diferentes grupos, en el que cada elemento pertenece al grupo cuyo valor medio es más cercano. En la librería de algoritmos de grafos de Neo4j está implementado el algoritmo del árbol recubridor mínimo . Como el algoritmo necesita pesos, es decir, que las relaciones tengan valores numéricos, se ha usado como base la relación “SIMILAR”, que como se ha mostrado sí está baremada, para escribir la relación “MINST”. En el siguiente ejemplo se presenta la relación construida a partir del nodo “abacería_01”, definido en el DUE como "tienda de comestibles". 373 / ● Consulta en Cypher para escribir en el grafo la relación “MINST” del árbol recubridor mínimo de “abacería_01”: MATCH ( n:NC { termId: "mm_abacería_01" }) CALL algo . spanningTree . minimum ( 'NC' , 'SIMILAR' , 'score' , id ( n ), { write:true , writeProperty: "MINST" }) YIELD loadMillis , computeMillis , writeMillis , effectiveNodeCount RETURN loadMillis , computeMillis , writeMillis , effectiveNodeCount ; 59 nodos mostrados, 58 relaciones. ● Figura 97. Subgrafo del árbol recubridor mínimo de “abacería_01”. 374 / A continuación, se vuelve a mostrar la consulta correspondiente sobre el nodo “mm_abacería_01” para comprobar las relaciones (MINST) que se han escrito. En la tabla correspondiente (tabla 21), los resultados están ordenados por el valor de la propiedad “ pagerank ”, y además se pueden contrastar algunas propiedades interesantes que se han escrito en los nodos ( community, partition y pagerank ), las cuales introduciremos en los siguientes apartados para contrastar los valores de los nodos conectados, donde sobresale entre otras cosas, la preponderancia de la comunidad 16139, común a la mayor parte de los nodos. Se puede comprobar en el extracto a continuación o en la lista completa (limitada a 100) que los resultados mayoritariamente son palabras que tienen que ver con tipos de tiendas donde se desarrollan diferentes actividades comerciales (“joyería”, “carnicería”, “librería”, “quesería”, etc). Los resultados parecen más interesantes de lo que en realidad son, porque se basan en la relación SIMILAR, ya de por sí de gran valor, aunque sus valores no son del todo apropiados para obtener resultados óptimos. Si bien es cierto que al haberse escrito sobre la relación “SIMILAR”, supone una depuración con respecto a esta relación. El algoritmo MST funciona de forma adecuada en grafos donde las relaciones tienen pesos distribuidos correctamente. Si un grafo no tiene relaciones baremadas o sus valores tienen el mismo peso, todos los árboles recubridores resultantes, son árboles recubridores mínimos (Needham y Hodler, 2019). ● Consulta en Cypher del árbol recubridor mínimo de “abacería_01”: MATCH p=(a:NC{termId:"mm_abacería_01"})-[r:MINST]-(b) RETURN b.termId,b.community,b.partition, b.pagerank ORDER BY b.pagerank DESC LIMIT 100 375 / ● Extracto de la tabla (ver tabla 21, apéndice 3) Como se ha señalado, si observamos detenidamente la tabla 21, encontramos que fundamentalmente todas las palabras gravitan alrededor del archilexema o “eje semántico” (Greimas, 1966: 32) de la palabra “tienda”. Aparecen bien representados en dicha lista, el semema, conjunto de semas específicos, y el clasema, conjunto de semas genéricos (Pottier, 1974), junto con la consiguiente multitud de relaciones semánticas que los unen, tanto a nivel horizontal (tipos de tienda, hiponimia-hiperonimia) como a nivel vertical (partes de las tiendas, meronimia-holonimia). El árbol recubridor mínimo al haberse construido sobre la relación “SIMILAR” puede crear listas de palabras relacionadas de bastante interés para el estudio de los campos léxicos, donde nos detendremos en el apartado correspondiente. 376 termId community partition pagerank "mm_joyería_01" 16139 16139 3.913113917189185 "mm_mostrador_02" 16139 16139 0.642482298225525 "mm_carnicería_01" 16139 31703 0.3348750057630241 "mm_tendejón_01" 16139 77641 0.27750000506639483 "mm_tenducho_01" 16139 77664 0.27750000506639483 "mm_especiería_01" 16139 62971 0.27750000506639483 "mm_quincallería_01" 16139 58809 0.27750000506639483 "mm_tablero_15" 16139 16139 0.25921962450361213 "mm_tabernáculo_01" 16139 76150 0.19905208385316656 "mm_trastienda_01" 16139 80215 0.19250000063329936 "mm_cajón_04" 16139 27453 0.19250000063329936 "mm_quesería_01" 16139 58664 0.1754999994300306 "mm_librería_01" 16139 16703 0.1712500003166497 "mm_óptica_03" 16139 6973 0.15000000000000002 / 8.3. Algoritmos de centralidad En este capítulo se explican y se ofrecen ejemplos de los algoritmos de centralidad (Bavelas, 1948) usados con la librería de algoritmos de Neo4j . Los algoritmos de centralidad se basan en determinar la importancia de los nodos en una red. Existen varios tipos de algoritmos de centralidad para medir la capacidad de un nodo de influir sobre el resto o conectar diferentes grupos, y se han usado en múltiples aplicaciones (Divicak, Dijkstra, y Snijders, 2018). ● Figura 98. Subgrafo donde se pueden apreciar múltiples nodos, cuyas relaciones se han expandido aleatoriamente en Neo4j hasta formar el dibujo presentado, en el que se puede apreciar que el nodo central correspondiente a “mamífero” está altamente conectado, teniendo el mayor grado de entrada y ocupando el centro del subgrafo, al igual que por ejemplo el nodo “carnívoro”, arriba y ligeramente a la derecha, donde también se observa un alto grado de conexiones de entrada. 377 / Pero en el grafo que se ha construído, ¿qué significa que una palabra sea más importante que otra? Se pueden considerar criterios por frecuencia de aparición, por el número de relaciones que establecen, por categoría gramatical, por la posición que ocupa en el cono léxico ... pero se seguiría sin poder responder a la pregunta convenientemente. ¿Son más importantes las palabras que están más arriba del cono léxico y que por lo tanto son más generales, o lo son las palabras que ocupan las posiciones más periféricas con más sememas o rasgos específicos, y que por lo tanto, se encuentran en las ramas de un hipotético árbol semántico? Como veremos a lo largo del capítulo, cada tipo de algoritmo de centralidad va a ponderar de diferentes maneras las palabras correspondientes a los nodos del grafo, según la posición que ocupen y las relaciones que mantengan. Los algoritmos de centralidad se usan para entender el papel que juegan los diferentes nodos y su influencia en una red. Este tipo de algoritmos resultan útiles para identificar los nodos de mayor importancia y el impacto que pueden tener sobre una red (Coursey y Mihalcea, 2009). La mayoría de estos algoritmos fueron creados para el análisis de redes sociales, para determinar la importancia de sus miembros, la velocidad de propagación de las noticias, las conexiones entre grupos o las dinámicas de conectividad que se dan en un grafo. Sin embargo, con las palabras se pueden aprovechar los algoritmos de centralidad para que se puedan determinar ciertas jerarquías en sus enlaces (Erkan y Radev, 2004). El ejemplo más claro se puede ver en los sustantivos, y cómo las medidas de centralidad permiten identificar los escalonamientos conceptuales derivados de los valores del genus, en los superordinados con los que se relacionan las palabras. Cuanto más alta sea la categoría conceptual de una palabra en el cono léxico , en principio, mayor será su índice de centralidad al recibir potencialmente más relaciones incidentes de otros nodos. La relación hiperónimo-hipónimo es un ejemplo de ello, por ejemplo todos los nodos relativos a tipos de plantas, van a “apuntar” al nodo “planta. Y por otro lado, cuanto más específica sea una palabra, ocupará posiciones más periféricas, en la base del cono léxico , representando las hojas del árbol en una taxonomía. Sin embargo, la estructura del grafo no responde a una construcción taxonómica ni a una ontología exactamente, careciendo de la sistematicidad suficiente. Las relaciones construidas no se han formado específicamente con ese fin, aunque la calidad y el 378 / cuidado de María Moliner en la estructura de las definiciones lexicográficas como veremos permiten sacar información valiosa. La noción de concepto o de palabra en sí, sirve para designar conjuntos más o menos objetivos y cerrados, por los cuales un campo fenoménico particular se delimita, determinando las unidades finitas que se ponen en relación con otras unidades de su misma categoría, y que, por lo tanto, se definen de forma similar (García Sierra, 2000). La idea de categoría, gnoseológicamente, es una totalidad atributiva, donde cada instancia o palabra se podría configurar igualmente como categoría de sí misma (la categoría “flor”, “persona”, “rojo”, “silbar”, etc). La estructura recursiva formada entre el definiendum y el definiens sobre la que se asienta el grafo no está ideada para una categorización automática de cada concepto, pero como veremos, los algoritmos de centralidad son una vía interesante para establecer criterios de relación jerárquica, hasta cierto punto, entre nodos conectados. Cada información asociada a una palabra permite un filtro adicional a la hora de hacer una consulta y obtener los nodos o relaciones que cumplen el patrón que se busca, por lo que cuanta más información contengan los nodos, más recursos se tendrán para filtrar los nodos y organizarlos. En la bibliografía es frecuente encontrar que las medidas de centralidad se agrupan en dos categorías: medidas radiales y medidas mediales (Borgatti y Everett, 2006). Las medidas radiales toman un nodo como punto de referencia a partir del cual se inicia o termina un recorrido por la red, mientras que las medidas mediales toman como referencia los recorridos que pasan a través de un nodo dado (Sun y Tang, 2011). Las medidas radiales a su vez pueden ser clasificadas en medidas de volumen y de longitud, según el tipo de recorridos que tienen en consideración. Mientras que las medidas de volumen miden el número de recorridos limitados a una longitud prefijada, las medidas de longitud, por el contrario, miden la longitud de los recorridos necesarios para alcanzar un volumen prefijado. De manera adicional, se pueden diferenciar las medidas absolutas de centralidad, que proporcionan un valor incomparable, y las medidas relativas o normalizadas de centralidad (Sun y Tang, 2011). Además, para algunas de las medidas existen a su vez versiones más generales, o bien generalizaciones para las redes con pesos (Opsahl, Agneessens y Skvoretz , 2010). Desde las primeras formulaciones a partir de los años cuarenta (Bavelas, 1948), se han propuesto diversas medidas de centralidad para 379 / baremar la importancia de los nodos. Existe una larga lista de algoritmos de centralidad para establecer métricas de conectividad entre los nodos, muchos de ellos basados en otros anteriores ( Borgatti, 2005) . A continuación se pueden observar diferentes tipos de medidas, p or ejemplo, la centralidad de grado y la centralidad de vector propio son medidas radiales de volumen, mientras que la medida de cercanía es una medida radial de longitud, y la medida de intermediación es una medial. (Sun y Tang, 2011). En análisis de redes, entre las medidas más extendidas, nos centraremos en los siguientes: • Centralidad de grado (“ Degree centrality ”): Es una medida básica de conectividad entre nodos. • Centralidad de vector propio (“ Eigenvector centrality ”): La centralidad de vector propio o autovector caracterizan la prominencia global de un vértice o nodo en un grafo. El valor de “centralidad” se calcula como una función de las centralidades de sus vecinos. • PageRank : Sirve para comprender la influencia general de los nodos sobre la red. • ArticleRank : Es una variante de PageRank optimizada para medir la importancia de los artículos en el mundo académico. • Centralidad de intermediación ( Betweenness Centrality ): Esta medida barema los nodos que sirven como puentes para conectar otros nodos. • Centralidad de Cercanía ( Closeness Centrality ): Sirve para medir cómo es de central un determinado nodo en un grupo a partir de los nodos “vecinos”. 380 / 8.3.1. Centralidad de grado El algoritmo de centralidad de grado ( Degree centrality algorithm ) es una medida de centralidad que tiene en cuenta el número de aristas de un nodo, tanto de entrada como de salida. La centralidad de grado es la más simple de las medidas de centralidad de grafos, fue propuesto por Linton C. Freeman (1979), y se usa como parte del análisis global del grafo, donde se suelen calcular también el grado mínimo de los nodos, el máximo, la media de grados y la desviación estándar del grafo al completo. El algoritmo de centralidad de grado permite establecer los nodos más importantes según su conectividad en un grafo (Borgatti y Everett, 2005). Formalmente se expresa de la siguiente manera (Needham y Hodler, 2019): - Dado un grafo G = (V, E), donde V es el conjunto de vértices, y E el conjunto de aristas, para cada nodo , su centralidad de grado C G = ( ) se define como: ν ∈ V ν C G = grado ( ) ν - Si se representa como una matriz de adyacencia del grafo, donde cada posición aij asume el valor 1 cuando existe la arista ( i,j ); y el valor 0, si no existe, entonces la centralidad de grado de cada nodo j se puede definir como: C G (j)= aij ∑ i = En grafos dirigidos, como es el caso del grafo construido, se pueden definir dos medidas de centralidad de grado diferentes: una es el grado de entrada, y la otra el grado de salida de cada nodo, es decir, el número de aristas entrantes o salientes de cada nodo. En grafos sociales, el grado de entrada se interpreta como una medida de popularidad, mientras que el grado de salida se interpreta como una medida de sociabilidad. (Sun y Tang, 2011). En los nodos del grafo creado, el grado de entrada representa la frecuencia de uso de una palabra para definir a otras, mientras que el grado de salida en principio simplemente indica la longitud de los asociadores extraídos de la definición lexicográfica. Este algoritmo puede usarse tanto en relaciones con pesos como sin ellos, como se ha realizado en este caso. En el siguiente subgrafo se han visualizado las once relaciones de salida de la palabra “nube_01”, (las relaciones de entrada no se han visualizado en este subgrafo, ya que son 55 nodos y 101 relaciones en total). Dichos nodos son: 381 / mm_atmósfera_01, mm_suspender_01, mm_mantener_01, mm_agua_01, mm_diminuto_02, mm_gota_01, mm_masa_01, mm_niebla_01, mm_oblea_01, mm_chispa_04, mm_atmósfera_01, mm_mar_01, y mm_estalagmita_01. ● Consulta en Cypher sobre las relaciones de salida de la palabra “nube_01”: MATCH p=(p1:NC {termId: 'mm_nube_01'})-[r]->(q) RETURN p ● Figura 99. Subgrafo de las relaciones de salida del nodo “nube_01”. 382 / ● Consulta en Cypher sobre las relaciones de entrada de la palabra “nube_01” (en el centro del subgrafo, donde se puede apreciar la dirección de las aristas que inciden en dicho nodo): MATCH p=(p1:NC {termId: 'mm_nube_01'})<-[r]-(q) RETURN p ● Figura 100. Subgrafo con las relaciones de incidencia sobre “nube_01”. 383 / 8.3.1.1. Propiedades del grado de salida y entrada en los nodos A continuación se muestran las consultas en Cypher para escribir en los nodos del grafo, tanto las propiedades con el valor de los grados de entrada (propiedad “ followers ”), como los grados de salida (propiedad “ following ”) de las tres categorías gramaticales contempladas: sustantivos (NC), adjetivos (AQ), y verbos (V). Además en cada una de las tres categorías, se han calculado el grado mínimo, el máximo, la media y la desviación estándar de cada nodo (Needham y Hodler, 2019). Como se puede observar, extraer las palabras con mayor grado de entrada sirve para localizar palabras susceptibles de ser depuradas en el grafo para limpiar mejor los elementos del definiens convertidos en asociadores (“especie”, “acción”, “efecto”, “parte”, etc). Como ya se ha apuntado, el grado de entrada resulta útil para localizar las palabras más usadas en las definiciones, lo que puede servir para caracterizar ciertas propiedades de la naturaleza de las palabras, mientras que el grado de salida en principio solo nos da información sobre la longitud de los elementos del definiens extraídos de cada palabra, si bien es cierto que se podría realizar un estudio para analizar correlaciones entre la longitud de del definiens y características de las palabras. Por ejemplo, se podría estudiar si una mayor complejidad conceptual, o una mayor especificidad del término, se refleja en una mayor longitud en el definiens. 8.3.1.2. Escritura de la propiedad del grado de entrada ● Consulta en Cypher para escribir en todos los nodos del grafo la propiedad (" followers ") y el valor de los grados de entrada correspondiente para los sustantivos (NC): CALL algo . degree ( "NC" , "RELATED_TO" , { direction: "incoming" , writeProperty: "followers" }) 384 / ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de los grados de entrada en los nodos etiquetados como sustantivos (NC): MATCH (n:NC) RETURN min(n.followers), max(n.followers),avg(n.followers),stDev(n.followers) ● Resultados obtenidos del cálculo del grado de entrada (propiedad “ followers ”) para los sustantivos (NC): Started streaming 1 records after 104 ms and completed after 104 ms. ● Lista con los 15 sustantivos con la propiedad del grado de entrada más alta a partir de la consulta anterior, que como se puede observar en algunos casos son palabras que podrían ser eliminadas al no aportar demasiada información como asociadores, pero también resulta interesante como información sobre la codificación realizada en el DUE y la temática que ha sido más desarrollada : 81 MATCH (p:NC) return p.termId, p.followers order by p.followers DESC limit 15 81 Deben tenerse en cuenta posibles fallos en la lematización, por ejemplo, en palabras como “planta”. 385 min(n.followers) max(n.followers) avg(n.followers) stDev(n.followers) 0.0 4217.0 2.705573334943527 29.887430679236417 / Started streaming 15 records after 1 ms and completed after 103 ms. ● Consulta en Cypher para escribir en los nodos del grafo la propiedad (" followers ") y el valor de los grados de entrada para los adjetivos (AQ): CALL algo . degree ( "AQ" , "RELATED_TO" , { direction: "incoming" , writeProperty: "followers" }) ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de los grados de entrada en los nodos etiquetados como adjetivos (AQ), donde se puede apreciar la diferencia significativa en cuanto a los resultados de los sustantivos, con valores mucho más altos: MATCH (n:AQ) RETURN min(n.followers), max(n.followers),avg(n.followers),stDev(n.followers) 386 p.termId p.followers "mm_persona_01" 4217.0 "mm_acción_01" 3506.0 "mm_planta_01" 2179.0 "mm_conjunto_05" 1700.0 "mm_parte_01" 1603.0 "mm_cualidad_01" 1525.0 "mm_acción_02" 1419.0 "mm_efecto_01" 1403.0 "mm_sitio_01" 993.0 "mm_nombre_01" 875.0 "mm_hombre_01" 864.0 "mm_árbol_01" 846.0 "mm_hecho_07" 794.0 "mm_pieza_01" 782.0 "mm_especie_01" 767.0 / ● Resultados obtenidos del cálculo de los grados de entrada para los adjetivos (AQ): Started streaming 1 records after 27 ms and completed after 27 ms. ● Lista con los 15 adjetivos con la propiedad del grado de entrada más alta a partir de la siguiente consulta en Cypher : MATCH (p:AQ) return p.termId, p.followers order by p.followers DESC limit 15 Started streaming 15 records after 2 ms and completed after 55 ms. 387 min(n.followers) max(n.followers) avg(n.followers) stDev(n.followers) 0.0 458.0 0.69758425290784 5.792828136552364 p.termId p.followers "mm_aplicable_01" 458.0 "mm_susceptible_01" 426.0 "mm_mismo_01" 253.0 "mm_falto_01" 201.0 "mm_semejante_01" 166.0 "mm_propio_01" 153.0 "mm_capaz_01" 101.0 "mm_aficionado_01" 99.0 "mm_grande_01" 96.0 "mm_bueno_01" 90.0 "mm_solo_01" 89.0 "mm_propenso_01" 77.0 "mm_pequeño_01" 75.0 "mm_tres_01" 69.0 "mm_tropical_01" 68.0 / ● Consulta en Cypher para escribir en los nodos del grafo la propiedad (" followers ") y el valor de los grados de entrada para los verbos (V): CALL algo . degree ( "V" , "RELATED_TO" , { direction: "incoming" , writeProperty: "followers" }) ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de los grados de entrada en los nodos etiquetados como verbos (V): MATCH (n:V) RETURN min(n.followers), max(n.followers),avg(n.followers),stDev(n.followers) ● Resultados obtenidos del cálculo de los grados de entrada para los verbos (V): Started streaming 1 records after 22 ms and completed after 22 ms. ● Lista con los 15 verbos con la propiedad del grado de entrada más alta a partir de la siguiente consulta: MATCH (p:V) return p.termId, p.followers order by p.followers DESC limit 15 388 min(n.followers) max(n.followers) avg(n.followers) stDev(n.followers) 0.0 448.0 1.1054824036389699 6.869151574748564 p.termId p.followers "mm_quitar_01" 448.0 "mm_expresar_01" 398.0 "mm_producir_01" 231.0 / Started streaming 15 records after 2 ms and completed after 38 ms. 8.3.1.3. Escritura de la propiedad del grado de salida De la misma manera que se ha escrito como propiedad el grado de entrada en los nodos (“ followers ”), se ha procedido a realizar la misma operación con el grado de salida de cada nodo (propiedad “ following ”). ● Consulta en Cypher para escribir en los nodos del grafo la propiedad (" following ") y el valor de los grados de salida para los sustantivos (NC): CALL algo . degree ( "NC" , "RELATED_TO" , { direction: "outcoming" , writeProperty: "following" }) 389 "mm_causar_01" 199.0 "mm_perder_01" 140.0 "mm_hablar_01" 132.0 "mm_pasar_02" 124.0 "mm_tomar_01" 121.0 "mm_empezar_01" 120.0 "mm_cubrir_01" 113.0 "mm_llegar_01" 109.0 "mm_echar_01" 109.0 "mm_colocar_01" 103.0 "mm_sacar_01" 101.0 "mm_convertir_01" 98.0 / ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de los grados de salida en los nodos etiquetados como sustantivos (NC): MATCH (n:NC) RETURN min(n.following), max(n.following),avg(n.following),stDev(n.following) ● Resultados obtenidos del cálculo de los grados de salida para los sustantivos (NC): Started streaming 1 records after 107 ms and completed after 107 ms. ● Consulta en Cypher para escribir en los nodos del grafo la propiedad (" following ") y el valor de los grados de salida para los adjetivos (AQ): CALL algo . degree ( "AQ" , "RELATED_TO" , { direction: "outcoming" , writeProperty: "following" }) ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de los grados de salida en los nodos etiquetados como adjetivos (AQ): MATCH (n:AQ) RETURN min(n.following), max(n.following),avg(n.following),stDev(n.following) 390 min(n.following) max(n.following) avg(n.following) stDev(n.following) 0.0 25.0 2.757768250709524 2.0268096933657116 / ● Resultados obtenidos del cálculo de los grados de salida para los adjetivos (AQ): Started streaming 1 records after 22 ms and completed after 22 ms. ● Consulta en Cypher para escribir en los nodos del grafo la propiedad (" following ") y el valor de los grados de salida para los verbos (V): CALL algo . degree ( "V" , "RELATED_TO" , { direction: "outcoming" , writeProperty: "following" }) ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de los grados de salida en los nodos etiquetados como verbos (V): MATCH (n:V) RETURN min(n.following), max(n.following),avg(n.following),stDev(n.following) ● Resultados obtenidos del cálculo de los grados de salida para los verbos (V): Started streaming 1 records after 41 ms and completed after 41 ms. 391 min(n.following) max(n.following) avg(n.following) stDev(n.following) 0.0 12.0 0.698649397128377 0.8873860923773351 min(n.following) max(n.following) avg(n.following) stDev(n.following) 0.0 8.0 1.1085468039262698 0.8424809790905391 / Respecto a los nodos con mayor grado de salida, se presentan a continuación los 5 conceptos con el grado más alto en sustantivos, adjetivos y verbos, con la definición correspondiente del DUE . Se debe recordar que en el proceso de extracción de los asociadores se limitó a veinticinco el número máximo. Se puede apreciar que como denominador común son palabras de dominios especializados, o muy específicas. Como se acaba de presentar, las diferencias en los valores de esta propiedad entre las tres categorías son más acusadas en los sustantivos frente a los adjetivos y verbos, en los que sus valores son más cercanos. ● Consulta en Cypher para los sustantivos (NC) con el valor más alto en el grado de salida: MATCH (p:NC) return p.termId, p.following, p.definition order by p.following DESC limit 5 392 p.termId p.following p.definition ( DUE ) mm_torno_02 25.0 Dispositivo de forma de aspa constituido por cuatro placas de madera. cristal. etc.. que se coloca en puertas o ventanas de modo que pueda girar alrededor de un eje vertical para hacer posible la comunicación entre el interior y el exterior de un recinto. bien sin que las personas que están a uno y otro lado se vean entre sí. por ejemplo en los conventos y. particularmente. el que había en las inclusas para depositar los niños a través de él. bien para que se pueda entrar y salir sin que haya comunicación directa con el exterior. como en muchos locales públicos. mm_clavicémbalo_01 22.0 Instrumento musical de cuerda de los numerosos antecesores del piano. originado en la aplicación del teclado al salterio. competidor del clavicordio en cuanto a difusión en el siglo XVIII. y dispuesto como éste horizontalmente. mm_nacimiento_03 20.0 Representación de lugares y escenas del nacimiento de Jesucristo. que se hace combinando campos y montañas / En los cinco sustantivos que se acaban de mostrar se puede comprobar que responden a objetos poco cotidianos, pertenecientes a un dominio muy específico, o cuya naturaleza presenta cierta complejidad que necesita de más explicaciones para ayudar al usuario del diccionario a que se componga una imagen más exacta de la realidad que representa cada concepto. No es de extrañar por lo tanto que María Moliner realizase un esfuerzo adicional a la hora de realizar sendas definiciones lexicográficas, el cual se tradujo en una longitud mayor del definiens . Como se muestra a continuación con el caso de los adjetivos y los verbos ocurre algo parecido aunque quizá con un contraste menos claro. 393 imitados con musgo. corcho u otros elementos. con edificios y figuritas. generalmente de barro. de los Reyes Magos. pastores. animales. etc.. y cuya escena central es la del nacimiento en el establo de Belén. con las figuras del Niño Jesús. la Virgen. San José. el buey y la mula; mm_acordeón_01 19.0 Instrumento musical de viento. consistente en un fuelle que se pliega y extiende entre dos tablillas provistas de unas válvulas y un pequeño teclado que se maneja con los dedos a la vez que. con las manos. se juntan y separan las tablillas para accionar el fuelle. mm_majo_03 19.0 Se aplicaba a fines del siglo XVIII y principios del XIX. y sigue empleándose refiriéndose a aquella época. a los artesanos de ciertos barrios de Madrid. llamados «bajos». que en algún tiempo hacían vida completamente aparte. hasta el punto de estar exentos del servicio militar. y se distinguían por su traje vistoso y recargado de adornos y su actitud y manera de hablar arrogantes o graciosamente desenfadadas (que siguen siendo hoy características de las personas de esos barrios y se encierran en los adjetivos «castizo» y «chulo»). / ● Consulta en Cypher para los 5 adjetivos (AQ) con el grado de salida más alto (propiedad “following”), en los que se debe tener en cuenta que hay nodos que tienen etiqueta tanto de adjetivo, como de sustantivo: MATCH (p:AQ) return p.termId, p.following, p.definition order by p.following DESC limit 5 394 p.termId p.following p.definition (DUE) mm_dogo_02 12.0 Se aplica a un perro de gran tamaño, de pecho ancho, cabeza redonda. frente cóncava. nariz chata. hocico obtuso con los labios gruesos y colgantes por los lados. orejas pequeñas con la punta doblada. patas robustas y pelaje generalmente leonado. corto y fuerte. mm_mastín_01 11.0 Se aplica al perro de gran tamaño. muy fuerte. de cuello grueso y corto. pecho ancho. patas robustas. cabeza redonda. orejas pequeñas y caídas. ojos encendidos. boca rasgada y pelo largo. algo lanoso; mm_lepórido_01 8.0 Se aplica a los mamíferos lagomorfos de la familia de la liebre. caracterizados por tener el cráneo alargado y cuatro incisivos en la mandíbula superior. dos grandes y dos muy pequeños ocultos detrás de los primeros. mm_alano_01 8.0 Se aplica a cierto perro. probablemente cruzado de dogo y lebrel. corpulento. de cabeza grande. orejas caídas. con el hocico romo y arremangado. cola larga y pelo corto y fino. mm_braquiópodo_01 8.0 Se aplica a ciertos animales marinos. que alcanzaron gran desarrollo en épocas zoológicas antiguas. semejantes a los moluscos lamelibranquios porque tienen una concha. pero de organización muy diferente y complicada. / ● Consulta en Cypher para los 5 verbos (V) con el grado de salida (propiedad “f ollowing ”) más alto: MATCH (p:V) return p.termId, p.following, p.definition order by p.following DESC limit 5 395 p.termId p.following p.definition ( DUE ) mm_sobrehilar_01 8.0 Dar puntadas en el borde de una tela cortada y. particularmente. en los bordes de tela que quedan unidos en una costura. metiendo la aguja siempre por el mismo lado y sacándola por el opuesto. de modo que el hilo pasa sobre el borde y queda sujetando los hilos de la tela y evitando que ésta se deshile. mm_refregar_02 7.0 Decir, recordar o mostrar a alguien con insistencia para asegurar que no le pasa inadvertida una cosa que le humilla, le avergüenza,le produce envidia. etc. mm_reclamar_04 7.0 Pedir para sí un juez a un reo al que cree le corresponde juzgar o una causa en la que cree que le corresponde entender. mm_prender_02 7.0 Específicamente. «aprehender. apresar. aprisionar. capturar. coger. detener»: coger a alguien para meterlo en una prisión. mm_alastrar_01 6.0 Amusgar (echar hacia atrás las orejas un caballo o un toro como señal de que se dispone a morder, tirar coces o embestir). / 8.3.2. Algoritmo Pagerank El Pagerank (Brin y Page, 1998) es un algoritmo que mide la conectividad o la influencia de la transitividad de los nodos de una red. Es una variante del algoritmo Eigenvector (Hilbert, 1904), los autovectores, o vectores propios de centralidad, ya aludidos. Este algoritmo se calcula asignando un valor a cada nodo en función de los nodos que le apunten, aunque originalmente se basaba en el grado de los nodos. Se puede calcular distribuyendo de forma iterativa el rango de un nodo sobre sus vecinos o recorriendo aleatoriamente el grafo y contando la frecuencia de impacto de cada nodo durante estos caminos aleatorios (Gleich, 2014). El Pagerank lleva el nombre del cofundador de Google, Larry Page, y es el algoritmo que se usó inicialmente para clasificar las páginas de internet en las búsquedas de Google. Contabiliza tanto la cantidad como la calidad de los enlaces a una página para determinar la importancia que esta tiene. La idea que está detrás del algoritmo es que las páginas más importantes tienden a recibir más enlaces de otras páginas. El algoritmo PageRank se define en el artículo original de Google de la siguiente manera (Brin y Page, 1998): PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn)) ● Una página “A” tiene las páginas “T1” a “Tn” que apuntan a ella, es decir, son citas o enlaces. ● “d” es un factor de amortiguación ( Damping Factor ) que se puede establecer entre 0 y 1. (Por lo general, se establece en 0,85). ● C (A) se define como el número de enlaces que salen de la página “A”. Para calcular el PageRank de todos los nodos del grafo se realizó una consulta por cada categoría gramatical respectivamente (NC, AQ y V) en Cypher como se muestra en el siguiente apartado. 396 / 8.3.2.1. Escritura de la propiedad “ pagerank ” en los nodos A continuación se muestran las consultas que se han realizado siguiendo el manual de Cypher y el libro de Needham Hodler (2019) “ Graph algorithms, Practical Examples in Apache Spark & Neo4j ”, para escribir en el grafo la propiedad “ PageRank ”, en los nodos con las etiquetas de las tres categorías gramaticales observadas: sustantivos (NC), adjetivos (AQ), y verbos (V). El cálculo se ha hecho con 20 iteraciones, y con un factor de amortiguación de 0,85 ( Damping factor ). ● Consulta en Cypher para escribir en los nodos del grafo la propiedad “ PageRank ” en los sustantivos (NC): CALL algo . pageRank ( 'NC' , 'RELATED_TO' , { iterations:20 , dampingFactor:0 . 85 , write: true , writeProperty: "pagerank" }) YIELD nodes , iterations , loadMillis , computeMillis , writeMillis , dampingFactor , write , writeProperty ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ PageRank ” en los nodos etiquetados como sustantivos (NC): MATCH (n:NC) RETURN min(n.pagerank), max(n.pagerank),avg(n.pagerank),stDev(n.pagerank) ● Resultados obtenidos del cálculo de la propiedad “ PageRank ”, del valor mínimo, el máximo, la media y la desviación estándar para los sustantivos (NC): min(n.pagerank) = 0.15000000000000002 max(n.pagerank) = 3012.0620816000032 avg(n.pagerank) = 0.8044972582110039 stDev(n.pagerank) = 20.8139609103296 Started streaming 1 records after 115 ms and completed after 115 ms. 397 / ● Listado de los 10 sustantivos con la propiedad “ pagerank ” más alta a partir de la consulta: MATCH (p:NC) return p.termId, p.pagerank order by p.pagerank DESC limit 10 Started streaming 10 records after 1 ms and completed after 71 ms. ● Consulta en Cypher para escribir en los nodos del grafo la propiedad “ pagerank ” en los adjetivos (AQ): CALL algo . pageRank ( 'AQ' , 'RELATED_TO' , { iterations:20 , dampingFactor:0 . 85 , write: true , writeProperty: "pagerank" }) YIELD nodes , iterations , loadMillis , computeMillis , writeMillis , dampingFactor , write , writeProperty ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ pagerank ” en los nodos etiquetados como adjetivos (AQ): 398 p.termId p.pagerank "mm_verbo_04" 3012.0620816000032 "mm_acción_01" 2822.9455989778044 "mm_palabra_08" 1882.8685181967362 "mm_persona_01" 1701.08803884387 "mm_nombre_01" 1463.9222965419294 "mm_conjunto_05" 1140.0532090261577 "mm_manera_01" 1107.9050051808358 "mm_reunión_02" 991.4351266195532 "mm_estado_01" 796.468589488504 "mm_modo_01" 712.0597151212627 / MATCH (n:AQ) RETURN min(n.pagerank), max(n.pagerank),avg(n.pagerank),stDev(n.pagerank) ● Resultados obtenidos del cálculo de la propiedad “ pagerank ” para los adjetivos (AQ): min(n.pagerank) = 0.15000000000000002 max(n.pagerank) = 223.46853141784666 avg(n.pagerank) = 0.2924384536584338 stDev(n.pagerank) = 2.555321444300636 Started streaming 1 records after 31 ms and completed after 32 ms. ● Listado de los 10 adjetivos con la propiedad “ pagerank ” más alta a partir de la consulta: MATCH (p:AQ) return p.termId, p.pagerank order by p.pagerank DESC limit 10 Started streaming 10 records after 2 ms and completed after 35 ms. 399 p.termId p.pagerank "mm_mismo_01" 223.46853141784666 "mm_solo_01" 205.4165494561195 "mm_aplicable_01" 98.87227794862319 "mm_capaz_01" 94.92970923365485 "mm_susceptible_02" 87.51813278540418 "mm_susceptible_01" 82.27431073090483 "mm_falto_01" 78.81072157919407 "mm_posible_01" 42.812252205610285 "mm_suficiente_01" 42.75597409184675 "mm_recipiente_01" 41.84648899312715 / ● Consulta en Cypher para escribir en los nodos del grafo la propiedad “ pagerank ” en los nodos con la etiqueta de verbo (V): CALL algo . pageRank ( 'V' , 'RELATED_TO' , { iterations:20 , dampingFactor:0 . 85 , write: true , writeProperty: "pagerank" }) YIELD nodes , iterations , loadMillis , computeMillis , writeMillis , dampingFactor , write , writeProperty ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ pagerank ” en los nodos etiquetados como verbos (V): MATCH (n:V) RETURN min(n.pagerank), max(n.pagerank),avg(n.pagerank),stDev(n.pagerank) ● Resultados obtenidos del cálculo de la propiedad “ pagerank ” para los nodos con la etiqueta de verbo (V): min(n.pagerank) = 0.15000000000000002 max(n.pagerank) = 212.12565577793865 avg(n.pagerank) = 0.44282473561524627 stDev(n.pagerank) = 2.9612335579197335 Started streaming 1 records after 50 ms and completed after 50 ms. 400 / ● Listado de los 10 verbos con la propiedad “ pagerank ” más alta a partir de la la siguiente consulta: MATCH (p:V) return p.termId, p.pagerank order by p.pagerank DESC limit 10 Started streaming 10 records after 1 ms and completed after 25 ms. 401 p.termId p.pagerank "mm_expresar_01" 212.12565577793865 "mm_separar_03" 101.95184203274549 "mm_quitar_01" 85.97913263123485 "mm_llegar_01" 84.63786573954857 "mm_salir_04" 78.23210734557362 "mm_pasar_08" 72.08315715724603 "mm_servir_01" 69.41910085771232 "mm_ceñir_01" 67.48757339138537 "mm_pensar_01" 66.72957518035547 "mm_producir_01" 66.19714834550393 / 8.3.3. Algoritmo Articlerank El algoritmo “ ArticleRank ” (Li y Willett, 2009) es una variante del algoritmo “ PageRank ” (Brin y Page, 1998), que como se ha dicho anteriormente, es a su vez una variante del algoritmo “ Eigenvector ” (Hilbert, 1904). Está pensado para establecer una medida de calidad en los artículos científicos a través de las citas que se encuentran en estos. El algoritmo “ ArticleRank ” difiere del “ PageRank ” en que este último asume que las relaciones que salen de los nodos que tienen un grado bajo son más importantes que las relaciones de los nodos que tienen mayor grado, de tal manera que el primero no penaliza las fuentes principales (Li y Willett, 2009). En el artículo original se explica de la siguiente manera: AR(A) = (1-d) + d (AR(T1)/(C(T1) + C(AVG)) + ... + AR(Tn)/(C(Tn) + C(AVG)) ● Una página “A” tiene páginas “T1” a “Tn” que apuntan a ella, es decir, son citas. ● “d” es un factor de amortiguación ( damping factor ) que se puede establecer entre 0 y 1, que, por lo general, como se ha indicado, se establece en 0,85. ● “C (A)” se define como el número de enlaces que salen de la página “A”. ● “C (AVG)” se define como el número promedio de enlaces que salen de todas las páginas. Para calcular y escribir el valor del algoritmo “ ArticleRank ” como propiedad de todos los nodos del grafo, se realizó una consulta por cada categoría gramatical respectivamente (NC, AQ y V) en Cypher , tal y como se muestra en el siguiente apartado. 402 / 8.3.3.1. Escritura de la propiedad “ articlerank ” en los nodos En este apartado se muestran las consultas hechas en Cypher (Needham y Hodler, 2019) para escribir en el grafo la propiedad “ articlerank ”, en cada nodo con las etiquetas de las tres categorías gramaticales observadas: sustantivos (NC), adjetivos (AQ), y verbos (V). El cálculo se ha realizado al igual que con la propiedad “ pagerank ” con 20 iteraciones, y con un factor de amortiguación de 0,85. Como es lógico, algunos de los valores se repiten frente a los obtenidos con el algoritmo “ Page Rank ”. ● Consulta en Cypher para escribir la propiedad “ articlerank ” en los nodos con la etiqueta de sustantivo (NC): CALL algo . articleRank ( 'NC' , 'RELATED_TO' , { iterations:20 , dampingFactor:0 . 85 , write: true , writeProperty: "articlerank" }) YIELD nodes , iterations , loadMillis , computeMillis , writeMillis , dampingFactor , write , writeProperty ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ articlerank ” en los nodos etiquetados como sustantivos (NC): MATCH (n:NC) RETURN min(n.articlerank), max(n.articlerank),avg(n.articlerank),stDev(n.articlerank) ● Resultados obtenidos del cálculo de la propiedad “ articlerank ” para los sustantivos (NC): min(n.articlerank) = 0.15000000000000002 max(n.articlerank) = 194.04022498012455 avg(n.articlerank) = 0.2398176625253471 stDev(n.articlerank) = 1.294165297879016 Started streaming 1 records after 113 ms and completed after 113 ms. 403 / ● Listado de los 10 sustantivos con la propiedad “ articlerank ” más alta a partir de la siguiente consulta en Cypher : MATCH (p:NC) return p.termId, p.articlerank order by p.articlerank DESC limit 10 Started streaming 10 records after 1 ms and completed after 70 ms. ● Consulta en Cypher para escribir la propiedad “ articlerank ” en los nodos con la etiqueta de adjetivo (AQ): CALL algo . articleRank ( 'AQ' , 'RELATED_TO' , { iterations:20 , dampingFactor:0 . 85 , write: true , writeProperty: "articlerank" }) YIELD nodes , iterations , loadMillis , computeMillis , writeMillis , dampingFactor , write , writeProperty ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ articlerank ” en los nodos etiquetados como adjetivos (AQ): 404 p.termId p.articlerank "mm_acción_01" 194.04022498012455 "mm_persona_01" 167.08253698289826 "mm_conjunto_05" 88.7017565408028 "mm_parte_01" 81.92953809802052 "mm_planta_01" 70.79283748093057 "mm_cualidad_01" 66.54595969336455 "mm_efecto_01" 65.66222700756546 "mm_acción_02" 65.33413134585113 "mm_nombre_01" 63.67679336349861 "mm_verbo_04" 40.965098946062454 / MATCH (n:AQ) RETURN min(n.articlerank), max(n.articlerank),avg(n.articlerank),stDev(n.articlerank) ● Resultados obtenidos del cálculo de la propiedad “ articlerank ” para los adjetivos (AQ): min(n.articlerank) = 0.15000000000000002 max(n.articlerank) = 41.69608001351667 avg(n.articlerank) = 0.21147474351686094 stDev(n.articlerank) = 0.6687983808097904 Started streaming 1 records after 27 ms and completed after 27 ms. ● Listado de los 10 adjetivos con la propiedad “articlerank” más alta a partir de la siguiente consulta: MATCH (p:AQ) return p.termId, p.articlerank order by p.articlerank DESC limit 10 Started streaming 10 records after 1 ms and completed after 37 ms. 405 p.termId p.articlerank "mm_aplicable_01" 41.69608001351667 "mm_susceptible_01" 41.5958255451114 "mm_mismo_01" 36.88392744308184 "mm_capaz_01" 31.320531795416585 "mm_solo_01" 27.214655120919996 "mm_falto_01" 25.94335768334367 "mm_susceptible_02" 22.89332194357496 "mm_semejante_01" 15.18237438418188 "mm_propio_01" 13.528235412836835 "mm_propenso_01" 13.229918983614311 / ● Consulta en Cypher para escribir la propiedad “ articlerank ” en los nodos con la etiqueta de verbo (V): CALL algo . articleRank ( 'V' , 'RELATED_TO' , { iterations:20 , dampingFactor:0 . 85 , write: true , writeProperty: "articlerank" }) YIELD nodes , iterations , loadMillis , computeMillis , writeMillis , dampingFactor , write , writeProperty ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ articlerank ” en los nodos etiquetados como verbos (V): MATCH (n:V) RETURN min(n.articlerank), max(n.articlerank),avg(n.articlerank),stDev(n.articlerank) ● Resultados obtenidos del cálculo de la propiedad “ articlerank ” para los nodos con la etiqueta de verbo (V): min(n.articlerank) = 0.15000000000000002 max(n.articlerank) = 42.03924009484203 avg(n.articlerank) = 0.2335724891924621 stDev(n.articlerank) = 0.6246174300541972 Started streaming 1 records after 22 ms and completed after 22 ms. 406 / ● Listado de los 10 verbos con la propiedad “ articlerank ” más alta a partir de la consulta: MATCH (p:V) return p.termId, p.articlerank order by p.articlerank DESC limit 10 407 p.termId p.articlerank "mm_expresar_01" 42.03924009484203 "mm_quitar_01" 32.40594547068142 "mm_separar_03" 20.24977471703218 "mm_producir_01" 19.309962303211236 "mm_causar_01" 17.630402802952453 "mm_llegar_01" 12.901720011785535 "mm_pasar_02" 12.326649396166856 "mm_salir_04" 12.079250428160044 "mm_pensar_01" 11.084376485924947 "mm_ocurrir_01" 10.367082012907531 / 8.3.4. Algoritmo de intermediación ( Betweenness Centrality algorithm ) En este apartado se describe un algoritmo de centralidad llamado de “intermediación” ( Betweenness Centrality algorithm ), disponible igualmente dentro de la librería Neo4j Labs Graph Algorithms . Este algoritmo cuantifica la cantidad de veces que un nodo sirve de “puente” usando el camino más corto entre un par de nodos (Jimeng y Jie, 2011). El algoritmo fue creado por Bavelas (1948), pero fue Linton Freeman (1971) quien lo popularizó para cuantificar el control que ejercía una persona en la comunicación con otras personas en una red social. La idea que subyace en este algoritmo es que los nodos con mayor intermediación aparecerán con mayor frecuencia en uno de los caminos más cortos que unen un par de nodos. Formalmente el algoritmo de “intermediación”, C BET ( i ), de un nodo i , en una red, se define de la siguiente manera (Needham y Hodler, 2019): C BET (i) = ∑ j,k = bjk bjik Siendo b jk el número de caminos más cortos desde el nodo j , hasta el nodo k , y b jik es el número de caminos más cortos desde j , a k que atraviesan el nodo i. El algoritmo de intermediación es otra medida para calcular la influencia o importancia que tiene un nodo con respecto al grafo. Se suele usar para encontrar aquellos nodos que conectan partes del grafo con otras, o nodos que sirven de puente para conectar otros nodos. Este algoritmo calcula el camino más corto entre todos los pares de nodos en un grafo conexo usando el algoritmo de “Búsqueda en anchura” ( BFS - Breadth First Search ), que se verá con más atención junto a los algoritmos de rutas óptimas. Cada nodo se puntúa en función del número de caminos más cortos que pasan por él, recibiendo mayor puntuación aquellos que sirven de puente mayor número de veces (Cormen, Leiserson et al., 2001). Para calcular y escribir el valor del algoritmo de intermediación como propiedad de todos los nodos del grafo se ha realizado una consulta por cada categoría gramatical respectivamente (NC, AQ y V) en Cypher , tal y como se muestra en el siguiente apartado. 408 / 8.3.4.1. Escritura de la propiedad “centrality” en los nodos En este apartado se muestran las consultas hechas en Cypher para escribir en el grafo la propiedad “ centrality ”, a partir del algoritmo de intermediación, anteriormente presentado, en cada nodo con las etiquetas de las tres categorías gramaticales observadas: sustantivos (NC), adjetivos (AQ), y verbos (V) respectivamente. ● Consulta en Cypher para escribir la propiedad “ centrality ” a partir del algoritmo de intermediación en los nodos con la etiqueta de sustantivo (NC): CALL algo . betweenness ( 'NC' , 'RELATED_TO' , { direction: 'out' , write:true , writeProperty: 'centrality' }) YIELD nodes , minCentrality , maxCentrality , sumCentrality , loadMillis , computeMillis , writeMillis ; ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ centrality ” en los nodos etiquetados como sustantivos (NC): MATCH (n:NC) RETURN min(n.centrality), max(n.centrality),avg(n.centrality),stDev(n.centrality) ● Resultados obtenidos del cálculo de la propiedad “centrality” para los sustantivos (NC): min(n.centrality) = 0.0 max(n.centrality) = 29745283.739909712 avg(n.centrality) = 41690.510086853064 stDev(n.centrality) = 487990.1268474129 Started streaming 1 records after 103 ms and completed after 103 ms. 409 / ● Listado de los 10 sustantivos con la propiedad “ centrality ” más alta a partir de la consulta: MATCH (p:NC) return p.termId, p.centrality order by p.centrality DESC limit 10 Started streaming 10 records after 2 ms and completed after 73 ms. ● Consulta en Cypher para escribir la propiedad “ centrality ” a partir del algoritmo de intermediación en los nodos con la etiqueta de adjetivo (AQ): CALL algo . betweenness ( 'AQ' , 'RELATED_TO' , { direction: 'out' , write:true , writeProperty: 'centrality' }) YIELD nodes , minCentrality , maxCentrality , sumCentrality , loadMillis , computeMillis , writeMillis ; 410 p.termId p.centrality "mm_cuerpo_07" 29745283.739909712 "mm_mueble_02" 28086159.697259396 "mm_hecha_01" 24756549.50042994 "mm_persona_01" 23135589.81518868 "mm_manera_01" 22766485.06296318 "mm_cosa_04" 22524907.08463983 "mm_verbo_04" 20487245.766371198 "mm_modo_01" 20470430.521340474 "mm_acción_01" 20358132.70312286 / ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ centrality ” en los nodos etiquetados como adjetivos (AQ): MATCH (n:AQ) RETURN min(n.centrality), max(n.centrality),avg(n.centrality),stDev(n.centrality) ● Resultados obtenidos del cálculo de la propiedad “ centrality ” para los nodos con la etiqueta de adjetivo (AQ): min(n.centrality) = 0.0 max(n.centrality) = 16603.5 avg(n.centrality) = 7.641216820757558 stDev(n.centrality) = 195.21609945121693 Started streaming 1 records after 46 ms and completed after 46 ms. ● Listado de los 10 adjetivos con la propiedad “ centrality ” más alta a partir de la consulta: MATCH (p:AQ) return p.termId, p.centrality order by p.centrality DESC limit 10 Started streaming 10 records after 2 ms and completed after 36 ms. 411 p.termId p.centrality "mm_capaz_01" 16603.5 "mm_susceptible_01" 9606.0 "mm_igual_02" 9567.333333333332 "mm_aplicable_01" 9233.0 "mm_recipiente_01" 8552.0 "mm_mismo_05" 7248.0 "mm_semejante_01" 7146.833333333333 "mm_susceptible_02" 7100.0 "mm_reflexivo_01" 6586.0 "mm_suficiente_01" 5011.5 / ● Consulta en Cypher para escribir la propiedad “ centrality ” a partir del algoritmo de intermediación en los nodos con la etiqueta de verbo (V): CALL algo . betweenness ( 'V' , 'RELATED_TO' , { direction: 'out' , write:true , writeProperty: 'centrality' }) YIELD nodes , minCentrality , maxCentrality , sumCentrality , loadMillis , computeMillis , writeMillis ; ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ centrality ” en los nodos etiquetados como verbos (V): MATCH (n:V) RETURN min(n.centrality), max(n.centrality),avg(n.centrality),stDev(n.centrality) ● Resultados obtenidos del cálculo de la propiedad “centrality” para los nodos con la etiqueta correspondiente a los verbos (V): min(n.centrality) = 0.0 max(n.centrality) = 316431.6222222221 avg(n.centrality) = 245.8815896576505 stDev(n.centrality) = 5276.400381369314 Started streaming 1 records after 44 ms and completed after 44 ms. 412 / ● Listado de los 10 verbos con la propiedad “ centrality ” más alta a partir de la siguiente consulta: MATCH (p:V) return p.termId, p.centrality order by p.centrality DESC limit 10 Started streaming 10 records after 2 ms and completed after 51 ms. Como se puede observar en relación con las anteriores tablas presentadas a partir del algoritmo “Page Rank”, aunque mantienen numerosas similitudes entre ambos, los resultados son diferentes en cada una de las tres categorías observadas. 413 p.termId p.centrality "mm_expresar_01" 316431.6222222221 "mm_servir_01" 309533.8150793652 "mm_percibir_01" 287581.9150793654 "mm_querer_09" 228423.4222222229 "mm_sentir_03" 224475.36269841337 "mm_extender_01" 177481.11666666664 "mm_tender_01" 144328.36666666667 "mm_ver_05" 130905.16349206356 "mm_entender_02" 123790.16349206354 "mm_querer_02" 120201.66666666666 / 8.3.5. Algoritmo de cercanía ( Closeness Centrality Algorithm ) En este apartado se describe otro algoritmo de centralidad, el algoritmo de cercanía ( Closeness Centrality Algorithm ), ofrecido dentro de la librería Neo4j Labs Graph Algorithms . Este algoritmo fue definido por Murray Beauchamp (1965) y popularizado también por Linton Freeman (1979). La medida se obtiene calculando la suma o el promedio de las distancias más cortas para cada nodo respecto al resto. La suma resultante después se invierte para determinar el valor de centralidad de cada nodo . La medida de centralidad que se obtiene con el algoritmo de cercanía es una manera de localizar los nodos que tienen mayor capacidad de difundir información con mayor eficacia a través de un grafo. En el grafo creado, serán las palabras más usadas en las definiciones lexicográficas las que obtengan mayor índice de cercanía. Cada nodo se puntúa midiendo la media de la lejanía (distancia inversa) respecto al resto. Los nodos con una puntuación de cercanía alta tienen una distancia menor hacia el resto de los nodos. Por lo tanto, las palabras más específicas, más periféricas en el grafo, obtendrán una puntuación más cercana a 0. Por ejemplo, un hápax legomenon (Baker et al., 2006) en el DUE obtendría de puntuación 0. Formalmente, el algoritmo de cercanía C CER ( i ) de un nodo i , se define como: C CER (i)= e i T S ij 1S = ∑ n j=1 = ● Donde S es la matriz de distancias de la red, matriz cuyos elementos ( i,j ) corresponden a la distancia más corta desde el nodo i , hasta el nodo j . ● Cuanto menor sea el valor obtenido para el nodo, más cerca estará del centro de la red. 414 / El algoritmo de cercanía funciona mejor con grafos conexos, ya que en grafos inconexos las distancias entre nodos suponen otros problemas añadidos para su cálculo. Es frecuente normalizar la puntuación para que represente la media de la distancia de los caminos más cortos en lugar de la suma (Okamoto, Chen, y Li, 2008). Esta diferencia permite comparar las puntuaciones obtenidas de diferentes grafos, con diferentes tamaños. La centralidad de cercanía normalizada se define como el número de nodos menos uno, partido por la suma de las distancias entre un nodo y el resto (Needham y Hodler, 2019). La centralidad de cercanía se utiliza normalmente para analizar redes organizativas (Krebs, 2002), donde las personas (nodos) con alta centralidad de cercanía están en una posición más favorable para el manejo de información, y otros recursos dentro de una organización. Esta medida se interpreta muchas veces también para estimar el tiempo de propagación de una información desde una fuente emisora hasta su objetivo, aunque no solo se usa en flujos de información, también se ha usado para calcular la propagación de una infección, o para estimar la importancia de las palabras en un documento (Florian Boudin, 2013) a través de la comparación de medidas de centralidad para extraer frases clave a partir de grafos. Para calcular y escribir el valor del algoritmo de cercanía como propiedad de todos los nodos del grafo, de igual manera que en los apartados anteriores, se ha realizado una consulta en Cypher por cada categoría gramatical respectivamente: sustantivos, adjetivos y verbos (NC, AQ y V), tal y como se muestra en el siguiente apartado. El objetivo de nuevo es observar cómo se comportan los algoritmos de grafos con las relaciones construidas a partir del diccionario de María Moliner en el grafo creado para analizar la analogía semántica a través del definiens y cotejar las diferencias respecto a los valores obtenidos con los algoritmos anteriormente presentados. Se debe tener en cuenta que este algoritmo afectaría especialmente a numerosas palabras que en muchos casos han sido descartadas por ser demasiado frecuentes en la definición lexicográfica y no aportar una información característica al definiendum. Este algoritmo busca aquellos nodos que sirven de puente en la relación con otros nodos, lo que en el grafo se traduciría en palabras transversales o comunes en la definición lexicográfica, como “respecto”, “aplicado”, o “cosa”. 415 / 8.3.5.1. Escritura de la propiedad “ closeness ” en los nodos En este apartado se muestran las consultas hechas en Cypher para escribir en el grafo la propiedad “ closeness ”, a partir del algoritmo de cercanía que se acaba de ver (Needham y Hodler, 2019), en cada nodo con las etiquetas de las tres categorías gramaticales observadas: sustantivos (NC), adjetivos (AQ), y verbos (V) respectivamente. ● Consulta en Cypher para escribir la propiedad “ closeness ” a partir del algoritmo de cercanía en los nodos con la etiqueta de sustantivo (NC): CALL algo . closeness ( 'NC' , 'RELATED_TO' , { write:true , writeProperty: 'closeness' }) YIELD nodes , loadMillis , computeMillis , writeMillis ; ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ closeness ” en los nodos etiquetados como sustantivos (NC): MATCH (n:NC) RETURN min(n.closeness), max(n.closeness),avg(n.closeness),stDev(n.closeness) ● Resultados obtenidos del cálculo de la propiedad “ closeness ” para los sustantivos (NC): min(n.closeness) = 0.0 max(n.closeness) = 1.0 avg(n.closeness) = 0.22298676332917483 stDev(n.closeness) = 0.06258124870026786 Started streaming 1 records after 145 ms and completed after 146 ms. ● Consulta en Cypher para escribir la propiedad “ closeness ” a partir del algoritmo de cercanía en los nodos con la etiqueta de adjetivo (AQ): 416 / CALL algo . closeness ( 'AQ' , 'RELATED_TO' , { write:true , writeProperty: 'closeness' }) YIELD nodes , loadMillis , computeMillis , writeMillis ; ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ closeness ” en los nodos etiquetados como adjetivos (AQ): MATCH (n:AQ) RETURN min(n.closeness), max(n.closeness),avg(n.closeness),stDev(n.closeness) ● Resultados obtenidos del cálculo de la propiedad “ closeness ” para los adjetivos (AQ): min(n.closeness) = 0.0 max(n.closeness) = 1.0 avg(n.closeness) = 0.16224559746142478 stDev(n.closeness) = 0.22052706634137062 Started streaming 1 records after 26 ms and completed after 26 ms. ● Consulta en Cypher para escribir la propiedad “ closeness ” a partir del algoritmo de cercanía en los nodos con la etiqueta de sustantivo (V): CALL algo . closeness ( 'V' , 'RELATED_TO' , { write:true , writeProperty: 'closeness' }) YIELD nodes , loadMillis , computeMillis , writeMillis ; ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ closeness ” en los nodos etiquetados como verbos (V): MATCH (n:V) RETURN min(n.closeness), max(n.closeness),avg(n.closeness),stDev(n.closeness) 417 / ● Resultados obtenidos del cálculo de la propiedad “ closeness ” para los verbos (V): min(n.closeness) = 0.0 max(n.closeness) = 1.0 avg(n.closeness) = 0.1617548548808556 stDev(n.closeness) = 0.15769666019959624 Started streaming 1 records after 34 ms and completed after 34 ms. En este caso, la cantidad de sustantivos, adjetivos y verbos que tienen el valor de la propiedad “ closeness ” igual a 1, es demasiado alta como para que un listado de los valores generales de todo el diccionario resulte significativo. Como ejemplo, el resultado de una consulta para obtener los 10 primeros conceptos ordenados de mayor a menor según el valor de la propiedad “ closeness ” es el siguiente, aunque como se ha apuntado la lista con conceptos con un valor igual a 1 es demasiado larga, y los que se muestran a continuación son resultados aleatorios y no significativos: ● Consulta en Cypher : Match (n:NC) return n.termId, n.closeness order by n.closeness DESC limit 100 418 n.termId n.closeness mm_consentidor_01 1.0 mm_coxcojita_01 1.0 mm_confortativo_01 1.0 mm_consentido_02 1.0 mm_contradictor_01 1.0 mm_coscojita_01 1.0 mm_cleriguicia_01 1.0 mm_concepto_03 1.0 mm_clerigalla_01 1.0 mm_conforto_02 1.0 / Sin embargo, el valor de la propiedad “ closeness ” sirve para comparar palabras relacionadas y conocer su comportamiento como “puente” entre los nodos del grafo. Volviendo de nuevo al ejemplo de las relaciones (“NARROWER_THAN”) de “árbol_01”, el cual tiene un valor de 0.28617543456482475 en la propiedad “ closeness ”, frente a las siguientes palabras con las que está relacionada, ordenadas por el valor de la propiedad “ closeness ” mostradas en la lista. ● Consulta en Cypher : Match (n:NC{termId:"mm_árbol_01"})-[r:NARROWER_THAN]-(m) return m.termId, m.closeness order by m.closeness DESC limit 10 419 termId score closeness "mm_planta_01" 0.3079202565390411 "mm_fruto_01" 0.2928764354616445 "mm_encina_01" 0.2778014026184069 "mm_corcho_01" 0.27118557560456086 "mm_leguminoso_01" 0.26752620749149914 "mm_pulpa_01" 0.26630690836187454 "mm_vegetal_04" 0.2659647600614029 "mm_ciruela_01" 0.2657598927610365 "mm_cortado_01" 0.2656633333333333 "mm_follaje_01" 0.2651330671989355 "mm_sombra_01" 0.2648344016561496 / 8.4. Algoritmos de comunidades La formación de comunidades en grafos supone una herramienta eficaz para detectar conjuntos de nodos con características similares (llamados comunidades). Con ellas se puede evaluar aspectos como el comportamiento grupal, o fenómenos emergentes que se pueden dar dentro de la red (Newman, 2004). El principio que subyace es que los miembros de una comunidad mantienen mayor número de relaciones con miembros de dentro de la comunidad, que con otros miembros de fuera de la comunidad. Los algoritmos de detección de comunidades permiten identificar grupos de nodos, sus preferencias, su comportamiento y ofrecen una visión general de la red, permitiendo estructurar grandes cantidades de información dentro de un grafo, en función de la tendencia de las relaciones “endógenas” de sus miembros. Dentro de los algoritmos de comunidades encontramos diferentes posibilidades entre las que pasamos a comentar las de mayor relevancia (Needham y Hodler, 2019) con el objetivo de establecer su relevancia para la identificación de campos semánticos a través de los valores calculados por dichos algoritmos, y la consiguiente obtención de grupos de alta conexión semántica. 8.4.1. Algoritmo de coeficiente de agrupación y recuento de triángulos El algoritmo del coeficiente de agrupación y recuento de triángulos (Holland y Leinhardt, 1972; Watts y Strogatz, 1998) es un método de detección de comunidades basado en el recuento de triángulos. Este algoritmo mide cómo diferentes nodos forman triángulos, y el grado en que los nodos tienden a agruparse. Para ello, se identifica el número de triángulos que pasan entre cada uno de los nodos de un grafo (Becchetti et al., 2008). Este algoritmo es de gran utilidad para diversos casos de análisis de datos y está desarrollado en las librerías de Neo4j . El recuento de triángulos locales y el coeficiente de agrupación de nodos se pueden usar para encontrar personas influyentes en las redes sociales, en su análisis para la detección de comunidades, o para conocer la estabilidad de un grafo y la cohesión de sus miembros. Por lo tanto, es un análisis que tiene bastante 420 / relevancia en el análisis de redes sociales. Para este algoritmo se usan dos coeficientes de agrupación: uno local y otro global (Wasserman y Faust, 2013). En teoría de grafos el coeficiente de agrupación local calcula la probabilidad de que sus vecinos estén conectados, puntuándose mediante el número de los triángulos que conforman el conjunto. Mientras que el coeficiente de agrupación global se calcula con la suma normalizada de todos los coeficientes que conforman el conjunto de forma local. El coeficiente de agrupación es una medida del grado en que los nodos de un grafo tienden a agruparse. Si el coeficiente de agrupación promedio es bajo, indicará en este caso que los grupos de palabras no están muy unidos, y a la inversa si el coeficiente de agrupación es alto. 8.4.1.1. Escritura de la propiedad “triangles” y “coefficient” en los nodos En este apartado se muestran las consultas hechas en Cypher para escribir en el grafo la propiedad “ triangles ” y “ coefficient ” (Needham y Hodler, 2019), a partir del algoritmo del coeficiente de agrupación y recuento de triángulos, que se acaba de presentar, en cada nodo con las etiquetas de las tres categorías gramaticales observadas: sustantivos (NC), adjetivos (AQ), y verbos (V) respectivamente. ● Consulta en Cypher para escribir la propiedad “ triangles ” y “ coefficient ” a partir del algoritmo del coeficiente de agrupación y recuento de triángulos en los nodos con la etiqueta de sustantivo (NC): CALL algo . triangleCount ( NC , 'RELATED_TO' , { concurrency:4 , write:true , writeProperty: 'triangles' , clusteringCoefficientProperty: 'coefficient' }) YIELD loadMillis , computeMillis , writeMillis , nodeCount , triangleCount , averageClusteringCoefficient ; 421 / ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ triangles ”, y “ coefficient ” en los nodos etiquetados como sustantivos (NC). ○ Triangles: MATCH (n:NC) RETURN min(n.triangles), max(n.triangles),avg(n.triangles),stDev(n.triangles) ○ Coefficient: MATCH (n:NC) RETURN min(n.coefficient), max(n.coefficient),avg(n.coefficient),stDev(n.coefficient) ● Resultados obtenidos del cálculo de la propiedad “ triangles ” y “ coefficient ” para los sustantivos (NC): ○ Triangles: Started streaming 1 records after 175 ms and completed after 175 ms. ○ Coefficient: Started streaming 1 records after 119 ms and completed after 119 ms. 422 min(n.triangles) max(n.triangles) avg(n.triangles) stDev(n.triangles) 0 2898 1.5654972525813606 18.94121115569978 min(n.coefficient) max(n.coefficient) avg(n.coefficient) stDev(n.coefficient) 0.0 1.0 0.12223451254042265 0.2523293651686494 / ● Lista de los 15 sustantivos ordenados por el mayor valor de la propiedad de “ triangles ” (la propiedad “ coefficient ” no ofrece ninguna información relevante en un listado de todo el diccionario ordenado de mayor a menor por este valor, ya que hay demasiadas palabras con el valor de 1, sucediendo lo mismo con los adjetivos y con los verbos, por lo que se han omitido dichos resultados): Started streaming 15 records in less than 1 ms and completed after 75 ms. 423 p.termId p.triangles "mm_planta_01" 2898 "mm_persona_01" 2623 "mm_acción_02" 1449 "mm_efecto_01" 1316 "mm_conjunto_05" 1111 "mm_parte_01" 991 "mm_ave_01" 927 "mm_flor_01" 903 "mm_fruto_01" 881 "mm_árbol_01" 739 "mm_hoja_01" 699 "mm_pieza_01" 586 "mm_animal_03" 586 "mm_barco_01" 538 "mm_tallo_01" 472 / ● Consulta en Cypher para escribir la propiedad “ triangles ” y “ coefficient ” a partir del algoritmo del coeficiente de agrupación y recuento de triángulos en los nodos con la etiqueta de adjetivo (AQ): CALL algo . triangleCount ( AQ , 'RELATED_TO' , { concurrency:4 , write:true , writeProperty: 'triangles' , clusteringCoefficientProperty: 'coefficient' }) YIELD loadMillis , computeMillis , writeMillis , nodeCount , triangleCount , averageClusteringCoefficient ; ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “triangles” y “coefficient” en los nodos etiquetados como adjetivos (AQ): ○ Triangles: MATCH (n:AQ) RETURN min(n.triangles), max(n.triangles),avg(n.triangles),stDev(n.triangles) ○ Coefficient: MATCH (n:AQ) RETURN min(n.coefficient), max(n.coefficient),avg(n.coefficient),stDev(n.coefficient) ● Resultados obtenidos del cálculo de la propiedad “triangles” y “coefficient” para los adjetivos (AQ): ○ Triangles Started streaming 1 records after 59 ms and completed after 59 ms. 424 min(n.triangles) max(n.triangles) avg(n.triangles) stDev(n.triangles) 0 18 0.046525499552639335 0.35412200243285635 / ○ Coefficient: Started streaming 1 records after 29 ms and completed after 29 ms. ● Lista de los 15 adjetivos ordenados por el mayor valor de la propiedad de 82 “ triangles ”: Started streaming 16 records after 1 ms and completed after 41 ms. 82 Recuérdese que muchos nodos tienen tanto la etiqueta de sustantivos como de adjetivos. 425 min(n.coefficient) max(n.coefficient) avg(n.coefficient) stDev(n.coefficient) 0.0 1.0 0.011101865460829245 0.09191652835215314 p.termId p.triangles "mm_mamífero_01" 13 "mm_falto_01" 12 "mm_mestizo_01" 10 "mm_mulato_01" 8 "mm_diez_01" 8 "mm_pequeño_01" 8 "mm_niño_01" 8 "mm_astuto_01" 7 "mm_terciario_02" 7 "mm_claro_01" 6 "mm_molusco_01" 6 "mm_bueno_01" 6 "mm_oscuro_02" 6 "mm_evidente_01" 6 "mm_perenne_01" 5 / ● Consulta en Cypher para escribir la propiedad “ triangles ” y “ coefficient ” a partir del algoritmo del coeficiente de agrupación y recuento de triángulos en los nodos con la etiqueta de verbo (V): CALL algo . triangleCount ( V , 'RELATED_TO' , { concurrency:4 , write:true , writeProperty: 'triangles' , clusteringCoefficientProperty: 'coefficient' }) YIELD loadMillis , computeMillis , writeMillis , nodeCount , triangleCount , averageClusteringCoefficient ; ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ triangles ” y “ coefficient ” en los nodos etiquetados como verbos (V): ○ Triangles: MATCH (n:V) RETURN min(n.triangles), max(n.triangles),avg(n.triangles),stDev(n.triangles) ○ Coefficient: MATCH (n:V) RETURN min(n.coefficient), max(n.coefficient),avg(n.coefficient),stDev(n.coefficient) ● Resultados obtenidos del cálculo de la propiedad “ triangles ” y “ coefficient ” para los verbos (V): ○ Triangles Started streaming 1 records after 64 ms and completed after 64 ms. 426 min(n.triangles) max(n.triangles) avg(n.triangles) stDev(n.triangles) 0 93 0.1264065118506102 0.8798290502517255 / ○ Coefficient Started streaming 1 records after 25 ms and completed after 25 ms. ● Lista de los 15 verbos ordenados por el mayor valor de la propiedad de “ triangles ” (la propiedad “ coefficient ” en los verbos, al igual que se ha señalado con los adjetivos y los sustantivos, no ofrece ninguna información relevante que mostrar en una lista, ya que hay demasiadas palabras con el valor de 1): Started streaming 16 records after 1 ms and completed after 25 ms. 427 min(n.coefficient) max(n.coefficient) avg(n.coefficient) stDev(n.coefficient) 0.0 1.0 0.035559623902483024 0.1681440102955197 p.termId p.triangles "mm_expresar_01" 93 "mm_producir_01" 21 "mm_molestar_01" 18 "mm_hablar_01" 18 "mm_quitar_01" 18 "mm_causar_01" 15 "mm_conseguir_01" 12 "mm_ocurrir_01" 12 "mm_ver_05" 11 "mm_fastidiar_02" 11 "mm_empezar_01" 11 "mm_mover_01" 10 "mm_guardar_01" 10 "mm_ayudar_01" 10 "mm_dirigir_01" 9 "mm_llegar_04" 9 / 8.4.2. Algoritmo de componentes fuertemente conectados (SCC) El algoritmo de Componentes fuertemente conectados o conexos ( SCC, Strongly Connected Components ), identifica conjuntos de nodos conectados en un grafo dirigido, donde cada nodo es accesible en ambas direcciones desde cualquier otro nodo en el mismo conjunto, lo que implica que la dirección es importante, permitiendo conocer de esta manera la estructura del grafo (Tarjan, 1972). Un grafo dirigido está fuertemente conectado, por lo tanto, si hay una ruta entre todos los pares de vértices en ambas direcciones. Este algoritmo descompone un grafo dirigido en sus componentes fuertemente conectados a partir del algoritmo de búsqueda en profundidad (DFS, Depth First Search). En un grafo dirigido, los componentes fuertemente conectados son aquellos subgrafos maximales fuertemente conexos que forman una partición del grafo. Un subgrafo fuertemente conexo es maximal si contiene todos los nodos del grafo o si al agregarle un nodo deja de ser fuertemente conectado (Aho, Hopcroft, y Ullman, 1983). 8.4.2.1. Escritura de la propiedad “ partition ” en el grafo En este apartado se muestran las consultas hechas en Cypher (Needham y Hodler, 2019) para escribir en el grafo la propiedad “ partition ” a partir del algoritmo “SCC” ( componentes fuertemente conectados ), que como se acaba de presentar sirve para crear agrupaciones de nodos en función de sus características de conectividad, en cada nodo con las etiquetas de las tres categorías gramaticales observadas: sustantivos (NC), adjetivos (AQ), y verbos (V) respectivamente. La propiedad “ partition ” como se mostrará a continuación, resulta útil para encontrar grupos de palabras afines, o que mantienen algún tipo de relación de proximidad conceptual, lo que permite hacer consultas combinando la partición (como valor de los nodos), con las relaciones creadas. 428 / ● Consulta en Cypher para escribir la propiedad “ partition ” a partir del algoritmo SCC en los nodos con la etiqueta de sustantivo (NC): CALL algo . scc ( 'NC' , 'RELATED_TO' , { write:true , partitionProperty: 'partition' }) YIELD loadMillis , computeMillis , writeMillis , setCount , maxSetSize , minSetSize ; ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ partition ” en los nodos etiquetados como sustantivos (NC): MATCH (n:NC) RETURN min(n.partition), max(n.partition),avg(n.partition),stDev(n.partition) ● Resultados obtenidos del cálculo de la propiedad “ partition ” para los sustantivos (NC): Started streaming 1 records after 112 ms and completed after 112 ms. ● Resultados obtenidos para hallar las particiones de tamaño más alto (limitado a 5 resultados) para los sustantivos (NC), teniendo en cuenta que Neo4j crea una partición adicional (partición 16139) para todo el subconjunto de los nodos que no corresponden a una partición: 429 min(n.partition) max(n.partition) avg(n.partition) stDev(n.partition) 0 82804 39977.7233862692 23974.516104916856 partition size_of_partition 16139 4340 34539 9 3010 6 35590 6 6403 6 / ● Consulta en Cypher para la obtención del listado anterior: MATCH ( u:NC ) RETURN u . partition as partition , count ( * ) as size_of_partition ORDER by size_of_partition DESC LIMIT 5 Sin embargo, si exceptuamos la primera partición, donde se encuentra un agregado de palabras demasiado heterogéneo y amplio (4340 nodos), en otras particiones, como la partición 34539 que ocupa la segunda posición en la anterior lista, corresponde con conceptos relativos a los “cnidarios”, como medusas o pólipos, o la partición 3010 que agrupa tipos de minerales relacionados con el silicato (como el “asbesto”, la “hornblenda” o el “amianto”). Más abajo de la lista anterior, podemos ver que mantienen agrupaciones lógicas. Por ejemplo, la partición 35590 presentada a continuación, corresponde con mamíferos marinos de la familia de los cetáceos. ● Consulta en Cypher para obtener los elementos de la partición 35590: MATCH (u:NC) where u.partition= 35590 RETURN u.termId, u.definition 430 u.termId u.definition ( DUE ) "mm_ballena_01" "Mamífero cetáceo, el mayor de los animales conocidos;" "mm_cachalote_01" "Mamífero cetáceo odontoceto de 15 a 20 m de largo. que tiene una cabeza muy grande y del cual se aprovecha particularmente la grasa que tiene almacenada en gran cantidad. y el ámbar gris que se recoge de su intestino." "mm_narval_01" "Cetáceo de unos 6 m de largo, de cuerpo grueso, liso, brillante, blanco con vetas pardas por el lomo. con un incisivo que puede llegar a medir cerca de 3 m." "mm_cetáceo_01" "Se aplica a ciertos mamíferos adaptados a la vida acuática. como la ballena, el cachalote, el delfín, el narval o la orca." "mm_orca_01" "Cetáceo de unos 10 m de longitud. de cabeza redondeada. de color azul oscuro por el lomo y blanco por el vientre." "mm_delfín_01" "Mamífero cetáceo de 2 o 3 m de largo. con la boca en forma de pico." / En la siguiente tabla, también se puede ver otro ejemplo en el que otra partición, la 2413, corresponde con palabras relacionadas con la familia de los mustélidos, un tipo de mamífero como la comadreja. En estos casos, como se puede observar en la consulta, no se han limitado los resultados y se muestran todos los integrantes de cada partición. ● Consulta en Cypher : MATCH (u:NC) where u.partition= 2413 RETURN u.termId, u.definition Por último, otro ejemplo de particiones a partir de sustantivos, la partición 6403, la cual une conceptos de física que están relacionados con el electrodo, dicha partición tiene un total de seis elementos, no se han limitado los resultados. ● Consulta en Cypher : MATCH (u:NC) where u.partition= 6403 RETURN u.termId, u.definition 431 u.termId u.definition ( DUE ) "mm_visón_01" "Mamífero carnívoro mustélido, parecido a la marta, que vive en el norte de América y Europa." "mm_huillín_01" "Especie de nutria de Chile." "mm_lataz_01" "Nutria que vive en las orillas del Pacífico septentrional. algo mayor que la de Europa y de pelo más fino y lustroso." "mm_mustélido_01" "Se aplica a los animales mamíferos carnívoros del grupo de la comadreja. como el armiño. el chucuru. el glotón. el huillín. el lataz. la nutria o el visón." "mm_nutria_01" "Mamífero mustélido;" / ● Consulta en Cypher para escribir la propiedad “ partition ” a partir del algoritmo SCC en los nodos con la etiqueta de adjetivo (AQ): CALL algo . scc ( 'AQ' , 'RELATED_TO' , { write:true , partitionProperty: 'partition' }) YIELD loadMillis , computeMillis , writeMillis , setCount , maxSetSize , minSetSize ; ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “partition” en los nodos etiquetados como adjetivos (AQ): MATCH (n:AQ) RETURN min(n.partition), max(n.partition),avg(n.partition),stDev(n.partition) ● Resultados obtenidos del cálculo de la propiedad “ partition ” para los adjetivos: Started streaming 1 records after 35 ms and completed after 35 ms. 432 u.termId u.definition ( DUE ) "mm_ánodo_01" "Electrodo por el que entra la corriente en un electrolito. en un tubo de gas o en una válvula termoiónica. y al que se dirigen los iones negativos o aniones." "mm_anión_01" "Ión con carga negativa que, en la electrólisis, se dirige al ánodo." "mm_ion_01" "Radical, o sea átomo o grupo de átomos no saturado, que transporta una carga eléctrica positiva, «catión», o negativa, «anión»;" "mm_ión_01" "Radical. o sea átomo o grupo de átomos no saturado, que transporta una carga eléctrica positiva, «catión», o negativa, «anión»;" "mm_catión_01" "Ión de un electrolito que transporta carga positiva y. en la electrólisis. marcha hacia el cátodo o polo por donde sale la corriente de la pila." "mm_electrolito_01" "Cuerpo cuyas moléculas se dividen en iones al disolverse el cuerpo." min(n.partition) max(n.partition) avg(n.partition) stDev(n.partition) 1 82792 19035.932555068044 18504.30100454304 / ● Resultados obtenidos para hallar las particiones con el tamaño más alto para los adjetivos (AQ): MATCH ( u:AQ ) RETURN u . partition as partition , count ( * ) as size_of_partition ORDER by size_of_partition DESC LIMIT 5 ● Ejemplo de consulta en Cypher donde se obtiene la partición 803, la cual corresponde con tipos de metazoo (tipo de ser vivo marino): MATCH (u:AQ) where u.partition= 803 RETURN u.termId, u.definition 433 partition size_of_partition 16139 244 2810 3 803 3 34539 3 6599 3 u.termId u.definition ( DUE ) "mm_antozoo_01" "Se aplica a los cnidarios que carecen de forma medusa y cuya forma pólipo vive fija al fondo del mar. aislada o formando colonias sobre un polipero" "mm_celentéreo_01" "Se aplica a los animales pertenecientes a un grupo de metazoos inferiores de simetría radiada. representados para las formas asexuadas por el pólipo. con una única cavidad denominada «cavidad gastrovascular»." "mm_cnidario_01" "Se aplica a los celentéreos caracterizados por poseer células urticantes y presentar en su ciclo vital dos formas: pólipo (forma asexuada sedentaria) y medusa (forma sexuada de vida libre y nadadora). aunque pueden tener sólo una de ellas." / ● Ejemplo de consulta en Cypher donde se obtiene que la partición 34539 corresponde con épocas del periodo terciario: MATCH (u:AQ) where u.partition= 34539 RETURN u.termId, u.definition Started streaming 3 records after 1 ms and completed after 19 ms. ● Consulta en Cypher para escribir la propiedad “ partition ” a partir del algoritmo SCC en los nodos con la etiqueta de verbos (V): CALL algo . scc ( 'V' , 'RELATED_TO' , { write:true , partitionProperty: 'partition' }) YIELD loadMillis , computeMillis , writeMillis , setCount , maxSetSize , minSetSize ; ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “ partition ” en los nodos etiquetados como verbos (V): MATCH (n:V) RETURN min(n.partition), max(n.partition),avg(n.partition),stDev(n.partition) 434 u.termId u.definition ( DUE ) "mm_mioceno_01" "Se aplica a la cuarta época del periodo terciario. incluida en el neógeno. y a sus cosas." "mm_neógeno_01" "Se aplica a la segunda de las dos subdivisiones del terciario. que incluye el mioceno y el plioceno. y a todo lo relativo a este periodo. muy similar al actual." "mm_plioceno_01" "Se aplica a la quinta y última época del periodo terciario. que sigue al mioceno y está incluida en el neógeno. y a las cosas de él." / ● Resultados obtenidos del cálculo de la propiedad “ partition ” para los verbos (V): Started streaming 1 records after 26 ms and completed after 26 ms. ● Resultados obtenidos para hallar las particiones con el número de elementos más alto para los verbos (V), limitando los resultados a los cinco primeros: MATCH ( u:V ) RETURN u . partition as partition , count ( * ) as size_of_partition ORDER by size_of_partition DESC LIMIT 5 La primera partición ( 18866) vuelve a no resultar de interés al reunir Neo4j un agregado de palabras demasiado amplio, y demasiado dispar entre sí, sin embargo, el resto de particiones guardan una lógica interesante, aunque como se puede comprobar por la lista anterior no se forman particiones de más de tres miembros. Por ejemplo, la partición 493, mostrada a continuación, ha formado un grupo de verbos que comparten la noción de “tener” algo de forma mantenida en el tiempo (“guardar”, “mantener”, y “conservar”). 435 min(n.partition) max(n.partition) avg(n.partition) stDev(n.partition) 0 20884 10434.470433325396 6035.9476204038565 partition size_of_partition 18866 35 493 3 3107 3 8147 3 15317 3 / ● Ejemplo de consulta en Cypher para obtener los elementos de la partición 493: MATCH (u:V) where u.partition= 493 RETURN u.termId, u.definition ● Ejemplo de consulta en Cypher para obtener los elementos de la partición 8147, relacionados con la idea de “ingerir” algo : También observamos algunos casos donde la desambiguación ha afectado al algoritmo en la correcta formación de la partición. En el caso de la partición 3107, “introducir_02” se podría haber resuelto de manera más adecuada: ● Consulta en Cypher : MATCH (u:V) where u.partition= 3107 RETURN u.termId, u.definition 436 u.termId u.definition ( DUE ) "mm_guardar_11" "Conservar para alguien una cosa, por ejemplo un puesto, sin permitir que lo ocupe otra persona." "mm_mantener_04" "Conservar una cosa en cierta forma que se expresa." "mm_conservar_01" "Guardar, mantener: hacer que dure una cosa, que dure en un sitio o que dure en buen estado." u.termId u.definition ( DUE ) mm_beber_02 "Tomar más o menos bebidas alcohólicas". mm_comer_01 "En sentido amplio, tomar alimentos por la boca". mm_tomar_05 "Comer o beber una cosa”. / En el siguiente ejemplo, se han extraído las palabras relacionadas, por cualquier tipo de relación, con “árbol_01”, que tengan el mismo valor de la partición 16139, limitados a 15 resultados, todos ellos de gran cercanía a conceptos vegetales (Para ver la lista completa, se debe acudir al apéndice 4, tabla 22): ● Consulta en Cypher: MATCH (p:NC{termId:"mm_árbol_01"})--(q:NC{partition:16139}) return q.termId, q.partition limit 15 Started streaming 15 records after 1 ms and completed after 23 ms. 437 u.termId u.definition ( DUE ) "mm_introducir_02" "Acompañar a una persona y anunciarla al entrar en un sitio." "mm_meter_06" "Manejarse para entrar o tener entrada o influencia en alguna parte." "mm_entrar_23" "Meter o introducir materialmente una cosa en un sitio." q.termId q.partition "mm_copa_04" 16139 "mm_suelo_04" 16139 "mm_distancia_01" 16139 "mm_tallo_01" 16139 "mm_peral_01" 16139 "mm_olivo_01" 16139 "mm_oleáceo_01" 16139 "mm_frutal_01" 16139 "mm_ciruelo_01" 16139 "mm_ciprés_01" 16139 "mm_follaje_01" 16139 "mm_nogal_01" 16139 "mm_chopo_01" 16139 "mm_naranjo_01" 16139 "mm_cerrado_04" 16139 / ● Visualización del subgrafo asociado a “árbol_01” con los nodos de la partición 16139 (no se ha querido devolver el nodo “árbol_01” en este primer subgrafo, ya que “árbol_01”, concentra todas las relaciones y dificulta visualizar de forma clara el subgrafo): ○ Figura 101. Subgrafo con los nodos de la partición 16139 asociados a “árbol_01”. 438 / ● Consulta en Cypher en la que sí se devuelve el nodo “árbol_01”, con relaciones comunes con el resto de nodos del subgrafo anterior: MATCH (p:NC{termId:"mm_árbol_01"})--(q:NC{partition:16139}) return q,p ● Figura 102. Subgrafo con los nodos de la partición 16139 relacionados con el nodo “árbol_01”. 439 / 8.4.3. Algoritmo de propagación de etiquetas (LPA) El algoritmo de propagación de etiquetas, Label Propagation algorithm (LPA) es un algoritmo para encontrar comunidades en un grafo en función de sus vecinos directos (U. N. Raghavan, R. Albert, y S. Kumara, 2007). Estas comunidades se detectan utilizando solo la estructura de la red como guía, y no requiere información previa sobre las comunidades. Una característica de LPA es que se les pueden asignar a los nodos etiquetas preliminares para reducir el rango de soluciones generadas, lo que facilita enormemente el trabajo con grafos de mucho tamaño. Es un algoritmo que se ha usado en diferentes ámbitos como el análisis de sentimiento para la clasificación de tweets por su polaridad positiva o negativa (Speriosu et al., 2011), para estimar el peligro potencial de la interacción de ciertos medicamentos por su similitud (Zhang et al., 2015), o también en sistemas de diálogo en modelos de aprendizaje automático para la detección de las intenciones de los usuarios (Murase, 2017). En el procedimiento del algoritmo LPA, cada nodo se inicia con un identificador o etiqueta, que se va propagando paulatinamente al resto de vecinos. Con cada iteración de la propagación, cada nodo actualiza su etiqueta y la hace coincidir con la que tiene mayor peso, según el peso calculado para sus nodos vecinos y sus relaciones, deteniéndose al final de la propagación cuando alcanza una única etiqueta para las comunidades detectadas. Figura 103. Subgrafo. 440 / 8.4.3.1. Escritura de la propiedad “community” a partir de “LPA” En este apartado se muestran las consultas hechas en Cypher para escribir en el grafo la propiedad “ community ” a partir del algoritmo “LPA” en cada nodo, con las etiquetas de las tres categorías gramaticales observadas: sustantivos (NC), adjetivos (AQ), y verbos (V) respectivamente. ● Consulta en Cypher para escribir la propiedad “ community ” a partir del algoritmo LPA en los nodos con la etiqueta de sustantivo (NC): CALL algo . labelPropagation ( 'NC' , 'RELATED_TO' , { iterations: 10 , writeProperty: 'community' , write: true , direction: 'OUTGOING' }) YIELD nodes , iterations , loadMillis , computeMillis , writeMillis , write , writeProperty ; ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “community” en los nodos etiquetados como sustantivos (NC): MATCH (n:NC) RETURN min(n.community), max(n.community),avg(n.community),stDev(n.community) ● Resultados obtenidos del cálculo de la propiedad “ community ” para los sustantivos (NC): Started streaming 1 records after 118 ms and completed after 118 ms. 441 min(n.community) max(n.community) avg(n.community) stDev(n.community) 62 82754 19329.32029466815 11556.069737571273 / ● Resultados obtenidos para hallar la comunidad con el mayor tamaño para los sustantivos (NC): MATCH ( u:NC ) RETURN u . community as partition , count ( * ) as size_of_community ORDER by size_of_community DESC LIMIT 5 Dentro de las comunidades creadas con más elementos, encontramos conjuntos interesantes como, por ejemplo, los relativos a números, como se aprecia en la tabla del siguiente ejemplo, pero en general, las comunidades con mayor número de elementos, como es lógico, conforman conjuntos más heterogéneos, menos relacionados entre sí. ● Extracto de los resultados (un total de 133 resultados): 442 partition size_of_community 16139 74394 56230 2782 45297 202 75920 170 80454 133 community termId definition ( DUE ) 80454 "mm_novecientos_01 " "Número cardinal equivalente a nueve veces cien." 80454 "mm_noveno_01" "Numeral ordinal y partitivo correspondiente a «nueve»." 80454 "mm_noventa_01" "Número cardinal equivalente a nueve veces diez." 80454 "mm_nueve_01" "Numeral cardinal equivalente a ocho más uno." / ● Consulta en Cypher : MATCH (u:NC) where u.community= 80454 RETURN u ● Figura 104. Subgrafo correspondiente a la comunidad 80454, se han pintado en amarillo los nodos correspondientes a numerales cardinales, y el resto se ha dejado en azul, como “terna” o “triple”, etc, apareciendo también palabras con elementos del definiens que están muy relacionados con los números, como “cuadrilátero” o “trapecio”. 443 / Respecto a las comunidades construidas, exceptuando las primeras a las que se ha aludido, se pueden encontrar comunidades más o menos amplias en las que sí se mantiene una coherencia temática. En los siguientes ejemplos, se presentan sendos extractos de la lista completa (ver apéndice 4, tabla 23 y tabla 24) de las palabras pertenecientes a diferentes comunidades. En el siguiente ejemplo, se muestra la comunidad 41292, con 48 elementos en total, en los que se aprecia dicha coherencia temática entre los conceptos, relacionados con el “hambre” y la “comida”. ● Extracto de la lista tras la consulta en Cypher para obtener la comunidad 41292: MATCH (u:NC) where u.community= 41292 RETURN u.termId, u.definition 444 u.termId u.definition ( DUE ) mm_gusa_01 Hambre. mm_vitualla_02 Abundancia de comida. mm_hambre_01 Sensación interna que hace desear la comida. mm_hambrina_01 Hambre muy grande. mm_hambruna_01 Hambre muy grande. mm_yanta_01 Comida del mediodía. mm_yantar_04 Comida. mm_zampa_02 Comida. mm_zancocho_01 Comida mal guisada. mm_almudelio_01 Ración de comida o bebida. mm_almuerzo_01 Comida que se toma a veces a media mañana. / ● Consulta en Cypher : MATCH (u:NC) where u.community= 41292 RETURN u ● Figura 105. Subgrafo correspondiente a la comunidad 41292 , 445 / ● Consulta en Cypher para obtener la comunidad 4489, constituida por conceptos relativos a “adornos”, 46 elementos en total, extracto de la tabla 24, apéndice 4: MATCH (u:NC) where u.community= 4489 RETURN u.termId, u.definition 446 u.termId u.definition ( DUE ) mm_abanillo_01 Adorno plisado en que consistían algunos cuellos alechugados. mm_guadameco_01 Cierto adorno que usaban las mujeres. mm_guara_03 Adorno superfluo. mm_virguería_01 Adorno. detalle o refinamiento añadido a una cosa. que se considera exagerado o molesto. mm_guilindujes_01 Arrequives. mm_adorno_01 Cosa que adorna. "mm_historiado_02" Historiar, complicado o recargado de adornos. "mm_alcafar_01" Cubierta. jaez o adorno del caballo. "mm_alfarda_04" Cierto adorno que usaban antiguamente las mujeres. "mm_almocarbe_02" Adorno de lazos. / ● Consulta en Cypher sobre la comunidad 4489: MATCH (u:NC) where u.community= 4489 RETURN u ● Figura 106. Subgrafo correspondiente a la comunidad 4489 . Como se puede observar en los anteriores ejemplos, las comunidades creadas se conforman alrededor de conceptos comunes, y a pesar de que son comunidades relativamente grandes, de más de cuarenta miembros cada una, si se observan las tablas 23 y 24, se puede comprobar que todos sus elementos mantienen dichas relaciones, al igual que sucede en el resto de categorías gramaticales (adjetivos y verbos) que se presentan a continuación. 447 / ● Consulta en Cypher para escribir la propiedad “ community ” a partir del algoritmo LPA en los nodos con la etiqueta de adjetivo (AQ): CALL algo . labelPropagation ( 'AQ' , 'RELATED_TO' , { iterations: 10 , writeProperty: 'community' , write: true , direction: 'OUTGOING' }) YIELD nodes , iterations , loadMillis , computeMillis , writeMillis , write , writeProperty ; ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “community” en los nodos etiquetados como adjetivos (AQ): MATCH (n:AQ) RETURN min(n.community), max(n.community),avg(n.community),stDev(n.community) ● Resultados obtenidos del cálculo de la propiedad “ community ” para los adjetivos (AQ): Started streaming 1 records after 33 ms and completed after 33 ms. ● Consulta en Cypher y resultados obtenidos para hallar las 5 comunidades de mayor tamaño para los adjetivos (AQ): MATCH ( u:AQ ) RETURN u . community as partition , count ( * ) as size_of_community ORDER by size_of_community DESC LIMIT 5 448 min(n.community) max(n.community) avg(n.community) stDev(n.community) 1 82673 16160.667078522354 14090.215094138637 partition size_of_community 16139 4909 10768 1683 19149 326 8500 272 80454 252 / Respecto a la calidad de las comunidades creadas en los adjetivos, vuelve a ocurrir lo mismo que con los sustantivos, las comunidades con mayor número de elementos conforman un conjunto demasiado heterogéneo mientras que según se va descendiendo a comunidades con menos elementos se obtienen resultados con una coherencia temática interesante. El siguiente ejemplo, es otro extracto de la lista de los elementos pertenecientes a la comunidad 395, con un total de 73 elementos (ver la lista completa en el apéndice 4, tabla 25), en el que se observa que el eje temático se articula en torno a la abundancia de algo. ● Consulta en Cypher y extracto de la lista devuelta: MATCH (u:AQ) where u.community= 395 RETURN u.termId, u.definition 449 u.termId u.definition ( DUE ) mm_vicioso_02 Abundante en cierta cosa que significa vigor. mm_abundado_01 Abundante. mm_abundante_01 Se aplica a lo que abunda. mm_abundantísimo_01 Abundante. mm_abundoso_01 Abundante. mm_yerboso_01 Abundante en hierba. mm_herboso_01 Cubierto de hierba abundante. mm_zancudo_01 Se aplica a la persona o animal que tiene las piernas o las patas largas. mm_zarzoso_01 Aplicado a terrenos. abundante en zarzas. mm_hornaguero_02 Espacioso u holgado. mm_anchuroso_01 Muy espacioso; / ● Consulta en Cypher para extraer la comunidad 395: MATCH (u:AQ) where u.community= 395 RETURN u ● Figura 107. Subgrafo de los adjetivos de comunidad 395. Como se puede observar en el anterior subgrafo, no todos los nodos pertenecientes a una determinada comunidad mantienen relaciones entre sí. En la comunidad anterior “careador_01” y “carilludo_01” son nodos que están aislados frente al resto de elementos de la comunidad, y por lo tanto, también se refleja a nivel semántico frente a los significados compartidos por el resto de la comunidad. Una vez creada dicha comunidad, por lo tanto, Neo4j permite establecer filtros en las consultas que ayuden a identificar aquellos elementos más “centrales” y más “periféricos”, mediante consultas que tengan en cuenta el número y tipo de relaciones que unen los nodos entre sí. Ahora se pasará a realizar la misma operación con los nodos con etiqueta de verbos. 450 / ● Consulta en Cypher para escribir la propiedad “ community ” a partir del algoritmo LPA en los nodos con la etiqueta de verbo (V): CALL algo . labelPropagation ( 'V' , 'RELATED_TO' , { iterations: 10 , writeProperty: 'community' , write: true , direction: 'OUTGOING' }) YIELD nodes , iterations , loadMillis , computeMillis , writeMillis , write , writeProperty ; ● Consulta en Cypher para calcular el valor mínimo, el máximo, la media y la desviación estándar de la propiedad “community” en los nodos etiquetados como verbos (V): MATCH (n:V) RETURN min(n.community), max(n.community),avg(n.community),stDev(n.community) ● Resultados obtenidos del cálculo de la propiedad “ community ” para los verbos: Started streaming 1 records after 46 ms and completed after 46 ms. ● Resultados obtenidos tras la siguiente consulta para hallar las cinco comunidades con el tamaño más alto para los verbos (V): MATCH ( u:V ) RETURN u . community as partition , count ( * ) as size_of_community ORDER by size_of_community DESC LIMIT 5 451 min(n.community) max(n.community) avg(n.community) stDev(n.community) 7 20876 12000.98817333014 6543.191924300372 / En los verbos ocurre que lo mismo visto con los sustantivos y los adjetivos, las comunidades con el mayor número de elementos son demasiado heterogéneas. Además con los verbos se observan un mayor número de comunidades de tamaño medio. Por ejemplo, el siguiente extracto de la tabla 26, del apéndice 4, muestra los primeros resultados de la comunidad 8147, con 126 miembros en total, en los que se mantiene la relación temática hasta el último elemento, con conceptos relativos a “cocinar” y “comer”. ● Consulta en Cypher : MATCH (u:V) where u.community= 8147 RETURN u.termId, u.definition 452 partition size_of_community 18763 3489 18866 2736 4831 619 2855 480 4833 393 u.termId u.definition ( DUE ) "mm_abuñolar_01" "Abuñuelar." "mm_abuñuelar_01" "Freír los huevos u otro alimento de modo que queden como un buñuelo." "mm_guisar_01" "Preparar los alimentos mediante el fuego y con diversas manipulaciones. para ser comidos." "mm_gulusmear_01" "Comer golosinas." "mm_gulusmear_02" "Curiosear lo que se está guisando. olfatearlo o probarlo." "mm_yacer_05" "Pastar por la noche las caballerías." "mm_yantar_01" "Comer." / ● Subgrafo de los verbos de la comunidad 8147 (126 nodos, 346 relaciones): MATCH (u:V) where u.community= 8147 RETURN u ● Figura 108. Subgrafo de los verbos de la comunidad 8147 453 "mm_aderezar_03" "Guisar." "mm_herbajar_01" "Apacentar el ganado." "mm_herbajar_02" "Pastar el ganado." "mm_herbajear_01" "Herbajar." "mm_zampar_03" "Comer, o menos frecuentemente beber, con precipitación, con avidez o con exageración." / Al igual que con la anterior propiedad, se pueden obtener palabras que compartan el mismo valor para la propiedad “ community ” que otra palabra dada. En el siguiente ejemplo, se han extraído las palabras que comparten el mismo valor de la propiedad del verbo “escribir” (comunidad 2855) y que están relacionados con este (48 resultados en total). Al pertenecer a una comunidad de muchos elementos (408 en total) los resultados de la comunidad en sí no son tan adecuados si no se filtran por la relación que mantienen con dicho verbo, como se puede observar en la tabla 27 de la comunidad 2855 al completo, donde no se pueden establecer denominadores comunes con facilidad, al contrario que los ejemplos mostrados a continuación, donde la relación de sus elementos es mucho más evidente: ● Consulta en Cypher para obtener los nodos de la comunidad 2855 relacionados con el verbo “escribir”: MATCH (p:V{termId:"mm_escribir_01"})--(q:V{community:2855}) return q.termId, q.community ● Resultados obtenidos (48 nodos de una comunidad de 408 nodos): 454 q.termId (community:2855) mm_dictar_01 mm_dibujar_01 mm_retajar_04 mm_publicar_03 mm_tratar_01 mm_respaldar_02 mm_ironizar_01 mm_teclear_02 mm_enclaustrar_03 mm_interlinear_01 mm_tajar_02 mm_emitir_04 mm_prologar_01 mm_tagarotear_01 mm_emborronar_03 mm_inscribir_02 mm_colaborar_02 mm_referir_01 mm_inscribir_01 mm_sutilizar_03 mm_reescribir_01 mm_vocalizar_03 / Started streaming 48 records after 1 ms and completed after 22 ms . Si se observa el subgrafo presentado a continuación, referente a los nodos de la comunidad 2855 que mantienen una relación (sin filtrar por el tipo de relación) con el nodo relativo al verbo “escribir”, se puede comprobar que en general hay una gran densidad de relaciones entre sus elementos, unidos de forma mayoritaria por las relaciones “RELATED_TO”, pero tambień mediante la relación construida “SIMILAR”. Que el subgrafo obtenido sea muy conexo da información sobre la “calidad” de la comunidad. ● Consulta en Cypher para la visualización del subgrafo correspondiente: MATCH (p:V{termId:"mm_escribir_01"})--(q:V{community:2855}) return q, p 455 mm_novelar_02 mm_editorializar_01 mm_apuntar_08 mm_cifrar_03 mm_borrajear_02 mm_plumear_01 mm_sonar_04 mm_legitimar_01 mm_gracejar_01 mm_narrar_01 mm_raspear_01 mm_gongorizar_01 mm_extender_08 mm_rasguear_03 mm_alfabetizar_02 mm_metatizar_01 mm_rasguear_02 mm_comer_10 mm_entrelinear_01 mm_biografiar_01 mm_granear_04 mm_enrollar_02 mm_latinar_01 mm_pintar_06 / ● Figura 109. Subgrafo correspondiente a los verbos de la comunidad 2855 relacionados con el verbo “escribir_01”. 456 / 8.5. Otras posibilidades de aplicación y análisis. 8.5.1. Filtros a través de las propiedades y relaciones escritas en los nodos Uno de los objetivos de escribir las relaciones y las propiedades explicadas en los anteriores apartados es tener más información para discernir de forma automática el tipo y la importancia que tienen unos nodos respecto a otros, es decir, entre unas palabras y otras, y obtener más vías para agruparlas, relacionarlas o jerarquizarlas, lo que puede ser aplicado al análisis y la clasificación automática, puntos centrales de la mayoría de tareas de PLN. La visualización de las relaciones en grafos permite obtener de forma rápida información relevante del tipo de relaciones que se establecen entre los nodos. Por ejemplo, en el siguiente subgrafo en el que se han visualizado las relaciones de “bicicleta_01”, se puede observar que el grado de entrada de las palabras “vehículo_01” y “rueda_01” sobresalen respecto al resto, tienen más relaciones que inciden sobre ellas. ● Figura 110. Subgrafo de las relaciones de “bicicleta 01”. 457 / La relación obtenida a partir de la definición lexicográfica del DUE de María Moliner, esto es, la relación “RELATED_TO”, crea una serie de aristas de salida entre una palabra y sus asociadores. Sin embargo, dicha relación no tiene pesos, no tiene ningún valor asociado a la relación, por lo que no se puede establecer ninguna jerarquía o distinción entre los asociadores de una palabra. Sin embargo, como veremos a continuación, se pueden jerarquizar o distinguir de diferentes maneras los asociadores, sirviéndonos de las distintas propiedades escritas en los nodos (centralidad, comunidad, partición, articlerank , etc). En el siguiente subgrafo se han visualizado los elementos de una cadena de hipónimos-hiperónimos a partir de “podenco_01” (podenco > perro > mamífero > animal > organismo), eligiendo el nodo con los valores más altos en la propiedad “articlerank”, y se han dispuesto de manera que reflejen el aumento del valor de dicha propiedad, ascendiendo desde “podenco” hasta “animal” y descendiendo por último desde “animal” hasta “organismo”: ● Figura 111. Subgrafo de una cadena de hipónimos-hiperónimos. 458 / ● Subgrafo en el que se visualiza en el nodo la propiedad numérica de“ articlerank ” en el que se puede observar cómo el valor de esta va ascendiendo desde el hiperónimo “podenco”, es decir, desde el concepto más específico, hasta el nodo de “animal”, el más general, y cae de nuevo en el hiperónimo “organismo”. ● Figura 112. Cadena de hipónimos-hiperónimos con la propiedad “articlerank”. El algoritmo “ Article Rank ” y la propiedad “ articlerank ” escrita con él, como se ha presentado, sirven para establecer la importancia de los nodos en relación con el resto del grafo. Cuanto más específico sea un término, menos posibilidades tiene de aparecer en el definiens de otros conceptos, hasta que como vemos reflejado en los subgrafos anteriores, cruza un umbral en el que el término más general deja de ser tan frecuente en la definición lexicográfica, y cae el valor de la propiedad, en este caso, en el nodo referente al concepto “organismo”, que aunque es un concepto más general que “animal”, tiene un valor más bajo que este último. Cambiar los filtros o “jugar” con los valores de cada nodo permite identificar o aislar los nodos en los que se está interesado. A continuación, recuperando el ejemplo de las relaciones de “bicicleta” se van a observar los valores de diferentes propiedades, para contrastarlos entre sí. 459 / ● Figura 113. Subgrafo en el que se visualiza la propiedad “community”, a partir de las relaciones de “bicicleta” en el que se aprecia una preponderancia de la comunidad 16139 , a la que pertenece “bicicleta_01”en los nodos con etiqueta de sustantivo (en color azul) Como se puede observar en el anterior subgrafo, de los siete sustantivos relacionados con “bicicleta”, únicamente el nodo relativo a “transmisión” no pertenece a la comunidad 16139. Los dos verbos “avanzar” y “mover”, como es lógico, también pertenecen a comunidades diferentes y no se ha visualizado su valor. 460 / ● Figura 114. Subgrafo en el que se visualiza las propiedades “triangles” (izquierda) y “articlerank” (derecha), a partir de las relaciones de “bicicleta”, donde se pueden cotejar los diferentes resultados y las correlaciones entre sendos valores: Se puede ver que ambos algoritmos han obtenido el valor más alto para sendas propiedades, en el nodo relativo a “vehículo”, y que también son coincidentes en establecer el valor más bajo para el nodo relativo a “piñón_07”, aunque en el caso de la propiedad “ triangles ”, es compartido con “cadena_02”. Entre las posibilidades de representar la información (en forma de matriz, en tablas, en un diccionario, etc.), los grafos ofrecen múltiples opciones para visualizar un determinado conocimiento, y estructurarlo, en este caso, las relaciones que María Moliner estableció entre el definiendum y el definiens, sumado a los resultados obtenidos tras 461 / aplicar al grafo los diferentes algoritmos que han sido presentados. Si observamos las relaciones del siguiente subgrafo, se han colocado en la parte inferior los nodos correspondientes a 3 instancias de la categoría representada por los nodos “felino”/ “félido”. En la cúspide desembocan las relaciones en el nodo “mamífero_01”. En este caso no se han visualizado los nodos con etiqueta de adjetivos (AQ) o de verbos (V) para poder ver de forma más clara las relaciones que se han establecido entre los elementos descritos. ● Figura 115. Subgrafo dispuesto en forma de pirámide para observar las relaciones que permiten obtener información taxonómica. 462 / Respecto a la relación “RELATED_TO”, se puede observar que en la parte inferior que los 3 nodos “gato_02” (definido en el DUE como: “ animal de cualquier especie de la clase de los félidos ”), “jaguar_01” y “puma_01” apuntan a “félido_01”, al igual que “felino_02” que redirige a “félido_01”, y este último a su vez se conecta con “mamífero_01” en la cúspide, que también está conectado de forma directa por el mismo tipo de relación con “jaguar_01” y “puma_01”. Respecto a las relaciones “SIMILAR” que se crearon automáticamente a partir del algoritmo de Jaccard, vemos que conecta “jaguar_01” y “puma_01”, y a “felino_02 con los 3 nodos inferiores (hay que tener en consideración la definición para comprender la razón de por qué el algoritmo usado ha creado la relación en esa dirección). Por último, respecto a la relación “NARROWER” vemos que ha unido “jaguar_01” con “mamífero_01”. En este caso se ha creado correctamente, ya que el algoritmo de superposición ha podido determinar adecuadamente que el primero es un subgrupo del segundo, en este caso, indica que “jaguar” es un tipo de “mamífero” al igual que “felino_02” (hiponimia-hiperonimia). Las posibilidades para explotar el grafo y analizarlo no solo están determinadas por el número y el tipo de relaciones construidas, también las propiedades, como se ha mostrado, permiten interesantes vías para el estudio del significado y la estructuración del conocimiento. En el siguiente subgrafo se han colocado en los vértices del triángulo los nodos correspondientes a las palabras: “mamífero _01” (en la cúspide), “carnívoro_01” (vértice inferior izquierdo) y “félido_01” (vértice inferior derecho), y en el centro 4 sustantivos (“tigre_01”, “león_01”, “leopardo_01” y “jaguar_01”), resultado de la consulta en la que se piden nodos con la etiqueta de sustantivo (NC) relacionados con los 3 sustantivos anteriores, sin importar la relación ni su dirección. ● Consulta en Cypher del patrón anterior: MATCH (p:NC{termId:"mm_mamífero_01"})--(o:NC), (q:NC{termId:"mm_carnívoro_02"})--(o:NC), (r:NC{termId:"mm_félido_01"})--(o:NC) RETURN p,q,r,o limit 7 463 / ● Figura 116. Subgrafo con diferentes relaciones entre cohipónimos e hiperónimos. A partir del subgrafo anterior, se visualizarán otras propiedades escritas en los nodos para poder tener una referencia entre los valores de cada uno de ellos. En el siguiente subgrafo, en lugar de la propiedad “ termId ” se ha visualizado la propiedad de los nodos “ articlerank ”, y como se puede comprobar el nodo con el valor más alto ( articlerank: 2.497967181960121 ) corresponde a “mamífero_01, que es el hiperónimo de todos ellos, y la palabra que ocupa la posición más alta en el “cono léxico”, al que se refería María Moliner. Lógicamente hay más palabras en el DUE que se definen como “mamífero”, que palabras que se definen como “carnívoro”. Sin embargo, en este caso se aprecia que la propiedad “ articlerank ” no sirve para determinar correctamente toda la cadena de hipónimos-hiperónimos que formarían estos elementos, ya que por ejemplo, el nodo “león_01” tiene un valor más alto que “carnívoro_01”, con menos representación en el grafo a partir de las características de sus relaciones (que es un reflejo de la representación de dicha palabra en el DUE ). 464 / ● Consulta en Cypher : MATCH (p:NC{termId:"mm_mamífero_01"})--(o:NC), (q:NC{termId:"mm_carnívoro_02"})--(o:NC), (r:NC{termId:"mm_félido_01"})--(o:NC) RETURN p,q,r,o limit 7 ● Visualización de los valores de la propiedad “ articlerank ” en los nodos: ● Figura 117. Subgrafo en el que se visualiza los valores de la propiedad “ articlerank ”. 465 / Como cabe esperar la propiedad “ pagerank ” mostrada en el siguiente subgrafo no se diferencia demasiado de la propiedad “ articlerank ”, aunque se puede observar cómo en cada caso varían los valores obtenidos, penalizando o reforzando ciertos nodos. En el caso del valor de la propiedad del nodo relativo a “mamífero_01” vemos que sobresale, seguido del nodo relativo a “león_01”. ● Visualización de los valores de la propiedad “ pagerank ” en los nodos: ● Figura 118. Subgrafo en el que se visualiza la propiedad “ pagerank ”. 466 / De nuevo observamos en el siguiente subgrafo, visualizando los valores de la propiedad “ triangles ” esta vez, que “mamífero_01” es la palabra con el valor más alto (13), seguida en esta ocasión por “tigre_01” (8), y “león_01” (7). Ocupa la última posición el valor de “félido” (1), es decir es el nodo en cierto sentido más “aislado” respecto a los demás nodos. ● Visualización de los valores de la propiedad “ triangles ” en los nodos: ● Figura 119. Subgrafo en el que se visualiza el valor de la propiedad “ triangles ”. 467 / En el caso de la propiedad “ community ” todos los nodos del subgrafo representado (“mamífero_01”, “carnívoro_01”, “félido_02”, “tigre_01”, “león_01”, “leopardo_01” y “jaguar_01”) pertenecen a la misma comunidad, la 16139 (no se debe confundir con la propiedad “partition”, aunque Neo4j los haya escrito por defecto con el mismo nombre). ● Visualización de la propiedad “ community ” en los nodos: ● Figura 120. Subgrafo en el que se visualiza el valor de la propiedad “ community ”. 468 / Respecto a las particiones, destacan con el mismo valor los vértices del triángulo correspondientes a los hiperónimos “mamífero _01” (en la cúspide), “carnívoro_01” (vértice inferior izquierdo) y “félido_01” (vértice inferior derecho), los cuales pertenecen a la misma partición (partición 16136), mientras que en los nodos del centro (“tigre_01”, “león_01”, “leopardo_01” y “jaguar_01”), las particiones obtenidas son diferentes entre sí, al contrario de lo que ocurría con el valor de la propiedad “ community ”. ● Visualización de los valores de la propiedad “ partition ” en los nodos: ● Figura 121. Subgrafo en el que se visualiza el valor de la propiedad “ partition ”. 469 / La propiedad “ centrality ”, visualizada en el siguiente subgrafo, vuelve a destacar los vértices del triángulo, esta vez a la inversa, otorgando valores más cercanos a cero a “mamífero_01”, “carnívoro_01” y “félido_02”, a los que desplaza a la periferia, y otorgando valores más altos a los nodos correspondientes con los hipónimos “tigre_01”, “león_01”, “leopardo_01” y “jaguar_01”. ● Visualización de la propiedad “ centrality ” en los nodos: ● Figura 122. Subgrafo en el que se visualiza el valor de la propiedad “ centrality ”. 470 / La propiedad “ followers ”, es decir, el número de aristas totales que apuntan a cada nodo, o lo que es lo mismo, las relaciones de entrada, como es lógico mantienen grandes paralelismos en los resultados de la propiedad “ articlerank ” o “ pagerank ”, pues ambos usan métricas parecidas para determinar el valor relativo a cada nodo en relación con el resto, destacando con valores más altos los nodos correspondientes a “mamífero _01”, en la cúspide, con un valor de 41 relaciones de entrada, y “león_01”, con un valor en la propiedad de 18 relaciones de entrada. ● Visualización de la propiedad “ followers ” en los nodos: ● Figura 123. Subgrafo en el que se visualiza el valor de la propiedad “ followers ”. 471 / La propiedad “ following ”, correspondiente al número de relaciones de salida de la relación “RELATED_TO”, en este caso, no ofrece demasiada información salvo el número de asociadores que se han recuperado de la definición lexicográfica de María Moliner. Como ya se ha comentado, y se puede ver también en este caso reflejado, existe cierta correlación, o al menos una tendencia entre dicho valor, y la naturaleza más compleja del concepto, que pueda ser menos familiar para el lector, y necesite por lo tanto de más elementos para ser explicado. En el siguiente ejemplo, el valor más alto de la propiedad lo obtiene la palabra “félido”, el término más “inusual” de los siete conceptos, y que por lo tanto, requiere de mayor número de “anclajes” conceptuales en el definiens del DUE para formar una idea más completa y más exacta en los usuarios del diccionario. Enfatizamos que es una tendencia y no una regla porque la casuística del DUE es muy amplia, y por ejemplo, en términos complejos puede haber redirecciones a términos más simples en donde se ha realizado una explicación más profunda. ● Figura 124. Subgrafo en el que se visualiza el valor de la propiedad “ following ”. 472 / La propiedad “ closeness ” también marca una separación a partir de los valores obtenidos en la propiedad entre el grupo de hiperónimos en los vértices del triángulo, y el grupo de hipónimos del centro, mostrados de mayor a menor valor en la tabla para contrastar mejor el orden que se establece con el algoritmo usado para escribir dicha popiedad: ● Figura 125. Subgrafo en el que se visualiza el valor de la propiedad “ closeness ”. 473 n.termID n.closeness “mamífero_01” 0.27400495759230165 “carnívoro_01” 0.2549168870963099 “félido_02” 0.24803236598459505 “tigre_01” 0.23914961291484127 “león_01” 0.2361409871231919 “leopardo_01” 0.22387673984185172 “jaguar_01” 0.2200517417990353 / Con la propiedad “ coefficient ” destaca el contraste en los valores más altos de los nodos relativos a “carnívoro_01” (0.26666666666) y a “leopardo_01” (0.23809523809523808), respecto al resto de nodos, que está muy por debajo de ellos, especialmente en el caso de “mamífero_01”, “león_02” y “félido_01”, visualizados en el siguiente subgrafo. ● Visualización de la propiedad “ coefficient ” en los nodos: ● Figura 126. Subgrafo en el que se visualiza el valor de la propiedad “ coefficient ”. 474 / Como se ha visto la visualización de las propiedades de los nodos permite obtener información sobre la “importancia” de la palabra, o más bien el desempeño que esta ha tenido en el DUE como herramienta asociativa para definir a otras. Si recuperamos los ejemplos de las cadenas de hipónimos e hiperónimos, como los que se muestran a continuación, vemos por ejemplo, los valores de las propiedades de “ articlerank ”, “ triangles ” y “ closeness ” respectivamente, es decir, propiedades que, como se ha visto, indican la relevancia de los nodos en el grafo y permiten reconstruir o reflejar en cierta medida el cono léxico al que se refería María Moliner, o seleccionar determinados nodos en función de las diferentes métricas usadas. Por ejemplo, el valor más alto de la propiedad “ articlerank ” y “ closeness ” en los siguientes subgrafos, lo tiene el nodo “animal_03”, el valor más alto de la propiedad “ triangles ”, sin embargo lo tiene el nodo “ave_01”. En este caso todos los nodos son sustantivos y se han coloreado con magenta: vencejo → pájaro → ave → animal → organismo ● Figura 127. Comparación de diferentes valores de las propiedades de los nodos en una cadena de hipónimos-hiperónimos. 475 / Ya se ha hecho alusión a que los valores del nodo “organismo_01” son mucho más bajos con respecto a su predecesor en la cadena, “animal_01”, ya que como es lógico, son reflejo del uso empleado en las definiciones, siendo más frecuente la palabra “animal” que la palabra “organismo”. Tampoco se debe olvidar que, aunque el loable trabajo de María Moliner fue metódico y cuidadoso en extremo, no significa que haya una sistematicidad absoluta, de donde se pueda recuperar una estructura completamente uniforme, por ejemplo, cuando establecemos estas cadenas de hipónimos e hiperónimos. Se debe recordar que la relación RELATED_TO y por extensión el resto que se basan en ella, dependen del definiens , del proceso de extracción/desambiguación, de los algoritmos usados, etc, por lo que los resultados obtenidos dependen de dichos factores y pueden variar a la hora de establecer de manera automática la correcta organización jerárquica. En el siguiente subgrafo, se puede ver que la misma cadena de hipónimos-hiperónimos presentada anteriormente, pero esta vez se ha cambiado el nodo relativo a “vencejo_02” por el de “golondrina_01” (dos nodos que estarían al mismo nivel “jerárquico en la cadena), modifica las relaciones obtenidas: por ejemplo, la relación “NARROWER_THAN”, se establece directamente con el nodo “ave_01”, en lugar de con el nodo relativo a “pájaro_01”, como ocurría en el caso de “golondrina_01”: ● Figura 128. Subgrafo en el que se muestra otra cadena de hipónimos-hiperónimos alternativa. 476 / Los grafos permiten de forma visual representar mucha información, además de los valores numéricos que se pueden recuperar en las consultas en Cypher . Las relaciones extraídas a partir de las definiciones lexicográficas de María Moliner permiten construir información interesante, tanto cualitativa como cuantitativamente, lo que abre numerosas vías para el estudio del léxico y para su aplicación en el avance de la tecnología semántica. Por ejemplo, si queremos obtener de un vistazo el grado de relación existente entre una palabra (colocada en el siguiente subgrafo en el centro) y otras cuatro (colocadas en las esquinas), basta con expandir las relaciones de dichos nodos (es una opción que como se ha indicado con anterioridad, permite Neo4j para visualizar las relaciones y los nodos a partir de un nodo seleccionado) para observar los diferentes grados de conexión entre ellos, como se puede observar en la imagen, donde el nodo de la esquina superior izquierda está claramente más conectado con el nodo del centro, que el resto de nodos de las otras esquinas: ● Figura 129. Subgrafo en el que se visualizan las relaciones entre diferentes nodos.. 477 / El anterior subgrafo se ha obtenido usando nodos aleatorios y colocándolos en las posiciones descritas para observar las conexiones que mantienen. Si repetimos el proceso, para verlo de forma concreta en el siguiente subgrafo, pondremos en el centro el nodo relativo a la palabra “árbol_01” y en las esquinas los nodos “rabioso_01” (esquina superior izquierda), “frondoso_01” (esquina superior derecha), “amable_01” (esquina inferior izquierda) y “verde_01” (esquina inferior derecha). Para aclarar visualmente el resultado del ejemplo, se han buscado cualidades más típicamente humanas por un lado que poco tienen que ver con características vegetales, y otras más asociadas a “árbol” por otro, de tal manera que, como se observa a continuación, el lado derecho relativo a estas últimas propiedades más asociadas a “árbol”, y en concreto, el nodo “verde_01”, concentran la mayor parte de las relaciones. ● Figura 130. Esquema de la disposición de los cinco nodos antes de expandir sus conexiones : 83 ● Consulta en Cypher : Match (a{termId:"mm_verde_01"}), (b{termId:"mm_rabioso_01"}), (c{termId:"mm_amable_01"}), (d{termId:"mm_frondoso_01"}), (e{termId:"mm_árbol_01"}) return a ,b, c,d, e 83 Nótese que el nodo relativo a “verde_01” está pintado en azul oscuro en lugar de en azul claro como el resto de adjetivos porque tiene asignadas las etiquetas tanto de adjetivo como de sustantivo. 478 / ● Figura 131. Grados de relación entre diferentes nodos. En el anterior subgrafo se puede apreciar claramente el contraste entre las relaciones comunes indirectas del nodo de “árbol” (en el centro), con las relaciones de “verde” (en la esquina inferior derecha), frente al resto de nodos, que en proporción apenas comparten conexiones. Los grafos suponen una herramienta enormemente práctica, no solo por la capacidad de cálculo, la implementación de algoritmos, o para establecer relaciones entre elementos, sino por su capacidad de estructurar información visualmente. Como se acaba de mostrar, el tipo de proceso en el que distribuimos los nodos en el espacio es muy útil para observar rápidamente el tipo de conexiones que se establecen a nivel cuantitativo, pero también cualitativo. Por ejemplo, en el siguiente subgrafo se ha querido representar la conectividad del nodo relativo a “ameba_01”, debido a los bajos valores que se identificaron en algunas de sus propiedades, como el de centralidad (nodo colocado en la esquina superior derecha). Para ello se comparó con diferentes palabras (“mar”, “persona”, “piedra”, “tentáculo”, “medusa”, etc). En concreto, en el siguiente subgrafo se ha resaltado su relación con la categoría de verbos (nodos de color magenta), siguiendo el anterior procedimiento de colocar en forma de cuadrado cada nodo en las cuatro esquinas, y otro en el centro, expandiendo sus relaciones de entrada y de salida, con el objetivo en este caso de observar los nodos con etiqueta de verbos. 479 / ● Consulta en Cypher previa a la expansión de las relaciones de cada nodo: Match (a{termId:"mm_mar_01"}), (b{termId:"mm_persona_01"}), (c{termId:"mm_piedra_01"}), (d{termId:"mm_ameba_01"}), (e{termId:"mm_medusa_01"}) return a, b, c, d, e ● Datos obtenidos tras expandir las relaciones de los cinco nodos (un total de 1996 nodos y 5465 relaciones), en el que se han destacado los nodos con etiqueta de verbos (163 nodos en color magenta): ● Figura 132. Relación entre diferentes nodos con la etiqueta de verbos. 480 / ● Mismo subgrafo que el anterior en el que se han destacado los nodos con etiqueta de adjetivo (en azul claro) además de los nodos con etiqueta de verbo (en magenta): ● Figura 133. Relación entre diferentes nodos con la etiqueta de adjetivos y de verbos. El subgrafo anterior nos permite analizar rápidamente y de manera visual los datos relativos a los nodos y los tipos de relación que mantienen. Por ejemplo, en el siguiente subgrafo en el que se han cambiado los nodos iniciales, que posteriormente se han expandido, se puede observar la prevalencia de las relaciones SIMILAR (en amarillo) y NARROWER_THAN (en azul claro), frente al anterior subgrafo mostrado en el que había un mayor número de relaciones de tipo RELATED_TO (en rojo). 481 / ● Figura 134. Comparación del tipo de relaciones entre subgrafos. La visualización de los subgrafos, combinado con filtros por los valores de los nodos y de las relaciones, suponen una herramienta muy interesante para el estudio semántico, lexicográfico y abre nuevas posibilidades en el Procesamiento del Lenguaje Natural, especialmente en tareas de análisis y clasificación automática. Volviendo al ejemplo de “ratón_01”, se han contemplado algunos ejemplos que sirven para observar más de cerca algunas de las características que se han señalado en diferentes niveles. Empezamos haciendo una consulta en Cypher donde escribimos un patrón para que se nos devuelva el subgrafo con las relaciones “RELATED_TO” de salida del nodo “ratón_01” (más las que conectan directamente entre sí a los nodos resultantes), a partir de la definición del DUE : " mamífero roedor de pequeño tamaño que vive en las casas , donde roe las comidas y otras cosas ." ( mm_ratón_01). ● Consulta en Cypher : MATCH p= (o:NC{termId:"mm_ratón_01"})-[RELATED_TO]->(n) return p 482 / ● Figura 135. Subgrafo con las relaciones de “ratón_01”. 483 concepto concepto relacionado "mm_ratón_01" "mm_rata_01" "mm_ratón_01" "mm_comida_01" "mm_ratón_01" "mm_roer_01" "mm_ratón_01" "mm_casa_02" "mm_ratón_01" "mm_vivir_01" "mm_ratón_01" "mm_tamaño_02" "mm_ratón_01" "mm_pequeño_01" "mm_ratón_01" "mm_roedor_01" "mm_ratón_01" "mm_mamífero_01" / Para conocer el valor de los nodos anteriores respecto a la propiedad “ articlerank ”, se realiza una consulta en la que se ordenan los resultados por dicha propiedad. Resultan comprensibles los valores obtenidos si atendemos a las características de cada palabra. Por ejemplo, “tamaño_02” es una palabra que aparece muchas veces en las definiciones, nada exclusiva de una parte de los conceptos, al igual que el adjetivo “pequeño_01”, una característica aplicada a numerosos términos, y así, según se desciende por la lista devuelta por Neo4j se observa una graduación en la generalidad o especificidad de cada uno de ellos: ● Consulta en Cypher : MATCH p= (o:NC{termId:"mm_ratón_01"})-[RELATED_TO]->(n) return n.termId, n.articlerank order by n.articlerank desc 484 m.termId n.articlerank "mm_tamaño_02" 11.107127083914715 "mm_pequeño_01" 5.3601256727095965 "mm_vivir_01" 3.7198178661794037 "mm_mamífero_01" 2.497967181960121 "mm_comida_01" 1.8436939201645237 "mm_casa_02" 1.3339531680873464 "mm_roer_01" 0.3299588248133659 "mm_roedor_01" 0.17465446800924841 / Si en lugar de la propiedad “ articlerank ”, elegimos otro valor de centralidad como el de la propiedad “ centrality ”, la prelación de los conceptos cambia. ● Consulta en Cypher : MATCH p= (o:NC{termId:"mm_ratón_01"})-[RELATED_TO]->(n) return n.termId, n.centrality order by n.centrality desc Respecto a los valores de la propiedad “ community ” puede extrañar que casi todos pertenezcan a la comunidad 16139 excepto: “roer”, “pequeño” y “vivir”. Sin embargo, se puede explicar por el hecho de que son las tres únicas palabras del listado que no son sustantivos, por lo que los verbos y los adjetivos en este caso reflejan en el valor de comunidad esta diferencia, es decir, la categoría gramatical como es lógico afecta a las características de la conectividad que se reflejan en dicha propiedad, como se puede observar a continuación: 485 n.termId n.centrality "mm_tamaño_02" 562367.9179396502 "mm_casa_02" 226475.63603846167 "mm_comida_01" 26098.368512217687 "mm_mamífero_01" 513.0 "mm_roer_01" 369.0 "mm_pequeño_01" 293.0 "mm_roedor_01" 4.0 "mm_vivir_01" 0.0 / De la misma manera, se pueden observar, o filtrar los resultados por otras propiedades, para analizar las relaciones que se establecen entre “ratón_01” y “rata_01”, y observar los elementos comunes y las diferentes relaciones que se han construido. En esta ocasión, se ha hecho una consulta en la que no se han tenido en cuenta el tipo de relación, es decir no se ha establecido ningún filtro al respecto, pero sí se ha tenido en cuenta la dirección de salida respecto a las nodos “ratón_01” y “rata_01”, como se ve reflejado en la consulta. Este tipo de consulta construye un producto cartesiano entre patrones inconexos. En el subgrafo mostrado a continuación se pueden comprobar las diferentes relaciones que se establecen entre ambos nodos, los nodos comunes entre ambos y sus diferencias, destacando el grado de entrada de los nodos relativos a “mamífero” y a “roedor” (colocados en la parte superior del subgrafo). 486 n.termId n.community "mm_roedor_01" 16139 "mm_mamífero_01" 16139 "mm_comida_01" 16139 "mm_casa_02" 16139 "mm_tamaño_02" 16139 "mm_pequeño_01" 8500 "mm_roer_01" 5499 "mm_vivir_01" 1008 / ● Consulta en Cypher : MATCH p= (o:NC{termId:"mm_ratón_01"})-->(n),q=(r:NC{termId:"mm_rata_01"})-->(m) return p, q ● Figura 136. Subgrafo con los nodos compartidos entre “ratón_01” y “rata_01” (en la línea del centro). Por el contrario, si no establecemos una dirección determinada en las relaciones entre "mm_ratón_01" y "mm_rata_01", es decir, si no ponemos un filtro por la dirección de sus relaciones, obtenemos como es lógico muchos más nodos, en este caso, el patrón escrito en Cypher , hace referencia a cualquier nodo que esté conectado con los susodichos nodos por cualquier tipo de relación y en cualquier dirección. 487 / ● Consulta en Cypher Match p=(o:NC{termId:"mm_ratón_01"})--(n),q=(r:NC{termId:"mm_rata_01"})--(m) return p, q ● Figura 137 y 138. Mismos subgrafos (arriba y abajo) en el que se ha variado el tamaño de visualización de los nodos, como ejemplo de las posibilidades de análisis en la visualización de información de los subgrafos que ofrece Neo4j . 488 / Los anteriores subgrafos nos están dando, entre otras cosas, información sobre el grado de los nodos, los nodos comunes, el porcentaje entre las categorías gramaticales con las que se relaciona, etc., pero si se quiere centrar la atención en algún aspecto concreto, o por ejemplo como ya se ha mostrado, en una categoría concreta. En el próximo subgrafo, derivado de los anteriores, se ha obtenido una representación en la que, en este caso, se resaltan únicamente los verbos relativos a los anteriores nodos. Los nodos comunes, compartidos entre “ratón” (a la izquierda) y “rata” (a la derecha) se han colocado en el centro. El patrón de consulta en Cypher es el mismo que antes, solo se ha modificado su visualización: Match p = (o:NC{termId: "mm_ratón_01"})--(n), q = (r:NC {termId: "mm_rata_01"})--(m) return p , q Es decir, se han pedido los nodos conectados con “ratón” y “rata” mediante cualquier tipo de relación. Como resultado se han obtenido 61 nodos: 44 sustantivos, 10 adjetivos y 7 verbos; y 178 relaciones en total: RELATED_TO (108), NARROWER_THAN (13), SIMILAR (42) y MINST (15). ● Figura 139. Subgrafo en el que se han resaltado los nodos con etiqueta de verbos en la comparación de relaciones compartidas entre “ratón_01” y “rata_01”. 489 / En la siguiente visualización del subgrafo se puede ver en detalle las relaciones concernientes únicamente a los verbos del anterior subgrafo, estableciendo un filtro en la etiqueta de los nodos de verbo (V), seguido de la tabla con las definiciones correspondientes de María Moliner. ● Consulta en Cypher : MATCH p = (o:NC{termId:"mm_ratón_01"})--(n:V), q=(r:NC{termId:"mm_rata_01"})--(m:V) return p, q ● Figura 140. Subgrafo en el que se han visualizado únicamente los nodos con etiqueta de verbos en la comparación de relaciones compartidas entre “ratón_01” y “rata_01”. 490 n.termId n.definition ( DUE ) "mm_murar_01" "Cazar o acechar el gato a los ratones." "mm_roer_01" "Raspar una cosa con los dientes. arrancando algo de ella. como hacen los perros con los huesos." "mm_vivir_01" "Estar vivo." "mm_ratonar_02" "Enfermar los gatos por comer muchos ratones." "mm_ratonar_01" "Roer los ratones alguna cosa;" "mm_desmurar_01" "Exterminar o ahuyentar los ratones y ratas." "mm_desratizar_01" "Limpiar un sitio de ratas y ratones". / Tanto las posibilidades del grafo en sí, como las características de Neo4j , para el análisis son realmente amplias. A continuación, la atención se centrará, por ejemplo, en las relaciones de similitud (relación “SIMILAR” coloreada en amarillo en los anteriores subgrafos) entre “ratón_01” y “rata_01”: ● Figura 141. La relación “SIMILAR” de los nodos “ratón_01” y “rata_01”. Los ejemplos que se han puesto han intentado ser lo más claro posibles, por lo que su complejidad se ha intentado reducir, así como la mayoría de los resultados obtenidos. Pero recordemos que el grafo está compuesto por unos 120.000 nodos y unas 800.000 relaciones. A veces, para la búsqueda de determinada información se debe recurrir a unos patrones más complejos que sean capaces de filtrar de forma adecuada la información que se necesita, y otras veces simplemente basta con hacer pequeños cambios en la consulta para conseguir una vista apropiada de los nodos o las relaciones que nos interesan. Observemos de cerca el nodo relativo al verbo “hablar_01”. 491 / Figura 142. Nodo “hablar_01”. Si hacemos una consulta con un patrón en Cypher que describa todas las relaciones de este nodo (de cualquier tipo), se obtiene un subgrafo con demasiada información. ● Consulta en Cypher : MATCH p= (o:V{termId:"mm_hablar_01"})--(n) return o, n ● Figura 143. Subgrafo con todas las relaciones de entrada y de salida del nodo “hablar_01”. 492 / Se puede recurrir a su visualización en tabla, pero por ejemplo, no pidiendo en el patrón que se devuelva el nodo “hablar_01” (variable “o” en la consulta), sino simplemente obteniendo los nodos que están relacionados con él (variable “n”) obtenemos otro subgrafo en el que la información es diferente y nos permite analizar mejor la manera en que dichos nodos están relacionados entre sí. Como se puede observar en el siguiente subgrafo los nodos se organizan a simple vista estructurándose mediante al menos 2 patrones que marcan el centro y la periferia (inconexa), y una división por categoría gramatical. ● Consulta en Cypher : MATCH p= (o:V{termId:"mm_hablar_01"})--(n) return n ● Figura 144. Subgrafo obtenido sin conectar los resultados con el nodo “hablar_01”. 493 / De todos los nodos con los que se relaciona de manera directa “hablar_01”, podemos restringir la búsqueda y, y por ejemplo, poner un filtro para que los nodos devueltos coincidan con el valor de la propiedad “partition” de “hablar_01” (18866). En este caso solo obtenemos un nodo que coincida con ese patrón, el relativo al verbo “emitir”. ● Consulta en Cypher MATCH p= (o:V{termId:"mm_hablar_01"})-->(n) where n.partition=o.partition return n.partition, n.community, n.termId order by n.community Started streaming 1 records after 2 ms and completed after 39 ms. ● Figura 145. Relaciones entre “hablar_01” y “emitir_01” con el mismo valor en la propiedad “partition”. También se pueden comparar los valores de diferentes propiedades respecto a otros nodos con los que guarda un grado considerable de similitud. En la siguiente tabla se han extraído 6 palabras usando el algoritmo de similitud de Jaccard y se han comparado los valores de las propiedades: “community”, “partition” y “pagerank”: 494 n.partition n.community n.termId 18866 18763 "mm_emitir_01" / Started streaming 6 records after 1 ms and completed after 35 ms. ● Subgrafo correspondiente a los nodos de la tabla anterior: ● Figura 146. Relaciones entre “hablar_01” y los valores de otros nodos relacionados usando la similitud de Jaccard para comparar los valores de “community”, “partition” y “pagerank”. 495 n.termId n.community n.partition n.pagerank "mm_gruir_01" 18763 466 0.15000000000000002 "mm_graznar_01" 18763 208 1.10625 "mm_palabra_05" 16139 16139 3.960020238846846 "mm_hablar_01" 18763 18866 23.48337663607671 "mm_emitir_01" 18763 18866 33.88436620901337 "mm_sonido_01" 16139 16139 100.89208099603421 / 8.5.2. Construcción de campos “lexicográficos” Como se ha expuesto en anteriores capítulos, existen multitud de tipos de campos que de forma general hacen referencia a las agrupaciones léxico-semánticas que se configuran en una lengua, o en un determinado hablante, los cuales se fueron matizando y aumentando con el tiempo: Heyse (1856), el supletivismo de Osthoff (1899), los sistemas semánticos de Meyer (1910), los grupos de palabras de Meillet (1924), la constelación asociativa de Saussure (1916), el campo conceptual de Werner (1919), la esfera conceptual de Sperber (1923), el campo semántico de Ipsen (1924), los campos léxicos de Trier (1931), Geckeler (1971), Coseriu (1964) o Baldinger (1980), el campo morfo-semántico de Guiraud (1955), el campo nocional de Matoré (1953), los campos conceptuales de Ducháĉek (1960), el campo sintagmático de Dubois (1964), o el campo distribucional de Apresjan (1966), entre otros. En la bibliografía se apunta a Bally (1940) como el responsable de proponer los campos asociativos, influido por el trabajo de Saussure (1916) concerniente a sus constelaciones asociativas. Un campo asociativo está formado por un conjunto de palabras que mantienen algún tipo de relación entre sí, no únicamente conceptual, por lo que no siempre coinciden con un campo léxico específico de la lengua. El significado asociativo de una palabra se compone del conjunto de los significados que una persona relaciona con ella, junto con los rasgos semánticos que la acompañan (emocionales, valorativos, estilísticos, etc), oponiéndose al significado denotativo, el cual se refiere estrictamente al significado léxico conceptual de una palabra. Cada palabra se vincula a otras con las que se guarda una determinada relación, aunque no pertenezcan al mismo campo semántico (Lyons, 1981). Sin embargo, aunque el tipo de agrupación que se puede hacer a través del grafo construido encaja en parte con esta definición, en el caso que se presenta nos encontramos con una limitación de partida, que es la propia definición lexicográfica. Por lo tanto, el tipo de campo que podemos construir a partir de las consultas al grafo, es un un campo particular que podríamos llamar “campo lexicográfico”, ya que reúne palabras asociadas directamente mediante el definiens . Obviamente dichas palabras mantienen multitud de subtipos de relaciones, que se podrían agrupar bajo el superconjunto de campo asociativo, pero que son un subconjunto de este. También se debe tener en cuenta que dependiendo el tipo de consulta hecha al 496 / grafo, se podría matizar o analizar el tipo de campo obtenido, ya que las consultas hechas en Cypher sobre la relación “RELATED_TO” (la extraída directamente del diccionario de María Moliner) encajarían mejor con la noción de “campo lexicográfico” que acabamos de señalar, mientras que los elementos reunidos mediante las relaciones “SIMILAR”, “MINST” o “NARROWER”, al haber sido escritas a partir de relación “RELATED_TO”, no reflejan la pertenencia directa al definiens del DUE , sino diferentes tipos de relación derivada de la anterior que reflejan diversos grados de similitud, de asociación, de conexión, etc., respecto a los elementos comunes que comparten entre ellos. Las relaciones construidas en el grafo, cada una con las peculiaridades que se han presentado, permiten determinar el grado de analogía semántica a partir de las distancias que separan a los diferentes nodos de la red, enriqueciendo el grafo al aumentar las posibilidades de conexión entre sus elementos. En el siguiente subgrafo se ha obtenido lo que se podría considerar como el “campo lexicográfico” de “libro_01”, es decir, palabras que comparten el definidor “libro_01” en su definición lexicográfica, o nodos establecidos como asociadores, relaciones de salida de “libro_01”. Esto permite ver qué importancia tienen esos definidores en relación a la palabra “libro”. De esta forma no solamente se pueden detectar campos lexicográficos sino que se pueden detectar carencias o exceso de peso de algunas palabras. Por ejemplo, si se realizase una revisión hoy de la palabra debería aparecer de algún modo el adjetivo digital, o electrónico y posiblemente deban perder peso otras palabras. Esto ayuda a realizar una definición lexicográfica más actualizada y completa. A continuación se puede ver que en total son 206 resultados, constituido por las relaciones “RELATED_TO” (en rojo), sin importar la dirreción, más el resto de relaciones presentes (“SIMILAR”, en amarillo, “NARROWER”, en azul, y “MINST” en verde oscuro, las cuales estarían fuera de la noción de campo lexicográfico propuesto). En la fila superior se puede ver el número de nodos que componen el subgrafo por cada categoría gramatical, y en la fila inferior el número y el tipo de relaciones presententes: 497 / ● Consulta en Cypher : Match (p{termId:"mm_libro_01"})-[:RELATED_TO]-(q) return p, q ● Figura 147. Relaciones de entrada y salida de “libro_01” (206 nodos, 665 relaciones). ● Figura 148. Detalle del subgrafo anterior en el que se ha modificado el tamaño de la visualización, donde se aprecian algunos nodos en torno al nodo de “libro_01”. 498 / ● Extracto de la lista con el campo lexicográfico de “libro_01”, con la definición correspondiente del DUE (ver lista completa en el apéndice 5, tabla 29): De forma análoga también se ha extraído el “campo lexicográfico” del verbo “escribir”, cuyos miembros se pueden consultar en la tabla 30 del apéndice 5. Consideramos que es conveniente apuntar nuevamente que el campo lexicográfico devuelto puede ser filtrado a su vez por los valores de las propiedades de los nodos (centralidad, comunidad, similitud, etc.), posibilitando una lista más restringida, o agrupaciones más concretas. Por ejemplo, además de las relaciones “RELATED_TO” en el subgrafo de “libro_01” visualizado anteriormente se puede observar, arriba a la izquierda, 499 q.termId q.definition "mm_escrito_01" "escribir. cosa escrita de cualquier naturaleza, extensión, etc.." "mm_tárgum_01" "libro de los judíos que contiene las glosas y paráfrasis caldeas de la Biblia." "mm_tratado_01" "libro sobre cierta materia." "mm_traspellar_02" "cerrar las alas, la mano, un libro, etc." "mm_trashojar_01" "hojear un libro." "mm_trasfojar_01" "hojear un libro." "mm_tonario_01" "libro antifonario." "mm_pasionario_01" "libro que contiene los cantos litúrgicos de la Pasión que se cantan en Semana Santa." "mm_pandectas_02" "cuaderno con las hojas señaladas con las letras del alfabeto en orden. en que se apuntan. en la letra correspondiente. los nombres de las personas con quien se tiene abierta cuenta corriente y el número del folio del libro correspondiente en que está su cuenta." "mm_teneduría_01" "teneduría de libros." "mm_tapa_04" "cada una de las cubiertas de un libro encuadernado." "mm_taoísmo_01" "religión china inspirada en los libros del filósofo Lao-Tsé (siglo VI a.C.)" / un cúmulo de relaciones “SIMILAR” (en amarillo), el cual se observará con más detalle a continuación. ● Figura 149. Subgrafo en el que se concentran diversos nodos con la relación “SIMILAR”. Si se observan más de cerca las relaciones de dicho cúmulo perteneciente a “libro_01”, se puede observar en el anterior subgrafo que los nodos concentradores de las relaciones “SIMILAR” corresponden con los nodos relativos a “armario_02” y a “librero_02”, definidos ambos en el DUE como “ mueble donde se colocan libros ”, por lo que la relación “SIMILAR” que los une, al compartir el mismo definiens , tiene un valor de 1.0 (valor máximo): ● Figura 150. Detalle de la relación “SIMILAR” entre “armario_02” y “librero_02”. Al compartir los mismos definidores su puntuación es 1.0. 500 / Al compartir la misma definición lexicográfica “armario_02” y a “librero_02” se explica la alta conectividad entre ambos nodos reflejada en el valor de la relación “SIMILAR” y en el resto de las relaciones establecidas en dichos nodos: 501 r.termId r.definition ( DUE ) "mm_gradén_01" "mueble con cajones que se coloca dentro de un armario." "mm_armario_02" "mueble donde se colocan libros." "mm_librote_01" "libro." "mm_colofón_01" "nota final que se pone en algunos libros;" "mm_legendario_03" "libro de vidas de santos." "mm_sexto_03" "libro que contiene algunas constituciones y decretos canónicos." "mm_sermonario_02" "libro que contiene sermones." "mm_fachada_03" "portada de un libro." "mm_tárgum_01" "libro de los judíos que contiene las glosas y paráfrasis caldeas de la Biblia." "mm_diurno_02" "libro eclesiástico que contiene las horas menores. desde laudes hasta completas." "mm_plaza_11" "inscripción en el libro correspondiente del que se presenta voluntariamente a servir como soldado." "mm_elzevir_01" "libro elzeviriano." "mm_cuerno_09" "botón que formaba el remate de la varilla de los rollos que hacían las veces de libros entre los antiguos." "mm_tonario_01" "libro antifonario." / ● Consulta en Cypher : Match (p{termId:"mm_armario_02"})-[:SIMILAR]-(q), (u{termId:"mm_librero_02"})-[:SIMILAR]-(r) return p, q,r,u ● Figura 151. Subgrafo con las relaciones “SIMILAR” de “librero_02” y “armario_02”. En el siguiente subgrafo, como otro ejemplo más, se ha representado el “campo lexicográfico” correspondiente a la palabra “miedo_01”, sin restringir por el tipo de relación, ni la dirección, ni la categoría gramatical. 502 / ● Consulta en Cypher : optional MATCH p= (o:NC{termId:"mm_miedo_01"})-[]-(n) return p ● Figura 152. Subgrafo con las relaciones de “miedo_01”. Para visualizar mejor las palabras con las que está relacionada directamente la palabra “miedo_01”, en la siguiente tabla se puede observar el listado de nombres y sus correspondientes definiciones lexicográficas de María Moliner. 503 / 504 n.termId n.definition ( DUE ) "mm_abismo_03" "parte del alma, del pensamiento. etc.. de alguien. que no es posible descubrir." "mm_acojonante_01" "que causa gran miedo. susto o impresión." "mm_acojone_01" "miedo." "mm_acojono_01" "miedo." "mm_acoquinar_01" "hacer que alguien tenga miedo o esté paralizado o sometido por el miedo." "mm_afectivo_01" "relacionado con los afectos." "mm_amedrentar_01" "infundir miedo." "mm_amilanar_01" "causar miedo a alguien, de modo que no se atreve a hablar. a obrar o a hacer cierta cosa." "mm_atajar_06" "turbarse por vergüenza. respeto. miedo o perplejidad." "mm_cague_01" "miedo." "mm_canguelo_01" "miedo." "mm_canguis_01" "miedo." "mm_canillera_03" "temblor de piernas causado por miedo u otro motivo." "mm_causa_01" "con relación a una cosa o suceso. otra cosa u otro suceso que es el que produce aquéllos." "mm_cerote_02" "miedo." "mm_chucho_07" "miedo." "mm_cobarde_01" "se aplica a la persona que siente mucho miedo en los peligros o que no se atreve a exponerse a ellos. y. correspondientemente a sus acciones. actitud. etc." "mm_coco_10" "cuco o gorgojo: larva de insecto anidada en las semillas. frutas. etc." "mm_cuco_10" "coco: ser imaginario con el que se mete miedo a los niños." "mm_culillo_02" "miedo." "mm_denodado_01" "tal que no se detiene por miedo ante el peligro." "mm_desistimiento_01" "acción de desistir." "mm_despavorido_01" "despavorir . con miedo en el mayor grado posible." "mm_enfermedad_01" "estado de enfermo." "mm_enmudecer_01" "quedarse callado por la sorpresa. el miedo. etc." "mm_entelerido_01" "sobrecogido o inmovilizado por el miedo. o aterido de frío." "mm_erizamiento_01" "acción y efecto de erizar ." "mm_escalofrío_01" "sacudida brusca de temblor con sensación de frío. que acompaña a / 505 veces a la fiebre. por ejemplo en el comienzo de una enfermedad aguda." "mm_escalofrío_02" "en las frases «dar. producir. etc.. escalofríos». causar miedo u horror." "mm_espantada_02" "desistimiento brusco de hacer una cosa. motivado por miedo." "mm_espantar_02" "causar miedo a alguien." "mm_espanto_01" "miedo muy intenso. que impulsa a huir." "mm_espeluznar_02" "poner el pelo erizado por efecto del miedo." "mm_espeluznar_03" "causar o sentir mucho miedo." "mm_estado_01" "manera de estar algo o alguien." "mm_estremecedor_01" "que causa estremecimiento (miedo)." "mm_flipar_02" "quedar estupefacto por el asombro. el miedo. la admiración. etc.." "mm_guardar_18" "abstenerse de hacer algo. por miedo." "mm_horror_01" "miedo intensísimo que. a veces. paraliza o produce el erizamiento de los cabellos." "mm_horror_01" "miedo intensísimo que. a veces. paraliza o produce el erizamiento de los cabellos." "mm_impávido_01" "se aplica a la persona que resiste o hace frente sin miedo a algo capaz de asustar." "mm_imponente_01" "se aplica a lo que impone miedo o respeto. o impresiona mucho por su belleza. su riqueza. su magnitud. etc.." "mm_imponer_04" "infundir admiración. respeto o miedo." "mm_infosura_01" "enfermedad de las caballerías que se presenta con dolores en dos o en las cuatro patas. apreciable en el miedo con que pisan." "mm_jindama_01" "miedo." "mm_julepe_06" "susto o miedo." "mm_laceria_01" "pena. padecimiento o molestia." "mm_laceria_01" "pena. padecimiento o molestia." "mm_medrana_01" "miedo." "mm_medrosía_01" "miedo permanente." "mm_medroso_02" "propenso a sentir miedo." "mm_mieditis_01" "miedo." "mm_miedoso_01" "se aplica a la persona o animal propenso a sentir miedo o a asustarse." "mm_molestia_01" "efecto de molestar." "mm_padecimiento_01" "hecho de padecer." "mm_pánico_02" "miedo grandísimo." "mm_patofobia_01" "miedo patológico a padecer alguna enfermedad." "mm_pavor_01" "miedo grandísimo." / Started streaming 81 records after 21 ms and completed after 59 ms. 506 "mm_peligro_01" "riesgo." "mm_persona_01" "individuo de la especie hombre." "mm_poner_17" "inspirar miedo o una impresión semejante." "mm_posible_01" "se aplica a lo que puede ocurrir o haber ocurrido." "mm_púa_03" "causa de padecimiento moral." "mm_púa_03" "causa de padecimiento moral." "mm_repelús_01" "repugnancia indefinible o miedo que inspira cierta cosa." "mm_repeluzno_01" "sacudida nerviosa producida. por ejemplo. por el frío. el miedo. el vértigo o ciertos ruidos chirriantes." "mm_repeluzno_02" "miedo o repugnancia." "mm_respeto_02" "miedo." "mm_sereno_05" "aplicado a personas y, correspondientemente, a su estado de ánimo. aspecto o palabras —poco a las acciones. aunque sí se aplica. por ejemplo. a «resolución»—. no perturbado por alguna pasión o una alteración de ánimo tal como el miedo." "mm_sobrecoger_02" "causar mucho miedo o asustar mucho." "mm_susto_01" "impresión momentánea de miedo causada por algo que aparece inesperadamente." "mm_temeroso_01" "capaz de infundir miedo." "mm_temor_01" "miedo moderado." "mm_terror_01" "miedo intensísimo." "mm_torvo_01" "de aspecto que inspira miedo." "mm_trac_01" "palabra francesa de sonido expresivo. usada alguna vez en español. con que se designa el miedo que acomete a alguien en el momento mismo de ir a actuar en público." "mm_vértigo_06" "mareo producido por una impresión muy fuerte." "mm_yerto_01" "aplicado a personas y animales. rígido o inmóvil por efecto del frío. el miedo o emoción semejante, o de la muerte." "mm_yuyu_01" "miedo. aprensión." "mm_zurrarse_01" "eufemismo empleado por «cagarse». en sentido propio o figurado: hacerse de vientre o tener mucho miedo." / 8.5.3. Isotopías y representación de la metáfora en grafos La metáfora ocupa una posición privilegiada como elemento de interconexión dentro de teorías de la lingüística, la filosofía o la psicología, entre otros, que han investigado el pensamiento y el lenguaje (Danesi, 2004). Autores como Karl Bühler (1908), Sapir (1921), Whorf (1956), Lakoff y Johnson (1980), o Langacker (1990) fueron reclamando con sus investigaciones el papel fundamental que tiene la metáfora en el lenguaje, y más allá de él. La importancia de la metáfora no ha perdido interés como lo demuestran el ya clásico estudio de Lakoff (1993) o el más reciente Kovecses (2010). Lejos de considerarse una anomalía semántica, por ejemplo, para Vico (1961) el lenguaje metafórico no es solo una manifestación poética, es el eje productivo del lenguaje y del pensamiento, un motor fundamental en la formación de los conceptos. Por ejemplo, entre los grandes autores que han investigado la metáfora, Lakoff y Johnson (1980) avanzaron el camino recorrido por Richards (1936) y Black (1962) en sus trabajos e iniciaron las investigaciones de la rama de la lingüística cognitiva, para la cual la metáfora ocupa un papel preponderante en sus estudios. El estudio de la metáfora dentro de los procesos cognitivos asociados al lenguaje y al pensamiento, estuvo marcado por dos líneas fundamentales (Danesi, 2004): por un lado, la posición de Vygotski (1931), quien sostenía que el lenguaje era la base necesaria para el pensamiento, y por otro lado, la de Piaget (1923), para quien el pensamiento tiene un desarrollo autónomo, y solo de manera posterior, ese desarrollo se ve condicionado recíprocamente por el lenguaje. En ciertos aspectos, como ya se ha señalado, la categorización y la metáfora están profundamente imbricadas (ver apartado 2.3.2). Por ejemplo, se puede recurrir a la metáfora como un recurso cuando se desconoce el nombre de algo (Conte, 1972), ya que la teoría de la metáfora conceptual se basa en la idea de que las metáforas surgen a partir de un dominio del cual se forma la metáfora, -dominio fuente-, más concreto, con una base sensorial, del que se tiene mayor experiencia o conocimiento, y otro, -dominio de destino- donde se proyecta, que pertenece a un ámbito conceptual más abstracto (Subirats, 2010). El transporte semántico entre conceptos es el resultado del establecimiento de una analogía. En este aspecto, los grafos representan muy bien este escenario. A veces podemos tener un nodo aislado, sin relaciones con otros nodos (conceptos), a los que vamos sumando 507 / nuevas relaciones. Por otro lado, podemos tener una serie de relaciones con un nodo o concepto que no sepamos nombrar. En esos casos podemos recurrir a otros nodos que tengan unas relaciones análogas, y que sí podamos nombrar. Las investigaciones sobre la metáfora han permitido considerar el estrecho vínculo existente entre dos dominios de pensamiento: el concreto y el abstracto, en los que más que una organización jerárquica de los conceptos, hay una interconexión entre los diversos niveles conceptuales que nuestra mente establece (Danesi, 2004). El estudio de la metáfora también se ha desarrollado desde otras ópticas interesantes, como por ejemplo, el análisis de la metáfora desde los marcos semánticos ( frame-semantic approach ) de Fillmore (Subirats, 2013), ya que permiten identificar en más dimensiones las relaciones entre el dominio fuente y el dominio destino, descubriendo mejor el comportamiento de la proyección desde un dominio al otro. La visualización en grafos puede ayudar también en el estudio de la coherencia interna del discurso. La isotopía (Greimas, 1966), concepto desarrollado por la escuela estructuralista francesa, alude a la coherencia interna del discurso (Rastier, 2009). Con ella se designa al conjunto coherente de categorías semánticas que posibilita la coherencia global del discurso. La isotopía constituye una textualización del concepto de campo semántico resultando así una suerte de “campo semántico del texto” (Aguado, 2004:114). Para Greimas, la isotopía constituye un conjunto de categorías semánticas constituido a partir de la redundancia en el texto, la cual permite formar la isotopía, posibilitando interpretar, entre otras cosas, el sentido literal o figurado, a través de las relaciones que se establecen entre sus conceptos. La elección de las isotopías determina la reconstrucción de la coherencia global del texto y refleja la progresión temática. Las metáforas y las analogías constituyen en los textos puntos de encuentro entre isotopías, y como veremos pueden ser reflejados en el grafo. Los modelos de generación de texto actuales basados en arquitectura de transformers (GPT-2, GPT3, T5, XLNet, etc), tienen una capacidad asombrosa, y han supuesto un gran avance, sin embargo, hay muy poco control sobre el texto generado. En este sentido, introducir parámetros de control para las isotopías, con los algoritmos de comunidades, las particiones obtenidas en el grafo, etc, puede ayudar a “guiar” la generación del texto. 508 / Merece la pena detenerse a mostrar cómo la representación en grafos es capaz de ayudar a visualizar la naturaleza de las metáforas, y el proceso de transferencia semántica que ocurre, el cual se puede ver hasta cierto punto reflejado en las relaciones entre los nodos. Con la representación del siguiente subgrafo se puede ver claramente cómo las relaciones son “heredadas” por el concepto metaforizado (“estrella_01”), desde el concepto metaforizante (“luciérnaga_01”), respecto a la metáfora: ● Las luciérnagas del cielo brillaban en la noche. La metáfora crea una analogía entre “estrella_01” y “luciérnaga_01”, “ Metaphors can be characterized using a schematic notation based on equative constructions: target domain is source domain” (Subirats, 2013:199), que podría esquematizarse de la siguiente manera: ● Estrella = luciérnaga del cielo que brilla en la noche. Primero procedemos a realizar una consulta sobre los nodos relativos a las palabras de la metáfora (sustantivos y verbos en este caso) y los colocamos formando un pentágono para poder apreciar mejor las relaciones que se establecen posteriormente al hacer la consulta y visualizar el subgrafo devuelto por Neo4j : “estrella_01” (en la cúspide) “cielo_01” (arriba a la derecha) “noche_01” (abajo a la derecha) “luciérnaga_01” (abajo a la izquierda) “brillar_01” (arriba a la izquierda) 509 / ● Consulta en Cypher : MATCH ( a : NC { termId : "mm_estrella_01" }), ( b : NC { termId : "mm_cielo_01" }), ( c : NC { termId : "mm_noche_01" }), ( d : NC { termId : "mm_luciérnaga_01" }), ( e : V { termId : "mm_brillar_01" }) return a , b , c , d , e ● Figura 153. Disposición en pentágono de los nodos. En el anterior subgrafo aparecen conectados de manera automática los susodichos nodos dispuestos como se ha indicado: “estrella_01” (en la cúspide), “cielo_01” (arriba a la derecha), “noche_01” (abajo a la derecha), “luciérnaga_01” (abajo a la izquierda), “brillar_01” (arriba a la izquierda), devueltos como resultado tras la consulta a Neo4j (como ya se ha referido se pueden “fijar” los nodos para colocarlos de la manera más conveniente) . Observamos que el único elemento que no está conectado con el resto por ninguna relación es “luciérnaga_01”, definido en el DUE como: "insecto coleóptero, de cuerpo blando, cuya hembra carece de alas y está dotada de un órgano fosforescente". 510 / ● Figura 154. Subgrafo con las relaciones expandidas de entrada y salida de los cinco nodos presentados. Al expandir las relaciones de entrada y salida de cada nodo, se observa mejor la distribución de la conectividad entre los elementos relacionados con los 5 nodos de base de la metáfora. El grupo de nodos pertenecientes a “luciérnaga_01” (abajo a la izquierda), no se conectan con ningún nodo del resto de los cuatro grupos, pues como hemos visto en la definición lexicográfica del DUE no hay ningún elemento común entre ellos. Sin embargo, se observa una mayor conectividad entre “brillar_01”, “estrella_01”, y “cielo_01” (en la parte superior), y por último el grupo de nodos en torno a “noche_01” (abajo a la derecha), conectado en menor grado con “brillar_01”, “estrella_01”, y “cielo_01”. Al 511 / construir la metáfora es como si colocásemos el nodo relativo a “luciérnaga_01”, sin ninguna conexión, en la posición de “estrella_01”, heredando todas sus relaciones. Obviamente el concepto metaforizante no siempre está “desconectado” del resto de nodos, por ejemplo, en el siguiente subgrafo, en el que se repite el proceso anterior, vemos cómo los nodos del resto del contexto de la metáfora sí están conectados con el concepto metaforizante. En esta ocasión partiremos de la siguiente metáfora: ● Un manto verde crece sobre la pradera. ● Hierba = manto verde que crece sobre la pradera. En este caso el concepto metaforizado es “hierba_01”, el metaforizante “manto_01”, definido en el DUE como: "prenda amplia que se pone sobre la cabeza y cubre todo o casi todo el cuerpo" y el resto de elementos del contexto de la metáfora: "mm_verde_01", "mm_crecer_01”, y "mm_pradera_01". El esquema de la disposición donde se colocará cada nodo para facilitar la interpretación y poder poder localizar cada nodo, con la siguiente: “hierba_01”( a la izquierda), “manto_01” (abajo a la derecha), "mm_verde_01" ( a la derecha), "mm_crecer_01” (abajo a la izquierda), y "mm_pradera_01" (en la cúspide). ● Consulta en Cypher : MATCH ( n : NC { termId : "mm_manto_01" }), ( m : AQ { termId : "mm_verde_01" }), ( o : NC { termId : "mm_pradera_01" }), ( p : NC { termId : "mm_hierba_01" }), ( q : V { termId : "mm_crecer_01" }) RETURN n , m , o , p , q 512 / ● Figura 155. Disposición en pentágono de los 5 nodos antes de expandir sus relaciones. En este caso los nodos de base no establecen ninguna relación entre sí de forma directa, pero expandiendo las relaciones de entrada y de salida correspondientes a los cinco nodos aludidos obtenemos el siguiente subgrafo, donde se puede apreciar la conectividad que presentan entre los nodos de la metáfora. De nuevo, el concepto metaforizado “manto_01” establece un número menor de relaciones con el resto de nodos. Esto no es anecdótico, pero tampoco es general, ya que depende en este caso de la metáfora creada y de los elementos que la componen, si bien es cierto que suele haber una distancia conceptual entre los elementos de la metáfora (por ejemplo en la famosa tupla dientes--perlas), y un contexto que sirva de apoyo cognitivo, que hacen que se reflejen en el número de relaciones que se pueden establecer de forma directa entre los nodos. El mismo procedimiento se puede repetir modificando parámetros, grados de separación de los nodos, etc. En cualquier caso, lo que se busca es poder visualizar las 513 / relaciones que son transferidas entre ambos conceptos, y cómo el elemento metaforizado las hereda. En este caso, “manto_01” (abajo a la izquierda) se colocaría en la posición de “hierba_01” (arriba a la izquierda): ● Figura 156. Subgrafo en el que se han expandido las relaciones de entrada y salida de los cinco nodos analizados. 514 / PARTE IV: CONCLUSIONES, CONSIDERACIONES FINALES Y TRABAJO FUTURO ● Figura 157. Subgrafo de las relaciones expandidas entre 6 nodos principales para comparar su grado de conectividad. 515 / 516 / CONCLUSIONES Evaluación del método propuesto El método propuesto en esta memoria de tesis para la creación de grafos de vinculación semántica se basa en el conocimiento especializado que contienen los diccionarios, en el presente estudio el de la lexicógrafa María Moliner, y en la capacidad de cómputo y relación de los grafos en Neo4j , sumado a otras numerosas características como pueden ser, entre otras, la facilidad en la visualización de los datos que se configura como un recurso adicional para el análisis. En los capítulos 2, 3 y 4 se ha realizado una revisión del estado de la cuestión relativo al estudio del significado y su procesamiento computacional, gracias al cual ha sido posible comprender cuáles son las principales limitaciones y problemas aún no resueltos actualmente y, por consiguiente, hacia dónde es conveniente dirigir los esfuerzos en investigación para avanzar en el conocimiento, análisis y procesamiento del significado y del lenguaje. Las investigaciones que se han hecho en torno al lenguaje, en especial desde la perspectiva de la cognición humana, han ampliado los horizontes, no solo de la Lingüística, sino de numerosas disciplinas relacionadas. Se puede considerar la obra lexicográfica como un producto cognitivo, en el que los lexicógrafos han puesto en marcha capacidades diversas para definir un concepto, sintetizando todo el saber que tienen a su alcance. En unas pocas líneas deben destacar aquellas características de la palabra más sobresalientes y notorias, que son definitorias y permiten diferenciarla en ese significado de otras palabras, adaptando su formulación a criterios lexicográficos. Toda definición lexicográfica debe constar de los suficientes apoyos cognitivos para que el usuario del diccionario construya/reconstruya el significado de la palabra que está consultando. Desde luego, en el resultado de esta complicada labor operan muchos factores, entre los que no se pueden olvidar los sesgos cognitivos y culturales, cuya naturaleza está determinada por un sinfín de condicionantes. Por su parte, las máquinas, al menos todavía, no pueden entender el significado. Sin embargo, poco a poco van siendo cada vez más capaces de emular ciertas habilidades cognitivas, que hasta hace poco eran exclusivas del ser humano. El ser humano y las máquinas se sirven de sendas 517 / estrategias para alcanzar los resultados que obtienen y, aunque dichas estrategias son muy diferentes, se está destinando un enorme esfuerzo a que los resultados entre unos y otros sean cada vez más parecidos, o mejorados incluso por las máquinas en ciertas tareas. No obstante, el mayor avance de las máquinas se basa actualmente más en la velocidad o capacidad para procesar que en un rendimiento que sobrepase la calidad del análisis humano. La capacidad para operar con analogía semántica es una cuestión esencial para construir sistemas de comunicación flexibles y naturales. El acceso y aprovechamiento de conocimiento mediante motores de búsqueda que permita recuperar información precisa entre una gran cantidad de datos, son algunas de las realidades que hoy en día demandan mejoras para el avance de la sociedad. Sobre todo en el campo de la investigación, y en dominios concretos, como por ejemplo, el médico, donde la gran cantidad de información que se genera cada año sobrepasa la capacidad de una persona para manejarla convenientemente. La estructura recursiva sobre la que se asienta el significado a nivel cognitivo se ve reflejada igualmente en la definición a nivel lexicográfico. El significado, al igual que la definición lexicográfica que lo conforma, se construye sobre elementos que a su vez se construyen sobre otros elementos recursivamente. El análisis computacional de estas relaciones ha permitido extraer y agrupar las palabras a través de su contenido semántico gracias al inestimable valor como reservorio o acceso de significados que representa un diccionario, y en concreto el diccionario de María Moliner. Cada uno de los lemas del diccionario está asociado con sus respectivos elementos del definiens , vinculados a su vez con los respectivos lemas de otras entradas. El significado desde la perspectiva en la que se realizado esta investigación se construye a través de un conjunto de relaciones y propiedades entre los conceptos. Las relaciones y los nodos del grafo construido a partir de la relación entre el definiendum y los asociadores, elementos relevantes del definiens del Diccionario de Uso del Español de María Moliner, reflejan las relaciones de significado del diccionario en particular, y por lo tanto en cierta medida, también aspectos del significado en general. Como ya se ha señalado, el valor de una red puede determinarse en función de diferentes parámetros, pero básicamente se establece respecto al número y la calidad, tanto de sus relaciones, como de sus nodos (Chartrand, Lesniak y Zhang, 2010). En este aspecto, el número total de nodos del grafo de vinculación 518 / semántica tras el sucesivo procesamiento, depuración y filtrado es de 123926, con 787286 relaciones. Los algoritmos de similitud y caminos más cortos producen resultados muy satisfactorios. Si bien es cierto que no lo hacen de una manera sistemática e infalible. La combinación con los algoritmos de comunidades y centralidad ofrecen una información complementaria para establecer con más garantías grupos afines, estructurar el léxico y jerarquizar según la relevancia de los nodos correspondientes a los conceptos del dominio trabajado, en este caso el DUE . Además la flexibilidad que ofrecen los grafos de propiedades etiquetadas (LPGM) permiten realizar un trabajo de mejora constante sobre los datos anteriores, permitiendo así el aumento de la capacidad de búsqueda mediante los patrones de Cypher en Neo4j . Los algoritmos de grafos que se pueden aplicar al estudio del lenguaje son numerosos, y están en continuo desarrollo. La información que se puede extraer de sus resultados es alentadora en muchos casos. Por ejemplo, el algoritmo de superposición puede aplicarse y reflejar los grados de conexión que tienen los archisememas o archilexemas, al estar compuestos por semas comunes entre varios sememas y dejar fuera los semas más específicos, permitiendo identificar los conceptos más amplios (C.Zumbado, 1971). Aunque los estudios de Solomon Marcus (1967) se centraron fundamentalmente en fonología y morfología, defendió que la teoría de conjuntos era aplicable a otros ámbitos de la lingüística. Para este trabajo ha sido un gran pretil en el desarrollo de la investigación el hecho de considerar cada palabra como un conjunto de palabras, o mejor, como una familia de conjuntos, en la que sus miembros son a su vez otros conjuntos: DUE = { {x 1 }, { x 2 }, { x 3 }..., {x n } } Lo cual, desde la perspectiva de los diccionarios conformaría los diferentes niveles en los campos lexicográficos, y desde el punto de vista cognitivo, nos permite ser capaces de determinar distancias relativas entre palabras, por ejemplo. Esta concepción estaría más relacionada con la noción de hipergrafo, constituido a su vez por un conjunto de hiperaristas que se pueden relacionar al tiempo con más de un vértice (Berge, 1970). Tanto cuantitativamente como cualitativamente, todavía hay mucho trabajo por 519 / desarrollar respecto a las relaciones entre los conceptos del grafo, por ejemplo, crear relaciones que reflejen la relación sintáctica entre los elementos del definiens , analizar sus papeles semánticos, incluir las marcas, los catálogos, etc. Los resultados obtenidos con los algoritmos de grafos empleados permiten vislumbrar futuras investigaciones, y la flexibilidad que ofrece la tecnología de grafos abre la posibilidad de enriquecerlo con otras fuentes, como otros diccionarios o recursos como Framenet, Conceptnet, Wordnet , etc. Verificación de las hipótesis de investigación y de los objetivos La hipótesis planteada en este trabajo se ha verificado. Gracias a la construcción del grafo referido se han podido analizar las relaciones que implícitamente existen y se pueden establecer entre los definidores de cada una de las acepciones de las entradas del diccionario, las cuales pueden ser visualizadas mediante grafos, permitiendo así conocer el grado de relación y distancia entre palabras consideradas en campos lexicográficos, sumado a su vez al análisis que permiten los algoritmos propios de grafos (caminos más cortos, comunidades, algoritmos de similitud, etc.). Esto ha permitido investigar tanto la tecnología de grafos para su aplicación en Lingüística, como las relaciones de vinculación semántica que mantienen las palabras contenidas en el Diccionario de Uso del Español de María Moliner a partir sus definiciones lexicográficas, y crear otras nuevas con dichos algoritmos. En relación a la pregunta de investigación: ¿Es posible representar en un grafo las relaciones de vinculación semántica del léxico usando como base la relación entre el definiendum y el definiens ? La pesquisa y los resultados obtenidos que han tenido como materialización de la misma la construcción del grafo de vinculación semántica, permiten postular que las estrategias empleadas y la tecnología usada es idónea para la investigación propuesta. Las relaciones establecidas entre los nodos del grafo correspondientes a los definienda del DUE son un buen reflejo tanto del conocimiento codificado en el diccionario de María Moliner, como de otro adicional gracias a la 520 / aplicación de diversos algoritmos de grafos, que partiendo de los datos del anterior como base, se ha podido construir complementándolo con las relaciones de base. De tal manera, ciertas características de la naturaleza del significado, amplia y abstracta, se ha podido materializar, al menos parcialmente, en dicho modelo de grafo de propiedades etiquetadas (LPGM). La manifestación del significado a partir del entramado de las relaciones que se establecen entre los conceptos es central para la construcción de sistemas de procesamiento semántico y para la elaboración y desarrollo de nuevas capacidades semánticas. Respecto a la pregunta de investigación: ¿Se pueden obtener distancias semánticas a partir de los saltos necesarios entre dos palabras descomponiendo sucesivamente cada palabra en los elementos del definiens hasta encontrar un camino común que los una? Se ha podido validar mediante los algoritmos de rutas óptimas o camino más cortos, la hipótesis de partida simplificada y resumida en la fórmula: i j i j i j ∀ x ∃ x | x ≠ x ∧ x Rn x Es decir, para toda palabra ( i ) existe al menos otra palabra ( j ) con la cual se x x relaciona mediante n-palabras. Siendo cada palabra un definiendum del conjunto de palabras contemplado en el DUE , y a su vez, cada palabra un subconjunto (correspondiente al definiens ) formado por varios elementos que a su vez son definienda de otros definiens , etc. Respecto a la pregunta de investigación: ¿Los modelos de grafos ofrecen como tecnología ventajas adicionales para el estudio semántico y lexicográfico? El análisis de las relaciones entre las palabras mediante algoritmos de grafos (centralidad, comunidades, similitud, etc.) dan una información extremadamente útil para caracterizar las relaciones y los nodos relativos a cada concepto o palabra. Los valores resultantes tras aplicar dichos algoritmos pueden ser una herramienta útil en diversas tareas de Procesamiento de Lenguaje Natural. La creación de nuevas relaciones en el grafo a partir de la relación “RELATED_TO” ha permitido enriquecer las conexiones del grafo y ampliar las posibilidades de relación del mismo, dando respuesta a la pregunta de investigación: ¿Cómo se pueden caracterizar las propiedades de los nodos y de las relaciones del grafo? Cuanto más conexo es el grafo, mejor plasma la capacidad asociativa y el manejo en una 521 / dimensión semántica de las palabras. Esta conclusión va en la línea de la hipótesis de partida de que el grafo construido se comporte como una red libre de escala, la alta conectividad de los nodos es un requisito para poder ser considerado una instancia de este tipo de red. En relación con la pregunta de investigación: ¿Son válidos los algoritmos de grafos (similitud, caminos más cortos, centralidad y comunidades) para el análisis de las características del grafo planteado? Se ha comprobado que los algoritmos de grafos de similitud, caminos más cortos, centralidad y comunidad aportan una información muy útil a la hora de estudiar las relaciones que se establecen entre las palabras a través de su contenido, o de su definición, permitiendo identificar los nodos mediante los diferentes valores obtenidos con los algoritmos. Aunque tras la evaluación de los resultados obtenidos con los diferentes algoritmos se ha comprobado que en gran medida los resultados consecuentemente dependen del conocimiento extraído del DUE , y del proceso en sí de extracción de dicho conocimiento, se pueden ampliar las relaciones y la información de los nodos de forma conveniente. La evaluación de los algoritmos elegidos para estudiar el grafo sugieren que más que una idoneidad singular de uno de ellos, pues no había un único objetivo que alcanzar, o una única necesidad que cubrir, resulta más pertinente adaptar o combinar unos y otros por cada situación según la problemática que se quiera resolver. También se ha podido dar respuesta a la preguntas de investigación: ¿La metodología planteada permite obtener nuevas estrategias en el estudio del significado desde el punto de vista computacional y cognitivo? ¿Puede ser aplicado en otros dominios? La representación de parte del conocimiento lexicográfico del DUE en un modelo de grafo ofrece numerosas ventajas y abre nuevas posibilidades de investigación. En el capítulo 8 se han presentado los resultados de evaluar los algoritmos aplicados al grafo, utilizando distintas configuraciones propuestas en los casos de estudio. Los experimentos realizados apuntan a que el uso de la analogía semántica, de técnicas de desambiguación, o de identificación de relaciones en un texto como parte del procesamiento de un texto, permiten conseguir mejoras en los resultados que requieren trabajar con analogía semántica. Dichos resultados de las pruebas, llevadas a cabo para validar el método propuesto y la calidad y posibilidades del grafo construido, muestran que el conocimiento lexicográfico de un diccionario usado como base de conocimiento, sigue siendo un gran recurso para el estudio del significado, y puede ser aplicado en otras investigaciones que necesiten construir la representación semántica de un texto. 522 / Respecto a la consecución de los objetivos generales planteados (OG), esta investigación se ha estructurado en tres ejes principales: el cognitivo, el lexicográfico y el computacional, lo que ha permitido avanzar a su vez en la comprensión de los grafos como una herramienta útil para la aplicación en Lingüística a través del conocimiento codificado en los diccionarios. Los grafos pueden ser un apoyo efectivo en tareas de NLP - OG(I)- : clasificación automática, establecimiento de métricas de similitud, y en general, en sistemas computacionales que organicen el conocimiento y su extracción , así como una vía eficiente para a vanzar en la comprensión de los procesos cognitivos relacionados con la creación, vinculación y desarrollo del significado -OG(II)-. En este trabajo se ha podido evaluar y comparar las características del conocimiento lingüístico que es usado dentro de las tecnologías semánticas OG(III)- desde una perspectiva interdisciplinar, atendiendo a los tres ejes mencionados OG(IV). Se han propuesto nuevas vías de investigación del significado y del léxico a través de un modelo de grafos que permite obtener nuevas métricas para analizar el significado y las relaciones que los conceptos establecen entre sí a partir del conocimiento lexicográfico -OG(V)-. Fruto de este estudio se está pudiendo aplicar esta metodología dentro de otros dominios (médico y legal) en el marco de diferentes proyectos del Departamento de Inteligencia Artificial de la empresa MMG, y se espera poder continuar desarrollando tecnología al servicio de la sociedad -OG(VI), OG(VII)-. En lo referente a los objetivos específicos (OE) se han cumplido satisfactoriamente de manera general. Se ha conseguido modelizar en un grafo las relaciones de vinculación semántica a partir de las definiciones lexicográficas del DUE de María Moliner -OE(I)-; se ha propuesto una metodología que permite analizar, mediante el uso de grafos y sus algoritmos propios (similitud, caminos más cortos, centralidad, comunidades, etc.), ciertas características del léxico y del significado pudiendo evaluar satisfactoriamente los resultados obtenidos -OE(II), OE(III)-. Como consecuencia de lo anterior, se han obtenido nuevas maneras de caracterizar el valor semántico de las palabras usando las métricas obtenidas tras la aplicación de dichos algoritmos de grafos -OE(IV)-, y se han podido reflejar y medir las distancias semánticas entre los conceptos -OE(V)-, permitiendo entre otras cosas la creación automática de listas de palabras afines, los campos lexicográficos. 523 / Evaluación de las limitaciones del estudio Las diferentes evaluaciones llevadas a cabo han permitido identificar los mayores problemas o inconvenientes del método propuesto para construir el grafo, y en consecuencia, hacia dónde se debe orientar el trabajo futuro. Durante la realización de este estudio, se presentaron una serie de limitantes que dificultaron el análisis y la interpretación de los resultados obtenidos. Dentro de estas se destacan: a) Los problemas derivados de la extracción y depuración de los datos, en especial del proceso de lematización y desambiguación de los conceptos. Aunque se han alcanzado resultados muy satisfactorios en ambos que sobrepasan o se acercan en las pruebas realizadas al 90% de acierto, aún siendo optimistas con estos datos, si se van sumando los posibles errores y tenemos en cuenta que se contemplan más de 120.000 conceptos o acepciones de palabras, el margen de error, aunque pequeño desde el punto de vista porcentual, no es desdeñable a la hora de trabajar con el grafo, y se deben tener en cuenta. Respecto a la ambigüedad léxica, a pesar de los problemas y errores encontrados, sorprende la calidad de los resultados obtenidos a partir de la adaptación del algoritmo Lesk, y permiten plantear mejoras usando las relaciones construidas a partir del grafo para futuros procesos de desambiguación. El proceso de desambiguación es gran parte de la base del conocimiento contenido en el grafo, ya que de no ser así, se verían perjudicadas las relaciones, y se arrastrarían los errores al ser heredados de unos nodos a otros, afectando al conjunto del grafo. b) Este estudio seleccionó tres categorías gramaticales (sustantivos, adjetivos y verbos) dejando fuera del estudio el resto de categorías, que aunque no se han considerado tan interesantes para la investigación como las tres categorías señaladas, pueden ser igualmente interesantes para contemplarlas en otros estudios . De acuerdo con los resultados obtenidos se ha comprobado la asociación estadísticamente significativa en la relación preferente entre los miembros 524 / pertenecientes a la misma categoría, debido a la ley de la sinonimia derivada de la definición lexicográfica. c) Durante la investigación y creación de esta memoria de tesis, como se ha explicado, se ha trabajado fundamentalmente en la relación que une al definiendum , con algunos de los elementos del definiens (asociadores). Dicha relación aunque se ha tratado de forma homogénea en la relación de base, en realidad dista mucho de serlo. Cada uno de estos elementos mantiene su propia relación tanto con el definiendum, que conforman un conglomerado de diversas relaciones, como con el resto de elementos que componen el definiens (relación sintagmática) por lo que quedan muchas posibilidades de investigación que contemplar. En la definición lexicográfica las relaciones están estructuradas por la propia lengua, y son tan amplias como lo posibilita este. En el grafo esas relaciones están homogeneizadas principalmente por una relación supraordinada en la que se indica la vinculación de sus componentes, en lugar de todos los tipos generales de relación, por lo que las relaciones sintagmáticas del definiens están aplanadas y solo se relacionan entre sí de manera indirecta por mantener una relación de entrada con el mismo definiendum . d) Para enriquecer el grafo y aumentar la capacidad de filtrar y analizar más características de las palabras sería necesario incluir la información que registran los diccionarios a través de las marcas técnicas (diatópicas, diafásicas, diastrátricas y diatécnicas) puesto que modulan al propio definiendum y a las relaciones con otras acepciones de otras palabras. Asimismo, sería conveniente poder extraer toda la información de tipo gramatical y pragmática que incluyen los diccionarios ya que aporta información que, en ocasiones, permite que haya dos significados recogidos en una misma acepción. 525 / e) Un grafo que represente las relaciones de asociación semántica entre palabras debería tener como objetivo el reflejo de las relaciones que una persona puede establecer entre diferentes conceptos. Sin embargo, la capacidad asociativa del ser humano es muy amplia, tanto como la propia experiencia y conocimiento individual, por lo que su fundamento incluye muchos tipos de relaciones. En este aspecto, la relación principal entre todas ellas tiene un vínculo toral a través del significado compartido en una sociedad, y por lo tanto, en cierta medida con la definición lexicográfica que lo contempla. Las relaciones que se han establecido en este grafo han sido a través del contenido semántico, de las asociaciones que, en este caso María Moliner, explicitó en sus definiciones. En consecuencia, las relaciones y los nodos que contempla el grafo que se ha construido, tiene los límites de partida de la propia definición lexicográfica del Diccionario de Uso del Español. Por esta razón, no se puede encontrar en el grafo una asociación directa entre dos palabras como, por ejemplo, “gato” y “cascabel”, a pesar de que en el ideario colectivo puedan ser dos palabras que tengan un nivel de asociación fuerte, ya que dicha relación no está presente en el diccionario. f) Respecto a la dirección de las relaciones, la asociación cognitiva entre conceptos no contempla una dirección unívoca, si A está relacionado con B, entonces B está relacionado con A, hay bidireccionalidad. Al realizar las consultas en Cypher esto no supone un problema ya que se puede obviar la dirección de la relación como se ha señalado, pero a la hora de construirlo, Neo4j sí necesita que sea un grafo con relaciones dirigidas. g) La desambiguación se ve afectada por el orden etimológico de las acepciones frente al orden basado en criterios de frecuencia, a causa de la heurística empleada, basada en el algoritmo Lesk. Aunque muchas veces la acepción más frecuente es la más cercana a la etimología, obviamente no siempre es así, por lo que en ciertos casos la resolución en la elección de la acepción adecuada se ve perjudicada, afectando de esa manera a las relaciones establecidas. 526 / A pesar de las limitaciones destacadas anteriormente, el grafo resultante es una herramienta que presenta unas características muy interesantes para trabajar tanto la similitud entre conceptos, como la estructuración y clasificación del conocimiento, entre otras cosas, como expondremos a continuación. En la misma línea que Periñán (2012), nos posicionamos a favor de la reutilización del conocimiento lingüístico teórico, y de los recursos léxicos existentes, para ser aplicados en trabajos del PLN. 527 / CONSIDERACIONES FINALES En esta memoria de tesis doctoral se ha presentado un método para la construcción de grafos de vinculación semántica usando como base la relación entre el definiendum y el definiens del DUE . La principal conclusión que se puede extraer es que, al ser la naturaleza del significado profundamente relacional, unos significados se construyen sobre otros tejiendo una red semántica particular en cada uno de nosotros que se ve modificada con cada adición, por lo que se necesitan herramientas igualmente versátiles para representar las relaciones entre sus elementos, y para posibilitar el cambio dinámico del significado. En este sentido los grafos son una solución idónea para representar la naturaleza, en parte fractal del significado debido a la estructura recursiva en que se construye, donde cada palabra es la suma de los significados de las palabras con las que se asocia, o en este caso desde el punto de vista lexicográfico, cada palabra es la suma de las definiciones de las palabras por las que está definida. Por lo tanto, la principal aportación radica (i) en el uso de la relación recursiva entre el definiendum y el definiens como base de conocimiento para la creación de grafos de vinculación por su contenido semántico, y (ii) en proponer la construcción del significado computacionalmente por medio de las relaciones establecidas entre los conceptos a través de la descomposición de sus elementos de forma recursiva, y complementariamente con los valores obtenidos tras la aplicación realizada con los algoritmos de grafos. Ideas que como se ha reflejado en los capítulos 1, 2 y 3 no son del todo nuevas por separado, pero su conjunción posibilitada desde la tecnología de grafos arrojar nuevas perspectivas. La conversión en un grafo a través de la estructura entre el definiendum y el definiens construye unas relaciones que recogen de forma notable numerosos aspectos semánticos, abriendo multitud de vías para el estudio del lenguaje, en particular, de aspectos de semántica computacional y cognitiva, que pueden ser aplicados dentro de la Inteligencia Artificial para mejorar la capacidad y destreza de las máquinas en el manejo de habilidades semánticas. A pesar de los numerosos avances tecnológicos, el diccionario, ya sea en formato físico o electrónico, sigue siendo la herramienta fundamental a la cual se recurre para acceder al significado de las palabras. Por ello, no resulta extraño que también a través del diccionario se 528 / puedan obtener interesantes vías para el estudio computacional del significado. Cada definición lexicográfica de una palabra nos lleva a la definición de las respectivas palabras que la componen entretejiendo una red de relaciones que, de manera recursiva, construyen un sistema de significados enlazados unos con otros. Además mediante esta aproximación se puede enriquecer la información que aporta cada palabra en un texto, por lo que la información disponible a la hora de procesar el texto crece de manera exponencial, tanto como se quiera profundizar en las relaciones que mantiene cada palabra con el resto. Al haberse trabajado con un diccionario general de extraordinaria calidad, se ha podido cubrir en gran medida un dominio general, compuesto de numerosos subdominios. El grafo desarrollado, usando Neo4j , permite además la obtención de listas de palabras afines, campos asociativos o campos lexicográficos. Aunque estos no gozan de la calidad y especificidad de los catálogos de María Moliner, pueden ser un recurso útil en el estudio de la lengua. En concreto, pueden ser útiles en el estudio del significado y del léxico, permitiendo, entre otras cosas, crear diccionarios ideológicos de forma automática, servir para la clasificación automática de los textos, investigar la analogía semántica, la paráfrasis, estructurar el léxico, construir herramientas de apoyo para hacer ontologías de manera semiautomática, analizar la progresión temática de los textos, controlar la generación automática de textos por medio de la isotopía, visualizar las relaciones entre palabras, por ejemplo, en el uso de metáforas, etc. La semántica computacional se ha convertido en uno de los grandes retos de la investigación en Procesamiento de Lenguaje Natural, donde confluyen numerosas tareas, con problemáticas aún no resueltas en el tratamiento automático de textos que pueden verse muy beneficiadas de los métodos y técnicas tanto de la semántica, de forma general, como de la semántica computacional en particular: clasificación automática de textos, detección automática de temas, realización de resúmenes automáticos, la desambiguación léxica, la resolución de referencias anafóricas, catafóricas y pronominales, la resolución de acrónimos y abreviaturas, la verificación de noticias, el análisis de sentimiento, etc. Además cabe destacar que dentro de diferentes proyectos de I+D de la empresa MMG se ha podido validar la metodología propuesta en el dominio médico, usando SNOMED-CT, y en el financiero, a partir del diccionario de la CNMV. 529 / Frente a las técnicas de enorme auge en Lingüística distribucional, que crean espacios semánticos y vectores en los que se codifica el contexto posible de aparición de cada palabra, frase, párrafo o texto, con esta aproximación no se pretende competir con la elaborada técnica y logros alcanzados en los últimos años por los modelos de lenguaje, ni ser una alternativa, sino un método complementario que pueda nutrir de información, no solo contextual en la que se infiere la semántica, sino plenamente semántica que se añada a la contextual. El enriquecimiento de los vectores distribucionales con vectores relacionales es uno de los objetivos que nacen tras esta tesis y que quizá permitan un manejo semántico mayor en el procesamiento del lenguaje, necesitado ahora de ingentes cantidades de texto para entrenar sus modelos con los costes asociados que implica dicho entrenamiento (Strubell, Ganesh y McCallum, 2019). Los grandes logros alcanzados con los embeddings en general y con los Transformers en particular, se basan fundamentalmente en la caracterización de las posiciones de aparición de las palabras de un corpus. El entrenamiento de este tipo de modelos analiza el eje sintagmático y lo codifica en vectores de diferentes maneras como hemos visto. La combinación de estos vectores con otro tipo de vectores, como por ejemplo, vectores de tipo paradigmático, que podrían ser extraídos de un grafo usando técnicas como Node2vec (Grover y Leskovec, 2016), permitiría codificar más información, y por lo tanto, se podría enriquecer el modelo. La definición lexicográfica puede aportar un conocimiento de gran valor en tareas de Procesamiento de Lenguaje Natural y, a la inversa, el Procesamiento de Lenguaje Natural puede aportar nuevas herramientas que se complementen con las teorías lexicográficas y en general con las teorías que la Lingüística ofrece para alcanzar nuevos avances en el estudio del lenguaje, y por consiguiente del conocimiento del ser humano. La conjugación del conocimiento lexicográfico con las herramientas que proporciona el PLN tiene un amplio recorrido aún por conocer en gran parte. El significado de cada palabra se apoya en el significado de otras, conformándose una intrincada red de relaciones que permiten transformar dinámicamente las cargas semánticas de cada palabra. En la lexicología clásica se puede observar también esta estructura recursiva en la que la definición de un término se nutre de otros. Por ejemplo, la estructura “ascensional” 530 / de María Moliner permite establecer una relación jerárquica a partir de los hiperónimos hasta llegar al cierre del circuito, el cono léxico. Finalmente, los resultados obtenidos por las distintas heurísticas empleadas indican que cada valor que se ha grabado en los nodos mediante los diferentes algoritmos son una información adicional a la hora de poder filtrar, organizar, caracterizar o distinguir unas palabras de otras. Síntesis de las conclusiones A modo de síntesis respecto a las conclusiones planteadas destacamos los siguientes puntos: 1. Los grafos ofrecen nuevas posibilidades para la investigación en Procesamiento de Lenguaje Natural y en Lingüística en general y aplicada. En el estudio del significado y del léxico, los grafos ofrecen una alternativa complementaria a las tecnologías imperantes en PLN, como las incrustaciones ( embeddings ), las redes neuronales, como por ejemplo, las LSTM, o los transformadores bidireccionales, como BERT. La naturaleza relacional del significado encaja adecuadamente con la tecnología que ofrecen los grafos, en concreto los modelos de grafos de propiedades etiquetadas (LPGM). 2. Las relaciones obtenidas entre el definiendum y los elementos del definiens son útiles para trabajar con cuestiones de analogía semántica (similitud, distancia semántica, grupos de palabras afines, desambiguación, clasificación automática, etc), y abren numerosas vías de estudio para el análisis y procesamiento del significado. 3. El entrenamiento con redes neuronales requiere enormes cantidades de datos, y prácticamente solo extraen información de la distribución de las palabras en un corpus, la combinación con la metodología de vinculación de conceptos empleada puede servir para enriquecer y dotar de mayor calidad a los datos de que se dispongan, o complementar los vectores distribucionales con la vectorización de la información del grafo. 531 / 4. A partir de las relaciones extraídas del diccionario se pueden obtener nuevas relaciones y nuevos valores que caractericen de diferentes maneras los nodos mediante la aplicación de algoritmos de grafos. Aunque la capacidad asociativa del ser humano se basa en un complejo proceso que involucra diferentes tipos de memoria, y depende directamente de las experiencias individuales, el conocimiento codificado y extraído de los diccionarios supone una base común útil para emular computacionalmente dicha capacidad. 5. El Diccionario de Uso de Español de María Moliner, así como el resto de diccionarios generales o de un dominio específico, suponen una fuente de conocimiento muy útil para aplicarlos en numerosas tareas de PLN (desambiguación, recuperación de información, mejora de buscadores, recomendadores, clasificadores automáticos, etc). 6. La metodología empleada puede ser aplicada a otros dominios y permite usar los definidores como etiquetas automáticas de cada palabra, ampliando la información de cada palabra que encontramos en un texto, lo cual puede ayudar a la clasificación automática de textos, a sistemas de recomendación, sistemas conversacionales, etc. Respecto a la clasificación de texto amplían las posibilidades de la caracterización temática indirecta o implícita al aumentar las posibilidades de asociación con un tópico mediante sus asociadores, sin que este aparezca de forma explícita. Además dicha metodología puede aplicarse dentro de los diccionarios automáticos y servir a los semantistas y lexicógrafos como punto de referencia para “descubrir” posibles inconsistencias en sus modelos. 7. Los sistemas de procesamiento han logrado numerosos éxitos, pero en los modelos de lenguaje actuales que gozan de mayor repercusión (como por ejemplo, BERT, Xlnet, T5, entre otros), el texto y la distribución de las palabras que aparecen en él, son solo un reflejo parcial del lenguaje en sí, y de toda la información necesaria que posibilita la comunicación, por lo que es pertinente buscar nuevas vías que completen la información con la que dichos sistemas trabajan actualmente, y posibilitar de esta manera mayor control y coherencia del texto generado. Cuanta más información de las diferentes dimensiones del lenguaje pueda codificar y decodificar una máquina, más se acercará a las habilidades lingüísticas humanas. 532 / TRABAJO FUTURO Los resultados del análisis del grafo presentado en esta memoria de tesis son prometedores, si bien es cierto que se subraya la necesidad de continuar con la investigación en varias direcciones. Se puede clasificar el trabajo a realizar en un futuro en dos categorías: (i) acciones necesarias para corregir o solventar los problemas de la versión actual del grafo, y (ii) acciones encaminadas a ampliar las funcionalidades y aplicaciones de un grafo de vinculación por contenido semántico. i) Acciones necesarias para solventar problemas de la versión actual del grafo Dentro de las acciones correctoras, estarían fundamentalmente todas aquellas relativas a la depuración de la definición lexicográfica, la lematización y la desambiguación concerniente a la correcta vinculación de las acepciones de los definidores seleccionados. Para ello, se podría mejorar el algoritmo de desambiguación, ampliando los grados de búsqueda, o haciendo uso de los valores ya obtenidos, fundamentalmente con métricas de similitud que permitan escoger convenientemente la acepción adecuada a partir de un contexto determinado. Otra tarea que podría contemplarse tanto en la categoría de acciones correctoras como en acciones de ampliación de las funcionalidades sería la de corregir o ampliar la relación de base usada para construir el grafo, que como se ha subrayado reduce la diversidad de relaciones que se encuentran en el definiens, y que se establecen de manera homogénea con el definiendum . En la investigación llevada a cabo el objetivo ha sido reflejar en un grafo el entramado de relaciones a partir de la relación de base entre el definiendum y los asociadores del definiens . Sin embargo, la homogeneidad de la relación de base aplana la diversidad de relaciones entre los elementos del definiens con el definiendum , y no contempla las relaciones sintagmáticas entre los elementos del definiens , por lo que en trabajos ulteriores se podría acometer la tarea de añadir al grafo nuevas relaciones y “pesos” en la relación de base. Gracias a la flexibilidad que ofrece la 533 / tecnología de grafos esta tarea es posible con mayor facilidad que si fuera una base de datos relacional. De igual manera, se podrían añadir más nodos, otros diccionarios, nuevos dominios y tenerlos diferenciados a través de las etiquetas y de las propiedades. No solo es factible cambiar los valores de las propiedades, sino que también se pueden cambiar las propiedades mismas. El valor del grafo son las relaciones que se establecen entre sus elementos, pero todavía hay mucho por hacer para caracterizar dichas relaciones. La parametrización de los valores obtenidos en las relaciones del grafo puede ser aplicada en sistemas ISR ( Information Search and Retrieval ) que trabajen con métricas de similitud o distancia semántica, como una información adicional para recuperar relaciones y valores no explícitos en el texto. Los modelos de lenguaje actuales dentro de la Inteligencia Artificial usados en Procesamiento de Lenguaje Natural, en general, requieren gran cantidad de datos para ser entrenados. Sin embargo, el tratamiento que se hace no recoge toda la información de que un usuario dispone. Se procesan caracteres “vacíos” que en cierto aspecto se han rellenado con valores estadísticos relativos a su distribución. La combinación de sendas informaciones puede ser aplicada en la mejora de recuperación de información, y estructuración de conocimiento, como se señala en el siguiente apartado. ii) Acciones orientadas a la ampliación de funcionalidades y de posibles aplicaciones Dentro de la segunda categoría de trabajos futuros, las acciones orientadas a la ampliación de las funcionalidades y al aumento de posibles aplicaciones, estaría en primer lugar el objetivo, a nuestro parecer toral, de conseguir una manera de complementar o integrar los vectores distribucionales con los vectores que se pueden obtener a partir de las características de los nodos y sus relaciones, como por ejemplo a partir de GraphSAGE (Hamilton, Ying y Leskovec, 2017), que es un algoritmo inductivo que permite computar embeddings a partir de las características de los nodos, o Node2vec (Grover y Leskovec, 2016), que es un algoritmo para crear vectores a partir de la identificación de nodos vecinos usando caminos aleatorios ( random walks ) y entrenando una red neuronal con una capa oculta para predecir la posibilidad de que un nodo aparezca en un recorrido basándose en las probabilidades del resto de nodos. La 534 / creación de vectores que aúnen la información distribucional con la del grafo de relación, o de un sistema que se pueda apoyar en ambos datos, es una posibilidad interesante para continuar en trabajos futuros. También se han apuntado en el capítulo 8 algunas posibles aplicaciones de estudio, las cuales solo se ha perfilado someramente, como es el estudio de la metáfora, o de las isotopías. Aunque de manera indirecta los vectores distribucionales reproducen las isotopías reflejada en los contextos, al haberse obtenido valores y particiones para cada palabra gracias a los algoritmos de comunidades, y la posibilidad de medir distancias semánticas entre ellas, se podrían analizar parámetros o rangos de valores para "guiar" o controlar la generación de lenguaje automática de los modelos preentrenados basados en arquitectura de transformers , en los cuales no se tiene control ninguno sobre el texto resultante (Dathathri et al., 2019), encontrándose una total dependencia respecto a los textos usados para el entrenamiento que puede ocasionar problemas (Mozafari, Farahbakhsh y Crespi, 2020), así como analizar la propia isotopía de un texto, los rasgos de la coherencia temática que presenta, y las características de la progresión temática. Más allá de la aplicación computacional del método propuesto, también consideramos muy interesante continuar con las investigaciones en un plano cognitivo. Recuperando la noción de texto de Bernárdez (1982: 85) y aplicándola, no a la definición lexicográfica, sino a la producción que cada hablante puede realizar en un determinado momento. Este texto resultante, de naturaleza dinámica, ya que no solo varía en función de cada individuo, sino en función de cada realización o expresión en la que es llevada a cabo, representa una oportunidad para analizar la construcción del significado, de los elementos comunes entre una determinada comunidad sociolingüística, de los elementos más estables, y de los más variables. En este aspecto los grafos son una herramienta de análisis y visualización que ofrece amplias posibilidades. La identificación automática del hiperónimo ( genus ) en la definición lexicográfica supone un objetivo también de especial interés para la consecución de la estructuración automática de conocimiento, y por lo tanto, una herramienta útil para la construcción de ontologías, grafos de conocimiento, etc, ya que puede realizar a través de la posición que 535 / ocupa el término supraordinado en el cono léxico respecto al resto de elementos de la red, es decir, los valores de centralidad extraídos, por ejemplo, mediante la confluencia de las relaciones de entrada y salida de un nodo. Aunque es un apoyo útil deben realizarse ulteriores trabajos que contemplen la heterogeneidad de formas que presenta la definición lexicográfica, así como las diferencias que encontramos en relación a la categoría gramatical de cada elemento, o simplemente las características idiosincráticas que presente el diccionario. Respecto a la generación (NLG) y a la clasificación automática, relacionadas íntimamente con el punto anterior, los asociadores también pueden ser usados como etiquetas de las palabras en tareas de clasificación automática de textos. La descomposición de las palabras en “pseudosemas” se puede considerar como un tipo de etiquetado recursivo que permite categorizar las palabras y generar textos correspondientes a partir de la adición de las respectivas definiciones de las palabras que la componen. Por último, en esta memoria de tesis doctoral se ha presentado un método para la construcción de grafos a partir de la definición lexicográfica del DUE . Sin embargo, el mismo proceso puede llevarse a cabo como método genérico en un dominio específico en el que se disponga de un diccionario. Se debe tener en cuenta que la eficiencia y el aprovechamiento del grafo están condicionados por la calidad del diccionario con el que se trabaja. En este aspecto el DUE es paradigmático en coherencia semántica y lexicográfica, pero los resultados serían de menor calidad con otros diccionarios en los que la definición no fuera tan buena. Otro posible diccionario con el que tendría un rendimiento muy alto el modelo es el Diccionario del Española Actual ( DEA ) de Seco, Andrés y Ramos (1999). La relación entre el definiendum y el definiens , y la recursividad que se encuentra en la relación de dicha estructura permiten implementarlo en otros dominios o en otras lenguas, lo que permitiría también la comparación entre sistemas lingüísticos y podría aplicarse a la traducción, o como estrategia para relacionar elementos en grafos ya creados, como relaciones adicionales en ontologías, o en grafos de conocimiento (KG), sistemas de recomendación que dispongan de texto asociado a los elementos con los que trabajen, etc. Además, supondría un apoyo extra en la confección de nuevos diccionarios, tesauros, vocabularios, etc. La flexibilidad que permiten los grafos hace posible que se puedan plantear futuros trabajos en los que se pueda complementar 536 / el conocimiento lexicográfico de unos diccionarios con otros, aumentando tanto el número de definienda de la red, como el número global de los asociadores con que se relaciona cada concepto. Los diccionarios, además del valor que tienen per se , son una fuente de conocimiento de gran interés para muchos otros ámbitos de la lingüística. La consideración de los diccionarios en proyectos de PLN ha sido y puede seguir siendo la base de fructuosas investigaciones en las que haya como objetivos el establecimiento de grados de semejanza entre palabras a través de las relaciones por el contenido de estas. El establecimiento de distancias semánticas computacionalmente, ha permitido flexibilizar el manejo, y mejorar las capacidades en el uso del lenguaje natural con las máquinas y como se ha expuesto puede ser aplicado en clasificación automática de textos, detección automática de temas, realización de resúmenes automáticos, desambiguación, la resolución de referencias anafóricas, catafóricas y pronominales, la resolución/desambiguación de acrónimos y abreviaturas, etc. Además como también se ha destacado dentro de diferentes proyectos de I+D de la empresa MMG se ha podido validar la metodología propuesta en diferentes dominios (fundamentalmente en el médico, en el financiero y en el legal). Los sistemas de procesamiento del lenguaje hasta hace poco se limitaban a tratar la palabra como una sucesión de caracteres vacíos. La semántica distribucional en parte ha rellenado de forma productiva esos caracteres con valores extraídos de la posición de las palabras y del contexto que conforman. Aunque los requerimientos para vectorizar el significado, como la obtención de grandes corpus de texto para ser entrenados, o la necesidad de una considerable capacidad de procesamiento, todavía suponen considerables trabas para su uso. Los diccionarios, por otro lado, son mucho más accesibles y ofrecen una alternativa a tener en cuenta, en conjunción con la capacidad, herramientas de análisis y flexibilidad que suponen los grafos. Recapitulando, el método desarrollado en esta tesis doctoral puede ser aplicado, como se ha señalado, en otros dominios (medicina, finanzas, comercio, etc.), adaptando las características del dominio a las posibilidades que ofrecen los grafos, y usando un diccionario especializado que recoja los elementos que quieran ser contemplados. 537 / ● Figura 158. Subgrafo aleatorio con el patrón de Cypher : match ( n ) return n limit 1000 538 / BIBLIOGRAFÍA FUENTES TEXTUALES Moliner, María. "Diccionario de uso del español. 2ª Edición. 2 volúmenes." Editorial Gredos, SA Madrid (1998). Moliner, María. "Diccionario de uso del español. Edición en CD-Rom versión 1.1." (1997). REFERENCIAS BIBLIOGRÁFICAS 539 Abdalgader, Khaled. "Word sense identification improves the measurement of short-text similarity." The International Conference on Computing Technology and Information Management (ICCTIM). Society of Digital Information and Wireless Communication, 2014. Achananuparp, Palakorn, Xiaohua Hu, and Xiajiong Shen. "The evaluation of sentence similarity measures." International Conference on data warehousing and knowledge discovery,. Springer, Berlin, Heidelberg, 2008: pp 305-316. Agirre, Eneko, and Aitor Soroa. "Personalizing pagerank for word sense disambiguation." Proceedings of the 12th Conference of the European Chapter of the ACL (EACL 2009). 2009. Aguado, Juan Micuel. "Introducción a las teorías de la información y la comunicación.", Departamento de Información y Documentación Facultad de Comunicación y Documentación Universidad de Murcia (2004). Aho, Albred V., J. E. Hopcroft, and J. D. Ullman. "Data structures and algorithms (1983)." Google Scholar Google Scholar Digital Library Digital Library. Aitchinson, J. Words in the Mind. An Introduction to the Mental Lexicon. Oxford-Nueva York: Basil Blackwell, 1987. Aitchison, Jean. "25 Psycholinguistic Perspectives on Language Change." The handbook of historical linguistics (2003): 736. Aitchison, Jean, and Stella Dextre Clarke. "The thesaurus: a historical viewpoint, with a look to the future." Cataloging & classification quarterly 37.3-4 (2004): 5-21. / 540 Aliaga, J. L.: "En defensa de algunas características del DUE", María Moliner, en su centenario, Centro Virtual Cervantes, 2000, página web https://cvc.cervantes.es/lengua/mmoliner/aliaga.htm (visitado 23/11/2019) American Psychological Association. APA. Diccionario conciso de psicología. Editorial El Manual Moderno, 2010. Anderson, Richard C. "Schema-directed processes in language comprehension." Cognitive psychology and instruction. Springer, Boston, MA, 1978. 67-82. Antonín, María Antonia Martí. "Modelos de semántica distribucional." Actas do XIII Congreso Internacional de Lingüística Xeral: Vigo, 13-15 de xuño de 2018. Universidade de Vigo, 2018. Antoniou, Grigoris, and Frank Van Harmelen. "Web ontology language: Owl." Handbook on ontologies. Springer, Berlin, Heidelberg, 2004. 67-92. Apresjan, Juri, and Yvan Mignot. "Analyse distributionnelle des significations et champs sémantiques structurés." Langages 1 (1966): 44-74. Apresjan, Juri. "Análisis distribucional de los significados y campos semánticos estructurados." Investigaciones semánticas (1978): 49-80. Arano, Silvia. La ontología: una zona de interacción entre la Lingüística y la Documentación [en línea]. "Hipertext.net", núm. 2, 2003. Arbib, Michael A. "Artificial intelligence and brain theory: Unities and diversities." Annals of Biomedical Engineering 3.3 (1975): 238-274. Ariel, Mira. "Accessing NP antecedents (Croom Helm Linguistics Series)." (1990). Armstrong, Sharon Lee, Lila R. Gleitman, and Henry Gleitman. "What some concepts might not be." Cognition 13.3 (1983): 263-308. Arora, Gaurav, et al. "Movie recommendation system based on users’ similarity." International Journal of Computer Science and Mobile Computing 3.4 (2014): 765-770. Arora, Sanjeev, et al. "A theoretical analysis of contrastive unsupervised representation learning." arXiv preprint arXiv:1902.09229 (2019). Awerbuch, Baruch. "Optimal distributed algorithms for minimum weight spanning tree, counting, leader election, and related problems." Proceedings of the nineteenth annual ACM symposium on Theory of computing. 1987. Baeza-Yates, Ricardo, and Berthier Ribeiro-Neto. Modern information retrieval. Vol. 463. New York: ACM press, 1999. / 541 Bailey, C. J. "Variation and linguistic theory. Arlington: Center for Applied Linguistics. 1977a. Linguistic change, naturalness, mixture, and structural principles." Papiere zur Linguistik 16 (1973): 6-64. Baker, Collin F., Charles J. Fillmore, and John B. Lowe. "The berkeley framenet project." 36th Annual Meeting of the Association for Computational Linguistics and 17th International Conference on Computational Linguistics, Volume 1. 1998. Balakrishnan, V. K. Schaum's Outline of Graph Theory: Including Hundreds of Solved Problems. McGraw Hill Professional, 1997. Balboa Sánchez, María Olga. El campo léxico "real-irreal" en español. Universidad Complutense de Madrid, Servicio de Publicaciones, 2002. Baldinger, Kurt. "Semantic theory: towards a modern semantics." (1980). Bally, Charles. L'arbitraire du signe. 1940. Banarescu, Laura, et al. "Abstract meaning representation (amr) 1.0 specification." Parsing on Freebase from Question-Answer Pairs. In Proceedings of the 2013 Conference on Empirical Methods in Natural Language Processing. Seattle: ACL. 2012. Banerjee S, Pedersen T., An adapted lesk algorithm for word sense disambiguation using wordnet. In: Proceedings of the third international conference on computational linguistics and intelligent text processing, CICLing, pp 136–145, 2002. Barabasi, Albert-Laszlo & Albert, Reka: Emergence of Scaling in Random Networks. Science 286, 509-512. Science (New York, N.Y.). 286. 509-12. 10.1126/science.286.5439.509, 1999. Baroni, M., Dinu, G. & Kruszewski, G. Don’t count, predict! Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics, pp.238–247, 2014 Barzilay, Regina, Kathleen McKeown, and Michael Elhadad. "Information fusion in the context of multi-document summarization." Proceedings of the 37th annual meeting of the Association for Computational Linguistics. 1999. Basirat, Ali., A Generalized Principal Component Analysis for Word Embedding, 2018. Bavelas, A.: Communication patterns in task-oriented groups. J. Acoustical Soc. of Am. 22(6), 725–730 (1950) Bavelas, Alex. "A mathematical model for group structures." Human organization 7.3 (1948): 16-30. Beauchamp, Murray A. "An improved index of centrality." Behavioral science 10.2 (1965): 161-163. / 542 Becchetti, Luca, et al. "Efficient semi-streaming algorithms for local triangle counting in massive graphs." Proceedings of the 14th ACM SIGKDD international conference on Knowledge discovery and data mining. 2008. Belinchón, Mercedes, José Manuel Igoa González, and Angel Rivière Gómez. Psicología del lenguaje: investigación y teoría. No. 401.9 B4. 1994. Bender, Emily M., and Alexander Koller. "Climbing towards NLU: On meaning, form, and understanding in the age of data." Proc. of ACL. 2020. Benjamins, V. Richard, et al. "Ontologies of professional legal knowledge as the basis for intelligent IT support for judges." Artificial Intelligence and Law 12.4 (2004): 359-378. Benzmüller, Christoph, et al. "Higher-Order Semantics and Extensionality." Journal of Symbolic Logic, vol. 69, no. 4, 2004, pp. 1027–1088., doi:10.2178/jsl/1102022211. Berge, Claude. "Sur certains hypergraphes généralisant les graphes bipartites." Combinatorial Theory and its Applications I 4 (1970): 119-133. Bernárdez, E. Introducción a la lingüística del texto, Madrid: Espasa-Calpe, 1982. Bernárdez, Enrique. Introducción a la lingüística del texto. Vol. 1. Madrid: Espasa-Calpe, 1982. Bernárdez, Enrique. Lingüística del texto. Arco Libros, 1987. Black, Max. "More about metaphor." Metaphor and thought 2 (1979): 19-41. Blacoe, W. & Lapata, M. A Comparison of Vector-based Representations for Semantic Composition. Proceedings of the 2012 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning, (July), pp.546–556. 2012 Blank, Andreas, and Peter Koch. "Introduction: historical semantics and cognition." Historical semantics and cognition (1999): 1-16. Blondel, Vincent D., et al. "A measure of similarity between graph vertices: Applications to synonym extraction and web searching." SIAM review 46.4 (2004): 647-666. Blunsom, Phil, Edward Grefenstette, and Karl Moritz Hermann. "New directions in vector space models of meaning." Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics. Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics, 2014. Bodaghi, A., & Teimourpour, B. Automobile Insurance Fraud Detection Using Social Network Analysis. In Applications of Data Management and Analysis, 11-16. Springer, Cham, 2018. Bolzano, Bernard. "Wissenschaftslehre." Wissenschaftslehre (1837): 1-2. Borgatti, Stephen P. "Centrality and network flow." Social networks 27.1 (2005): 55-71. / 543 Borgatti, Stephen P., and Martin G. Everett. "A graph-theoretic perspective on centrality." Social networks 28.4 (2006): 466-484. Borodkin, K., & Faust, M. Word retrieval in developmental language impairments: Application of the Tip-of-the-Tongue paradigm. In Faust, M. (ed.), The handbook of the neuropsychology of language, pp. 963–982. Oxford: Wiley-Blackwell, 2012. Boruvka, Otakar. "O jistém problému minimálním." Práce Mor. Prırodved. Spol. v Brne (Acta Societ. Scienc. Natur. Moravicae) 3.3 (1926): 37-58. Bosque, Ignacio "Sobre la teoría de la definición lexicográfica", VERBA, 9, 1982, págs. 105-123. Boudin, Florian: A Comparison of Centrality Measures for Graph-Based Keyphrase Extraction, International Joint Conference on Natural Language Processing, pages 834–838, Nagoya, Japan, 14-18 October 2013. Brachman, R. and Levesque, H. Readings in knowledge representation. Morgan Kaufman Publishers Inc., Los Altos, CA, 1985. Brain, Sergey. "The anatomy of a large-scale hypertextual web search engine." WWW7/Computer Networks 30.1 (1998): 107-117. Bréal, Michel. Essai de sémantique:(science des significations). Hachette, 1904. Brin, S. and Page, L. The Anatomy of a Large-Scale Hypertextual Web Search Engine. In: Seventh International World-Wide Web Conference,, April 14-18, 1998, Brisbane, Australia, 1998. Brown, Roger, and David McNeill. "The "tip of the tongue" phenomenon." Journal of verbal learning and verbal behavior 5.4 (1966): 325-337. Brown, Tom B., et al. "Language models are few-shot learners." arXiv preprint arXiv:2005.14165 (2020). Buenaventura, R.: "Doña María electrónica", Cuadernos Cervantes de la Lengua Española, 10, 1996, pp. 60-62. Bühler, Karl. "Tatsachen und Probleme zu einer Psychologie der Denkvorgänge: II Über Gedankenzusammenhänge." Archiv für die gesamte Psychologie 12 (1908): 1-23. Burgess, Curt, Kay Livesay, and Kevin Lund. "Explorations in context space: Words, sentences, discourse." Discourse Processes 25.2-3 (1998): 211-257. Bybee, Joan L. Morphology: A study of the relation between meaning and form. Vol. 9. John Benjamins Publishing, 1985. / 544 Bybee, Joan. "Word frequency and context of use in the lexical diffusion of phonetically conditioned sound change." Language variation and change 14.3 (2002): 261-290. C. Sutton and A. McCallum, "An introduction to conditional random fields. Found. Trends Mach. Learn." 4(4):267–373, Apr. 2012. Caldarola, Enrico G. & Picariello, Antonio & Rinaldi, Antonio. Big Graph-based Data Visualization Experiences The WordNet Case Study. 10.5220/0005632201040115, 2015. Calvo, J. L. "Platón. Crátilo." Introducción y notas en Diálogos II. Madrid, gredos (1981). Cama, Mercedes Díaz. "El papel de la relación de hiperonimia-hiponimia en la estructuración de los diccionarios de lengua (con especial referencia al DUE de María Moliner)." Estudios sobre el" Diccionario de uso del español" de María Moliner. Servicio de Publicaciones, 1998. Cangelosi, Angelo. "The grounding and sharing of symbols." Pragmatics & Cognition 14.2 (2006): 275-285. Cardellino, Cristian. "Estudio de métodos semisupervisados para la desambiguación de sentidos verbales del español" (tesis doctoral), Universidad Nacional de Córdoba Facultad de Matemáticas, Astronomía, Física y Computación, 2018. Carreño, Ramón Trujillo. "Las unidades semánticas y su delimitación." Revista Española de Lingüística 5.2 (1975): 303-314. Casado Velarde, M.: "La información textual en el DUE de María Moliner", Voz y Letra. Revista de Filología, 5, 1, 1994, pp. 129-137. Casares, Julio, Introducción a la Lexicografía, CSIC, reimp. en 1969 y 1992, Madrid, 1950. Casares, Julio. Diccionario ideológico de la lengua española. Gustavo Gili, 1942. Casares, Julio. Introducción a la lexicografía moderna. No. 17. Editorial CSIC-CSIC Press, 1992. Casas Gómez, M.: "Reflexiones semánticas en torno a las características generales del Diccionario de uso de María Moliner", Trivium. Anuario de Estudios Humanísticos, 6, 1994, pp. 123-145. Castelltort, A., & Laurent, A. Rogue behavior detection in NoSQL graph databases. Journal of innovation in digital ecosystems, 3(2), 70-82, 2016. Castroviejo, C.: "La lengua viva. María Moliner: ‘Diccionario de uso del español’, Editorial Gredos, Madrid", Hoja del Lunes, Madrid, 2 de junio de 1969. Catherine, Rose, and William Cohen. "Personalized recommendations using knowledge graphs: A probabilistic logic programming approach." Proceedings of the 10th ACM Conference on Recommender Systems. 2016. / 545 Chakrabarti, Soumen. "Dynamic personalized pagerank in entity-relation graphs." Proceedings of the 16th international conference on World Wide Web. 2007. Chang, Wui Lee, Kai Meng Tay, and Chee Peng Lim. "A new evolving tree for text document clustering and visualization." Soft computing in industrial applications. Springer, Cham, 2014. 141-151. Chartrand, Gary, Linda Lesniak, and Ping Zhang. Graphs & digraphs. Vol. 39. CRC press, 2010. Chaurand, J., Mezière, F. ed. La définition. Paris: Larousse, 1990. Chen, Fei, Wei Ren, and Zongli Lin. "Multi-leader multi-follower coordination with cohesion, dispersion, and containment control via proximity graphs." Science China Information Sciences 60.11 (2017): 110204. Chen, Keh-Jiann, et al. "Extended-HowNet: A representational framework for concepts." Proceedings of OntoLex 2005-Ontologies and Lexical Resources. 2005. Chen, Ting and Sun, Yizhou. Task-Guided and Path-Augmented Heterogeneous Network Embedding for Author Identification. In Proceedings of the Tenth ACM International Conference on Web Search and Data Mining. ACM, 295–304, 2017 Cherkassky, Boris V., Andrew V. Goldberg, and Tomasz Radzik. "Shortest paths algorithms: Theory and experimental evaluation." Mathematical programming 73.2 (1996): 129-174. Chomsky, Noam : Lectures on government and binding, Dordrecht: Foris, 1981. Chomsky, Noam, "Remarks on nominalization" en Roderick A. Jacobs y Peter S. RosenBaum (eds.): Readings in English Transformational Grammar, Cambridge: Waltham (mass.): Ginn and co, 184-221, 1970. Chomsky, Noam. "Aspects of the theory of syntax." Cambridge, MA: MITPress 1977 (1965): 71-132. Chomsky, Noam. "Language and nature." Mind 104.413 (1995): 1-61. Chomsky, Noam. "Syntactic structures, La Haya, Mouton.(1965) Aspects of the theory of syntax." (1957). Christiansen, Morten H., and Nick Chater. "Toward a connectionist model of recursion in human linguistic performance." Cognitive Science 23.2 (1999): 157-205. Cifuentes Honrubia, José Luis. "Gramática cognitiva. Fundamentos críticos." Salamanca: Eudema (1994). Clark, S. Vector Space Models of Lexical Meaning. In S. Lappin & C. Fox, eds. Handbook of Contemporary Semantics. pp. 1–43, 2014. / 546 Cohen, Elior, Node2vec: Embeddings for Graph Data, https://towardsdatascience.com/node2vec-embeddings-for-graph-data-32a866340fef, 2018 (acceso septiembre 2019) Coleman, Linda, and Paul Kay. "Prototype semantics: The English word lie." Language 57.1 (1981): 26-44. Collins, A. M. y Quillian, M. R. "Retrieval time from semantic memory.". Journal of Verbal Learning and Verbal Behavior 8 (2): 240-247. doi:10.1016/S0022-5371(69)80069-1, 1969. Conte, Giuseppe. La metafora barocca: saggio sulle poetiche del Seicento. No. 16. U. Mursia, 1972. Coromines, Joan. Diccionario crítico etimológico de la lengua castellana. Gredos, 1954. Cortés Alonso, V. María Moliner. En: La lexicografía hispánica ante el siglo XXI: balance y perspectivas. Zaragoza: Gobierno de Aragón, 2003, p. 269–274. Coseriu, Eugenio. Pour une sémantique diachronique structurale. Centre de philologie et de littératures romanes de l'Université de Strasbourg, 1964. Coseriu, Eugenio. Principios de semántica estructural (1964-1976), Gredos, Madrid, 1981, pp. 11-86. Coseriu, Eugenio. Semántica Estructural y Semántica "Cognitiva", Universidad de Tübingen, Jornadas de Filología, Homenaje al dr. Francisco Marsa, Universidad de Barcelona, 1990. Coursey, Kino, and Rada Mihalcea. "Topic identification using Wikipedia graph centrality." Proceedings of Human Language Technologies: The 2009 Annual Conference of the North American Chapter of the Association for Computational Linguistics, Companion Volume: Short Papers. 2009. Croft, William, and D. Alan Cruse. Cognitive linguistics. Cambridge University Press, 2004. Croft, William, and William Albert Croft. Radical construction grammar: Syntactic theory in typological perspective. Oxford University Press on Demand, 2001. Croft, William. Explaining language change: An evolutionary approach. Pearson Education, 2000. Cruse, D. Alan. "Prototype theory and lexical relations." Rivista di linguistica 6.2 (1994): 167-188. Cuadrado, Luis Alberto Hernando. "El diccionario de María Moliner y el usuario extranjero." Actuales tendencias en la enseñanza del español como lengua extranjera II: actas del VI Congreso Internacional de ASELE:(León 5-7 de octubre de 1995). Servicio de Publicaciones, 1996. / 547 Cuenca, Maria Josep, and Joseph Hilferty. Introducción a la lingüística cognitiva. Grupo Planeta (GBS), 1999. Da Silva, Augusto Soares, Fundação Calouste Gulbenkian, and Portugal. A semântica de deixar: uma contribuição para a abordagem cognitiva em semântica lexical. 1999. Dacosta Esteban, J.: Breve historia de las nuevas ediciones del Diccionario de María Moliner, Educación y Biblioteca, N. 167 - Septiembre-Octubre, 2008. Danesi, Marcel. "Metáfora, pensamiento y lenguaje." Editorial Kronos. Sevilla (2004). Dathathri, Sumanth, et al. "Plug and play language models: a simple approach to controlled text generation." arXiv preprint arXiv:1912.02164 (2019). David F. Gleich, PageRank beyond the web, arXiv:1407.5107v1 [cs.SI] 18 Jul (2014) Davidson, Donald. "Truth and meaning." Philosophy, Language, and Artificial Intelligence. Springer, Dordrecht, 1967. 93-111. Davidson, Donald. "What metaphors mean." Critical inquiry 5.1 (1978): 31-47. Davidson, Donald. "The inscrutability of reference." The Southwestern Journal of Philosophy 10.2 (1979): 7-19. Davidson, Donald. "Communication and convention." Synthese (1984): 3-17. Davidson, Donald. "What is Present to the Mind?." Grazer Philosophische Studien 36.1 (1989): 3-18. Davidson, D: Mente, mundo y acción: claves para una interpretación. Volumen 20, Pensamiento Contemporáneo, Paidós, 1992 Davidson, Donald. Language, mind and epistemology: on Donald Davidson's philosophy. Vol. 241. Springer Science & Business Media, 1994. del Barco Collazos, José Luis. "La teoría de la asociación en Hume." Anuario Filosófico 14.2 (1981): 49-70. De Bessé, Bruno, Blaise Nkwenti-Azeh, and Juan C. Sager. "Glossary of terms used in terminology." Terminology-Amsterdam- 4 (1997): 117-156. De La Fuente, Inmaculada. El exilio interior: la vida de María Moliner. Turner, 2011. Deerwester, S., Dumais, S. T., Furnas, G. W., Landauer, T. K., & Harshman, R. Indexing by latent semantic analysis. Journal of the American Society for Information Science, 41(6), 391-407, 1990. / 548 Deerwester, Scott, et al. "Indexing by latent semantic analysis." Journal of the American society for information science 41.6 (1990): 391-407. DeMarneffe, M.-C., MacCartney, W., and Manning, C. Generating typed dependency parses from phrase structure parses. In Proceedings of the 5th International Conference on Language Resources and Evaluation (LREC), volume 6, pages 449–454, Genoa, Italy, 2006. Descartes, René. "Meditaciones metafísicas (1641)." Madrid: Gredos (1997). Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv (2018). Dhillon, Inderjit S., Yuqiang Guan, and Brian Kulis. A unified view of kernel k-means, spectral clustering and graph cuts. Computer Science Department, University of Texas at Austin, 2004. Dietrich, Wolf. Por una semántica estructural y cognitiva. Analecta Malacitana. Anejo. 39-56, 2012. Dijkstra, Edsger W. "A note on two problems in connexion with graphs." Numerische mathematik 1.1 (1959): 269-271. Dik, Simon C. Functional grammar. Vol. 7. Foris Pubns USA, 1981. Diviák, Tomáš, Jan Kornelis Dijkstra, and Tom AB Snijders. "Structure, multiplexity, and centrality in a corruption network: the Czech Rath affair." Trends in Organized Crime 22.3 (2019): 274-297. Dong, Zhendong, and Qiang Dong. "HowNet-a hybrid language and knowledge resource." International Conference on Natural Language Processing and Knowledge Engineering, 2003. Proceedings. 2003. IEEE, 2003. Dong, Zhendong, Qiang Dong, and Changling Hao. "Hownet and its computation of meaning." Coling 2010: Demonstrations. 2010. Du, Jingfei, et al. "Self-training Improves Pre-training for Natural Language Understanding." arXiv preprint arXiv:2010.02194 (2020). Dubois, Jean. "Distribution, ensemble et marque dans le lexique." Cahiers de lexicologie 1964.4 (2012): 7-22. Duchacek, Otto. "Le champ conceptuel de la beauté en français moderne." (1960). Dummett, Michael AE. "What is a Theory of Meaning?." (1975). Dummett, Michael, and Alberto López Cuenca. "La teoría del significado en la filosofía analítica." (1999). / 549 Edmudson, H. P. Problems in automatic abstracting. Comm. ACM 7, 4 , 259-263, Apr. 1964. Edmundson, Harold P. "New methods in automatic extracting." Journal of the ACM (JACM) 16.2 (1969): 264-285. Elbassuoni, Shady, et al. "Language-model-based ranking for queries on RDF-graphs." Proceedings of the 18th ACM conference on Information and knowledge management. 2009. Erdős, P.; Rényi, A. "On Random Graphs. I.". Publicationes Mathematicae 6: 290–297, 1959. Erdos, Paul. "Graphs with prescribed degree of vertices." Mat. Lapok. 11 (1960): 264-274. Erkan, G. Radev, D . LexRank: Graph-based Lexical Centrality as Salience in Text Summarization, Journal of Artificial Intelligence Research 22, 2004. Erkan, Günes, and Dragomir R. Radev. "Lexrank: Graph-based lexical centrality as salience in text summarization." Journal of artificial intelligence research 22 (2004): 457-479. Ezquerra, Manuel Alvar. "Los "sentidos y significados claros" de María Moliner." Estudios sobre el "Diccionario de uso del español" de María Moliner. Servicio de Publicaciones, 1998. Ezquerra, Manuel Alvar. Lexicología y lexicografía: Guía bibliográfica. Vol. 1. Almar, 1983. F. Baader, D. Calvanese, D. L. McGuiness, D. Nardi, P. F. Patel-Schneider: The Description Logic Handbook: Theory, Implementation, Applications. Cambridge University Press, Cambridge, UK, 2003. Faber, P. "Constructing a Lexicon of English Verbs/Pamela B." (1999). Faber, Pamela, and R. Mairal Usón. "Constructing a Lexicon of English Verbs. Berlin-Nueva York: Mouton de Gruyter." (1999). Faber, Pamela. "Funciones léxicas y su aplicación en la traducción." Facultad de Traducción e Interpretación, Universidad de Granada. Fauconnier, Gilles. Mental spaces: Aspects of meaning construction in natural language. Cambridge University Press, [1985], 1994. Fauconnier, Gilles, and Mark Turner. The way we think: Conceptual blending and the mind's hidden complexities. Basic Books, 2008. Francis, Nadime, et al. "Cypher: An evolving query language for property graphs." Proceedings of the 2018 International Conference on Management of Data. 2018. Feely, Weston. "An Empirical Comparison of VerbNet Syntactic Frames and the Semlink Corpus.", 2012. / 550 Fellbaum, Christiane. "English verbs as a semantic net." International Journal of Lexicography 3.4 (1990): 278-301. Fellbaum, Christiane. WordNet and wordnets. In: Brown, Keith et al. (eds.), Encyclopedia of Language and Linguistics, Second Edition, Oxford: Elsevier, 665-670, 2005. Fernández-Pampillón Cesteros, Ana, Matesanz del Barrio, María. Los Diccionarios Electrónicos: hacia un nuevo concepto de diccionario. Estudios de Lingüística del Español, ISSN-e 1139-8736, Nº. 24, 2006 Fernández-Pampillón Cesteros, Ana María. La construcción de tesauros académicos: un modelo general y un método inductivo con aplicación al "e-learning". Universidad Complutense de Madrid, Servicio de Publicaciones, 2010: 3-4. Fernández, Tomás Ramón, José Carlos Sánchez González. "Aristóteles, sobre la Memoria." Revista de historia de la psicología 39.2 (2018): 7-13. Fernández, A., G. Vázquez, I. Castellón. "SenSem: a Databank for Spanish Verbs", Proceedings of the X Ibero-American Workshop on Artificial Intelligence, IBERAMIA.. Ribeirão Preto, Brasil, 2006. Ferrari, Giacomo: "State of the art in computational linguistics" en Piet van SterkenBurg (ed.): Linguistics today: facing a greater challenge, Ámsterdam-Filadelfia: John Benjamins, 163-186, 2004. Fillmore, Charles : "The case for case" en Emmon W. Bach y Robert T. Harms (ed.): Universals in linguistic theory, Nueva York: Holt, Rinehart and Winston, 1-88, 1968. Fillmore, Charles J. "An Alternative to Checklist Theories of Meaning", Proceedings of the Annual Meeting of the Berkeley Linguistics Society. Berkeley Linguistics Society., 1975. Fillmore, Charles J. y Beryl T. Atkins: "Toward a frame-based lexicon: the semantics of risk and its neighbors" en Adrienne Lehrer y Eva Feder Kittay (ed.): Frames, fields, and contrasts, Hillsdale: lawrence, 75-102, 1992. Fillmore, Charles J., Paul Kay, and Mary Catherine O'connor. "Regularity and idiomaticity in grammatical constructions: The case of let alone." Language (1988): 501-538, y Goldberg, Adele E. Constructions: A construction grammar approach to argument structure. University of Chicago Press, 1995. Fillmore, Charles J. "Scenes-and-frames semantics." (1977). Firth, John R. "A synopsis of linguistic theory, 1930-1955." Studies in linguistic analysis (1957). Firth, John Rupert. "The Technique of Semantics." Transactions of the philological society 34.1 (1935): 36-73. / 551 Floyd, Robert W. "Algorithm 97: shortest path." Communications of the ACM 5.6 (1962): 345. Fodor, J., y Lepore, E., "Why Compositionality Won’t Away: Reflections on Horwich’s ‘Deflationary’ Theory", Ratio, vol. 14, nº 4, dec. 2001, pp. 350-351. Fodor, Jerry A. Representations: Philosophical essays on the foundations of cognitive science. Cambridge, MA: Mit Press, 1981. Fodor, Jerry A. The language of thought. Vol. 5. Harvard university press, 1975. Fodor, Jerry A., and Zenon W. Pylyshyn. "Connectionism and cognitive architecture: A critical analysis." Cognition 28.1-2 (1988): 3-71. Fogaras, Dániel, et al. "Towards scaling fully personalized pagerank: Algorithms, lower bounds, and experiments." Internet Mathematics 2.3 (2005): 333-358. Frassi, Paolo. "La place du métalangage dans la définition lexicographique: l ‘exemple des définitions des mots syncatégorématiques dans le TLF." Proceedings of the XIII EURALEX International Congress (Barcelona, 15-19 July 2008). 2008. Frawley, William. "Lexicography and the Philosophy of Science." Dictionaries: Journal of the Dictionary Society of North America 3.1 (1980): 18-27. Frederic, Bartlett. "Remembering: A study in experimental and social psychology." (1932): 201. Freeman, L.C.; Borgatti, S.P.; White, D.R. "Centrality in valued graphs: a measure of betweenness based on network flow". Social Networks 13: 141-154. doi:10.1016/0378-8733(91)90017-N, 1991. Freeman, Linton C. "Centrality in communication networks: Conceptual clarification." Social Networks 2.2 (1979): 119-141. Freeman, Linton C. "Centrality in social networks conceptual clarification." Social networks 1.3 (1978): 215-239. Frege, Gottlob. "Über sinn und bedeutung." Zeitschrift für Philosophie und philosophische Kritik 100 (1892): 25-50. Fuentes, María Teresa: "María Moliner, hoy", en María Moliner, en su centenario, Centro Virtual Cervantes, 2000. Gandy, R. O. "On the Axiom of Extensionality – Part I." Journal of Symbolic Logic, vol. 21, no. 1, 1956, pp. 36–48., doi:10.2307/2268484. García de Quesada, Mercedes: Estructura definicional terminográfica en el subdominio de la oncología clínica. Estudios de Lingüística del Español. Volumen 14, 2001. / 552 García Jurado, Francisco: Introducción a la semántica latina. De la semántica tradicional al cognitivismo. Madrid: Servicio de Publicaciones de la Universidad Complutense. Cuadernos de Filología clásica - Estudios latinos. Serie de monografías. 2003, Anejo I, p. 42-45] García Parejo, Isabel. El campo semántico "placer" en español: Estudio de la estructura de los sustantivos del campo léxico ‘placer’ en español y análisis de la misma en el dialecto literario de doce autores españoles de los siglos XIII a XIX. Diss. Tesis doctoral, Universidad Complutense, Facultad de filología, Madrid, 1997. García Sierra,Pelayo. Diccionario filosófico, Manual de materialismo filosófico (prólogo de Gustavo Bueno), Fundación Gustavo Bueno (Biblioteca Filosofía en español), Oviedo, 2000 742 pp García, José E. "A ciento cincuenta años del nacimiento de Edward Bradford Titchener: Coincidencias y diferencias con Wundt." Cuadernos de Neuropsicología 11.3 (2017): 68 Gargallo Gil, José Enrique. "La ordenación de acepciones en algunos artículos lexicográficos del DRAE: cuestiones de norma y uso." (1992). Garrido Medina, Joaquín. Lógica y lingüística. Síntesis, 1988. Gaume, Bruno, Nabil Hathout, and Philippe Muller. "Word sense disambiguation using a dictionary for sense similarity measure." COLING 2004: Proceedings of the 20th International Conference on Computational Linguistics. 2004. Gazdar, Gerald y otros: Generalised Phrase Structure Grammar, Oxford: Basil Blackwell, 1985. Geckeler, Horst. Semántica estructural y teoría del campo léxico, Gredos, Madrid, (1984), Pp. 100-134, 1971. Geeraerts, Dirk, Stefan Grondelaers, and Peter Bakema. "The structure of lexical variation. A descriptive framework for cognitive lexicology." Berlin: Mouton de Gruyter (1994). Geeraerts, Dirk. "Cognitive grammar and the history of lexical semantics." Topics in cognitive linguistics. John Benjamins, 1988. 647. Geeraerts, Dirk. "Introduction: Prospects and problems of prototype theory." Linguistics 27.4 (1989): 587-612. Geeraerts, Dirk. "Lectal variation and empirical data in Cognitive Linguistics." Cognitive linguistics: Internal dynamics and interdisciplinary interaction (2005): 163-189. Geeraerts, Dirk. "Prototypes, stereotypes, and semantic norms." Cognitive sociolinguistics: Language variation, cultural models, social systems 39 (2008): 21-40. Geeraerts, Dirk. "The definitional practice of dictionaries and the Cognitive Semantic conception of polysemy." Lexicographica 17 (2001): 6-21. / 553 Geeraerts, Dirk. Diachronic prototype semantics: A contribution to historical lexicology. Oxford University Press, 1997. Gilquin, Gaëtanelle. "The place of prototypicality in corpus linguistics: Causation in the hot seat." Corpora in cognitive linguistics: Corpus-based approaches to syntax and lexis (2006): 159-91. Ginsburg, Seymour, and H. Gordon Rice. "Two families of languages related to ALGOL." Journal of the ACM (JACM) 9.3 (1962): 350-371. Givón, Talmy. "Prototypes: Between Plato and Wittgenstein." Noun classes and categorization' s 1 (1986): 77-102. Goddard, Cliff, and Anna Wierzbicka, eds. Semantic and lexical universals: Theory and empirical findings. Vol. 25. John Benjamins Publishing, 1994. Gödel, Kurt. "Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I." Monatshefte für mathematik und physik 38.1 (1931): 173-198. Goldberg, Adele E. Constructions: A construction grammar approach to argument structure. University of Chicago Press, 1995. Goldberg, Andrew V., and Chris Harrelson. "Computing the shortest path: A search meets graph theory." SODA. Vol. 5. 2005. Gomaa, Wael H., and Aly A. Fahmy. "A survey of text similarity approaches." International Journal of Computer Applications 68.13 (2013): 13-18. Gonzálvez-García, Francisco y Butler,Christopher: "Mapping functional-cognitive space", Annual Review of Cognitive Linguistics 4, 39-96, 2006. Goodenough, Ward H. "Componential analysis and the study of meaning." Language 32.1 (1956): 195-216. Goossens, Louis. "Metaphtonymy: the interaction of metaphor and metonymy in expressions for linguistic action." Cognitive Linguistics (includes Cognitive Linguistic Bibliography) 1.3 (1990): 323-342. Graves, N. Jaitly, and A.-r. Mohamed., "Hybrid speech recognition with Deep Bidirectional LSTM. In 2013 IEEE Workshop on Automatic Speech Recognition and Understanding." pages 273–278. IEEE, Dec. 2013 . Green, Alastair, "Creating an Open Industry Standard for a Declarative Property Graph Query Language", opencypher.org, 2019. / 554 Green, Oded, Robert McColl, and David A. Bader. "A fast algorithm for streaming betweenness centrality." 2012 International Conference on Privacy, Security, Risk and Trust and 2012 International Conference on Social Computing. IEEE, 2012. Grefenstette, E., Sadrzadeh, M., et al. Concrete Sentence Spaces for Compositional Distributional Models of Meaning. Computing Meaning, pp.71–86, 2014. Greimas Algirdas, Julien "Sémantique structurale." Recherche de méthode (1966). Greimas, A. J. "Semántica estructural de contenido." Investigación metodológica. Madrid: Editorial Gredos (1976). Greimas, A. J. "Sémantique structurale". París, 1966. Grice, H. Paul. "Utterer’s meaning, sentence-meaning, and word-meaning." Philosophy, Language, and Artificial Intelligence. Springer, Dordrecht, 1968. 49-66. Grondelaers, Stefan, Dirk Speelman, and Dirk Geeraerts. "Lexical variation and change." The Oxford handbook of cognitive linguistics. 2007. Grover, J. Leskovec. Node2vec: Scalable Feature Learning for Networks. ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD), 2016. Gruber, Thomas R. "A translation approach to portable ontology specifications." Knowledge acquisition 5.2 (1993): 199-220. Guadalupe, Prada Oropeza, Renato, et al. "La estructura del semema.", Seminario de semiótica, 1979. Guiraud, Pierre. La Sémantique: par Pierre Guiraud,... Presses universitaires de France, 1955. Hadiwinoto, Christian et al. "Improved Word Sense Disambiguation Using Pre-Trained Contextualized Word Representations." EMNLP/IJCNLP (2019). Haensch, Günther Los diccionarios del español en el umbral del siglo XXI. Salamanca: Ediciones de la Universidad. 2004 Halliday, Michael Alexander Kirkwood. "Categories of the theory of grammar." Word 17.2 (1961): 241-292. Hamilton, Will, Zhitao Ying, and Jure Leskovec. "Inductive representation learning on large graphs." Advances in neural information processing systems. 2017. Hanks, Patrick. "Linguistic norms and pragmatic exploitations or, why lexicographers need prototype theory, and vice versa." Papers in Computational Lexicography: Complex 94 (1994): 89-113. / 555 Harnad, Stevan. "The symbol grounding problem." Physica D: Nonlinear Phenomena 42.1-3 (1990): 335-346. Heger, K. "Sémantique et dichotomie de langue et parole", Strasbourg, 1969. Heger, Klaus. "L' analyse sémantique du signe linguistique." Langue française 4 (1969): 44-66. Heine, Bernd. Cognitive foundations of grammar. Oxford University Press, 1997. Herbert Rubenstein and John B. Goodenough. 1965. Contextual correlates of synonymy. Communications of the ACM, 8(10):627–633. Heylen, Dirk, and Kerry Maxwell. "Lexical functions and the translation of collocations." Proceedings of Euralex. 1994. Heyse, Karl Wilhelm Ludwig, and Heymann Steinthal. System der Sprachwissenschaft. F. Dümmler, 1856. Hilbert, David. "Grundzüge einer allgeminen theorie der linaren integralrechnungen.(erste mitteilung)." Nachrichten von der Gesellschaft der Wissenschaften zu Göttingen, Mathematisch-physikalische Klasse 1904 (1904): 49-91. Hilferty, Joseph. "Cognitive linguistics: an introductory sketch." La gramàtica i la semàntica en l'estudi de la variació (2001): 189-250. Ho, Ngoc-Diep, and Cédrick Fairon. "Lexical Similarity Based On Quantity Of Information Exchanged-Synonym Extraction." RIVF. 2004. Hofmann, Thomas. "Probabilistic latent semantic indexing." Proceedings of the 22nd annual international ACM SIGIR conference on Research and development in information retrieval. 1999. Holland, Paul W., and Samuel Leinhardt. "Transitivity in structural models of small groups." Comparative group studies 2.2 (1971): 107-124. Hopcroft, John, and Robert Tarjan. "Algorithm 447: efficient algorithms for graph manipulation." Communications of the ACM 16.6 (1973): 372-378. Hormigo, María Tadea Díaz. "El tratamiento de algunas clases de sustantivos deverbales en el "Diccionario de uso del español" de María Moliner: (hacia una clasificación sintáctico-semántica de los sustantivos deverbales)." Estudios sobre el "Diccionario de uso del español" de María Moliner. Servicio de Publicaciones, 1998. Horn, Roger A., and Charles R. Johnson. "Topics in matrix analysis cambridge university press." Cambridge, UK (1991). / 556 Hovy, Eduard, and Chin-Yew Lin. "Automated text summarization in SUMMARIST." Advances in automatic text summarization 14 (1999): 81-94. Hovy, Eduard H. "Pragmatics and natural language generation." Artificial Intelligence 43.2 (1990): 153-197. Howard, Jeremy, and Sebastian Ruder. "Universal language model fine-tuning for text classification." arXiv preprint arXiv:1801.06146 (2018). Hummel, Martin. "De la semántica estructural a la semántica cognitiva. Pasos hacia una semántica más compleja." X Jornadas de Lingüística. Servicio de Publicaciones, 2008. Indurkhya, Bipin. "Approximate semantic transference: A computational theory of metaphors and analogies." Cognitive Science 11.4 (1987): 445-480. Ipsen, Gunther. Der alte Orient und die Indogermanen. 1924. Isenberg, Horst. "Cuestiones fundamentales de tipología textual." Lingüística del texto. Arco libros, 1987. Jaccard, Paul. "Étude comparative de la distribution florale dans une portion des Alpes et des Jura." Bull Soc Vaudoise Sci Nat 37 (1901): 547-579. Jackendoff, Ray, and Ray S. Jackendoff. A user's guide to thought and meaning. Oxford University Press, 2012. Jackendoff, Ray: Semantic interpretation in Generative Grammar, Cambridge (mass.): MIT Press, 1972 Jackendoff, Semantics and Cognition, Cambridge, Mass., 1983 Jakobson, Roman. "Roman Jakobson–selected writings I: phonological studies." First. Mouton (1929). Jarník, Vojtěch. "O jistém problému minimálním." Práca Moravské Prírodovedecké Spolecnosti 6 (1930): 57-63. Jiménez Briones, Rocío, Luzondo Oyón, Alba y Pérez Cabello de Alba, M. Beatriz: "FunGramKB y la organización ontológica", ANGLOGERMANICA ONLINE, 2011. Jiménez Ruiz, J.L: Hacia un modelo teórico que describa la estructura semántica de los significados denotativos, E.L.U.A.,7,pp: 61-97, 1991. Jimeng, Sun; Jie, Tang. "A survey of models and algorithms for social influence analysis". Charu C. Aggarwal, ed. Social network data analytics (Nueva York: Springer): 177-214. ISBN 978-4419-8461-6, 2011. / 557 Jozefowicz, Rafal, et al. "Exploring the limits of language modeling." arXiv preprint arXiv:1602.02410 (2016). Jurafsky, Daniel y James H. martin: Speech and language processing: an introduction to natural language processing, speech recognition, and computational linguistics, New Jersey: Prentice Hall , 2009. Kaplan, Ronald M. y Joan Bresnan: "Lexical-Functional Grammar: a formal system for grammatical representation" en Joan Bresnan (ed.): The mental representation of grammatical relations, Cambridge (mass.): MIT Press, 173-280, 1982. Karttunen, Lauri. "KIMMO: a general morphological processor." Texas Linguistic Forum. Vol. 22. 1983. Kathleen R. McKeown, Judith L. Klavans, Vasileios Hatzivassiloglou, Regina Barzilay, and Eleazar Eskin. Towards multidocument summarization by reformulation: Progress and prospects. In Proceedings of the Seventeenth National Conference on Artificial Intelligence (AAAI-99), pages 453–460, Orlando, Florida,1999. Katz, Jerrold J., and Jerry A. Fodor. "The Structure of a Semantic Theory." Language, vol. 39, no. 2, 1963, p. 170., doi:10.2307/411200. Kay, Martin: "Parsing in Functional unification Grammar" en David R. Dowty, Lauri Karttunen y Arnold m. Zwicky (eds.): Natural language parsing, Cambridge: Cambridge University Press, 251-278, 1985. Kehler, Andrew, et al. "Coherence and coreference revisited." Journal of semantics 25.1 (2008): 1-44. Keil, J. Mark. "Approximating the complete Euclidean graph." Scandinavian Workshop on Algorithm Theory. Springer, Berlin, Heidelberg, 1988. Kellermann, Günter, and Michael D. Morrissey. Diachrony within synchrony--language history and cognition: papers from the international symposium at the University of Duisburg, 26-28 March 1990. Vol. 14. Peter Lang Pub Inc, 1992. Kenter, Tom, Alexey Borisov, and Maarten De Rijke. "Siamese cbow: Optimizing word embeddings for sentence representations." arXiv preprint arXiv:1606.04640 (2016). Kepner, J., & Gilbert, J. (Eds.). Graph algorithms in the language of linear algebra. Society for Industrial and Applied Mathematics, 2011. Kipf, T.N. and Welling, M. Semisupervised classification with graph convolutional networks. In ICLR, 2017. Klavans, Judith L., and Philip Resnik, eds. The balancing act: combining symbolic and statistical approaches to language. Vol. 32. MIT press, 1996. / 558 Kleiber, Georges. La sémantique du prototype: catégories et sens lexical. Presses Universitaires de France-PUF, 1990. Kocjancic, Polonca. Acerca de la macroestructura y la microestructura en el diccionario bilingüe. Verba hispánica, 12, 171-185, 2004. Kornai, A. The algebra of lexical semantics. In Christian Ebert, et al., editors, Proceedings of the 11th Mathematics of Lang, 2010. Kornai, Andras & Ács, Judit & Makrai, Márton & Nemeskey, Dávid & Pajkossy, Katalin & Recski, Gábor. Competence in lexical semantics. 165-175. 10.18653/v1/S15-1019, 2015. Kovecses, Zoltán, and Günter Radden. "Metonymy: Developing a cognitive linguistic view." Cognitive linguistics 9.1 (1998): 37-77. Kovecses, Zoltan. Metaphor: A practical introduction. Oxford University Press, 2010. Kovács, Adám, et al. "BMEAUT at SemEval-2020 Task 2: Lexical entailment with semantic graphs." Kozima, Hideki, and Teiji Furugori. "Similarity between words computed by spreading activation on an English dictionary." arXiv preprint cmp-lg/9601004 (1996). Kuhn, A., Ducasse, S., & Gírba, T. (2007). Semantic clustering: Identifying topics in source code. Information and software technology, 49(3), 230-243. Krebs, Valdis E. "Mapping networks of terrorist cells." Connections 24.3 (2002): 43-52. Kristiansen, Gitte, and René Dirven, eds. Cognitive sociolinguistics: Language variation, cultural models, social systems. Vol. 39. Walter de Gruyter, 2008. Lafferty, John, Andrew McCallum, and Fernando CN Pereira. "Conditional random fields: Probabilistic models for segmenting and labeling sequence data." (2001). Lakoff, George, and Mark Johnson. "Metaphors We Live By. Chicago: Univ." (1980). Lakoff, George: Women, fire, and dangerous things, chicago: university of chicago Press, 1987. Lakoff, George. "Cognitive phonology." The last phonological rule (1993): 117-145. Lakoff, George. "The contemporary theory of metaphor." (1993). Landauer, Thomas K., and Susan T. Dumais. "A solution to Plato's problem: The latent semantic analysis theory of acquisition, induction, and representation of knowledge." Psychological review 104.2 (1997): 211. Langacker, R.W: Foundations of cognitive grammar, Stanford, Cal., 1987. / 559 Langacker, Ronald W. "Reference-point constructions." Cognitive Linguistics (includes Cognitive Linguistic Bibliography) 4.1 (1993): 1-38. Langkilde, Irene, and Kevin Knight. "Generation that exploits corpus-based statistical knowledge." Proceedings of the 17th international conference on Computational linguistics-Volume 1. Association for Computational Linguistics, 1998. Larcheveque, Jean-Marie Henri Daniel, et al. "Semantic clustering." U.S. Patent No. 9,378,202. 28 Jun. 2016. Lee, C. Y.. "An Algorithm for Path Connections and Its Applications." IRE Trans. Electronic Computers 10 (1961): 346-365. Lehrer, Adrienne. "Polysemy, conventionality, and the structure of the lexicon." Cognitive Linguistics (includes Cognitive Linguistic Bibliography) 1.2 (1990): 207-246. Lenci, Alessandro: "Building an ontology for the lexicon: semantic types and word meaning" en Per Anker Jensen y Peter Rossen skadhauge (eds.): Ontology-Based Interpretation of Noun Phrases, Kolding: university of southern Denmark, 103-120, 2001. Lesk, Michael. "Automatic sense disambiguation using machine readable dictionaries: how to tell a pine cone from an ice cream cone." Proceedings of the 5th annual international conference on Systems documentation. 1986. Levelt, Willem JM, Ardi Roelofs, and Antje S. Meyer. "A theory of lexical access in speech production." Behavioral and brain sciences 22 (1999): 1-38. Levy, Joseph P., and John A. Bullinaria. "Learning lexical properties from word usage patterns: Which context words should be used?." Connectionist models of learning, development and evolution. Springer, London, 2001. 273-282. Li, Jiang, and Peter Willett. "ArticleRank: a PageRank‐based alternative to numbers of citations for analysing citation networks." Aslib Proceedings. Emerald Group Publishing Limited, 2009. Li, Yuhua & McLean, David & Bandar, Zuhair & O'Shea, James & Crockett, Keeley. Sentence Similarity Based on Semantic Nets and Corpus Statistics. IEEE Transactions on Knowledge and Data Engineering. 18, 2006 Liu, Qi, Matt J. Kusner, and Phil Blunsom. "A Survey on Contextual Embeddings." arXiv preprint arXiv:2003.07278 (2020). Liang, G. P. "Finite element program generator and finite element language." Reliability and Robustness of Engineering Software II. Springer, Dordrecht, 1991. 35-45. Lin, Dekang. Automatic retrieval and clustering of similar words. In Proceedings of COLING-ACL ’98,volume 2, pages 768–774, Montreal, 1998. / 560 Llisterri, Joaquim. El tratamiento computacional de los niveles de análisis lingüístico, Departament de Filologia Espanyola, Universitat Autònoma de Barcelona, consultada la actualización de octubre de 2019 en: http://liceu.uab.cat/~joaquim/language_technology/NLP/PLN_analisis.html Locke, John. An essay concerning human understanding, 1690. Scolar Press, 1970. Lopez, Marc Moreno, and Jugal Kalita. "Deep learning applied to NLP. CoRR abs/1703.03091 (2017)." arXiv preprint arxiv:1703.03091 (2017). Lounsbury, Floyd G. "A semantic analysis of the Pawnee kinship usage." Language 32.1 (1956): 158-194. Loureiro, Daniel, and Alípio Jorge. "Language Modelling Makes Sense: Propagating Representations through WordNet for Full-Coverage Word Sense Disambiguation." Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics (2019). Lovász, László. "Random walks on graphs: A survey." Combinatorics, Paul erdos is eighty 2.1 (1993): 1-46. Lowe, Will, and Scott McDonald. The direct route: Mediated priming in semantic space. The University of Edinburgh, 2000. Lowe, Will. "Towards a theory of semantic space." Proceedings of the Annual Meeting of the Cognitive Science Society. Vol. 23. No. 23. 2001. Luhn, Hans Peter: "A Statistical Approach to Mechanized Encoding and Searching of Literary Information," IBM Journal of Research and Development 1 (4): 309–17, 1960. Lund, K., Burgess, C. y Atchley, R. A. "Semantic and associative priming in a high-dimensional semantic space", 1995. Lyons, John, and Lyons John. Linguistic semantics: An introduction. Cambridge University Press, 1995. Lyons, John. "Language, meaning, and context." (1981). Lyons, John. "Semántica, Barcelona: Teide, 1980." Lenguaje, significado y contexto (1977) . Lyons, John. Semantics, Cambridge University Press, 1977. Lyons,J: Lenguaje, significado y contexto, Barcelona-Buenos Aires, Ediciones Paidós, pág. 15, 1981. MacKay, Donald G., and Deborah M. Burke. "Chapter five cognition and aging: a theory of new learning and the use of old connections." Advances in psychology. Vol. 71. North-Holland, 1990. 213-263. / 561 Mairal Usón, Ricardo. Teoría lingüística : métodos, herramientas y paradigmas. Editorial universitaria Ramón Areces, 2010. Mairal, Ricardo & Periñán Pascual, Carlos. The anatomy of the lexicon component within the framework of a conceptual knowledge base. Revista Española de Lingüística Aplicada. 22. 217-244, 2009. Malinowski, B. "The Problem of Meaning in Primitive Languages", supplement to C. K. Ogden and I. A. Richards (eds.) The Meaning of Meaning (8th ed., 1946), Nueva York: Harcourt Brace y World; pp. 296- 336, (1923). Mani, Inderjeet. Recent Developments in Text Summarization.. 529-531. 10.1145/502585.502677, 2001. Mariani, Joseph, Gil Francopoulo, and Patrick Paroubek. "The NLP4NLP corpus (I): 50 years of publication, collaboration and citation in speech and language processing." Frontiers in Research Metrics and Analytics 3 (2019): 36. Márquez Linares, Carlos Francisco. "La polisemia en el campo léxico "el cuerpo humano": un estudio contrastivo inglés-español." Córdoba: Universidad de Córdoba [Tesis doctoral inédita] (1998). Martí Antonín, Maria Antònia, et al. "Araknion: inducción de modelos lingüísticos a partir de corpora." (2011). Martí, M. A., Martín-Valdivia, M. T., Taulé, M., Jiménez-Zafra, S. M., Nofre, M., & Marsó, L. (2016). La negación en español: análisis y tipología de patrones de negación. Procesamiento del Lenguaje Natural, 57, 41-48. Martí, M. Antonia, et al., eds. Tratamiento del lenguaje natural: tecnología de la lengua oral y escrita. Vol. 53. Edicions Universitat Barcelona, 2002. Martín Mingorance, L. "Lexical Fields and Stepwise Lexical Decomposition." LEXeter’83 proceedings: papers from the International Conference on Lexicography at Exeter, Lexicographica, Series maior. 1984. Martinet, A., Eléments de linguistique générale, París, 1960. Martinet, André. Langue et fonction. No. 82. Gonthier, 1969. Matoré, Georges. La méthode en lexicologie: domaine français. M. Didier, 1953. McClelland, James L., and David E. Rumelhart. "An interactive activation model of context effects in letter perception: I. An account of basic findings." Psychological review 88.5 (1981): 375. / 562 McClelland, James L., David E. Rumelhart, and PDP Research Group. "Parallel distributed processing." Explorations in the Microstructure of Cognition 2 (1986): 216-271. McCoy, R. Thomas, Ellie Pavlick, and Tal Linzen. "Right for the wrong reasons: Diagnosing syntactic heuristics in natural language inference." arXiv preprint arXiv:1902.01007 (2019). McGuinness, Deborah L., and Frank Van Harmelen. "OWL web ontology language overview." W3C recommendation 10.10 (2004): 2004. Mcinnes, Bridget & Pedersen, Ted & Liu, Ying & Melton, Genevieve & Pakhomov, Serguei. (2011). Knowledge-based Method for Determining the Meaning of Ambiguous Biomedical Terms Using Information Content Measures of Similarity. AMIA ... Annual Symposium proceedings / AMIA Symposium. AMIA Symposium. 2011. 895-904. Meillet, Antoine. "Comment les mots changent de sens." L’Année sociologique (1896/1897-1924/1925) 9 (1904): 1-38. Mel'cuk, Igor Aleksandrovic. Dependency syntax: theory and practice. SUNY press, 1988. Mel’čuk, I. A., and A. K. Zholkovskij. "An Explanatory Combinatorial Dictionary of the Contemporary Russian Language." Wiener Slawistischer Almanach, Sonderband 14 (1984). Mel’čuk, Igor A. "Towards a Linguistic ‘Meaning - Text Model." Trends in Soviet theoretical linguistics. Springer, Dordrecht, 1973. 33-57. Mel’cuk, Igor, and Leo Wanner. "Lexical functions and lexical inheritance for emotion lexemes in German." Lexical functions in lexicography and natural language processing 31 (1996): 209. Mel’čuk, Igor. "Collocations and lexical functions." Phraseology. Theory, analysis, and applications (1998): 23-53. Mel’cuk, Igor. "Lexical functions: a tool for the description of lexical relations in a lexicon." Lexical functions in lexicography and natural language processing 31 (1996): 37-102. Mel’cuk, Igor. "Semantic primitives from the viewpoint of the Meaning-Text Linguistic Theory." Quaderni di semantica 10.1 (1989): 65-102. Melʹčuk, Igorʹ Aleksandrovič. Explanatory combinatorial dictionary of modern Russian. Vol. 14. Gesellschaft zur Förderung slawistischer Studien, 1984. Melamud, Oren, Jacob Goldberger, and Ido Dagan. "context2vec: Learning generic context embedding with bidirectional lstm." Proceedings of the 20th SIGNLL conference on computational natural language learning. 2016. Meyer, Richard M. "Bedeutungssysteme." Zeitschrift für vergleichende Sprachforschung auf dem Gebiete der indogermanischen Sprachen 43.4. H (1910): 352-368. / 563 Meyer, David E., and Roger W. Schvaneveldt. "Meaning, memory structure, and mental processes." Science 192.4234 (1976): 27-33. Michael Speriosu, Nikita Sudan, Sid Upadhyay, and Jason Baldridge. Twitter polarity classification with label propagation over lexical links and the follower graph. In Proceedings of the First Workshop on Unsupervised Learning in NLP (EMNLP ’11). Association for Computational Linguistics, USA, 53–63, 2011. Mihalcea, Rada & Tarau, Paul TextRank: Bringing Order into Text. Department of Computer Science University of North Texas, 2004. Mikolov, Tomas & Sutskever, Ilya & Chen, Kai & Corrado, G.s & Dean, Jeffrey.. Distributed Representations of Words and Phrases and their Compositionality. Advances in Neural Information Processing Systems. 26, 2013. Miller, George & Beckwith, R. & Fellbaum, Christiane & Gross, Derek & Miller, Katherine, Introduction to WordNet: An On-line Lexical Database*. 3. 10.1093/ijl/3.4.235, 1991. Mingorance, Leocadio Martín. "Classematics in a Functional-Lexematic grammar of English." Actas del X Congreso Nacional de la Asociación Española de Estudios Anglo-Norteamericanos: conmemorativo de su fundación. Asociación Española de Estudios Anglo-Norteamericanos. AEDEAN, 1988. Mitchell, J. & Lapata, M. Composition in Distributional Models of Semantics. Cognitive Science, 34, pp.1388–1429, 2010. Mohler, Michael, Razvan Bunescu, and Rada Mihalcea. "Learning to grade short answer questions using semantic similarity measures and dependency graph alignments." Proceedings of the 49th annual meeting of the association for computational linguistics: Human language technologies. 2011. Moliner, María. "Diccionario de uso del español. 2ª Edición. 2 volúmenes." Editorial Gredos, SA Madrid, 1998. Montoyo, Andres, et al. "Combining knowledge-and corpus-based word-sense-disambiguation methods." Journal of Artificial Intelligence Research 23 (2005): 299-330. Moore, George Edward. "The nature and reality of objects of perception." Proceedings of the Aristotelian Society. Vol. 6. Aristotelian Society, Wiley, 1905. Moraga, Antonio Garrido, and Salvador Montesa Peydró. "La definición lexicográfica: selección y modificación." Problemas y métodos en la enseñanza del español como lengua extranjera: actas del IV Congreso Internacional de ASELE (Asociación para la Enseñanza del Español como Lengua Extranjera). 1994. / 564 Moreno, Antonio, et al. "Estudio sobre documentos reutilizables como recursos lingüísticos en el marco del desarrollo del Plan de Impulso de las Tecnologías del Lenguaje." Procesamiento del Lenguaje Natural 63 (2019): 167-170. Morris, Jane, and Graeme Hirst. "Lexical cohesion computed by thesaural relations as an indicator of the structure of text." Computational linguistics 17.1 (1991): 21-48. Mou, Lili, et al. "How transferable are neural networks in nlp applications?." arXiv preprint arXiv:1603.06111 (2016) Mounin, Georges, "Essai sur la structuration du lexique de l’habitation", CaLer, 6/1, 1965 Moure, Teresa y Llisterri,Joaquim: "Lenguaje y nuevas tecnologías: el campo de la lingüística computacional" en Milagros Fernández Pérez (ed.): Avances en lingüística aplicada, Santiago de Compostela: Universidad de Santiago de Compostela, 147-227, 1996. Mou, Lili, et al. "How transferable are neural networks in nlp applications?." arXiv preprint arXiv:1603.06111 (2016). Mozafari, Marzieh, Reza Farahbakhsh, and Noël Crespi. "Hate speech detection and racial bias mitigation in social media based on BERT model." PloS one 15.8 (2020): e0237861. Muller, Philippe, Nabil Hathout, and Bruno Gaume. "Synonym extraction using a semantic distance on a dictionary." Proceedings of TextGraphs: The first workshop on graph based methods for natural language processing. 2006. Murase, Yukitoshi, et al. "Feature Inference Based on Label Propagation on Wikidata Graph for DST." Proceedings of IWSDS (2017). Narayanan, Annamalai, et al. "graph2vec: Learning distributed representations of graphs." arXiv preprint arXiv:1707.05005 (2017). Nathan, Geoffrey S. "Phonemes as mental categories." Annual Meeting of the Berkeley Linguistics Society. Vol. 12. 1986. Navigli, Roberto, and Simone Paolo Ponzetto. "BabelNet: Building a very large multilingual semantic network." Proceedings of the 48th annual meeting of the association for computational linguistics. 2010. Navigli, Roberto, and Simone Paolo Ponzetto. "Joining forces pays off: Multilingual joint word sense disambiguation." Proceedings of the 2012 joint conference on empirical methods in natural language processing and computational natural language learning. 2012. Needham, Mark, and Amy E. Hodler. Graph Algorithms: Practical Examples in Apache Spark and Neo4j. O'Reilly Media, 2019. / 565 Needham, Mark, and Amy E. Hodler. Graph Algorithms: Practical Examples in Apache Spark and Neo4j. O'Reilly Media, 2019. Nemeskey, D., Recski, G., Makrai, M., Zseder, A., and Kornai, A. Spreading activation in language understanding. In Proc. CSIT 2013, pages 140–143, Yerevan, Armenia. Springer, 2013. Newman, Mark EJ. "Fast algorithm for detecting community structure in networks." Physical review E 69.6 (2004): 066133. Ng, Hwee Tou, and Hian Beng Lee. "Integrating multiple knowledge sources to disambiguate word sense: An exemplar-based approach." arXiv preprint cmp-lg/9606032 (1996). Nica, Iulia, M. Antonia Martí Antonín, and Andrés Montoyo Guijarro. "Colaboración entre información paradigmática y sintagmática en la Desambiguación Semántica Automática." Procesamiento del lenguaje natural 31 (2003). Nirenburg, Sergei y Lori Levin: "Syntax-driven and ontology-driven lexical semantics" en James PusteJovsky y Sabine Bergler (eds.): Lexical semantic, 1992. Niven, Timothy, and Hung-Yu Kao. "Probing neural network comprehension of natural language arguments." arXiv preprint arXiv:1907.07355 (2019). Nosofsky, Robert M. "Attention, similarity, and the identification–categorization relationship." Journal of experimental psychology: General 115.1 (1986): 39. Núñez, María Dolores Muñoz. La polisemia léxica. Servicio Publicaciones UCA, 1999. Ogden, Charles Kay, et al. The meaning of meaning. London: Kegan Paul, 1923. Okamoto, Kazuya, Wei Chen, and Xiang-Yang Li. "Ranking of closeness centrality for large-scale social networks." International workshop on frontiers in algorithmics. Springer, Berlin, Heidelberg, 2008. Opsahl, Tore, Filip Agneessens, and John Skvoretz. "Node centrality in weighted networks: Generalizing degree and shortest paths." Social networks 32.3 (2010): 245-251. Ordóñez, Salvador Gutiérrez. Lingüística y semántica: (aproximación funcional). Universidad de Oviedo, 1981. Orera Orera, Luisa. María Moliner: bibliotecaria y autora del Diccionario de Uso del Español. Revista Interamericana de Bibliotecología. Jul. Dic. 2009, vol. 32, no. 2; p. 367–387. Ortony, Andrew. "Metaphor and thought." (1979) . Ortony, Andrew, and David E. Rumelhart. "The representation of knowledge in memory." Schooling and the acquisition of knowledge (1977): 99-135. / 566 Osherson, Daniel N., and Edward E. Smith. "On the adequacy of prototype theory as a theory of concepts." Cognition 9.1 (1981): 35-58. Osthoff, Hermann. Vom Suppletivwesen der indogermanischen Sprachen. Hörning, 1899. Padró, Lluís, and Evgeny Stanilovsky. "Freeling 3.0: Towards wider multilinguality." LREC2012. 2012. Pagola, José E. Medina, et al. "Similarity measures in documents using association graphs." Iberoamerican Congress on Pattern Recognition. Springer, Berlin, Heidelberg, 2005. Palmer, Martha, Daniel Gildea, and Paul Kingsbury. "The proposition bank: An annotated corpus of semantic roles." Computational linguistics 31.1 (2005): 71-106. Panther, Klaus-Uwe, and Linda Thornburg. "The role of conceptual metonymy in meaning construction." Cognitive linguistics: Internal dynamics and interdisciplinary interaction (2005): 353-386. Partner, Jonas, Aleksa Vukotic, and Nicki Watt. Neo4j in action. Manning, 2015. Pascual Pascual, Carlos, and Ricardo Mairal Usón. "La dimensión computacional de la RRG: la estructura lógica conceptual y su aplicación en el procesamiento del lenguaje natural." Pastor Lloret, Elena & Ferrández, Óscar & Muñoz, Rafael & Sanz, Manuel. Integración del reconocimiento de la implicación textual en tareas automáticas de resúmenes de textos. Procesamiento del lenguaje natural (SEPLN). 41, 2008. Patwardhan, Siddharth & Banerjee, Satanjeev & Pedersen, Ted. (2005). SenseRelate:TargetWord - A Generalized Framework for Word Sense Disambiguation. ACL-05 - 43rd Annual Meeting of the Association for Computational Linguistics, Proceedings of the Conference. 10.3115/1225753.1225772. Paul Baker, Andrew Hardie & Tony McEnery: A Glossary of Corpus Linguistics, Edinburgh University Press, 2006. Pearson, Karl. "The problem of the random walk." Nature 72.1867 (1905): 342-342. Peng, X., Song, L., and Gildea, D. A synchronous hyperedge replacement grammar based approach for AMR parsing. In Proceedings of CoNLL 2015, page 32, 2015. Pennington, Jeffrey & Socher, Richard & Manning, Christoper. Glove: Global Vectors for Word Representation. EMNLP. 14. 1532-1543. 10.3115/v1/D14-1162, 2014. Pennington, Jeffrey, Richard Socher, and Christopher D. Manning. "Glove: Global vectors for word representation." Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP). 2014. / 567 Pérez, Rosario González. "El tratamiento lexicográfico de las raíces sufijas y prefijas." Cuestiones de lexicografía. Tris Tram, 2002. Periñán Pascual, Carlos and Arcas Túnez, Francisco, "Meaning postulates in a lexico-conceptual knowledge base", 15th International Workshop on Databases and Expert Systems Applications, IEEE, Los Alamitos (California), 38-42, 2004. Periñán Pascual, Carlos and Arcas Túnez, Francisco, "The architecture of FunGramKB", 7th International Conference on Language Resources and Evaluation, Valeta (Malta), European Language Resources Association (ELRA), 2667-2674, 2010. Periñán Pascual, Carlos and Arcas Túnez, Francisco "Deep semantics in an NLP knowledge base", 12th Conference of the Spanish Association for Artificial Intelligence, Universidad de Salamanca, 279-288, 2007. Periñán Pascual, Carlos and Mairal Usón, Ricardo "Bringing Role and Reference Grammar to natural language understanding". Procesamiento del Lenguaje Natural 43, 265-273, 2009. Periñán Pascual, J.Carlos, "Las listas de densidad semántica y la lexicografía Funcional Computacional", Unidad Central de Idiomas, Universidad Católica de San Antonio, C. I. F., XXVI, 89-108, 2000. Periñán Pascual, José Carlos. "En defensa del procesamiento del lenguaje natural fundamentado en la lingüística teórica." Onomázein: Revista de Lingüística, Filología y Traducción 26 (2012): 13-48. Periñán-Pascual, Carlos, and Francisco Arcas-Túnez. "La ingeniería del conocimiento en el dominio legal: La construcción de una Ontología Satélite en FunGramKB." Revista signos 47.84 (2014): 113-139. Peters, Matthew et al. "Deep Contextualized Word Representations." Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers) (2018). Piaget, Jean, and Margaret Cook. The origins of intelligence in children. Vol. 8. No. 5. New York: International Universities Press, 1952. Piaget, Jean. "The thought and language of the child." Jean Piaget New York: Harcourt, Brace, and Company (1926). Pinker, Steven. The language instinct: The new science of language and mind. Vol. 7529. Penguin UK, 1995. Piotrowski, Tadeusz. "The meaning-text model of language and practical lexicography." Meaning and Lexicography. Amsterdam/Filadelfia: John Benjamins Publishing House (1990): 277-286. / 568 Platon. Diálogos: República; Parménides; Teeteto; Sofista; Político; Filebo; Timeo; Critias o Atlántico. II. Gredos, 2011 . Plaza Morales, Laura. "Uso de Grafos Semánticos en la Generación Automática de Resúmenes y Estudio de su Aplicación en Distintos Dominios: Biomedicina, Periodismo y Turismo" (tesis doctoral), Departamento de Ingeniería del Software e Inteligencia Artificial Facultad de Informática Universidad Complutense de Madrid, 2010. Plazas, Elberto Antonio. "El problema de la fundamentación de los símbolos lingüísticos en psicolingüística." la linguística, la semiótica y la enseñanza de lenguas, 2018. Ploux, Sabine, and Hyungsuk Ji. "A model for matching semantic maps between languages (French/English, English/French)." Computational linguistics 29.2 (2003): 155-178. Porter, Martin F. "An algorithm for suffix stripping." Program 14.3 (1980): 130-137. Porto Dapena, Á.: "Características. Diccionario de uso del español", María Moliner, en su centenario, Centro Virtual Cervantes, 2000. Porto Dapena, Á.: "Diccionario de uso del español", María Moliner, en su centenario, Centro Virtual Cervantes, 2000. Porto Dapena, Á.: "La nueva edición del María Moliner", Revista de Libros, 33, septiembre de 1999, pp. 35-36. Porto Dapena, José Álvaro. "Características del diccionario de uso del español." Foro Hispánico de Ortotipografía y Entorno de la Escritura, Málaga (1999). Porto Dapena, José-Álvaro. Manual de técnica lexicográfica. Colección Biblioteca Philologica. Madrid: Arco Libros, 2002. Porto Dapena, José Álvaro. "El Diccionario de María Moliner." La lexicografía hispánica en el siglo XXI. Balance y perspectivas: actas del Encuentro de Lexicógrafos celebrado en Zaragoza, en el marco del centenario de María Moliner, los días 4 y 5 de noviembre de 2002. Departamento de Educación, Cultura y Deporte, 2003. Porto Dapena, José Álvaro. "Sobre ambigüedad y vaguedad en los diccionarios." (2018). Pottier, Bernard: Lingüística general. Teoría y descripción (1974), Madrid, Gredos, 1977. Pottier, Bernard. "Hacia una semántica moderna." Lingüística moderna y filología hispánica. Madrid: Gredos (1976): 99-133. Pottier, Bernard. "La semántica y los criterios funcionales." Actas del Primer Congreso Internacional de Hispanistas: celebrado en Oxford del 6 al 11 de septiembre de 1962. The Dolphin Book, 1972. / 569 Pottier, Bernard. Sémantique générale, Paris: Presses Universitaires de France. Linguistique nouvelle (1992). Pottier, Bernard. Gramática del español. Vol. 24. Ediciones Alcalá, 1970. Pottier, Bernard. Presentación de la lingüística: fundamentos de una teoría. Vol. 8. Alcalá, 1972. Pottier, Bernard. Vers une sémantique moderne. Centre de philologie et de littératures romanes de l'Université de Strasbourg, 1964. Potts, Chris: Distributional approaches to word meanings, Ling 236/Psych 236c: Representations of meaning, Spring 2013. Prada Oropeza, Renato, et al. "La estructura del semema." (1979). Preotiuc-Pietro, D. & Hristea,Unsupervised word sense disambiguation with N-gram features, F. Artif Intell Rev,41: 241, 2014. Pustejovsky, James: "The Generative lexicon", Computational Linguistics 17 (4), 409-441, 1991. Putnam, Hilary. "Meaning and reference." The journal of philosophy 70.19 (1974): 699-711. Putnam, Hilary. "The meaning of ‘meaning’." Philosophical papers 2, 1975. Putnam, Hilary. Mind, Language and Reality. Philosophical Papers, 1975, vol. 2. Quillian, M. R. The teachable language comprehender: a simulation program and theory of language. Commun. ACM 12, 8, 459–476, 1969. Quillian, M. R. Word concepts: A theory and simulation of some basic semantic capabilities. Behavioral Science, 12:410–430, 1968. Quine, Willard V. "The roots of reference." (1974). Quine, Willard Van Orman. "Word and object (Studies in Communication)." New York and London: Tech-nology Press of MIT (1960). Quinlan, J. Ross. "Constructing decision tree." C4 5 (1993): 17-26. R. Amsler and D. Walker, "The Use of Machine- Readable Dictionaries in Sublanguage Analysis," in Subtanguage.' Description and Processing, ed. R. Grishman and R. Kittredge, Lawrence Ertbaum, 1985. R. Navigli and M. Lapata. Graph connectivity measures for unsupervised word sense disambiguation. In IJCAI, 2007. Rachel Tsz-Wai Lo, Ben He, Iadh Ounis: Automatically Building a Stopword List for an Information Retrieval System, Department of Computing Science, University of Glasgow, / 570 Proceedings of the Fifth Dutch-Belgian Information Retrieval, Workshop DIR’5, Utrecht University Utrecht, January, 2005 Radev, D. R, Jing, H., and Stys-Budzikowska, M. Summarization of multiple documents: clustering, sentence extraction, and evaluation. Proceedings, ANLP-NAACL Workshop on Automatic Summarization,Seattle, 2000. Radford, Alec, and Jeffrey Wu. "Rewon Child, David Luan, Dario Amodei, and Ilya Sutskever. 2019." Language models are unsupervised multitask learners (2019). Raffel, Colin, et al. "Exploring the limits of transfer learning with a unified text-to-text transformer." arXiv preprint arXiv:1910.10683 (2019). Ramón Trives, Estanislao. "Hacia una descripción integrada de la lengua: análisis de las tendencias de la semántica actual en las doctrinas de K. Heger y B. Pottier." Anales de la Universidad de Murcia. Filosofía y Letras. Murcia: Universidad, Secretariado de Publicaciones, 1971. Rastier, François. "Interpretative semantics." (1996) Routledge handbook of semantics 491 2015: 506. Recski, G. and Acs. MathLingBudapest: Concept networks for semantic similarity. In Proceedings of the 9th International Workshop on Semantic Evaluation (SemEval 2015), pages 543–547, Denver, Colorado. Association for Computational Linguistics, 2015. Recski, Gábor, and Judit Acs. "MathLingBudapest: Concept networks for semantic similarity." Proceedings of the 9th International Workshop on Semantic Evaluation (SemEval 2015). 2015. Recski, Gábor. Building Concept Graphs from Monolingual Dictionary Entries, Research Institute for Linguistics Hungarian Academy of Sciences, 2016. Reddy, Siva, Danqi Chen, and Christopher D. Manning. "Coqa: A conversational question answering challenge." Transactions of the Association for Computational Linguistics 7 (2019): 249-266. Reeve, Lawrence H., Hyoil Han, and Ari D. Brooks. "Biomedical text summarisation using concept chains." International Journal of Data Mining and Bioinformatics 1.4 (2007): 389-407. Rehůrek, R., & Sojka, P. Software framework for topic modelling with large corpora. LREC, 2010. Reisberg, Daniel. "Cognition. Exploring the science of the mind, third media edition." (2007). Rey-Debove, J.: Les relations entre le signe et la chose dans le discours métalinguistique: Être, s'appeler, désigner, signifier et se dire. Travaux de Linguistique et de Littérature VII (1). 113-129, 1969. / 571 Rey-Debove, Josette. "Le métalangage." (1978). Rey-Debove, J. La linguistique du signe: une approche sémiotique du langage, A. Collin, 1998 . Riloff, Ellen. Automatically generating extraction patterns from untagged text, 1999 Rips, Lance J., Edward J. Shoben, and Edward E. Smith. "Semantic distance and the verification of semantic relations." Journal of verbal learning and verbal behavior 12.1 (1973): 1-20. Robert, Paul. Dictionnaire alphabétique et analogique de la langue française. No. BOOK. Le Robert, 1972. Rodríguez, Isabel Rey. El campo semántico de la valoración estética positiva en español (SS. XII-XIX). Diss. Universidad Complutense de Madrid, 1987 Rodríguez, María Auxiliadora Barrios. "El dominio de las funciones léxicas en el marco de la teoría sentido-texto." Estudios de Lingüística del español 30 (2010): 1-477. Rosch, Eleanor, and Barbara Bloom Lloyd, eds. "Cognition and categorization." (1978). Rosch, Eleanor:. "Cognitive representations of Semantic Categories". Journal of Experimental Psychology: General. 104 (3): 192–233, 1975. Rubenstein, Herbert, and John B. Goodenough. "Contextual correlates of synonymy." Communications of the ACM 8.10 (1965): 627-633. Ruiz de Mendoza Ibáñez, Francisco and Mairal Usón, Ricardo "Levels of description and constraining factors in meaning construction: an introduction to the Lexical Constructional Model". Folia Linguistica 42-2, 2008. Ruiz de Mendoza Ibáñez, Francisco and Mairal Usón, Ricardo,"Constructing meaning: a brief overview of the Lexical Constructional Model". Mario Brdar (ed.) Converging and diverging tendencies in Cognitive Linguistics. John Benjamins, Amsterdam/Philadelphia, 2009. Rush, James E., R. Salvador, and A. Zamora. "Automatic abstracting and indexing. II. Production of indicative abstracts by application of contextual inference and syntactic coherence criteria." Journal of the American Society for Information Science 22.4 (1971): 260-274. Russell, Bertrand, and Alfred North Whitehead. "1913." Principia mathematica 3 (1910). Ryan, John K. "Aquinas and Hume on the Laws of Association." The New Scholasticism 12.4 (1938): 366-377. Sag, Ivan A., and Carl Pollard. "Information-based syntax and semantics." CSLI lecture notes 13 (1987). Sager, Juan C. Practical course in terminology processing. John Benjamins Publishing, 1990. / 572 Sahlgren, Magnus. "The distributional hypothesis." Italian Journal of Disability Studies 20 (2008): 33-53. Saias, José, and Paulo Quaresma. "A methodology to create legal ontologies in a logic programming information retrieval system." Law and the Semantic Web. Springer, Berlin, Heidelberg, 2005. 185-200. Sakr, Sherif, and Eric Pardede, eds. Graph data management: techniques and applications. Hershey, PA: Information Science Reference, 2012. Salton,G. et alii. A Vector Space Model for Automatic Indexing. Information Retrieval and Language Processing, Communications of the ACM., 18(11), pp.613–620, 1975. Salvador, Gregorio. "Estudio del campo semántico" Arar" en Andalucía." Archivum 15.15 (1965). Salvador, Gregorio. "Lexemas puente y lexemas sincréticos." Semántica y lexicología del español contemporáneo (1985): 42-50. Salvador, Gregorio. Semántica y lexicología del español: estudios y lecciones. Editorial Paraninfo, 1985. Sandoval, Antonio Moreno. Lingüística computacional. Teide, 1998. Sapir, Edward. An introduction to the study of speech. New York: Harcourt, Brace, 1921. Saussure, Ferdinand de. "Curso de lingüística general [1916]." Buenos Aires: Losada (1945). Schacter, Daniel L., et al. "Brain regions associated with retrieval of structurally coherent visual information." Nature 376.6541 (1995): 587-590. Schank, Roger : "Conceptual Dependency: a theory of natural language understanding", Cognitive Psychology 3 (4), 532-631, 1972. Schmitz, Sylvain. Approximating context-free grammars for parsing and verification. Diss. 2007. Searle, John R. "Minds, brains, and programs." & & (1980): 417-457. Seco, M: Estudios de lexicografía española,Madrid: Paraninfo, 1987 Seco, M. 1985. "María Moliner: una obra, no un nombre". Estudios de lexicografía española. 1985. Madrid: Paraninfo: 207-211. Seco, M.. Prólogo. En: María Moliner. Diccionario de Uso del español. Madrid: Gredos, 2007. Seco, Manuel: "Problemas formales en la definición lexicográfica", en Estudios ofrecidos a Emilio Alarcos, Oviedo, vol.2, página 223,1978. / 573 Seco, Manuel. "La crítica de Cuervo al Diccionario de la Academia Española." Estudios de lexicografía española (1987): 178-193. Seco, Manuel. "María Moliner o el diccionario." La lexicografía hispánica ante el siglo XXI: balance y perspectivas. Zaragoza: Gobierno de Aragón (2003): 275-277. Seco, Manuel, Olimpia Andrés, y Gabino Ramos. "Diccionario del español actual." (1999). Shacks, Oliver. Scotoma: Forgetting and Neglect in Science, The River of Consciousness, Vintage Books, 2017. Shannon, Claude E: "A mathematical theory of communication", Bell System Technical Journal 27, 379-423, 1948. Singh Sarwan, Neeraj, An Intuitive Understanding of Word Embeddings: From Count Vectors to Word2Vec, Analytics Vidhya [acceso en línea, agosto de 2019], 2017. Skorokhod’ko, E.F. ‘Adaptive method of automatic abstracting and indexing’, Information Processing 71 (IFIP Congress 71), Amsterdam: North-Holland, 1972. Smith, Edward E., et al. "Combining prototypes: A selective modification model." Cognitive science 12.4 (1988): 485-527. Sonawane, Sheetal S., and Parag A. Kulkarni. "Graph based representation and analysis of text document: A survey of techniques." International Journal of Computer Applications 96.19 (2014). Speer, R., Joshua Chin, and Catherine Havasi. "ConceptNet 5.5: An Open Multilingual Graph of General Knowledge." In proceedings of AAAI, 2017. Sperber, Dan, and Deirdre Wilson. Relevance: Communication and cognition. Vol. 142. Cambridge, MA: Harvard University Press, 1986. Sperber, Hans. "Einfuhrungin dieBedeutungslehre." Bonn/Leipzig: KurtSchroeder (1923). Steele, James, and Ingrid Meyer. "Lexical functions in an explanatory combinatorial dictionary: kinds, descriptions and English examples." A: Steel, J. Meaning-Text Theory. Lingüístics, lexicography and implications. Otawa, Univ. of Otawa Press, pàgs (1990): 41-61. Strubell, Emma, Ananya Ganesh, and Andrew McCallum. "Energy and policy considerations for deep learning in NLP." arXiv preprint arXiv:1906.02243 (2019). Subirats, Carlos, and Hiroaki Sato. "Spanish framenet and framesql." 4th International Conference on Language Resources and Evaluation. Workshop on Building Lexical Resources from Semantically Annotated Corpora. Lisbon (Portugal). 2004. / 574 Subirats Rüggeberg, Carlos. "La teoría conceptual de la metáfora de Gómez Hermosilla." Ideias linguísticas na Península Ibérica (séc. XIV a séc. XIX): projeção da linguística ibérica na América Latina e Ásia:[VII Congreso Internacional de la Sociedad Española de Historiografía Lingüística (SEHL), Vila Real, Portugal, del 3 al 6 de noviembre de 2009]. Nodus Publikationen, 2010. Subirats, Carlos. "Frames, constructions, and metaphors in Spanish FrameNet." Biomedical English: A corpus-based approach. Amsterdam/Philadelphia: John Benjamins (2013): 185-210 . Sun, Jimeng, and Jie Tang. "A survey of models and algorithms for social influence analysis." Social network data analytics. Springer, Boston, MA, 2011. 177-214. Sun, Ron, Edward Merrill, and Todd Peterson. "From implicit skills to explicit knowledge: A bottom‐up model of skill learning." Cognitive science 25.2 (2001): 203-244. Sun, Ron. "Accounting for the computational basis of consciousness: A connectionist approach." Consciousness and Cognition 8.4 (1999): 529-565. Swanepoel, Piet H. "Linguistic motivation and its lexicographical application." South African Journal of Linguistics 10.2 (1992): 49-60. Sweetser, Eve. From etymology to pragmatics: Metaphorical and cultural aspects of semantic structure. Vol. 54. Cambridge University Press, 1990. Talmy, Leonard. "Lexicalization patterns: Semantic structure in lexical forms." Language typology and syntactic description 3.99 (1985): 36-149. Taylor, Daniel J. "Classical linguistics: An overview." Concise History of the Language Sciences. Pergamon, 1995. 83-90. Taylor, J.R., Linguistic Categorization. Prototypes in Linguistic Theory, Oxford, Oxford University Press, 1995. Taylor, John R. "Prototypes in cognitive linguistics." Handbook of cognitive linguistics and second language acquisition. Routledge, 2008. 49-75. Tercedor Sánchez, Maribel. "La fraseología en el lenguaje biomédico: análisis desde las necesidades del traductor." Estudios de lingüística del español 6 (1999): 000-0. Tesnière, Lucien. "Éléments de syntaxe structurale." (1959). Thomas H. Cormen, Charles E. Leiserson, et alii. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill. ISBN 0-262-03293-7. Section 22.3: Depth-first search, 2001 / 575 Torres López, Carmen, and Leticia Arco García. "Representación textual en espacios vectoriales semánticos." Revista Cubana de Ciencias Informáticas 10.2 (2016): 148-180. Trask, Andrew, Phil Michalak, and John Liu. "sense2vec-a fast and accurate method for word sense disambiguation in neural word embeddings." arXiv preprint arXiv:1511.06388 (2015). Trier, Jost. Der deutsche Wortschatz im Sinnbezirk des Verstandes: die Geschichte eines sprachlichen Feldes. Vol. 1. Verlag nicht ermittelbar, 1931. Trimble, Louis. English for science and technology: A discourse approach. Cambridge University Press, 1985. Turner, Mark, and George Lakoff. "More than cool reason: A field guide to poetic metaphor." Journal of Women’s Health (1989). Turney, Peter & Pantel, Patrick.. From Frequency to Meaning: Vector Space Models of Semantics. Journal of Artificial Intelligence Research. 37. 10.1613/jair.2934, 2010. Turtle, H.R. y Croft, W.B. "A Comparison of Text Retrieval Models." The Computer Journal , 35, 3, pp. 279-290, 1992. Tversky, Amos. "Features of similarity." Psychological review 84.4 (1977) Ullmann, Stephen. Semantics: an introduction to the science of meaning. Barnes & Noble, 1962. Umberto, E. C. O. "Trattato di semiotica generale, coll." Il campo semiotico", Milan, Bompiani (1975). Ungerer, F., and H. J. Schmid. "An Introduction to Cognitive Linguistics Text." (1996). Usón, R. Mairal, and Pamela Faber. "Functional Grammar and lexical templates." New perspectives on argument structure in Functional Grammar (2002): 39-94. Uszkoreit, Hans: "Categorial unification grammars" en Proceedings of the 11th International Conference on Computational Linguistics, Association of Computational Linguistics, 1986. V. Blondel, A. Gajardo, M. Heymans, P. Senellart, P. Van Dooren. "A measure of similarity between graph vertices: applications to synonym extraction and web searching" SIAM Rev., 46 (4) (2004), pp. 647-666 Valente, A. & Breuker, J. Ontologies: The missing link between legal theory and AI & Law. En A. Soeteman (Ed.), Legal knowledge based systems JURIX 94: The foundation for legal knowledge systems (pp. 138-150). Lelystad: Koninklijke Vermande, 1994. Valle, Oleyda & Simón-Cuevas, Alfredo & Valladares-Valdés, Eduardo & Olivas, José & Romero, Francisco: Generación de resúmenes extractivos de múltiples documentos usando grafos semánticos. Procesamiento de Lenguaje Natural, 2019. / 576 Van Valin, Robert D. and LaPolla, Randy J. Syntax: Structure, Meaning, and Function. Cambridge: Cambridge University Press, 1997; y Van Valin, Robert D. Exploring the Syntax-Semantics Interface. Cambridge University Press, 2005. Vandeloise, Claude. "Representation, Centrality and Prototypicality." Meanings and Prototypes: Studies on Linguistic Categorization (1990): 403-437. Vanderwende, Lucy & Menezes, Arul & Quirk, Chris. An AMR parser for English, French, German, Spanish and Japanese and a new AMR-annotated corpus. 26-30. 10.3115/v1/N15-3006, 2015. Vaswani, Ashish et al. "Attention is All you Need." ArXiv abs/1706.03762 (2017). Veronis, J.; Nancy M. Ide: Word sense disambiguation with very large neural networks extracted from machine readable dictionaries, COLING '90 Proceedings of the 13th conference on Computational linguistics - Volume 2, 1990. Vico, Giambattista. The new science of Giambattista Vico. Vol. 254. Doubleday, 1961. Vijaymeena, M. K.; Kavitha, K. (March 2016). "A Survey on Similarity Measures in Text Mining'' (PDF). Machine Learning and Applications: An International Journal. 3 (1): 19–28. doi:10.5121/mlaij.2016.3103. Vukotic, Aleksa, et al. Neo4j in action. Manning Publications Co., 2014. Wan,Xiaojun and Yang, Jianwu.. Improved affinity graph based multi-document summarization. In NAACL, 2006. Wang, Alex, et al. "Glue: A multi-task benchmark and analysis platform for natural language understanding." arXiv preprint arXiv:1804.07461 (2018). Wang, Jin, et al. "Combining Knowledge with Deep Convolutional Neural Networks for Short Text Classification." IJCAI. Vol. 350. 2017. Wasserman, Stanley, and Katherine Faust. Análisis de redes sociales. Métodos y aplicaciones. Vol. 10. CIS-Centro de Investigaciones Sociológicas, 2013. Watts, Duncan J., and Steven H. Strogatz. "Collective dynamics of ‘small-world networks." nature 393.6684 (1998): 440-442. Weaver, Warren. "Translation." Machine translation of languages 14.15-23 (1955): 10. Weinreich, Uriel. "On the semantic structure of language. Universals of language (Joseph H. Greenberg, editor). 142-217." (1966): 395-477. Werner, Heinz. "Die Ursprünge der Metapher. Arbeiten zur Entwicklungspsychologie." Herausgegeben von F. Krüger. H 3 (1919). / 577 Whorf, Benjamin Lee. "Language, thought, and reality: selected writings of….(Edited by John B. Carroll.)." (1956). Winters, Margaret E. "Cognitive Grammar and Kuryłowicz’s laws of analogy." Historical Linguistics 1987. John Benjamins, 1990. 543. Wintner, Shuly: "What science underlies natural language engineering?", Computational Linguistics 35 (4), 641-644, 2009. Wittgenstein, Ludwig. "Philosophical investigations, trans." GEM Anscombe 261 (1953): 49. Wittgenstein, Ludwig. "Tractatus Logico-Philosophicus (trans. Pears and McGuinness)." (1961). Wright, Sue Ellen, and Gerhard Budin. "Term selection: the initial phase of terminology management." Handbook of terminology management 1 (1997): 13-23. Wu and B. Wang, "Extracting Topics Based on Word2Vec and Improved Jaccard Similarity Coefficient," IEEE Second International Conference on Data Science in Cyberspace (DSC), Shenzhen, pp. 389-397,2017. Wu, Hua, and Ming Zhou. "Optimizing synonyms extraction with mono and bilingual resources." Proceedings of the Second International Workshop on Paraphrasing. 2003. Wüster, Eugen: Introducción a la teoría general de la terminología y a la lexicografía, IULA (UPF), Monografies (Institut Universitari de Lingüística Aplicada), Documenta Universitaria, 2010. Xiaojun Wan, Jianwu Yang, and Jianguo Xiao. Manifold-ranking based topic-focused multidocument summarization. In IJCAI, vol. 7, pp. 2903-2908, 2007. Yang, Zhilin, et al. "Xlnet: Generalized autoregressive pretraining for language understanding." Advances in neural information processing systems. 2019. Yasunaga, Michihiro et al. "Graph-Based Neural Multi-Document Summarization." Proceedings of the 21st Conference on Computational Natural Language, Learning, CoNLL, 2017. Yen, Jin Y. "Finding the k shortest loopless paths in a network." Management Science 17.11 (1971): 712-716. Yu, Wang, et al. "Blocked 3× 2 cross-validated t-test for comparing supervised classification learning algorithms." Neural computation 26.1 (2014): 208-235. Z. Harris. Distributional structure. Word, 10(23): 146-162., 1954. Zager, Laura A., and George C. Verghese. "Graph similarity scoring and matching." Applied mathematics letters 21.1 (2008): 86-94. / 578 Zhang, Ping, et al. "Label propagation prediction of drug-drug interactions based on clinical side effects." Scientific reports 5.1 (2015): 1-10. Zhang, Jingqing, et al. "Pegasus: Pre-training with extracted gap-sentences for abstractive summarization." arXiv preprint arXiv:1912.08777 (2019). Zhang,Lei ; Rettinger, Achim ; Philip, Patrick: Context-Aware Entity Disambiguation in Text Using Markov Chains, IEEE/WIC/ACM International Conference on Web Intelligence (WI), 2016. Zipf, George Kingsley. "Human behavior and the principle of least effort: an introd. to human ecology." (1949). Žolkovskij, A., and I. Mel’čuk. "ovozmožnom metode i instrumentax semantičeskogo sinteza (One possible method and instruments for semantic synthesis of texts)." Naučnotexničeskaja informacija (1965): 23-28. Zou, Lei, et al. "Natural language question answering over RDF: a graph data driven approach." Proceedings of the 2014 ACM SIGMOD international conference on Management of data. 2014. Zukerman, Ingrid, Sarah George, and Yingying Wen. "Lexical paraphrasing for document retrieval and node identification." Proceedings of the second international workshop on Paraphrasing-Volume 16. Association for Computational Linguistics, 2003. Zumbado, Inmaculada Corrales. "Aplicación a la Teoría de conjuntos a la Semántica estructural." Revista Española de Lingüística 1.2 (1971): 355-360. / APÉNDICES Apéndice 1: Proceso de depuración del definiens 580 Tabla 1: Bigramas del DUE por frecuencia de aparición (7514-50 apariciones) 581 Tabla 2: Nodos por frecuencia de aparición en el definiens (8894-133 apariciones) 583 Tabla 3: Términos del DUE en que los definienda forman parte de su definiens (limitados a 300 resultados) 595 Apéndice 2: Aplicación de algoritmos de similitud 598 Tabla 4: Las 100 palabras más cercanas a “rey” usando el índice de Jaccard 599 Tabla 5: Las 100 palabras más cercanas a “valiente” usando el índice de Jaccard 604 Tabla 6: Las 100 palabras más cercanas a “valiente” usando el índice de Jaccard 607 Tabla 7: Los 100 sustantivos más cercanos a “pereza” usando el índice de Jaccard 612 Tabla 8: Las 100 palabras más cercanas a “cantar” usando el índice de Jaccard 617 Tabla 9: Los 100 verbos más cercanos a “cantar” usando el índice de Jaccard 620 Tabla 10: Las 100 palabras más cercanas a “hombre” usando el índice de Jaccard 625 Tabla 11: Las 100 palabras más cercanas a “mujer” usando el índice de Jaccard 630 Tabla 12: 100 pares de sustantivos con un valor a partir de 0,06 en la relación “SIMILAR” 635 Tabla 13: 100 pares de palabras con un valor a partir de 0,6 en la relación “SIMILAR” 640 Tabla 14: 100 pares de palabras con un valor de 1.0 en la relación “SIMILAR” 644 Tabla 15: Los 100 sustantivos más cercanos a “rey” usando el índice de Superposición 649 Tabla 16: Las 100 palabras más cercanas a “valiente” usando el índice de Superposición 654 Tabla 17: 100 adjetivos más cercanos a “valiente” usando el índice de Superposición 659 Tabla 18: Los 100 sustantivos más cercanos a “pereza” usando el índice de Superposición 664 Tabla 19: Los 100 sustantivos más cercanos a “cantar” usando el índice de Superposición 669 Tabla 20: Los 100 verbos más cercanos a “cantar” usando el índice de Superposición 674 Apéndice 3: Algoritmos de rutas óptimas. 679 Tabla 21: Mínimo árbol recubridor (MINST) de la palabra “abacería” 680 Apéndice 4: Algoritmos de comunidades. 683 Tabla 22: Comunidad 16139 relacionada con “árbol_01” 684 Tabla 23: Nodos de la comunidad 41292 con la etiqueta de sustantivos 689 Tabla 24: Nodos de la comunidad 4489 con la etiqueta de sustantivos 692 Tabla 25: Nodos de la comunidad 395 con la etiqueta de adjetivos 695 Tabla 26: Verbos de la comunidad 8147 699 Tabla 27: Comunidad 2855 706 Apéndice 5: Campos lexicográficos 713 Tabla 28: Denominadores comunes del campo lexicográfico de “mamífero” y “carnívoro” 714 Tabla 29: Campo lexicográfico del sustantivo “libro_01” 720 Tabla 30: Campo lexicográfico del verbo “escribir_01” 733 579 / Apéndice 1: Proceso de depuración del definiens ● Figura 159. Subgrafo en el que se puede observar, por ejemplo, que la relación SIMILAR (en amarillo) se ha creado con un valor de 1.0 entre “trashojar” y “trasfojar”, mientras que entre “tárgum” y “anaquel” al tener menos denominadores comunes y por lo tanto parecerse menos el valor de la relación es de 0.3. A partir de la consulta en Cypher: MATCH p= (a:V{termId:"mm_hojear_01"})-[SIMILAR*]-(b) return p limit 6 580 / Tabla 1: Bigramas del DUE por frecuencia de aparición (7514-50 apariciones) Bigramas nºapariciones se a plica 7514 acción de 3047 aplicado a 1491 conjunto de 1250 acción y 1245 cualidad de 1190 persona que 1186 de manera 644 de o 470 de la 459 especie de 437 se dice 437 susceptible de 379 parte de 354 cada una 350 hombre que 337 aplicable al 324 cada uno 291 nombre dado 268 hacer que 266 pieza de 233 cosa que 219 en el 214 se emplea 209 nombre aplicado 207 falta de 194 estado de 178 en la 163 circunstancia de 160 cualidad o 159 aplicado al 158 en los 154 trozo de 154 con respecto 139 porción de 139 operación de 135 golpe dado 134 se aplicaba 134 de forma 134 aplicable a 132 hacer una 130 variedad de 124 sitio donde 124 juego de 119 cierta tela 119 medida de 118 poner una 116 falto de 113 en las 112 nombre de 112 en algunos 106 arte de 103 variante ortográfica 103 se aplica 100 manera de 99 se usa 98 parte del 97 que se 97 especialista en 97 por extensión, 96 instrumento musical 95 de los 94 desp. 90 unidad de 89 utensilio para 88 quitar la 87 afectado de 85 lugar donde 85 utensilio de 84 sitio en 81 dar a 80 moneda de 77 cargo de 76 de las 76 en lenguaje 75 prenda de 75 grupo de 74 en un 74 serie de 73 acción o 73 cantidad de 71 capaz de 70 tela de 69 utensilio que 68 cierta danza 68 quitar el 68 de color 67 situación de 67 apócope de 67 entre los 66 en algunas 66 propio de 66 el que 65 581 / cualquier cosa 65 cierta planta 64 fruto del 64 lugar en 64 mujer que 64 reunión de 63 aplicado particularmente 62 figura retórica 62 nombre que 62 estudio de 61 aparato que 60 mezcla de 60 con referencia 58 empezar a 57 sitio poblado 56 palabra o 56 hacer un 54 campo de 54 inflamación de 53 cierto juego 52 planta gramínea 52 ciencia que 52 dejar de 51 por oposición 51 utensilio con 51 persona de 51 quitar a 51 madero de 51 hecho de 51 tienda de 50 que tiene 50 árbol leguminoso 50 en una 50 tener una 50 582 / Tabla 2: Nodos por frecuencia de aparición en el definiens (8894-133 apariciones) Listado con la información correspondiente a los nodos del grafo más frecuentes, entre 8894 apariciones y 133, es decir, los asociadores que con mayor frecuencia aparecen como elementos de la definición lexicográfica del DUE (relaciones de entrada). ● Consulta en Cypher : MATCH n= (v)-[:RELATED_TO]->(m:Concept) RETURN count(m) as apariciones, m.termId as concepto order by count(m) DESC limit 50 Nº apariciones concepto Nº apariciones concepto 583 8894 mm_cosa_01 5750 mm_persona_01 3766 mm_acción_01 2466 mm_planta_01 2252 mm_aplicado_01 2236 mm_parte_01 1795 mm_conjunto_05 1718 mm_sitio_01 1659 mm_cualidad_01 1533 mm_efecto_01 1519 mm_acción_02 1455 mm_pequeño_01 1418 mm_forma_01 1222 mm_persona_03 1215 mm_producir_01 1199 mm_servir_01 1168 mm_nombre_01 1163 mm_semejante_01 1157 mm_cosa_03 1084 mm_animal_03 1063 mm_color_01 1044 mm_mismo_01 1037 mm_ejemplo_01 1002 mm_vez_01 986 mm_lugar_01 960 mm_hecho_07 / 584 954 mm_árbol_01 941 mm_pieza_01 914 mm_hombre_01 880 mm_expresar_01 863 mm_fruto_01 862 mm_barco_01 842 mm_agua_01 828 mm_ave_01 816 mm_especie_01 798 mm_mujer_01 771 mm_flor_01 735 mm_grande_01 729 mm_usado_01 702 mm_tela_01 688 mm_hecha_01 686 mm_hoja_01 675 mm_estado_01 655 mm_objeto_01 649 mm_sustancia_01 626 mm_terreno_03 620 mm_quitar_01 617 mm_utensilio_01 603 mm_manera_01 581 mm_madera_01 544 mm_modo_01 542 mm_caballería_01 535 mm_antiguo_01 531 mm_instrumento_01 527 mm_tiempo_01 520 mm_causar_01 518 mm_propio_01 517 mm_enfermedad_01 515 mm_consistente_01 513 mm_empleado_01 511 mm_utilizar_01 496 mm_cuerpo_01 495 mm_dedicar_01 481 mm_clase_01 480 mm_aplicable_01 475 mm_blanco_01 475 mm_pez_01 472 mm_aspecto_01 465 mm_largo_01 460 mm_cantidad_01 458 mm_asunto_01 453 mm_colocar_01 / 585 452 mm_orden_01 451 mm_actividad_01 450 mm_palabra_01 450 mm_vivir_01 448 mm_obra_01 444 mm_líquido_01 444 mm_determinado_01 443 mm_susceptible_01 442 mm_piedra_01 438 mm_sonido_01 431 mm_trozo_01 429 mm_juego_01 427 mm_tierra_01 427 mm_quedar_01 423 mm_actitud_01 420 mm_cabeza_01 418 mm_adorno_01 416 mm_extremo_03 408 mm_metal_01 407 mm_golpe_01 404 mm_tres_01 403 mm_piel_01 403 mm_niño_01 403 mm_falta_01 403 mm_moneda_01 398 mm_destinado_01 397 mm_hablar_01 395 mm_vender_01 389 mm_tamaño_02 386 mm_caballo_01 382 mm_país_01 380 mm_lado_01 377 mm_situación_01 375 mm_superior_01 374 mm_grupo_01 371 mm_operación_01 366 mm_valor_01 366 mm_aparato_01 365 mm_ganado_01 365 mm_material_02 364 mm_obtener_01 364 mm_circunstancia_01 361 mm_prenda_01 359 mm_familia_01 359 mm_gran_01 357 mm_contener_01 / 586 356 mm_componer_01 353 mm_musical_01 351 mm_campo_01 351 mm_pájaro_01 349 mm_arbusto_01 345 mm_bueno_01 344 mm_pelo_01 339 mm_tejido_01 338 mm_espacio_01 337 mm_sentido_01 337 mm_casa_01 336 mm_movimiento_01 335 mm_dinero_01 335 mm_mover_01 333 mm_mar_01 333 mm_trabajo_01 329 mm_pasar_02 323 mm_llegar_01 320 mm_sujetar_01 320 mm_superficie_01 320 mm_respecto_01 320 mm_gente_01 319 mm_dado_01 316 mm_pueblo_01 314 mm_grueso_01 313 mm_pagar_01 312 mm_cubrir_01 311 mm_solo_01 309 mm_corto_01 304 mm_elemento_01 304 mm_dirigir_01 303 mm_delgado_01 303 mm_escrito_01 302 mm_carne_01 302 mm_mayor_01 300 mm_tomar_01 299 mm_insecto_01 296 mm_mamífero_01 293 mm_variedad_01 292 mm_máquina_01 292 mm_vino_01 291 mm_individuo_03 290 mm_cuatro_01 289 mm_número_01 288 mm_río_01 288 mm_inferior_01 / 587 286 mm_disponer_01 286 mm_sacar_01 285 mm_figura_01 285 mm_rojo_01 284 mm_tallo_01 283 mm_organismo_01 280 mm_romano_01 276 mm_hierro_01 276 mm_porción_01 274 mm_papel_01 273 mm_soldado_01 272 mm_juego_10 272 mm_edificio_01 271 mm_medio_02 270 mm_viento_01 270 mm_cara_01 269 mm_fin_01 268 mm_relación_01 268 mm_año_01 266 mm_lenguaje_01 265 mm_madero_01 263 mm_corriente_05 262 mm_órgano_01 262 mm_situado_01 261 mm_mostrar_01 260 mm_distinto_01 260 mm_guerra_01 258 mm_dispositivo_01 257 mm_leguminoso_01 257 mm_negro_01 256 mm_expresión_01 255 mm_junto_01 252 mm_comido_01 251 mm_cargo_01 250 mm_semilla_01 249 mm_pan_01 249 mm_aire_01 248 mm_boca_01 248 mm_salir_01 248 mm_ocurrir_01 248 mm_dado_06 247 mm_baraja_01 245 mm_ropa_01 245 mm_público_01 245 mm_correspondiente_01 245 mm_borde_01 / 588 245 mm_día_01 244 mm_vida_01 244 mm_género_0 243 mm_acto_01 242 mm_jugador_01 242 mm_falto_01 241 mm_vestido_02 240 mm_colocado_01 239 mm_sistema_01 239 mm_cuerda_01 239 mm_vasija_01 238 mm_pie_01 238 mm_físico_01 238 mm_comer_01 237 mm_indio_02 236 mm_causa_01 236 mm_punta_01 236 mm_rodear_01 236 mm_interior_03 235 mm_materia_01 235 mm_parte_13 233 mm_escribir_01 232 mm_forma_03 232 mm_encontrar_01 232 mm_azúcar_01 232 mm_empezar_01 231 mm_punto_01 231 mm_medida_01 231 mm_amarillo_01 230 mm_suelo_01 228 mm_importancia_01 227 mm_vela_01 227 mm_material_01 226 mm_oponer_01 226 mm_pared_01 226 mm_músico_02 224 mm_recibir_01 223 mm_significado_03 223 mm_suceso_01 223 mm_toro_01 223 mm_serie_01 223 mm_guardar_01 222 mm_tratar_01 222 mm_res_01 221 mm_función_01 220 mm_fuerza_01 / 589 219 mm_conseguir_01 219 mm_común_01 219 mm_ocupar_01 219 mm_lana_01 219 mm_sostener_01 218 mm_medir_01 218 mm_maíz_01 218 mm_deber_01 217 mm_arte_01 215 mm_aceite_01 215 mm_perder_01 215 mm_carácter_01 214 mm_cabo_01 214 mm_longitud_01 213 mm_alto_02 212 mm_miembro_01 212 mm_siglo_01 212 mm_unidad_01 211 mm_seguir_01 211 mm_dividir_01 210 mm_mineral_01 210 mm_cosa_04 209 mm_masa_01 208 mm_necesario_01 207 mm_libro_01 206 mm_recipiente_01 206 mm_luz_01 206 mm_menor_01 205 mm_general_05 205 mm_militar_01 205 mm_arma_01 205 mm_principal_01 205 mm_fabricar_01 204 mm_documento_01 204 mm_antiguo_02 203 mm_señal_01 202 mm_compuesto_06 201 mm_eléctrico_01 201 mm_puerta_01 201 mm_región_01 200 mm_vehículo_01 200 mm_palo_01 199 mm_lengua_01 199 mm_peso_01 198 mm_posición_01 198 mm_uso_01 / 590 197 mm_plata_01 197 mm_hierba_01 197 mm_introducir_01 197 mm_anterior_01 197 mm_equivalente_01 197 mm_fuerte_01 196 mm_doctrina_01 196 mm_malo_01 195 mm_encargado_01 195 mm_rueda_01 193 mm_caer_01 192 mm_literario_01 192 mm_fino_01 192 mm_inclinar_01 190 mm_producto_01 190 mm_relacionar_01 190 mm_ánimo_01 189 mm_llamado_01 189 mm_iglesia_01 189 mm_mezclar_01 189 mm_cortar_01 187 mm_idea_01 187 mm_establecimiento_01 187 mm_volver_01 186 mm_contenido_02 186 mm_extensión_01 186 mm_composición_01 185 mm_permitir_01 185 mm_ancho_01 185 mm_cuello_01 184 mm_centro_01 184 mm_echar_01 183 mm_servicio_01 183 mm_ligero_01 182 mm_limpiar_01 182 mm_fuego_01 182 mm_estrecho_01 182 mm_hueso_01 181 mm_nuevo_01 180 mm_duro_01 180 mm_cuerpo_07 179 mm_llamada_01 179 mm_especie_03 179 mm_derecho_06 179 mm_mano_01 178 mm_perro_01 / 591 178 mm_ala_01 177 mm_apoyar_01 177 mm_dibujo_01 177 mm_línea_01 177 mm_nombre_05 177 mm_construcción_01 176 mm_transportar_01 175 mm_comprender_01 174 mm_cuero_01 174 mm_dedo_01 173 mm_camino_01 173 mm_procedimiento_01 173 mm_muro_01 172 mm_mantener_01 172 mm_comestible_01 171 mm_raíz_01 171 mm_origen_01 170 mm_zona_01 170 mm_abrir_01 170 mm_grano_01 169 mm_roca_01 168 mm_vestir_01 167 mm_bajo_01 167 mm_pata_01 167 mm_recubrir_01 166 mm_agujero_02 166 mm_plano_01 166 mm_especial_01 165 mm_centímetro_01 165 mm_adornar_01 165 mm_metálico_01 165 mm_construir_01 164 mm_capacidad_01 164 mm_estudiar_01 163 mm_corteza_01 162 mm_abundante_01 162 mm_separar_01 162 mm_convertir_01 162 mm_propiedad_01 162 mm_animal_08 161 mm_llamar_01 161 mm_empleo_01 161 mm_alimento_01 161 mm_crecer_01 161 mm_sangre_01 160 mm_danza_01 / 592 160 mm_cerdo_01 160 mm_corresponder_01 159 mm_ley_01 159 mm_situar_01 158 mm_cuerpo_04 158 mm_altura_01 158 mm_caso_01 158 mm_recoger_01 158 mm_oficio_01 157 mm_red_01 156 mm_andar_01 156 mm_paso_01 156 mm_costumbre_01 155 mm_afectado_01 155 mm_tubo_01 154 mm_daño_01 154 mm_tipo_01 154 mm_terminar_01 154 mm_sexual_01 154 mm_autoridad_01 153 mm_trabajar_01 153 mm_actuar_01 153 mm_finca_01 152 mm_interés_01 152 mm_tabla_01 152 mm_tratar_03 152 mm_harina_01" 152 mm_plantar_02" 152 mm_territorio_01" 152 mm_impedir_01" 151 mm_ácido_03" 151 mm_fenómeno_01" 151 mm_caña_01" 151 mm_condición_01" 150 mm_dibujar_01" 150 mm_seda_01" 150 mm_importante_01" 150 mm_desarrollo_01" 150 mm_golpear_01" 150 mm_costa_01" 150 mm_tropical_01" 150 mm_cambio_01" 149 mm_excesivo_01" 149 mm_exceso_01" 149 mm_extraer_01" 148 mm_vez_03" / 593 148 mm_político_01" 148 mm_popular_01" 148 mm_distancia_01" 147 mm_humano_01" 147 mm_cubierta_01" 147 mm_verde_01" 147 mm_acepción_01" 147 mm_intenso_01" 146 mm_horno_01" 145 mm_teatro_01" 145 mm_meter_01" 145 mm_letra_01" 145 mm_girar_01" 145 mm_desear_01" 145 mm_medicamento_01" 144 mm_canto_01" 143 mm_extender_01" 142 mm_variante_02" 142 mm_resto_01" 142 mm_frase_01" 142 mm_nota_01" 141 mm_pluma_01" 141 mm_difícil_01" 141 mm_barro_01" 140 mm_saber_01" 139 mm_lanzar_01" 139 mm_mancha_01" 139 mm_capaz_01" 138 mm_habitar_01" 138 mm_medicina_01" 137 mm_embarcación_01" 137 mm_madera_02" 137 mm_huevo_01" 137 mm_gobierno_01" 137 mm_calzado_01" 136 mm_soler_02" 136 mm_sabor_01" 136 mm_adquirir_01" 136 mm_presentar_01" 135 mm_época_01" 135 mm_carro_01" 135 mm_calle_01" 135 mm_principio_01" 135 mm_dificultad_01" 135 mm_oro_01" 134 mm_árbol_03" / 594 134 mm_atar_01" 134 mm_pardo_01" 134 mm_leche_01" 134 mm_criar_01" 134 mm_hueco_08" 134 mm_hombre_02" 133 mm_olor_01" 133 mm_color_03" 133 mm_esfuerzo_01" / Tabla 3: Términos del DUE en que los definienda forman parte de su definiens (limitados a 300 resultados) 595 mm_ázimo_01 mm_acetilsalicílico_01 mm_acrílico_01 mm_acutángulo_01 mm_adragante_01 mm_adónico_01 mm_albarrana_02 mm_alcaceña_01 mm_alcaico_01 mm_alícuota_01 mm_amarguero_01 mm_amarillo_03 mm_aneroide_01 mm_apainelado_01 mm_ardero_01 mm_arije_01 mm_arménico_01 mm_ascórbico_01 mm_astático_01 mm_astático_01 mm_atabernado_01 mm_baquero_01 mm_barbato_01 mm_barbitúrico_01 mm_bayal_01 mm_bisiesto_01 mm_bitango_01 mm_bitongo_01 mm_blancal_01 mm_bodocal_01 mm_bombacho_01 mm_bornero_01 mm_borriquero_01 mm_borriqueño_01 mm_brabántico_01 mm_bragado_02 mm_bóreo_01 mm_cabelludo_01 mm_caldaria_01 mm_campal_01 mm_cande_01 mm_candeal_01 mm_candeal_01 mm_carpanel_01 mm_cataléctico_01 mm_cañihueco_01 mm_cegesimal_01 mm_cerebral_02 mm_cerífica_01 mm_chumbo_01 mm_chupalandero_01 mm_cianhídrico_01 mm_cibelina_01 mm_cibernético_02 mm_cisoria_01 mm_claval_01 mm_clorhídrico_01 mm_conceptual_02 mm_conopial_01 mm_consensual_01 mm_consensual_01 mm_coordenado_01 mm_copal_01 mm_cornuto_01 mm_cornuto_01 mm_cromático_03 mm_crudo_04 mm_cuadrado_02 mm_cursivo_01 mm_curul_01 mm_cósico_01 mm_damasceno_01 mm_decemnovenal_01 mm_decretorio_01 mm_defectivo_01 mm_deodara_01 mm_desbañado_01 / 596 mm_desoxirribonucleico_ 01 mm_diado_01 mm_diagonal_03 mm_discoloro_01 mm_disjunto_01 mm_divisionario_01 mm_doñegal_01 mm_doñigal_01 mm_dulzal_01 mm_ejecutivo_03 mm_ejecutivo_03 mm_electromotriz_01 mm_equipolado_01 mm_escarzano_01 mm_escorchado_01 mm_esméctico_01 mm_extrasensorial_01 mm_femenino_03 mm_ferreal_01 mm_filosofal_01 mm_flamenco_01 mm_fluorhídrico_01 mm_franciscano_03 mm_fulmínico_01 mm_fénico_01 mm_fórmico_01 mm_galgado_01 mm_galotánico_01 mm_gordiano_01 mm_gregoriano_01 mm_gregoriano_01 mm_gregoriano_01 mm_guirgüesco_01 mm_habano_03 mm_hebén_01 mm_herrial_01 mm_hipocloroso_01 mm_hiposulfuroso_01 mm_hiposulfúrico_01 mm_hito_05 mm_holostérico_01 mm_indecisorio_01 mm_independiente_02 mm_inferior_04 mm_inicial_02 mm_intempesta_01 mm_interciso_01 mm_isósceles_01 mm_jabalinero_01 mm_juliano_01 mm_juliano_01 mm_kauri_01 mm_lejas_01 mm_lisérgico_01 mm_lucharniego_01 mm_machiega_01 mm_malo_07 mm_malo_10 mm_manantial_03 mm_masculino_03 mm_melodreña_01 m_mineromedicinal_01 mm_mismo_04 mm_mitral_01 mm_mogataz_01 mm_momperada_01 mm_mundano_03 mm_nervioso_02 mm_nicerobino_01 mm_nucleico_01 mm_nuncupativo_01 mm_obtusángulo_01 mm_oleico_01 mm_olímpico_03 mm_oniquina_01 mm_oportuno_03 mm_optativo_02 mm_orgánico_06 mm_oxigonio_01 mm_palomariega_01 mm_palumbario_01 mm_parabólico_02 mm_partil_01 mm_pedáneo_01 mm_pedáneo_01 mm_penador_01 / 597 mm_pineal_01 mm_pinjado_01 mm_pluscuamperfecto_01 mm_podenco_01 mm_postal_01 mm_primoroso_01 mm_princeps_01 mm_probática_01 mm_progenérico_01 mm_pronominado_01 mm_prúsico_01 mm_pícnico_01 mm_pícrico_01 mm_radiata_01 mm_raro_02 mm_raspudo_01 mm_recrucetado_01 mm_religioso_02 mm_religioso_03 mm_religioso_05 mm_renil_01 mm_retrovisor_01 mm_ribonucleico_01 mm_ropálico_01 mm_salgareño_01 mm_salicílico_01 mm_secundario_07 mm_sedientes_01 mm_semipesado_01 mm_semiplena_01 mm_serrátil_01 mm_serrátil_01 mm_siamés_03 mm_simpático_01 mm_subcinericio_01 mm_sucotrino_01 mm_sulfurizado_01 mm_sulfúrico_01 mm_superligero_01 mm_supersubstancial_01 mm_teologal_01 mm_termal_01 mm_teórico_02 mm_torcaz_01 mm_trabal_01 m_transformacional_01 mm_transuraniano_01 mm_transuránico_01 mm_triedro_01 mm_trifa_01 mm_ursina_01 mm_vaída_01 mm_vergueteado_01 mm_vergé_01 mm_verjurado_01 mm_versal_01 mm_vertebral_01 mm_voltaico_01 mm_zancado_01 mm_zangolotino_01 mm_zarpanel_01 mm_zurito_01 / Apéndice 2: Aplicación de algoritmos de similitud ● Figura 160. Subgrafo con las relaciones expandidas de similitud de “abaleo_03”, entre las que se encuentra el verbo “abalear_02” (en magenta a la derecha). Consulta en Cypher: MATCH p =( a : NC { termId : "mm_abaleo_03" })-[ r : SIMILAR ]-( b : NC ) RETURN p LIMIT 1000 598 / Tabla 4: Las 100 palabras más cercanas a “rey” usando el índice de Jaccard Distancia usando el índice de Jaccard entre el nodo correspondiente a “rey_01” y las 100 palabras más próximas a este. ● Consulta en Cypher : MATCH (p1:NC {termId: "mm_rey_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 599 from to similarity "mm_rey_01" "mm_soberano_06" 0.04046242774566474 "mm_rey_01" "mm_palacio_01" 0.037267080745341616 "mm_rey_01" "mm_dignidad_01" 0.03463203463203463 "mm_rey_01" "mm_príncipe_06" 0.034482758620689655 "mm_rey_01" "mm_servidor_01" 0.034482758620689655 "mm_rey_01" "mm_señor_01" 0.03431372549019608 "mm_rey_01" "mm_ceremonia_01" 0.02824858757062147 "mm_rey_01" "mm_real_01" 0.02702702702702703 "mm_rey_01" "mm_oficio_09" 0.02631578947368421 "mm_rey_01" "mm_tributo_01" 0.025974025974025976 "mm_rey_01" "mm_macero_01" 0.02586206896551724 / 600 "mm_rey_01" "mm_trono_01" 0.025423728813559324 "mm_rey_01" "mm_capilla_01" 0.0234375 "mm_rey_01" "mm_título_03" 0.02158273381294964 "mm_rey_01" "mm_emperador_01" 0.02112676056338028 "mm_rey_01" "mm_representación_01" 0.02030456852791878 "mm_rey_01" "mm_derecho_17" 0.0196078431372549 "mm_rey_01" "mm_palaciego_01" 0.018867924528301886 "mm_rey_01" "mm_jefatura_01" 0.018867924528301886 "mm_rey_01" "mm_jacobita_03" 0.018867924528301886 "mm_rey_01" "mm_conceder_01" 0.018604651162790697 "mm_rey_01" "mm_acemilería_02" 0.018518518518518517 "mm_rey_01" "mm_legitimista_01" 0.01834862385321101 "mm_rey_01" "mm_entronizar_01" 0.01834862385321101 "mm_rey_01" "mm_señero_01" 0.01818181818181818 "mm_rey_01" "mm_palaciego_02" 0.01818181818181818 "mm_rey_01" "mm_quitar_05" 0.018018018018018018 "mm_rey_01" "mm_abasí_01" 0.018018018018018018 "mm_rey_01" "mm_excusado_06" 0.017857142857142856 "mm_rey_01" "mm_camón_02" 0.017857142857142856 "mm_rey_01" "mm_heraldo_01" 0.017699115044247787 "mm_rey_01" "mm_insignia_02" 0.017699115044247787 "mm_rey_01" "mm_comendero_01" 0.017699115044247787 "mm_rey_01" "mm_título_01" 0.01744186046511628 / 601 "mm_rey_01" "mm_escalera_05" 0.017391304347826087 "mm_rey_01" "mm_salva_03" 0.017241379310344827 "mm_rey_01" "mm_monarquía_02" 0.01694915254237288 "mm_rey_01" "mm_corte_11" 0.01680672268907563 "mm_rey_01" "mm_vasallo_01" 0.016666666666666666 "mm_rey_01" "mm_arma_01" 0.01607717041800643 "mm_rey_01" "mm_codorniz_01" 0.015625 "mm_rey_01" "mm_dosel_01" 0.014925373134328358 "mm_rey_01" "mm_consejo_01" 0.014705882352941176 "mm_rey_01" "mm_pagar_01" 0.014492753623188406 "mm_rey_01" "mm_caballero_02" 0.014388489208633094 "mm_rey_01" "mm_bordado_01" 0.014388489208633094 "mm_rey_01" "mm_tribunal_01" 0.014018691588785047 "mm_rey_01" "mm_alto_04" 0.013793103448275862 "mm_rey_01" "mm_asamblea_01" 0.0136986301369863 "mm_rey_01" "mm_parte_16" 0.0136986301369863 "mm_rey_01" "mm_privilegio_01" 0.013422818791946308 "mm_rey_01" "mm_vestidura_01" 0.012195121951219513 "mm_rey_01" "mm_celebrar_01" 0.011834319526627219 "mm_rey_01" "mm_zancudo_02" 0.011299435028248588 "mm_rey_01" "mm_médico_02" 0.011235955056179775 "mm_rey_01" "mm_hacienda_03" 0.009523809523809525 "mm_rey_01" "mm_desentronizar_02" 0.009523809523809525 / 602 "mm_rey_01" "mm_faraónico_01" 0.009523809523809525 "mm_rey_01" "mm_hacendeja_01" 0.009523809523809525 "mm_rey_01" "mm_realdad_01" 0.009523809523809525 "mm_rey_01" "mm_dinástico_01" 0.009523809523809525 "mm_rey_01" "mm_czar_01" 0.009523809523809525 "mm_rey_01" "mm_zariano_01" 0.009523809523809525 "mm_rey_01" "mm_zarista_01" 0.009523809523809525 "mm_rey_01" "mm_visorrey_01" 0.009523809523809525 "mm_rey_01" "mm_czarina_01" 0.009523809523809525 "mm_rey_01" "mm_cabecilla_02" 0.009433962264150943 "mm_rey_01" "mm_destronamiento_01" 0.009433962264150943 "mm_rey_01" "mm_bwana_01" 0.009433962264150943 "mm_rey_01" "mm_vaticano_03" 0.009433962264150943 "mm_rey_01" "mm_borbónico_01" 0.009433962264150943 "mm_rey_01" "mm_sobreguarda_02" 0.009433962264150943 "mm_rey_01" "mm_orangista_01" 0.009433962264150943 "mm_rey_01" "mm_bicéfalo_02" 0.009433962264150943 "mm_rey_01" "mm_basílica_04" 0.009433962264150943 "mm_rey_01" "mm_capo_01" 0.009433962264150943 "mm_rey_01" "mm_curia_02" 0.009433962264150943 "mm_rey_01" "mm_malvarrosa_01" 0.009433962264150943 "mm_rey_01" "mm_mayoral_05" 0.009433962264150943 "mm_rey_01" "mm_cámara_02" 0.009433962264150943 / Started streaming 100 records after 4485 ms and completed after 4485 ms. 603 "mm_rey_01" "mm_regio_01" 0.009433962264150943 "mm_rey_01" "mm_cheche_01" 0.009433962264150943 "mm_rey_01" "mm_argentario_01" 0.009433962264150943 "mm_rey_01" "mm_dinastismo_01" 0.009433962264150943 "mm_rey_01" "mm_centurión_01" 0.009433962264150943 "mm_rey_01" "mm_estrellera_01" 0.009433962264150943 "mm_rey_01" "mm_fantasmal_02" 0.009433962264150943 "mm_rey_01" "mm_menuceles_01" 0.009433962264150943 "mm_rey_01" "mm_díctamo_02" 0.009433962264150943 "mm_rey_01" "mm_protomedicato_02" 0.009433962264150943 "mm_rey_01" "mm_altea_03" 0.009433962264150943 "mm_rey_01" "mm_positivo_08" 0.009433962264150943 "mm_rey_01" "mm_pavón_01" 0.009433962264150943 "mm_rey_01" "mm_quimérico_01" 0.009433962264150943 "mm_rey_01" "mm_palmiche_01" 0.009433962264150943 "mm_rey_01" "mm_carolingio_01" 0.009433962264150943 / Tabla 5: Las 100 palabras más cercanas a “valiente” usando el índice de Jaccard Distancia usando el índice de Jaccard entre el nodo correspondiente a “valiente_01”. Resultados limitados a las 100 palabras más próximas a este, sin restricciones de categoría gramatical. ● Consulta en Cypher : MATCH (p1:AQ {termId: "mm_valiente_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 604 from to similarity "mm_valiente_01" "mm_audaz_01" 0.13157894736842105 "mm_valiente_01" "mm_bravo_01" 0.1282051282051282 "mm_valiente_01" "mm_desafiar_03" 0.1111111111111111 "mm_valiente_01" "mm_atrevido_01" 0.08163265306122448 "mm_valiente_01" "mm_emprendedor_01" 0.07894736842105263 "mm_valiente_01" "mm_temple_04" 0.075 "mm_valiente_01" "mm_animoso_01" 0.06976744186046512 "mm_valiente_01" "mm_dialogador_02" 0.05714285714285714 "mm_valiente_01" "mm_escollo_02" 0.05714285714285714 "mm_valiente_01" "mm_entrador_01" 0.05714285714285714 / 605 "mm_valiente_01" "mm_costear_05" 0.05714285714285714 "mm_valiente_01" "mm_alobar_03" 0.05714285714285714 "mm_valiente_01" "mm_sencillo_07" 0.05555555555555555 "mm_valiente_01" "mm_cogestión_01" 0.05555555555555555 "mm_valiente_01" "mm_dificultador_03" 0.05555555555555555 "mm_valiente_01" "mm_zahorí_01" 0.05555555555555555 "mm_valiente_01" "mm_ejecutivo_04" 0.05555555555555555 "mm_valiente_01" "mm_free-lance_01" 0.05555555555555555 "mm_valiente_01" "mm_hazañoso_01" 0.05555555555555555 "mm_valiente_01" "mm_denuedo_01" 0.05405405405405406 "mm_valiente_01" "mm_encallar_02" 0.05405405405405406 "mm_valiente_01" "mm_lerdo_02" 0.05405405405405406 "mm_valiente_01" "mm_nómina_02" 0.05405405405405406 "mm_valiente_01" "mm_colaborador_05" 0.05405405405405406 "mm_valiente_01" "mm_traspuesta_03" 0.05405405405405406 "mm_valiente_01" "mm_duplicidad_02" 0.05405405405405406 "mm_valiente_01" "mm_atingido_01" 0.05405405405405406 "mm_valiente_01" "mm_capitoste_01" 0.05405405405405406 "mm_valiente_01" "mm_impávido_01" 0.05405405405405406 "mm_valiente_01" "mm_resuelto_01" 0.05405405405405406 "mm_valiente_01" "mm_decidido_01" 0.05263157894736842 "mm_valiente_01" "mm_moral_11" 0.05263157894736842 "mm_valiente_01" "mm_ladrón_03" 0.05263157894736842 / Started streaming 50 records after 2422 ms and completed after 2422 ms 606 "mm_valiente_01" "mm_vigía_02" 0.05263157894736842 "mm_valiente_01" "mm_poder_04" 0.05263157894736842 "mm_valiente_01" "mm_cellenco_01" 0.05263157894736842 "mm_valiente_01" "mm_cerpa_01" 0.05263157894736842 "mm_valiente_01" "mm_miserable_07" 0.05263157894736842 "mm_valiente_01" "mm_aventura_02" 0.05263157894736842 "mm_valiente_01" "mm_armador_01" 0.05128205128205128 "mm_valiente_01" "mm_crisis_04" 0.05128205128205128 "mm_valiente_01" "mm_impenitente_03" 0.05128205128205128 "mm_valiente_01" "mm_correa_07" 0.05128205128205128 "mm_valiente_01" "mm_coraje_01" 0.05128205128205128 "mm_valiente_01" "mm_vacunar_02" 0.05128205128205128 "mm_valiente_01" "mm_tensión_08" 0.05128205128205128 "mm_valiente_01" "mm_contador_05" 0.05128205128205128 "mm_valiente_01" "mm_nómino_01" 0.05128205128205128 "mm_valiente_01" "mm_horror_03" 0.05128205128205128 / Tabla 6: Las 100 palabras más cercanas a “valiente” usando el índice de Jaccard Distancia usando el índice de Jaccard entre el nodo correspondiente a “valiente_01” y los 100 adjetivos (AQ) más próximos a este. ● Consulta en Cypher : MATCH (p1:AQ {termId: "mm_valiente_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:AQ)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 607 from to similarity "mm_valiente_01" "mm_audaz_01" 0.13513513513513514 "mm_valiente_01" "mm_bravo_01" 0.13157894736842105 "mm_valiente_01" "mm_atrevido_01" 0.08163265306122448 "mm_valiente_01" "mm_emprendedor_01" 0.07894736842105263 "mm_valiente_01" "mm_animoso_01" 0.07142857142857142 "mm_valiente_01" "mm_free-lance_01" 0.05714285714285714 "mm_valiente_01" "mm_entrador_01" 0.05714285714285714 "mm_valiente_01" "mm_hazañoso_01" 0.05714285714285714 "mm_valiente_01" "mm_sencillo_07" 0.05555555555555555 "mm_valiente_01" "mm_dificultador_03" 0.05555555555555555 "mm_valiente_01" "mm_impávido_01" 0.05405405405405406 "mm_valiente_01" "mm_atingido_01" 0.05405405405405406 / 608 "mm_valiente_01" "mm_colaborador_05" 0.05405405405405406 "mm_valiente_01" "mm_lerdo_02" 0.05405405405405406 "mm_valiente_01" "mm_cellenco_01" 0.05263157894736842 "mm_valiente_01" "mm_miserable_07" 0.05263157894736842 "mm_valiente_01" "mm_incombustible_02" 0.05128205128205128 "mm_valiente_01" "mm_impenitente_03" 0.05 "mm_valiente_01" "mm_infame_03" 0.05 "mm_valiente_01" "mm_comunicador_02" 0.05 "mm_valiente_01" "mm_nictálope_01" 0.04878048780487805 "mm_valiente_01" "mm_villano_04" 0.04878048780487805 "mm_valiente_01" "mm_creador_03" 0.04878048780487805 "mm_valiente_01" "mm_patojo_01" 0.047619047619047616 "mm_valiente_01" "mm_lúcido_02" 0.047619047619047616 "mm_valiente_01" "mm_peligroso_01" 0.046875 "mm_valiente_01" "mm_intranquilo_01" 0.046511627906976744 "mm_valiente_01" "mm_impertérrito_01" 0.046511627906976744 "mm_valiente_01" "mm_fatigoso_02" 0.044444444444444446 "mm_valiente_01" "mm_abyecto_01" 0.044444444444444446 "mm_valiente_01" "mm_fotográfico_02" 0.041666666666666664 "mm_valiente_01" "mm_pusilánime_01" 0.041666666666666664 "mm_valiente_01" "mm_ruin_01" 0.04081632653061224 "mm_valiente_01" "mm_mezquino_04" 0.03773584905660377 "mm_valiente_01" "mm_innoble_01" 0.03773584905660377 / 609 "mm_valiente_01" "mm_malvado_01" 0.037037037037037035 "mm_valiente_01" "mm_fabricante_01" 0.03636363636363636 "mm_valiente_01" "mm_cobarde_01" 0.03076923076923077 "mm_valiente_01" "mm_repolludo_01" 0.029411764705882353 "mm_valiente_01" "mm_berrinchudo_01" 0.029411764705882353 "mm_valiente_01" "mm_bagual_02" 0.029411764705882353 "mm_valiente_01" "mm_achaparrado_03" 0.029411764705882353 "mm_valiente_01" "mm_trasnochado_03" 0.029411764705882353 "mm_valiente_01" "mm_camicace_02" 0.029411764705882353 "mm_valiente_01" "mm_falible_02" 0.029411764705882353 "mm_valiente_01" "mm_guapote_01" 0.029411764705882353 "mm_valiente_01" "mm_macrobio_02" 0.029411764705882353 "mm_valiente_01" "mm_feróstico_02" 0.029411764705882353 "mm_valiente_01" "mm_riesgoso_01" 0.029411764705882353 "mm_valiente_01" "mm_exagerador_01" 0.029411764705882353 "mm_valiente_01" "mm_empachado_03" 0.029411764705882353 "mm_valiente_01" "mm_abetunado_01" 0.029411764705882353 "mm_valiente_01" "mm_postinero_01" 0.029411764705882353 "mm_valiente_01" "mm_descerrajado_01" 0.029411764705882353 "mm_valiente_01" "mm_desgarrado_02" 0.029411764705882353 "mm_valiente_01" "mm_desgraciado_04" 0.029411764705882353 "mm_valiente_01" "mm_mordedor_02" 0.029411764705882353 "mm_valiente_01" "mm_positivo_11" 0.029411764705882353 / 610 "mm_valiente_01" "mm_camaleónico_01" 0.02857142857142857 "mm_valiente_01" "mm_hebén_02" 0.02857142857142857 "mm_valiente_01" "mm_válido_02" 0.02857142857142857 "mm_valiente_01" "mm_misero_02" 0.02857142857142857 "mm_valiente_01" "mm_imbécil_04" 0.02857142857142857 "mm_valiente_01" "mm_animador_03" 0.02857142857142857 "mm_valiente_01" "mm_hidalgo_04" 0.02857142857142857 "mm_valiente_01" "mm_impuntual_01" 0.02857142857142857 "mm_valiente_01" "mm_calandraco_01" 0.02857142857142857 "mm_valiente_01" "mm_misterioso_02" 0.02857142857142857 "mm_valiente_01" "mm_mercantilista_04" 0.02857142857142857 "mm_valiente_01" "mm_meón_01" 0.02857142857142857 "mm_valiente_01" "mm_menudo_09" 0.02857142857142857 "mm_valiente_01" "mm_hipotenso_01" 0.02857142857142857 "mm_valiente_01" "mm_caballero_01" 0.02857142857142857 "mm_valiente_01" "mm_cabezudo_03" 0.02857142857142857 "mm_valiente_01" "mm_bragado_03" 0.02857142857142857 "mm_valiente_01" "mm_mañoso_01" 0.02857142857142857 "mm_valiente_01" "mm_biplaza_01" 0.02857142857142857 "mm_valiente_01" "mm_zoquete_04" 0.02857142857142857 "mm_valiente_01" "mm_manifestante_01" 0.02857142857142857 "mm_valiente_01" "mm_zarabandista_03" 0.02857142857142857 "mm_valiente_01" "mm_animal_10" 0.02857142857142857 / Started streaming 100 records after 382 ms and completed after 383 ms. 611 "mm_valiente_01" "mm_cacha_06" 0.02857142857142857 "mm_valiente_01" "mm_maldadoso_01" 0.02857142857142857 "mm_valiente_01" "mm_afrontado_01" 0.02857142857142857 "mm_valiente_01" "mm_malhecho_02" 0.02857142857142857 "mm_valiente_01" "mm_hidalgo_03" 0.02857142857142857 "mm_valiente_01" "mm_altruista_01" 0.02857142857142857 "mm_valiente_01" "mm_madrigado_03" 0.02857142857142857 "mm_valiente_01" "mm_altaricón_01" 0.02857142857142857 "mm_valiente_01" "mm_alzado_07" 0.02857142857142857 "mm_valiente_01" "mm_badulaque_05" 0.02857142857142857 "mm_valiente_01" "mm_aguado_02" 0.02857142857142857 "mm_valiente_01" "mm_barbarizante_01" 0.02857142857142857 "mm_valiente_01" "mm_guijarreño_02" 0.02857142857142857 "mm_valiente_01" "mm_acogedor_03" 0.02857142857142857 "mm_valiente_01" "mm_indocumentado_03" 0.02857142857142857 "mm_valiente_01" "mm_avalentado_01" 0.02857142857142857 "mm_valiente_01" "mm_zote_01" 0.02857142857142857 "mm_valiente_01" "mm_avenidor_01" 0.02857142857142857 "mm_valiente_01" "mm_hurgón_01" 0.02857142857142857 / Tabla 7: Los 100 sustantivos más cercanos a “pereza” usando el índice de Jaccard Distancia usando el índice de Jaccard entre el nodo correspondiente a “pereza_01” y los sustantivos (NC) más próximos a este, limitando los resultados a 100. ● Consulta en Cypher : MATCH (p1:NC {termId: "mm_pereza_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:NC)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 612 from to similarity "mm_pereza_01" "mm_abandono_01" 0.08333333333333333 "mm_pereza_01" "mm_desgana_02" 0.07142857142857142 "mm_pereza_01" "mm_dejadez_01" 0.07142857142857142 "mm_pereza_01" "mm_abulia_01" 0.06896551724137931 "mm_pereza_01" "mm_holgazanería_01" 0.06666666666666667 "mm_pereza_01" "mm_desidia_01" 0.06451612903225806 "mm_pereza_01" "mm_marro_03" 0.041666666666666664 "mm_pereza_01" "mm_perecear_01" 0.041666666666666664 "mm_pereza_01" "mm_espurrir_02" 0.041666666666666664 "mm_pereza_01" "mm_changallo_01" 0.041666666666666664 / 613 "mm_pereza_01" "mm_esperezarse_01" 0.041666666666666664 "mm_pereza_01" "mm_echado_02" 0.041666666666666664 "mm_pereza_01" "mm_empoltronecerse_01" 0.041666666666666664 "mm_pereza_01" "mm_inasistencia_01" 0.04 "mm_pereza_01" "mm_desentrenamiento_01" 0.04 "mm_pereza_01" "mm_descoordinación_01" 0.04 "mm_pereza_01" "mm_vaguería_01" 0.04 "mm_pereza_01" "mm_tachoso_01" 0.04 "mm_pereza_01" "mm_vilordo_01" 0.04 "mm_pereza_01" "mm_cargo_08" 0.04 "mm_pereza_01" "mm_desafección_02" 0.04 "mm_pereza_01" "mm_irreprochable_01" 0.04 "mm_pereza_01" "mm_sinvergüencería_01" 0.04 "mm_pereza_01" "mm_soñoliento_01" 0.04 "mm_pereza_01" "mm_tumbón_03" 0.04 "mm_pereza_01" "mm_vagancia_03" 0.04 "mm_pereza_01" "mm_desaseo_01" 0.04 "mm_pereza_01" "mm_desgalichadura_01" 0.04 "mm_pereza_01" "mm_descomedimiento_01" 0.04 "mm_pereza_01" "mm_descontrol_01" 0.04 "mm_pereza_01" "mm_poltrón_01" 0.04 "mm_pereza_01" "mm_insolidaridad_01" 0.04 "mm_pereza_01" "mm_inobediencia_01" 0.04 / 614 "mm_pereza_01" "mm_inurbanidad_01" 0.04 "mm_pereza_01" "mm_rabiar_04" 0.04 "mm_pereza_01" "mm_inhabilidad_01" 0.04 "mm_pereza_01" "mm_infertilidad_01" 0.04 "mm_pereza_01" "mm_inhonestidad_01" 0.04 "mm_pereza_01" "mm_descuido_01" 0.04 "mm_pereza_01" "mm_impericia_01" 0.04 "mm_pereza_01" "mm_extrañar_07" 0.04 "mm_pereza_01" "mm_inoperancia_01" 0.04 "mm_pereza_01" "mm_invertebración_01" 0.04 "mm_pereza_01" "mm_invirtud_02" 0.04 "mm_pereza_01" "mm_desgobierno_01" 0.04 "mm_pereza_01" "mm_gandumbas_01" 0.04 "mm_pereza_01" "mm_inadecuación_01" 0.04 "mm_pereza_01" "mm_sinvergonzonería_01" 0.04 "mm_pereza_01" "mm_socapar_01" 0.04 "mm_pereza_01" "mm_desabor_01" 0.04 "mm_pereza_01" "mm_desabastecimiento_01" 0.04 "mm_pereza_01" "mm_desmesura_01" 0.04 "mm_pereza_01" "mm_desprevención_01" 0.04 "mm_pereza_01" "mm_desapteza_01" 0.04 "mm_pereza_01" "mm_desencuentro_02" 0.04 "mm_pereza_01" "mm_inelegancia_01" 0.04 / 615 "mm_pereza_01" "mm_descariño_01" 0.04 "mm_pereza_01" "mm_impuntualidad_01" 0.04 "mm_pereza_01" "mm_inmadurez_01" 0.04 "mm_pereza_01" "mm_inconsideración_01" 0.04 "mm_pereza_01" "mm_inaplicación_01" 0.04 "mm_pereza_01" "mm_dejativo_01" 0.04 "mm_pereza_01" "mm_afonía_01" 0.04 "mm_pereza_01" "mm_incivismo_01" 0.04 "mm_pereza_01" "mm_indiferenciación_01" 0.04 "mm_pereza_01" "mm_desaplicación_01" 0.04 "mm_pereza_01" "mm_estantío_02" 0.04 "mm_pereza_01" "mm_agalbanado_01" 0.04 "mm_pereza_01" "mm_aganar_01" 0.04 "mm_pereza_01" "mm_inconsecuencia_01" 0.04 "mm_pereza_01" "mm_imprevisión_01" 0.04 "mm_pereza_01" "mm_enatieza_01" 0.04 "mm_pereza_01" "mm_desapostura_01" 0.04 "mm_pereza_01" "mm_indotación_01" 0.04 "mm_pereza_01" "mm_anosmia_01" 0.04 "mm_pereza_01" "mm_inmoderación_01" 0.04 "mm_pereza_01" "mm_desgarbo_01" 0.04 "mm_pereza_01" "mm_informalidad_01" 0.04 "mm_pereza_01" "mm_aplatanar_02" 0.04 / 616 "mm_pereza_01" "mm_secatura_01" 0.04 "mm_pereza_01" "mm_asimetría_01" 0.04 "mm_pereza_01" "mm_arritmia_01" 0.04 "mm_pereza_01" "mm_asincronismo_01" 0.04 "mm_pereza_01" "mm_desarreglo_03" 0.04 "mm_pereza_01" "mm_desinformación_02" 0.04 "mm_pereza_01" "mm_atonía_03" 0.04 "mm_pereza_01" "mm_idiotismo_02" 0.04 "mm_pereza_01" "mm_inutilidad_01" 0.04 "mm_pereza_01" "mm_invirtud_01" 0.04 "mm_pereza_01" "mm_dejamiento_04" 0.038461538461538464 "mm_pereza_01" "mm_debilidad_02" 0.038461538461538464 "mm_pereza_01" "mm_culpable_05" 0.038461538461538464 "mm_pereza_01" "mm_culero_03" 0.038461538461538464 "mm_pereza_01" "mm_cretinismo_02" 0.038461538461538464 "mm_pereza_01" "mm_desgana_01" 0.038461538461538464 "mm_pereza_01" "mm_disimetría_01" 0.038461538461538464 "mm_pereza_01" "mm_inatención_01" 0.038461538461538464 "mm_pereza_01" "mm_desproporción_01" 0.038461538461538464 "mm_pereza_01" "mm_confíteor_02" 0.038461538461538464 "mm_pereza_01" "mm_despego_01" 0.038461538461538464 / Tabla 8: Las 100 palabras más cercanas a “cantar” usando el índice de Jaccard Distancia usando el índice de Jaccard entre el nodo correspondiente a “cantar_01” y las palabras más próximas a este, sin restricción por categoría gramatical. ● Consulta en Cypher : MATCH (p1:V {termId: "mm_cantar_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 617 from to similarity "mm_cantar_01" "mm_canción_01" 0.043478260869565216 "mm_cantar_01" "mm_composición_01" 0.033444816053511704 "mm_cantar_01" "mm_rezar_01" 0.03225806451612903 "mm_cantar_01" "mm_versículo_01" 0.03076923076923077 "mm_cantar_01" "mm_componer_07" 0.030534351145038167 "mm_cantar_01" "mm_popular_01" 0.03007518796992481 "mm_cantar_01" "mm_bailar_01" 0.029585798816568046 "mm_cantar_01" "mm_poético_01" 0.02857142857142857 "mm_cantar_01" "mm_trino_01" 0.024 "mm_cantar_01" "mm_tiroriro_01" 0.024 "mm_cantar_01" "mm_músico_02" 0.023529411764705882 / 618 "mm_cantar_01" "mm_magníficat_01" 0.0234375 "mm_cantar_01" "mm_chillar_01" 0.023255813953488372 "mm_cantar_01" "mm_evangelio_03" 0.023076923076923078 "mm_cantar_01" "mm_chillido_01" 0.022900763358778626 "mm_cantar_01" "mm_hora_06" 0.022388059701492536 "mm_cantar_01" "mm_orlo_01" 0.022222222222222223 "mm_cantar_01" "mm_salmo_01" 0.022058823529411766 "mm_cantar_01" "mm_gorgorito_01" 0.021897810218978103 "mm_cantar_01" "mm_gemir_01" 0.021739130434782608 "mm_cantar_01" "mm_proferir_01" 0.02112676056338028 "mm_cantar_01" "mm_canónico_01" 0.02112676056338028 "mm_cantar_01" "mm_copla_02" 0.020833333333333332 "mm_cantar_01" "mm_difunto_01" 0.02040816326530612 "mm_cantar_01" "mm_tono_01" 0.019704433497536946 "mm_cantar_01" "mm_misa_01" 0.018018018018018018 "mm_cantar_01" "mm_solemne_01" 0.017857142857142856 "mm_cantar_01" "mm_sílaba_01" 0.017699115044247787 "mm_cantar_01" "mm_poesía_01" 0.017543859649122806 "mm_cantar_01" "mm_tocar_01" 0.0163265306122449 "mm_cantar_01" "mm_designar_02" 0.016129032258064516 "mm_cantar_01" "mm_voz_03" 0.016129032258064516 "mm_cantar_01" "mm_dueto_01" 0.016129032258064516 "mm_cantar_01" "mm_son_01" 0.016129032258064516 / 619 "mm_cantar_01" "mm_rozar_12" 0.016 "mm_cantar_01" "mm_chistar_02" 0.016 "mm_cantar_01" "mm_rugido_02" 0.016 "mm_cantar_01" "mm_bilabial_01" 0.016 "mm_cantar_01" "mm_cazo_03" 0.016 "mm_cantar_01" "mm_mosquetón_02" 0.016 "mm_cantar_01" "mm_deletrear_01" 0.016 "mm_cantar_01" "mm_balido_02" 0.016 "mm_cantar_01" "mm_medial_01" 0.016 "mm_cantar_01" "mm_quejido_01" 0.016 "mm_cantar_01" "mm_apócopa_01" 0.016 "mm_cantar_01" "mm_antifonero_01" 0.016 "mm_cantar_01" "mm_mayido_01" 0.016 "mm_cantar_01" "mm_arrullo_02" 0.015873015873015872 "mm_cantar_01" "mm_prótesis_03" 0.015873015873015872 / Tabla 9: Los 100 verbos más cercanos a “cantar” usando el índice de Jaccard Distancia usando el índice de Jaccard entre el nodo correspondiente a “cantar_01” y los 100 verbos más próximos a este. ● Consulta en Cypher : MATCH (p1:V {termId: "mm_cantar_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:V)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 620 from to similarity "mm_cantar_01" "mm_rezar_01" 0.03184713375796178 "mm_cantar_01" "mm_componer_07" 0.03007518796992481 "mm_cantar_01" "mm_bailar_01" 0.029069767441860465 "mm_cantar_01" "mm_chillar_01" 0.022727272727272728 "mm_cantar_01" "mm_gemir_01" 0.02142857142857143 "mm_cantar_01" "mm_proferir_01" 0.02054794520547945 "mm_cantar_01" "mm_tocar_01" 0.01702127659574468 "mm_cantar_01" "mm_designar_02" 0.015873015873015872 "mm_cantar_01" "mm_chistar_02" 0.015748031496062992 "mm_cantar_01" "mm_deletrear_01" 0.015625 "mm_cantar_01" "mm_rozar_12" 0.015503875968992248 / 621 "mm_cantar_01" "mm_rechistar_01" 0.015503875968992248 "mm_cantar_01" "mm_grajear_02" 0.015503875968992248 "mm_cantar_01" "mm_gargantear_01" 0.015503875968992248 "mm_cantar_01" "mm_apoyar_06" 0.015384615384615385 "mm_cantar_01" "mm_ligar_07" 0.015384615384615385 "mm_cantar_01" "mm_bailar_05" 0.015384615384615385 "mm_cantar_01" "mm_trinar_01" 0.015267175572519083 "mm_cantar_01" "mm_apocopar_01" 0.015267175572519083 "mm_cantar_01" "mm_articular_03" 0.015267175572519083 "mm_cantar_01" "mm_cacarear_01" 0.015267175572519083 "mm_cantar_01" "mm_sopuntar_01" 0.015151515151515152 "mm_cantar_01" "mm_ligar_06" 0.015151515151515152 "mm_cantar_01" "mm_sonreír_01" 0.015037593984962405 "mm_cantar_01" "mm_barbotar_01" 0.015037593984962405 "mm_cantar_01" "mm_rebuznar_01" 0.015037593984962405 "mm_cantar_01" "mm_temperar_02" 0.015037593984962405 "mm_cantar_01" "mm_relinchar_01" 0.014925373134328358 "mm_cantar_01" "mm_ajear_01" 0.014925373134328358 "mm_cantar_01" "mm_mugir_01" 0.014925373134328358 "mm_cantar_01" "mm_abreviar_01" 0.014925373134328358 "mm_cantar_01" "mm_ronronear_01" 0.014814814814814815 "mm_cantar_01" "mm_deletrear_02" 0.014814814814814815 "mm_cantar_01" "mm_solfear_01" 0.014705882352941176 / 622 "mm_cantar_01" "mm_arrullar_01" 0.014705882352941176 "mm_cantar_01" "mm_entonar_01" 0.014705882352941176 "mm_cantar_01" "mm_rugir_01" 0.014492753623188406 "mm_cantar_01" "mm_pronunciar_01" 0.014018691588785047 "mm_cantar_01" "mm_acentuar_01" 0.013605442176870748 "mm_cantar_01" "mm_emitir_01" 0.013574660633484163 "mm_cantar_01" "mm_recitar_01" 0.013513513513513514 "mm_cantar_01" "mm_danzar_01" 0.012987012987012988 "mm_cantar_01" "mm_tocar_15" 0.012903225806451613 "mm_cantar_01" "mm_reír_01" 0.012658227848101266 "mm_cantar_01" "mm_hablar_01" 0.011538461538461539 "mm_cantar_01" "mm_soler_02" 0.011406844106463879 "mm_cantar_01" "mm_componer_01" 0.008368200836820083 "mm_cantar_01" "mm_rechiflar_01" 0.007936507936507936 "mm_cantar_01" "mm_salmodiar_01" 0.007936507936507936 "mm_cantar_01" "mm_chuflar_01" 0.007936507936507936 "mm_cantar_01" "mm_chiflar_02" 0.007936507936507936 "mm_cantar_01" "mm_tatarear_01" 0.007936507936507936 "mm_cantar_01" "mm_esdrujulizar_01" 0.007936507936507936 "mm_cantar_01" "mm_vaporear_02" 0.007874015748031496 "mm_cantar_01" "mm_boquear_01" 0.007874015748031496 "mm_cantar_01" "mm_bichofear_01" 0.007874015748031496 "mm_cantar_01" "mm_mascar_02" 0.007874015748031496 / 623 "mm_cantar_01" "mm_reverberar_02" 0.007874015748031496 "mm_cantar_01" "mm_asonar_04" 0.007874015748031496 "mm_cantar_01" "mm_empalicar_01" 0.007874015748031496 "mm_cantar_01" "mm_radiar_01" 0.007874015748031496 "mm_cantar_01" "mm_asonar_03" 0.007874015748031496 "mm_cantar_01" "mm_gorgoritear_01" 0.007874015748031496 "mm_cantar_01" "mm_adjuntar_02" 0.007874015748031496 "mm_cantar_01" "mm_resonar_02" 0.007874015748031496 "mm_cantar_01" "mm_escupir_02" 0.007874015748031496 "mm_cantar_01" "mm_discordar_01" 0.007874015748031496 "mm_cantar_01" "mm_fallir_04" 0.0078125 "mm_cantar_01" "mm_rimar_02" 0.0078125 "mm_cantar_01" "mm_crascitar_01" 0.0078125 "mm_cantar_01" "mm_quemar_04" 0.0078125 "mm_cantar_01" "mm_pluralizar_01" 0.0078125 "mm_cantar_01" "mm_labializar_01" 0.0078125 "mm_cantar_01" "mm_jalear_01" 0.0078125 "mm_cantar_01" "mm_pintar_11" 0.0078125 "mm_cantar_01" "mm_prefijar_02" 0.0078125 "mm_cantar_01" "mm_espinar_03" 0.0078125 "mm_cantar_01" "mm_esdrujulizar_02" 0.0078125 "mm_cantar_01" "mm_debilitar_02" 0.0078125 "mm_cantar_01" "mm_espurrear_01" 0.0078125 / Started streaming 100 records after 628 ms and completed after 628 ms 624 "mm_cantar_01" "mm_palpitar_02" 0.0078125 "mm_cantar_01" "mm_soflamar_03" 0.0078125 "mm_cantar_01" "mm_musitar_01" 0.007751937984496124 "mm_cantar_01" "mm_connotar_02" 0.007751937984496124 "mm_cantar_01" "mm_descontextualizar_01" 0.007751937984496124 "mm_cantar_01" "mm_doblar_02" 0.007751937984496124 "mm_cantar_01" "mm_etimologizar_01" 0.007751937984496124 "mm_cantar_01" "mm_entonar_03" 0.007751937984496124 "mm_cantar_01" "mm_rebosar_03" 0.007751937984496124 "mm_cantar_01" "mm_atiplar_01" 0.007751937984496124 "mm_cantar_01" "mm_fosforecer_01" 0.007751937984496124 "mm_cantar_01" "mm_asibilar_01" 0.007751937984496124 "mm_cantar_01" "mm_parpar_01" 0.007751937984496124 "mm_cantar_01" "mm_armonizar_03" 0.007751937984496124 "mm_cantar_01" "mm_asonantar_01" 0.007751937984496124 "mm_cantar_01" "mm_apianar_01" 0.007751937984496124 "mm_cantar_01" "mm_declinar_05" 0.007751937984496124 "mm_cantar_01" "mm_compasear_01" 0.007751937984496124 "mm_cantar_01" "mm_nasalizar_01" 0.007751937984496124 "mm_cantar_01" "mm_embudar_01" 0.007751937984496124 / Tabla 10: Las 100 palabras más cercanas a “hombre” usando el índice de Jaccard En la siguiente tabla se muestra el listado con las 100 palabras más próximas al nodo relativo a “hombre_01” usando el algoritmo de Jaccard, sin restricción por categoría gramatical. ● Consulta en Cypher : MATCH (p1:NC{termId: "mm_hombre_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 625 from to similarity "mm_hombre_01" "mm_cuidar_01" 0.03112449799196787 "mm_hombre_01" "mm_vender_01" 0.02662490211433046 "mm_hombre_01" "mm_animal_03" 0.02047082906857728 "mm_hombre_01" "mm_oficio_01" 0.017873941674506115 "mm_hombre_01" "mm_dedicar_01" 0.015107913669064749 "mm_hombre_01" "mm_encargado_01" 0.014611872146118721 "mm_hombre_01" "mm_trabajar_01" 0.013270142180094787 "mm_hombre_01" "mm_torpe_01" 0.01279317697228145 "mm_hombre_01" "mm_despreciable_01" 0.012269938650306749 "mm_hombre_01" "mm_conducir_01" 0.012195121951219513 "mm_hombre_01" "mm_manejar_01" 0.011940298507462687 "mm_hombre_01" "mm_tosco_01" 0.011554621848739496 / 626 "mm_hombre_01" "mm_astuto_01" 0.01134020618556701 "mm_hombre_01" "mm_afeminado_01" 0.010752688172043012 "mm_hombre_01" "mm_traje_01" 0.010101010101010102 "mm_hombre_01" "mm_caballo_01" 0.010007698229407237 "mm_hombre_01" "mm_guiar_01" 0.00932642487046632 "mm_hombre_01" "mm_alto_23" 0.008724100327153763 "mm_hombre_01" "mm_insignificante_01" 0.008629989212513484 "mm_hombre_01" "mm_cargo_01" 0.008620689655172414 "mm_hombre_01" "mm_homosexual_01" 0.008592910848549946 "mm_hombre_01" "mm_nombre_01" 0.008382642998027613 "mm_hombre_01" "mm_procesión_01" 0.007407407407407408 "mm_hombre_01" "mm_trabajo_01" 0.007281553398058253 "mm_hombre_01" "mm_res_01" 0.007067137809187279 "mm_hombre_01" "mm_cazar_01" 0.006979062811565304 "mm_hombre_01" "mm_caballería_01" 0.006910850034554251 "mm_hombre_01" "mm_calle_01" 0.006704980842911878 "mm_hombre_01" "mm_vivir_01" 0.006661732050333087 "mm_hombre_01" "mm_mamífero_01" 0.006617038875103391 "mm_hombre_01" "mm_fuelle_01" 0.0064516129032258064 "mm_hombre_01" "mm_transportar_01" 0.006422018348623854 "mm_hombre_01" "mm_divinidad_01" 0.006417112299465241 "mm_hombre_01" "mm_ignorante_01" 0.0064034151547491995 "mm_hombre_01" "mm_cobarde_01" 0.006382978723404255 / 627 "mm_hombre_01" "mm_campo_01" 0.006379585326953748 "mm_hombre_01" "mm_rústico_01" 0.006224066390041493 "mm_hombre_01" "mm_servir_01" 0.006196377502383222 "mm_hombre_01" "mm_abrigo_01" 0.006191950464396285 "mm_hombre_01" "mm_recibir_01" 0.006183745583038869 "mm_hombre_01" "mm_tonto_01" 0.006166495375128468 "mm_hombre_01" "mm_aplicado_01" 0.006035578144853875 "mm_hombre_01" "mm_caza_01" 0.006 "mm_hombre_01" "mm_órgano_01" 0.0059931506849315065 "mm_hombre_01" "mm_figura_01" 0.005847953216374269 "mm_hombre_01" "mm_enfermedad_01" 0.005625879043600563 "mm_hombre_01" "mm_tela_01" 0.005625 "mm_hombre_01" "mm_cerdo_01" 0.005555555555555556 "mm_hombre_01" "mm_parte_01" 0.005544683626875407 "mm_hombre_01" "mm_antiguo_01" 0.005544005544005544 "mm_hombre_01" "mm_prenda_01" 0.005529225908372828 "mm_hombre_01" "mm_manga_18" 0.0054288816503800215 "mm_hombre_01" "mm_desgarbado_01" 0.0053705692803437165 "mm_hombre_01" "mm_esclavina_01" 0.0053590568060021436 "mm_hombre_01" "mm_presumido_01" 0.0053533190578158455 "mm_hombre_01" "mm_estatura_01" 0.005336179295624333 "mm_hombre_01" "mm_carácter_01" 0.005319148936170213 "mm_hombre_01" "mm_conjunto_05" 0.005219985085756898 / 628 "mm_hombre_01" "mm_muslo_01" 0.005219206680584551 "mm_hombre_01" "mm_compañía_01" 0.005202913631633715 "mm_hombre_01" "mm_obra_01" 0.005189028910303929 "mm_hombre_01" "mm_filosófico_01" 0.005170630816959669 "mm_hombre_01" "mm_prostituto_01" 0.0050968399592252805 "mm_hombre_01" "mm_sagrado_01" 0.0050968399592252805 "mm_hombre_01" "mm_muchacho_01" 0.00508646998982706 "mm_hombre_01" "mm_aspecto_01" 0.005065123010130246 "mm_hombre_01" "mm_cuidado_01" 0.005030181086519115 "mm_hombre_01" "mm_tomar_01" 0.004966887417218543 "mm_hombre_01" "mm_dirigir_01" 0.00495458298926507 "mm_hombre_01" "mm_carne_01" 0.00494641384995878 "mm_hombre_01" "mm_rey_01" 0.004935834155972359 "mm_hombre_01" "mm_usado_01" 0.004892966360856269 "mm_hombre_01" "mm_tocar_01" 0.004835589941972921 "mm_hombre_01" "mm_vez_01" 0.004761904761904762 "mm_hombre_01" "mm_hueso_01" 0.004591368227731864 "mm_hombre_01" "mm_arma_01" 0.004468275245755138 "mm_hombre_01" "mm_lana_01" 0.0044286979627989375 "mm_hombre_01" "mm_doma_01" 0.004371584699453552 "mm_hombre_01" "mm_físico_01" 0.004370629370629371 "mm_hombre_01" "mm_carpo_01" 0.004333694474539545 "mm_hombre_01" "mm_fragua_01" 0.004329004329004329 / 629 "mm_hombre_01" "mm_cazurro_01" 0.004324324324324324 "mm_hombre_01" "mm_torácico_01" 0.004319654427645789 "mm_hombre_01" "mm_brutal_01" 0.004310344827586207 "mm_hombre_01" "mm_clase_01" 0.004297994269340974 "mm_hombre_01" "mm_producir_01" 0.004273504273504274 "mm_hombre_01" "mm_frecuentar_01" 0.00425531914893617 "mm_hombre_01" "mm_extremidad_02" 0.004246284501061571 "mm_hombre_01" "mm_elefante_01" 0.004246284501061571 "mm_hombre_01" "mm_lobo_01" 0.0042417815482502655 "mm_hombre_01" "mm_soldado_01" 0.004230118443316413 "mm_hombre_01" "mm_corpulento_01" 0.004228329809725159 "mm_hombre_01" "mm_flaco_01" 0.004223864836325237 "mm_hombre_01" "mm_romano_01" 0.004208754208754209 "mm_hombre_01" "mm_obedecer_01" 0.0041797283176593526 "mm_hombre_01" "mm_vigilar_01" 0.004171011470281543 "mm_hombre_01" "mm_inferior_01" 0.004170141784820684 "mm_hombre_01" "mm_cuerpo_02" 0.004162330905306972 "mm_hombre_01" "mm_arreglar_01" 0.0041279669762641896 / Tabla 11: Las 100 palabras más cercanas a “mujer” usando el índice de Jaccard En la siguiente tabla se muestra el listado con las 100 palabras más próximas al nodo relativo a “mujer_01” usando el algoritmo de Jaccard, sin restricción por categoría gramatical. ● Consulta en Cypher : MATCH (p1:NC{termId: "mm_mujer_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.jaccard(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 630 from to similarity "mm_mujer_01" "mm_hombre_02" 0.16416040100250626 "mm_mujer_01" "mm_adorno_01" 0.03675213675213675 "mm_mujer_01" "mm_vestido_04" 0.03272727272727273 "mm_mujer_01" "mm_sexual_01" 0.027233115468409588 "mm_mujer_01" "mm_pecho_04" 0.023809523809523808 "mm_mujer_01" "mm_marido_01" 0.022388059701492536 "mm_mujer_01" "mm_niño_01" 0.022222222222222223 "mm_mujer_01" "mm_prenda_01" 0.020335985853227233 "mm_mujer_01" "mm_falda_04" 0.0186799501867995 "mm_mujer_01" "mm_casado_01" 0.018427518427518427 "mm_mujer_01" "mm_cabeza_01" 0.018272425249169437 "mm_mujer_01" "mm_prostituto_01" 0.016412661195779603 / 631 "mm_mujer_01" "mm_cintura_01" 0.015330188679245283 "mm_mujer_01" "mm_usado_01" 0.014647137150466045 "mm_mujer_01" "mm_casa_01" 0.014427412082957619 "mm_mujer_01" "mm_tela_01" 0.014295439074200136 "mm_mujer_01" "mm_dedicar_01" 0.0141287284144427 "mm_mujer_01" "mm_galantear_01" 0.01371571072319202 "mm_mujer_01" "mm_respecto_01" 0.0136986301369863 "mm_mujer_01" "mm_casar_01" 0.012150668286755772 "mm_mujer_01" "mm_hombro_01" 0.011682242990654205 "mm_mujer_01" "mm_vivir_01" 0.011409942950285249 "mm_mujer_01" "mm_vez_01" 0.011363636363636364 "mm_mujer_01" "mm_parir_01" 0.011056511056511056 "mm_mujer_01" "mm_manto_01" 0.01098901098901099 "mm_mujer_01" "mm_aplicado_01" 0.010945273631840797 "mm_mujer_01" "mm_vida_01" 0.01065891472868217 "mm_mujer_01" "mm_musulmán_01" 0.010309278350515464 "mm_mujer_01" "mm_callejero_02" 0.009987515605493134 "mm_mujer_01" "mm_virgen_01" 0.00997506234413965 "mm_mujer_01" "mm_infiel_01" 0.009950248756218905 "mm_mujer_01" "mm_descarado_01" 0.009732360097323601 "mm_mujer_01" "mm_interior_01" 0.00922722029988466 "mm_mujer_01" "mm_cortejar_01" 0.008728179551122194 "mm_mujer_01" "mm_relación_01" 0.008555133079847909 / 632 "mm_mujer_01" "mm_hijo_05" 0.00849514563106796 "mm_mujer_01" "mm_cara_01" 0.008490566037735849 "mm_mujer_01" "mm_propio_01" 0.008455034588777863 "mm_mujer_01" "mm_pareja_01" 0.00842358604091456 "mm_mujer_01" "mm_afeitar_01" 0.008393285371702638 "mm_mujer_01" "mm_belleza_01" 0.008177570093457943 "mm_mujer_01" "mm_traje_01" 0.008009153318077803 "mm_mujer_01" "mm_carácter_01" 0.007944389275074478 "mm_mujer_01" "mm_aspecto_01" 0.007936507936507936 "mm_mujer_01" "mm_relación_03" 0.007891770011273957 "mm_mujer_01" "mm_hembra_01" 0.007760532150776054 "mm_mujer_01" "mm_embarazado_02" 0.007518796992481203 "mm_mujer_01" "mm_especie_01" 0.007495315427857589 "mm_mujer_01" "mm_alegre_03" 0.00749063670411985 "mm_mujer_01" "mm_dote_01" 0.007444168734491315 "mm_mujer_01" "mm_nombre_01" 0.007322175732217573 "mm_mujer_01" "mm_corto_01" 0.0073059360730593605 "mm_mujer_01" "mm_atractivo_01" 0.007290400972053463 "mm_mujer_01" "mm_encaje_01" 0.007255139056831923 "mm_mujer_01" "mm_cubrir_11" 0.007159904534606206 "mm_mujer_01" "mm_matrimonio_01" 0.007159904534606206 "mm_mujer_01" "mm_abrigo_01" 0.007058823529411765 "mm_mujer_01" "mm_monje_01" 0.0069767441860465115 / 633 "mm_mujer_01" "mm_convento_01" 0.006857142857142857 "mm_mujer_01" "mm_espalda_01" 0.006825938566552901 "mm_mujer_01" "mm_cierto_01" 0.00681044267877412 "mm_mujer_01" "mm_edad_01" 0.00681044267877412 "mm_mujer_01" "mm_público_01" 0.006782945736434108 "mm_mujer_01" "mm_ropa_01" 0.00674373795761079 "mm_mujer_01" "mm_cinta_01" 0.006734006734006734 "mm_mujer_01" "mm_pueblo_01" 0.006386861313868613 "mm_mujer_01" "mm_seguir_03" 0.006273525721455458 "mm_mujer_01" "mm_vida_11" 0.006273525721455458 "mm_mujer_01" "mm_enamorar_02" 0.006242197253433208 "mm_mujer_01" "mm_cofia_01" 0.006211180124223602 "mm_mujer_01" "mm_guapo_03" 0.00620347394540943 "mm_mujer_01" "mm_licencioso_01" 0.006172839506172839 "mm_mujer_01" "mm_peinado_01" 0.006157635467980296 "mm_mujer_01" "mm_desenvolver_01" 0.006127450980392157 "mm_mujer_01" "mm_femenino_03" 0.006097560975609756 "mm_mujer_01" "mm_útero_01" 0.006082725060827251 "mm_mujer_01" "mm_montar_02" 0.006060606060606061 "mm_mujer_01" "mm_parto_01" 0.006045949214026602 "mm_mujer_01" "mm_rostro_01" 0.006038647342995169 "mm_mujer_01" "mm_general_05" 0.006036217303822937 "mm_mujer_01" "mm_siglo_01" 0.005970149253731343 / 634 "mm_mujer_01" "mm_amoroso_01" 0.0059665871121718375 "mm_mujer_01" "mm_tratar_01" 0.005928853754940711 "mm_mujer_01" "mm_camisa_01" 0.005924170616113744 "mm_mujer_01" "mm_falda_01" 0.005813953488372093 "mm_mujer_01" "mm_actitud_01" 0.005789909015715467 "mm_mujer_01" "mm_cuerpo_03" 0.005753739930955121 "mm_mujer_01" "mm_mal_01" 0.0056179775280898875 "mm_mujer_01" "mm_malo_15" 0.005605381165919282 "mm_mujer_01" "mm_sombrero_01" 0.005574136008918618 "mm_mujer_01" "mm_cuerpo_01" 0.005494505494505495 "mm_mujer_01" "mm_aficionado_01" 0.0054288816503800215 "mm_mujer_01" "mm_calzado_01" 0.005376344086021506 "mm_mujer_01" "mm_leche_01" 0.0053533190578158455 "mm_mujer_01" "mm_persona_01" 0.0052877138413685845 "mm_mujer_01" "mm_recoger_01" 0.005268703898840885 "mm_mujer_01" "mm_oficio_01" 0.005219206680584551 "mm_mujer_01" "mm_sangre_01" 0.005202913631633715 "mm_mujer_01" "mm_cuerpo_07" 0.0051387461459403904 "mm_mujer_01" "mm_cuello_01" 0.005112474437627812 / Tabla 12: 100 pares de sustantivos con un valor a partir de 0,06 en la relación “SIMILAR” En la siguiente tabla se muestra el listado de 100 pares de sustantivos con la relación “SIMILAR” según el filtro mínimo de construcción, a partir del algoritmo de Jaccard, ordenados de manera creciente a partir del valor de la propiedad “score”. ● Consulta en Cypher : MATCH (p1:NC)-[r:SIMILAR]->(s1) return p1.termId, s1.termId, r.score order by r.score limit 100 635 p1.termId s1.termId r.score "mm_tonada_02" "mm_batán_05" 0.06666666666666667 "mm_artillero_02" "mm_cuerpo_11" 0.07142857142857142 "mm_soniquete_01" "mm_batán_05" 0.07142857142857142 "mm_portaviandas_01" "mm_fiambrera_01" 0.07142857142857142 "mm_dentellón_03" "mm_petromizontiforme_01" 0.07142857142857142 "mm_dentelete_01" "mm_petromizontiforme_01" 0.07142857142857142 "mm_fotuto_01" "mm_chipendal_01" 0.07692307692307693 "mm_ozona_01" "mm_ozonómetro_01" 0.07692307692307693 "mm_amelcochado_01" "mm_rubia_03" 0.07692307692307693 "mm_moradux_02" "mm_santaláceo_01" 0.07692307692307693 "mm_máser_01" "mm_transistor_01" 0.07692307692307693 "mm_aserradura_02" "mm_carbonita_02" 0.08333333333333333 "mm_chapetonada_02" "mm_carpeta_07" 0.08333333333333333 "mm_opopónace_01" "mm_opopánax_01" 0.08333333333333333 "mm_chisquero_02" "mm_pedernal_01" 0.08333333333333333 / 636 "mm_aserrín_01" "mm_carbonita_02" 0.08333333333333333 "mm_opopónace_01" "mm_opopónaco_01" 0.08333333333333333 "mm_alitruje_01" "mm_gatillo_03" 0.09090909090909091 "mm_dulcedumbre_01" "mm_sirena_01" 0.09090909090909091 "mm_putada_01" "mm_duende_02" 0.09090909090909091 "mm_pardal_05" "mm_okapi_01" 0.09090909090909091 "mm_amomo_01" "mm_zingiberáceo_01" 0.09090909090909091 "mm_pinza_03" "mm_gatillo_03" 0.09090909090909091 "mm_crisantema_01" "mm_compuesto_06" 0.09090909090909091 "mm_dadá_03" "mm_ultraísmo_01" 0.09090909090909091 "mm_miel_03" "mm_sirena_01" 0.09090909090909091 "mm_azorafa_01" "mm_okapi_01" 0.09090909090909091 "mm_estacado_01" "mm_palo_12" 0.09090909090909091 "mm_encebro_01" "mm_okapi_01" 0.09090909090909091 "mm_sordino_01" "mm_duende_02" 0.09523809523809523 "mm_nacimiento_03" "mm_abrigo_04" 0.1 "mm_puntillismo_01" "mm_vía_05" 0.1 "mm_lavijero_01" "mm_ceja_04" 0.1 "mm_nacimiento_03" "mm_segmentado_01" 0.1 "mm_puntillismo_01" "mm_zarracina_01" 0.1 "mm_presbiterianismo_01" "mm_andola_01" 0.1 "mm_adiposis_01" "mm_tiroidina_01" 0.1 "mm_detente_01" "mm_grano_07" 0.1 / 637 "mm_ponedor_04" "mm_torno_09" 0.1 "mm_acordeón_01" "mm_mitón_01" 0.1 "mm_composición_08" "mm_acrecencia_02" 0.1 "mm_platáneo_01" "mm_plátano_01" 0.1 "mm_chanca_07" "mm_mandíbula_01" 0.1 "mm_mandrágula_01" "mm_alrún_01" 0.1 "mm_acordeón_01" "mm_banda_11" 0.1 "mm_polisarcia_01" "mm_tiroidina_01" 0.1 "mm_detente_01" "mm_granatín_01" 0.1 "mm_trígono_03" "mm_horario_02" 0.1 "mm_chilco_01" "mm_onagráceo_01" 0.1 "mm_dadaísmo_01" "mm_gurisa_02" 0.1 "mm_trígono_03" "mm_callana_04" 0.1 "mm_contrabolina_01" "mm_poa_01" 0.1 "mm_sordino_01" "mm_empalomadura_01" 0.1 "mm_laxativo_01" "mm_agar-agar_01" 0.1 "mm_torno_09" "mm_violario_02" 0.1 "mm_cretino_01" "mm_tiroidina_01" 0.1 "mm_religión_03" "mm_misión_04" 0.1 "mm_rondiz_01" "mm_ping-pong_01" 0.1 "mm_enoteráceo_01" "mm_fucsia_01" 0.1 "mm_laxativo_01" "mm_agaragar_01" 0.1 "mm_espadrapo_01" "mm_tafetán_03" 0.1 / 638 "mm_rondís_01" "mm_ping-pong_01" 0.1 "mm_perrillo_03" "mm_marbete_02" 0.10526315789473684 "mm_sustancia_02" "mm_alquitrán_01" 0.10526315789473684 "mm_sustancia_02" "mm_intercadencia_01" 0.10526315789473684 "mm_cremallera_02" "mm_hervor_01" 0.10526315789473684 "mm_kiosco_01" "mm_templete_01" 0.1111111111111111 "mm_encausto_02" "mm_abalorio_01" 0.1111111111111111 "mm_gramola_01" "mm_agavilladora_01" 0.1111111111111111 "mm_proíz_01" "mm_bolardo_01" 0.1111111111111111 "mm_asclepiadeo_02" "mm_mudar_01" 0.1111111111111111 "mm_novador_01" "mm_vanguardismo_01" 0.1111111111111111 "mm_zepelín_01" "mm_aerostación_01" 0.1111111111111111 "mm_zepelín_01" "mm_aeronave_02" 0.1111111111111111 "mm_antifeminista_01" "mm_babismo_01" 0.1111111111111111 "mm_entremés_01" "mm_vuelta_28" 0.1111111111111111 "mm_proclama_01" "mm_estrado_06" 0.1111111111111111 "mm_detersorio_01" "mm_amole_01" 0.1111111111111111 "mm_jenízaro_02" "mm_albarazado_02" 0.1111111111111111 "mm_neocapitalismo_01" "mm_innovador_01" 0.1111111111111111 "mm_detersivo_01" "mm_amole_01" 0.1111111111111111 "mm_póstula_01" "mm_maya_05" 0.1111111111111111 "mm_entremés_01" "mm_hinojo_01" 0.1111111111111111 "mm_escollera_01" "mm_idea_09" 0.1111111111111111 / 639 "mm_descrecimiento_01" "mm_correlación_01" 0.1111111111111111 "mm_voltio_02" "mm_pelliza_02" 0.1111111111111111 "mm_bolardo_01" "mm_alfinde_01" 0.1111111111111111 "mm_abotonadura_01" "mm_lazo_12" 0.1111111111111111 "mm_neis_01" "mm_cerita_01" 0.1111111111111111 "mm_polipodio_01" "mm_verdemontaña_01" 0.1111111111111111 "mm_chapul_01" "mm_odonato_01" 0.1111111111111111 "mm_batallola_01" "mm_empavesada_03" 0.1111111111111111 "mm_alto_14" "mm_cuarteto_02" 0.1111111111111111 "mm_descrecencia_01" "mm_correlación_01" 0.1111111111111111 "mm_chaquet_01" "mm_frac_01" 0.1111111111111111 "mm_obscurecimiento_01" "mm_pelagra_01" 0.1111111111111111 "mm_quietismo_01" "mm_equilibrio_01" 0.1111111111111111 "mm_contractibilidad_01" "mm_catalepsia_01" 0.1111111111111111 "mm_cornucopia_02" "mm_garrucha_01" 0.1111111111111111 / Tabla 13: 100 pares de palabras con un valor a partir de 0,6 en la relación “SIMILAR” En la siguiente tabla se muestra el listado con los 100 pares de palabras, estableciendo un filtro con el valor de 0,6 en la propiedad “score”de la relación “SIMILAR”, construida usando el algoritmo de Jaccard. ● Consulta en Cypher : MATCH (p1)-[r:SIMILAR{score:0,6}]->(s1) return p1.termId, s1.termId,r.score limit 100 640 p1.termId s1.termId r.score "mm_abancalar_01" "mm_capuera_01" 0.6 "mm_abatir_07" "mm_ceder_04" 0.6 "mm_abejorrear_01" "mm_abejorreo_01" 0.6 "mm_abejorreo_01" "mm_abejorrear_01" 0.6 "mm_abinar_01" "mm_binar_01" 0.6 "mm_abizcochado_01" "mm_hueco_01" 0.6 "mm_abobra_01" "mm_canario_05" 0.6 "mm_abonar_04" "mm_pago_02" 0.6 "mm_absceso_01" "mm_empiema_01" 0.6 "mm_absorciómetro_01" "mm_gasear_01" 0.6 "mm_abundar_03" "mm_aferrar_03" 0.6 "mm_acachetar_01" "mm_apuntillar_01" 0.6 "mm_acallar_01" "mm_alborotar_03" 0.6 "mm_acantáceo_01" "mm_geraniáceo_01" 0.6 "mm_acceso_01" "mm_llevar_04" 0.6 "mm_aceche_01" "mm_caparrosa_01" 0.6 "mm_acederón_01" "mm_acederilla_01" 0.6 "mm_aceitero_02" "mm_botonero_01" 0.6 / 641 "mm_acemita_01" "mm_mogolla_01" 0.6 "mm_acequiero_01" "mm_zabacequia_01" 0.6 "mm_acertar_02" "mm_desarrollar_08" 0.6 "mm_acetato_01" "mm_acrilato_01" 0.6 "mm_achinelado_01" "mm_apantuflado_01" 0.6 "mm_acilo_01" "mm_carboxilo_01" 0.6 "mm_aclarar_01" "mm_aguzado_01" 0.6 "mm_acogedor_01" "mm_halagador_01" 0.6 "mm_acojonar_02" "mm_impactante_01" 0.6 "mm_acolchar_01" "mm_fuerza_08" 0.6 "mm_acometividad_02" "mm_ímpetu_02" 0.6 "mm_acomodar_01" "mm_situar_01" 0.6 "mm_acomodar_02" "mm_señal_02" 0.6 "mm_acomodaticio_01" "mm_amaño_02" 0.6 "mm_acompañamiento_02" "mm_caterva_01" 0.6 "mm_aconsonantar_01" "mm_consonante_02" 0.6 "mm_acortar_02" "mm_levantar_09" 0.6 "mm_acotar_05" "mm_descartar_01" 0.6 "mm_acribillar_02" "mm_colección_02" 0.6 "mm_acrilato_01" "mm_acetato_01" 0.6 "mm_acrídido_01" "mm_caballeta_01" 0.6 "mm_actinómetro_01" "mm_radiómetro_03" 0.6 "mm_acudiciarse_01" "mm_alampar_02" 0.6 "mm_acudir_02" "mm_ocupar_11" 0.6 "mm_acuse_02" "mm_descartar_02" 0.6 "mm_adamascado_01" "mm_adamascar_01" 0.6 "mm_adenina_01" "mm_purina_01" 0.6 "mm_aderezar_01" "mm_conrear_01" 0.6 / 642 "mm_aderezar_05" "mm_emperejilar_01" 0.6 "mm_adhesión_03" "mm_gravedad_02" 0.6 "mm_adosar_01" "mm_apoyadero_01" 0.6 "mm_adquirir_01" "mm_probar_06" 0.6 "mm_adrar_01" "mm_alema_01" 0.6 "mm_aerobiosis_01" "mm_anaerobiosis_01" 0.6 "mm_aerodinámica_01" "mm_cinético_02" 0.6 "mm_aerotecnia_01" "mm_eriotecnia_01" 0.6 "mm_afelio_01" "mm_perihelio_01" 0.6 "mm_aferrar_03" "mm_abundar_03" 0.6 "mm_afligir_01" "mm_duro_03" 0.6 "mm_afollado_01" "mm_plegamiento_01" 0.6 "mm_aféresis_01" "mm_apócopa_01" 0.6 "mm_agapanto_01" "mm_cañutillo_04" 0.6 "mm_agitanar_01" "mm_pergeño_01" 0.6 "mm_agonía_06" "mm_consumido_05" 0.6 "mm_agostar_01" "mm_ahornagarse_01" 0.6 "mm_agosto_01" "mm_abril_01" 0.6 "mm_agrión_01" "mm_alifafe_02" 0.6 "mm_aguachar_02" "mm_aguachinar_02" 0.6 "mm_aguachinar_02" "mm_aguachar_02" 0.6 "mm_aguzado_01" "mm_aclarar_01" 0.6 "mm_ahacado_01" "mm_faca_02" 0.6 "mm_ahelear_01" "mm_alquitarar_01" 0.6 "mm_ahijar_02" "mm_atona_01" 0.6 "mm_ahitar_01" "mm_alinderar_01" 0.6 "mm_ahogo_01" "mm_congoja_01" 0.6 "mm_ahornagarse_01" "mm_agostar_01" 0.6 / Started streaming 100 records after 2 ms and completed after 12 ms. 643 "mm_ahorrar_04" "mm_molestar_05" 0.6 "mm_ahuesarse_02" "mm_desvalorizar_01" 0.6 "mm_aire_10" "mm_judía_03" 0.6 "mm_aislar_03" "mm_huraño_01" 0.6 "mm_ajeno_03" "mm_boyante_03" 0.6 "mm_ajo_01" "mm_puerro_01" 0.6 "mm_ajustar_02" "mm_asonancia_03" 0.6 "mm_alagartarse_01" "mm_cuadrúpedo_01" 0.6 "mm_alahílca_01" "mm_colgar_09" 0.6 "mm_alar_03" "mm_cerda_02" 0.6 "mm_alargar_06" "mm_apurrir_01" 0.6 "mm_alatón_01" "mm_aligonero_01" 0.6 "mm_albada_01" "mm_intermezzo_03" 0.6 "mm_alborotado_01" "mm_boyante_03" 0.6 "mm_alborotar_03" "mm_acallar_01" 0.6 "mm_albricias_01" "mm_portanuevas_01" 0.6 "mm_albudeca_01" "mm_badea_01" 0.6 "mm_alcanzar_08" "mm_dejar_08" 0.6 "mm_alcolla_01" "mm_chuico_01" 0.6 "mm_alegría_04" "mm_brillantez_01" 0.6 "mm_alema_01" "mm_adrar_01" 0.6 "mm_alergólogo_01" "mm_frenópata_01" 0.6 "mm_alfarda_02" "mm_alfardón_01" 0.6 "mm_alfardilla_03" "mm_orifrés_01" 0.6 "mm_alfardón_01" "mm_alfarda_02" 0.6 / Tabla 14: 100 pares de palabras con un valor de 1.0 en la relación “SIMILAR” En la siguiente tabla se muestra el listado con los 100 pares de palabras (aleatorias y en orden alfabético) con un valor de 1.0 en la propiedad de la relación “SIMILAR” construida usando el algoritmo de Jaccard. ● Consulta en Cypher : MATCH (p1:NC)-[r:SIMILAR{score:1}]->(s1) return p1.termId, s1.termId,r.score limit 100 644 from to distance "mm_a_01" "mm_ípsilon_01" 1.0 "mm_a_01" "mm_y_01" 1.0 "mm_a_02" "mm_vocabulario_01" 1.0 "mm_aaronita_01" "mm_amalecita_01" 1.0 "mm_aaronita_01" "mm_amalecita_01" 1.0 "mm_aaronita_01" "mm_amalequita_01" 1.0 "mm_aba_01" "mm_abanico_07" 1.0 "mm_ababa_01" "mm_ababol_01" 1.0 "mm_ababa_01" "mm_camelia_02" 1.0 "mm_ababol_01" "mm_camelia_02" 1.0 "mm_ababol_01" "mm_ababa_01" 1.0 "mm_abacería_01" "mm_aduanilla_01" 1.0 "mm_abacería_01" "mm_mantequería_02" 1.0 "mm_abad_01" "mm_viceprovincial_02" 1.0 "mm_abada_01" "mm_bada_01" 1.0 / 645 "mm_abada_01" "mm_unicornio_02" 1.0 "mm_abadejo_02" "mm_castañeta_05" 1.0 "mm_abadejo_02" "mm_avica_01" 1.0 "mm_abadejo_03" "mm_matahombres_01" 1.0 "mm_abadejo_03" "mm_cubillo_03" 1.0 "mm_abadesa_01" "mm_asistenta_04" 1.0 "mm_abadesa_01" "mm_prelada_01" 1.0 "mm_abadiado_01" "mm_abadiato_01" 1.0 "mm_abadiato_01" "mm_abadiado_01" 1.0 "mm_abadí_01" "mm_alicaído_01" 1.0 "mm_abadí_01" "mm_amirí_01" 1.0 "mm_abadí_01" "mm_guacharrada_01" 1.0 "mm_abajadero_01" "mm_caída_02" 1.0 "mm_abajadero_01" "mm_ñanga_01" 1.0 "mm_abajadero_01" "mm_guadal_01" 1.0 "mm_abajamiento_01" "mm_abarrancamiento_01" 1.0 "mm_abajamiento_01" "mm_abarquillamiento_01" 1.0 "mm_abajeño_01" "mm_vierteaguas_01" 1.0 "mm_abajeño_01" "mm_hipocalórico_01" 1.0 "mm_abajeño_01" "mm_inferior_01" 1.0 "mm_abajeño_03" "mm_montañés_03" 1.0 "mm_abajeño_03" "mm_bretón_01" 1.0 "mm_abaleo_02" "mm_abarredera_01" 1.0 / 646 "mm_abaleo_02" "mm_pichanga_01" 1.0 "mm_abaleo_03" "mm_abanderamiento_01" 1.0 "mm_abaleo_03" "mm_abandono_01" 1.0 "mm_abalorio_01" "mm_vidro_01" 1.0 "mm_abanderado_01" "mm_vergelero_01" 1.0 "mm_abanderado_02" "mm_grefier_02" 1.0 "mm_abanderamiento_01" "mm_abandono_01" 1.0 "mm_abanderamiento_01" "mm_abaleo_03" 1.0 "mm_abandonismo_01" "mm_hostilidad_02" 1.0 "mm_abandonismo_01" "mm_impenetrabilidad_02" 1.0 "mm_abandono_01" "mm_abaleo_03" 1.0 "mm_abandono_01" "mm_abanderamiento_01" 1.0 "mm_abanicazo_02" "mm_zurrapelo_01" 1.0 "mm_abanico_01" "mm_arandela_09" 1.0 "mm_abanico_03" "mm_acumulación_02" 1.0 "mm_abanico_03" "mm_grupo_02" 1.0 "mm_abanico_04" "mm_académico_02" 1.0 "mm_abanico_07" "mm_aba_01" 1.0 "mm_abanico_08" "mm_árgana_01" 1.0 "mm_abano_01" "mm_guía_19" 1.0 "mm_abano_01" "mm_perantón_02" 1.0 "mm_abanto_04" "mm_cascabel_04" 1.0 "mm_abanto_04" "mm_saltaparedes_01" 1.0 / 647 "mm_abaratamiento_01" "mm_abaleo_03" 1.0 "mm_abaratamiento_01" "mm_abanderamiento_01" 1.0 "mm_abarcadura_01" "mm_abanderamiento_01" 1.0 "mm_abarcadura_01" "mm_abaleo_03" 1.0 "mm_abarcón_01" "mm_aba_01" 1.0 "mm_abarquillamiento_01" "mm_abarrancamiento_01" 1.0 "mm_abarquillamiento_01" "mm_abajamiento_01" 1.0 "mm_abarraganamiento_01" "mm_abaleo_03" 1.0 "mm_abarraganamiento_01" "mm_abanderamiento_01" 1.0 "mm_abarrajado_01" "mm_macarelo_01" 1.0 "mm_abarrajado_01" "mm_majo_04" 1.0 "mm_abarrajado_01" "mm_barajador_01" 1.0 "mm_abarrajado_01" "mm_broquelero_01" 1.0 "mm_abarrajado_01" "mm_bochinchero_01" 1.0 "mm_abarrancamiento_01" "mm_abarquillamiento_01" 1.0 "mm_abarrancamiento_01" "mm_abajamiento_01" 1.0 "mm_abarredera_01" "mm_abaleo_02" 1.0 "mm_abarredera_01" "mm_pichanga_01" 1.0 "mm_abarredera_02" "mm_verdugo_11" 1.0 "mm_abarredera_02" "mm_vergüenza_05" 1.0 "mm_abarrera_01" "mm_mangón_01" 1.0 "mm_abarrera_01" "mm_cegatero_01" 1.0 "mm_abarrera_01" "mm_mangón_01" 1.0 / Started streaming 100 records after 2 ms and completed after 5 ms. 648 "mm_abarrotamiento_01" "mm_abanderamiento_01" 1.0 "mm_abarrotamiento_01" "mm_abaleo_03" 1.0 "mm_abarrote_01" "mm_granada_03" 1.0 "mm_abarrote_02" "mm_herrerillo_01" 1.0 "mm_abarrote_03" "mm_almacén_03" 1.0 "mm_abarrote_03" "mm_odrería_02" 1.0 "mm_abastecimiento_01" "mm_abajamiento_01" 1.0 "mm_abastecimiento_01" "mm_abarquillamiento_01" 1.0 "mm_abasto_02" "mm_abondo_01" 1.0 "mm_abasto_02" "mm_guilla_02" 1.0 "mm_abasto_03" "mm_acometida_02" 1.0 "mm_abasí_01" "mm_ommiada_01" 1.0 "mm_abatatamiento_01" "mm_abarquillamiento_01" 1.0 "mm_abatatamiento_01" "mm_abajamiento_01" 1.0 "mm_abatidero_01" "mm_cequión_02" 1.0 "mm_abatidero_01" "mm_canalillo_01" 1.0 / Tabla 15: Los 100 sustantivos más cercanos a “rey” usando el índice de Superposición Distancia usando el índice de Superposición entre el nodo correspondiente a “rey_01” y los 100 sustantivos más próximos a este. ● Consulta en Cypher : MATCH (p1:NC {termId: "mm_rey_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:NC)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.overlap(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 649 from to similarity "mm_rey_01" "mm_czarina_01" 1.0 "mm_rey_01" "mm_czar_01" 1.0 "mm_rey_01" "mm_visorrey_01" 1.0 "mm_rey_01" "mm_realdad_01" 1.0 "mm_rey_01" "mm_hacendeja_01" 1.0 "mm_rey_01" "mm_hacienda_03" 1.0 "mm_rey_01" "mm_piloto_02" 1.0 "mm_rey_01" "mm_jacobita_03" 0.6666666666666666 "mm_rey_01" "mm_jefatura_01" 0.6666666666666666 "mm_rey_01" "mm_cabecilla_02" 0.5 "mm_rey_01" "mm_bwana_01" 0.5 "mm_rey_01" "mm_mayoral_05" 0.5 / 650 "mm_rey_01" "mm_toqui_01" 0.5 "mm_rey_01" "mm_curia_02" 0.5 "mm_rey_01" "mm_destronamiento_01" 0.5 "mm_rey_01" "mm_irrealidad_01" 0.5 "mm_rey_01" "mm_basílica_04" 0.5 "mm_rey_01" "mm_cámara_02" 0.5 "mm_rey_01" "mm_vaticano_03" 0.5 "mm_rey_01" "mm_dinastismo_01" 0.5 "mm_rey_01" "mm_protomedicato_02" 0.5 "mm_rey_01" "mm_malvarrosa_01" 0.5 "mm_rey_01" "mm_altea_03" 0.5 "mm_rey_01" "mm_menuceles_01" 0.5 "mm_rey_01" "mm_centurión_01" 0.5 "mm_rey_01" "mm_díctamo_02" 0.5 "mm_rey_01" "mm_capo_01" 0.5 "mm_rey_01" "mm_orangista_01" 0.5 "mm_rey_01" "mm_sobreguarda_02" 0.5 "mm_rey_01" "mm_pavón_01" 0.5 "mm_rey_01" "mm_realidad_02" 0.5 "mm_rey_01" "mm_argentario_01" 0.5 "mm_rey_01" "mm_cheche_01" 0.5 "mm_rey_01" "mm_acemilería_02" 0.4 "mm_rey_01" "mm_kronprinz_01" 0.3333333333333333 / 651 "mm_rey_01" "mm_bujier_01" 0.3333333333333333 "mm_rey_01" "mm_legitimista_01" 0.3333333333333333 "mm_rey_01" "mm_enterramiento_02" 0.3333333333333333 "mm_rey_01" "mm_demagogo_01" 0.3333333333333333 "mm_rey_01" "mm_potajier_01" 0.3333333333333333 "mm_rey_01" "mm_castellano_06" 0.3333333333333333 "mm_rey_01" "mm_inventado_01" 0.3333333333333333 "mm_rey_01" "mm_ranchero_03" 0.3333333333333333 "mm_rey_01" "mm_ámel_01" 0.3333333333333333 "mm_rey_01" "mm_dezmatorio_01" 0.3333333333333333 "mm_rey_01" "mm_zarismo_01" 0.3333333333333333 "mm_rey_01" "mm_canciller_02" 0.3333333333333333 "mm_rey_01" "mm_deán_03" 0.3333333333333333 "mm_rey_01" "mm_alcoba_02" 0.3333333333333333 "mm_rey_01" "mm_condesa_04" 0.3333333333333333 "mm_rey_01" "mm_condestable_01" 0.3333333333333333 "mm_rey_01" "mm_realillo_01" 0.3333333333333333 "mm_rey_01" "mm_rediezmo_01" 0.3333333333333333 "mm_rey_01" "mm_almiranta_01" 0.3333333333333333 "mm_rey_01" "mm_guzmán_01" 0.3333333333333333 "mm_rey_01" "mm_virreino_01" 0.3333333333333333 "mm_rey_01" "mm_virreina_01" 0.3333333333333333 "mm_rey_01" "mm_ucase_01" 0.3333333333333333 / 652 "mm_rey_01" "mm_subjefe_01" 0.3333333333333333 "mm_rey_01" "mm_silla_03" 0.3333333333333333 "mm_rey_01" "mm_conde_03" 0.3333333333333333 "mm_rey_01" "mm_solio_01" 0.3333333333333333 "mm_rey_01" "mm_camarlengo_02" 0.3333333333333333 "mm_rey_01" "mm_comandanta_01" 0.3333333333333333 "mm_rey_01" "mm_grandeza_04" 0.3333333333333333 "mm_rey_01" "mm_mandón_03" 0.3333333333333333 "mm_rey_01" "mm_mujik_01" 0.3333333333333333 "mm_rey_01" "mm_proclamación_01" 0.3333333333333333 "mm_rey_01" "mm_atamán_01" 0.3333333333333333 "mm_rey_01" "mm_palaciego_02" 0.2857142857142857 "mm_rey_01" "mm_príncipe_06" 0.26666666666666666 "mm_rey_01" "mm_khedive_01" 0.25 "mm_rey_01" "mm_cimbel_02" 0.25 "mm_rey_01" "mm_noveno_03" 0.25 "mm_rey_01" "mm_oficio_09" 0.25 "mm_rey_01" "mm_cuatralbo_02" 0.25 "mm_rey_01" "mm_manipulario_01" 0.25 "mm_rey_01" "mm_jerife_02" 0.25 "mm_rey_01" "mm_examinador_01" 0.25 "mm_rey_01" "mm_regalada_01" 0.25 "mm_rey_01" "mm_jerife_03" 0.25 / Started streaming 100 records after 2128 ms and completed after 2128 ms. 653 "mm_rey_01" "mm_cabaña_05" 0.25 "mm_rey_01" "mm_almocadén_01" 0.25 "mm_rey_01" "mm_canciller_03" 0.25 "mm_rey_01" "mm_menudero_02" 0.25 "mm_rey_01" "mm_diadema_03" 0.25 "mm_rey_01" "mm_homenajeado_01" 0.25 "mm_rey_01" "mm_pontífice_02" 0.25 "mm_rey_01" "mm_polemarca_01" 0.25 "mm_rey_01" "mm_abadí_01" 0.25 "mm_rey_01" "mm_abasí_01" 0.25 "mm_rey_01" "mm_dotación_04" 0.25 "mm_rey_01" "mm_legado_05" 0.25 "mm_rey_01" "mm_acéfalo_03" 0.25 "mm_rey_01" "mm_merovingio_01" 0.25 "mm_rey_01" "mm_virreinato_01" 0.25 "mm_rey_01" "mm_capitana_01" 0.25 "mm_rey_01" "mm_cuarto_18" 0.25 "mm_rey_01" "mm_delegado_02" 0.25 "mm_rey_01" "mm_delfín_02" 0.25 / Tabla 16: Las 100 palabras más cercanas a “valiente” usando el índice de Superposición Distancia usando el índice de Superposición entre el nodo correspondiente al adjetivo “valiente_01” y las 100 palabras más próximas a este. ● Consulta en Cypher : MATCH (p1:AQ {termId: "mm_valiente_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.overlap(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 654 from to similarity "mm_valiente_01" "mm_diablo_03" 1.0 "mm_valiente_01" "mm_desgraciado_04" 1.0 "mm_valiente_01" "mm_entender_08" 1.0 "mm_valiente_01" "mm_guapeza_02" 1.0 "mm_valiente_01" "mm_hacedor_01" 1.0 "mm_valiente_01" "mm_escarabajo_05" 1.0 "mm_valiente_01" "mm_quídam_01" 1.0 "mm_valiente_01" "mm_chévere_04" 1.0 "mm_valiente_01" "mm_enrollar_07" 1.0 "mm_valiente_01" "mm_empachado_03" 1.0 "mm_valiente_01" "mm_despejar_06" 1.0 / 655 "mm_valiente_01" "mm_sarmentador_01" 1.0 "mm_valiente_01" "mm_tener_17" 1.0 "mm_valiente_01" "mm_vanistorio_02" 1.0 "mm_valiente_01" "mm_arrequín_01" 1.0 "mm_valiente_01" "mm_bobalías_01" 1.0 "mm_valiente_01" "mm_chorbo_01" 1.0 "mm_valiente_01" "mm_ocasionar_02" 1.0 "mm_valiente_01" "mm_contrapuntear_02" 1.0 "mm_valiente_01" "mm_quinteto_04" 1.0 "mm_valiente_01" "mm_postinero_01" 1.0 "mm_valiente_01" "mm_dúo_02" 1.0 "mm_valiente_01" "mm_remador_01" 1.0 "mm_valiente_01" "mm_entremeter_05" 1.0 "mm_valiente_01" "mm_feróstico_02" 1.0 "mm_valiente_01" "mm_fluctuar_05" 1.0 "mm_valiente_01" "mm_sierpe_03" 1.0 "mm_valiente_01" "mm_tataradeudo_01" 1.0 "mm_valiente_01" "mm_tragaleguas_01" 1.0 "mm_valiente_01" "mm_tronco_08" 1.0 "mm_valiente_01" "mm_andoba_01" 1.0 "mm_valiente_01" "mm_jeremías_01" 1.0 "mm_valiente_01" "mm_bicho_04" 1.0 "mm_valiente_01" "mm_berrinchudo_01" 1.0 / 656 "mm_valiente_01" "mm_mono_07" 1.0 "mm_valiente_01" "mm_camicace_02" 1.0 "mm_valiente_01" "mm_neneque_01" 1.0 "mm_valiente_01" "mm_chicharra_02" 1.0 "mm_valiente_01" "mm_comprometer_04" 1.0 "mm_valiente_01" "mm_contralto_02" 1.0 "mm_valiente_01" "mm_descerrajado_01" 1.0 "mm_valiente_01" "mm_poderhabiente_01" 1.0 "mm_valiente_01" "mm_desmoronar_02" 1.0 "mm_valiente_01" "mm_positivo_11" 1.0 "mm_valiente_01" "mm_encabritarse_03" 1.0 "mm_valiente_01" "mm_enemiga_01" 1.0 "mm_valiente_01" "mm_refezar_02" 1.0 "mm_valiente_01" "mm_exagerador_01" 1.0 "mm_valiente_01" "mm_riesgoso_01" 1.0 "mm_valiente_01" "mm_repolludo_01" 1.0 "mm_valiente_01" "mm_exposición_09" 1.0 "mm_valiente_01" "mm_falible_02" 1.0 "mm_valiente_01" "mm_filar_02" 1.0 "mm_valiente_01" "mm_finado_01" 1.0 "mm_valiente_01" "mm_individuo_05" 1.0 "mm_valiente_01" "mm_serenar_04" 1.0 "mm_valiente_01" "mm_garra_05" 1.0 / 657 "mm_valiente_01" "mm_tarifar_02" 1.0 "mm_valiente_01" "mm_acarrazarse_01" 1.0 "mm_valiente_01" "mm_acomunalar_01" 1.0 "mm_valiente_01" "mm_trasnochado_03" 1.0 "mm_valiente_01" "mm_alobar_03" 1.0 "mm_valiente_01" "mm_heraldista_01" 1.0 "mm_valiente_01" "mm_huaquero_01" 1.0 "mm_valiente_01" "mm_andóbal_01" 1.0 "mm_valiente_01" "mm_antecoger_01" 1.0 "mm_valiente_01" "mm_abetunado_01" 1.0 "mm_valiente_01" "mm_arrisco_01" 1.0 "mm_valiente_01" "mm_macrobio_02" 1.0 "mm_valiente_01" "mm_bagual_02" 1.0 "mm_valiente_01" "mm_guapote_01" 1.0 "mm_valiente_01" "mm_meapilas_01" 1.0 "mm_valiente_01" "mm_mico_03" 1.0 "mm_valiente_01" "mm_achaparrado_03" 1.0 "mm_valiente_01" "mm_mordedor_02" 1.0 "mm_valiente_01" "mm_cardo_04" 1.0 "mm_valiente_01" "mm_neolector_01" 1.0 "mm_valiente_01" "mm_novicio_03" 1.0 "mm_valiente_01" "mm_zángano_02" 1.0 "mm_valiente_01" "mm_ogro_02" 1.0 / Started streaming 100 records after 1777 ms and completed after 1778 ms. 658 "mm_valiente_01" "mm_concertar_04" 1.0 "mm_valiente_01" "mm_conformar_04" 1.0 "mm_valiente_01" "mm_peluca_02" 1.0 "mm_valiente_01" "mm_criminoso_02" 1.0 "mm_valiente_01" "mm_personilla_01" 1.0 "mm_valiente_01" "mm_desbocado_03" 1.0 "mm_valiente_01" "mm_desgarrado_02" 1.0 "mm_valiente_01" "mm_free-lance_01" 0.6666666666666666 "mm_valiente_01" "mm_escollo_02" 0.6666666666666666 "mm_valiente_01" "mm_entrador_01" 0.6666666666666666 "mm_valiente_01" "mm_hazañoso_01" 0.6666666666666666 "mm_valiente_01" "mm_dialogador_02" 0.6666666666666666 "mm_valiente_01" "mm_desafiar_03" 0.6666666666666666 "mm_valiente_01" "mm_costear_05" 0.6666666666666666 "mm_valiente_01" "mm_audaz_01" 0.625 "mm_valiente_01" "mm_bravo_01" 0.5555555555555556 "mm_valiente_01" "mm_indocumentado_03" 0.5 "mm_valiente_01" "mm_altaricón_01" 0.5 "mm_valiente_01" "mm_acoplar_07" 0.5 "mm_valiente_01" "mm_altruista_01" 0.5 / Tabla 17: 100 adjetivos más cercanos a “valiente” usando el índice de Superposición Distancia usando el índice de Superposición entre el nodo correspondiente al adjetivo “valiente_01” y los 100 adjetivos más próximos a este. ● Consulta en Cypher : MATCH (p1:AQ {termId: "mm_valiente_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:AQ)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.overlap(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 659 from to similarity "mm_valiente_01" "mm_descerrajado_01" 1.0 "mm_valiente_01" "mm_bagual_02" 1.0 "mm_valiente_01" "mm_falible_02" 1.0 "mm_valiente_01" "mm_camicace_02" 1.0 "mm_valiente_01" "mm_trasnochado_03" 1.0 "mm_valiente_01" "mm_exagerador_01" 1.0 "mm_valiente_01" "mm_feróstico_02" 1.0 "mm_valiente_01" "mm_repolludo_01" 1.0 "mm_valiente_01" "mm_desgarrado_02" 1.0 "mm_valiente_01" "mm_postinero_01" 1.0 "mm_valiente_01" "mm_guapote_01" 1.0 / 660 "mm_valiente_01" "mm_berrinchudo_01" 1.0 "mm_valiente_01" "mm_desgraciado_04" 1.0 "mm_valiente_01" "mm_empachado_03" 1.0 "mm_valiente_01" "mm_mordedor_02" 1.0 "mm_valiente_01" "mm_macrobio_02" 1.0 "mm_valiente_01" "mm_abetunado_01" 1.0 "mm_valiente_01" "mm_achaparrado_03" 1.0 "mm_valiente_01" "mm_riesgoso_01" 1.0 "mm_valiente_01" "mm_positivo_11" 1.0 "mm_valiente_01" "mm_hazañoso_01" 0.6666666666666666 "mm_valiente_01" "mm_free-lance_01" 0.6666666666666666 "mm_valiente_01" "mm_entrador_01" 0.6666666666666666 "mm_valiente_01" "mm_audaz_01" 0.625 "mm_valiente_01" "mm_bravo_01" 0.5555555555555556 "mm_valiente_01" "mm_cebolludo_02" 0.5 "mm_valiente_01" "mm_catiro_01" 0.5 "mm_valiente_01" "mm_jetón_01" 0.5 "mm_valiente_01" "mm_válido_02" 0.5 "mm_valiente_01" "mm_cayuco_04" 0.5 "mm_valiente_01" "mm_catirrucio_01" 0.5 "mm_valiente_01" "mm_cebón_04" 0.5 "mm_valiente_01" "mm_motero_03" 0.5 "mm_valiente_01" "mm_mordicante_04" 0.5 / 661 "mm_valiente_01" "mm_mulato_03" 0.5 "mm_valiente_01" "mm_caprichudo_01" 0.5 "mm_valiente_01" "mm_animal_10" 0.5 "mm_valiente_01" "mm_misero_02" 0.5 "mm_valiente_01" "mm_catatónico_02" 0.5 "mm_valiente_01" "mm_niño_03" 0.5 "mm_valiente_01" "mm_meón_01" 0.5 "mm_valiente_01" "mm_bragado_03" 0.5 "mm_valiente_01" "mm_hurgón_01" 0.5 "mm_valiente_01" "mm_hurón_02" 0.5 "mm_valiente_01" "mm_menudo_09" 0.5 "mm_valiente_01" "mm_mercantilista_04" 0.5 "mm_valiente_01" "mm_zarabandista_03" 0.5 "mm_valiente_01" "mm_camaleónico_01" 0.5 "mm_valiente_01" "mm_misterioso_02" 0.5 "mm_valiente_01" "mm_cabezudo_03" 0.5 "mm_valiente_01" "mm_hipotenso_01" 0.5 "mm_valiente_01" "mm_animador_03" 0.5 "mm_valiente_01" "mm_moreno_04" 0.5 "mm_valiente_01" "mm_morrudo_01" 0.5 "mm_valiente_01" "mm_hidalgo_04" 0.5 "mm_valiente_01" "mm_jamón_02" 0.5 "mm_valiente_01" "mm_jarocho_01" 0.5 / 662 "mm_valiente_01" "mm_catire_01" 0.5 "mm_valiente_01" "mm_hebén_02" 0.5 "mm_valiente_01" "mm_altaricón_01" 0.5 "mm_valiente_01" "mm_impuntual_01" 0.5 "mm_valiente_01" "mm_jetudo_01" 0.5 "mm_valiente_01" "mm_bata_03" 0.5 "mm_valiente_01" "mm_batato_01" 0.5 "mm_valiente_01" "mm_maldadoso_01" 0.5 "mm_valiente_01" "mm_alzado_07" 0.5 "mm_valiente_01" "mm_malhecho_02" 0.5 "mm_valiente_01" "mm_manifestante_01" 0.5 "mm_valiente_01" "mm_cacha_06" 0.5 "mm_valiente_01" "mm_avenidor_01" 0.5 "mm_valiente_01" "mm_indeterminado_03" 0.5 "mm_valiente_01" "mm_loqueras_01" 0.5 "mm_valiente_01" "mm_liso_07" 0.5 "mm_valiente_01" "mm_inconmovible_01" 0.5 "mm_valiente_01" "mm_llano_07" 0.5 "mm_valiente_01" "mm_indicioso_01" 0.5 "mm_valiente_01" "mm_verídico_02" 0.5 "mm_valiente_01" "mm_avalentado_01" 0.5 "mm_valiente_01" "mm_astroso_01" 0.5 "mm_valiente_01" "mm_madrigado_03" 0.5 / Started streaming 100 records after 301 ms and completed after 302 ms. 663 "mm_valiente_01" "mm_acedo_02" 0.5 "mm_valiente_01" "mm_barbarizante_01" 0.5 "mm_valiente_01" "mm_altruista_01" 0.5 "mm_valiente_01" "mm_acogedor_03" 0.5 "mm_valiente_01" "mm_calandraco_01" 0.5 "mm_valiente_01" "mm_aguado_02" 0.5 "mm_valiente_01" "mm_agreste_04" 0.5 "mm_valiente_01" "mm_lendroso_01" 0.5 "mm_valiente_01" "mm_biplaza_01" 0.5 "mm_valiente_01" "mm_hidalgo_03" 0.5 "mm_valiente_01" "mm_afrontado_01" 0.5 "mm_valiente_01" "mm_mañoso_01" 0.5 "mm_valiente_01" "mm_caballero_01" 0.5 "mm_valiente_01" "mm_guijarreño_02" 0.5 "mm_valiente_01" "mm_arrojado_01" 0.5 "mm_valiente_01" "mm_imbécil_04" 0.5 "mm_valiente_01" "mm_zoquete_04" 0.5 "mm_valiente_01" "mm_zote_01" 0.5 "mm_valiente_01" "mm_arrancado_01" 0.5 "mm_valiente_01" "mm_lamentador_01" 0.5 / Tabla 18: Los 100 sustantivos más cercanos a “pereza” usando el índice de Superposición Distancia usando el índice de Superposición entre el nodo correspondiente a “pereza_01” y los 100 sustantivos más próximos a este. ● Consulta en Cypher : MATCH (p1:NC {termId: "mm_pereza_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:NC)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.overlap(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 664 from to similarity "mm_pereza_01" "mm_marro_03" 1.0 "mm_pereza_01" "mm_echado_02" 1.0 "mm_pereza_01" "mm_desencuentro_02" 1.0 "mm_pereza_01" "mm_desprevención_01" 1.0 "mm_pereza_01" "mm_secatura_01" 1.0 "mm_pereza_01" "mm_incomposición_01" 0.5 "mm_pereza_01" "mm_gandumbas_01" 0.5 "mm_pereza_01" "mm_impericia_01" 0.5 "mm_pereza_01" "mm_inhonestidad_01" 0.5 "mm_pereza_01" "mm_vaguedad_03" 0.5 "mm_pereza_01" "mm_inconsideración_01" 0.5 / 665 "mm_pereza_01" "mm_incivismo_01" 0.5 "mm_pereza_01" "mm_inaplicación_01" 0.5 "mm_pereza_01" "mm_desabastecimiento_01" 0.5 "mm_pereza_01" "mm_desabor_01" 0.5 "mm_pereza_01" "mm_falsía_02" 0.5 "mm_pereza_01" "mm_desmesura_01" 0.5 "mm_pereza_01" "mm_privación_02" 0.5 "mm_pereza_01" "mm_sinvergüencería_01" 0.5 "mm_pereza_01" "mm_vagancia_03" 0.5 "mm_pereza_01" "mm_inhabilidad_01" 0.5 "mm_pereza_01" "mm_informalidad_01" 0.5 "mm_pereza_01" "mm_desaseo_01" 0.5 "mm_pereza_01" "mm_inconsecuencia_01" 0.5 "mm_pereza_01" "mm_inmadurez_01" 0.5 "mm_pereza_01" "mm_desarreglo_03" 0.5 "mm_pereza_01" "mm_desapostura_01" 0.5 "mm_pereza_01" "mm_inasistencia_01" 0.5 "mm_pereza_01" "mm_invirtud_02" 0.5 "mm_pereza_01" "mm_impuntualidad_01" 0.5 "mm_pereza_01" "mm_desgalichadura_01" 0.5 "mm_pereza_01" "mm_desdón_01" 0.5 "mm_pereza_01" "mm_desgarbo_01" 0.5 "mm_pereza_01" "mm_desconocimiento_01" 0.5 / 666 "mm_pereza_01" "mm_agalaxia_01" 0.5 "mm_pereza_01" "mm_discrepancia_02" 0.5 "mm_pereza_01" "mm_idiotismo_02" 0.5 "mm_pereza_01" "mm_enatieza_01" 0.5 "mm_pereza_01" "mm_sinvergonzonería_01" 0.5 "mm_pereza_01" "mm_atonía_03" 0.5 "mm_pereza_01" "mm_asimetría_01" 0.5 "mm_pereza_01" "mm_tumbón_03" 0.5 "mm_pereza_01" "mm_desafección_02" 0.5 "mm_pereza_01" "mm_vaguería_01" 0.5 "mm_pereza_01" "mm_infertilidad_01" 0.5 "mm_pereza_01" "mm_indiferenciación_01" 0.5 "mm_pereza_01" "mm_desapteza_01" 0.5 "mm_pereza_01" "mm_cargo_08" 0.5 "mm_pereza_01" "mm_incredulidad_01" 0.5 "mm_pereza_01" "mm_inmoderación_01" 0.5 "mm_pereza_01" "mm_inobediencia_01" 0.5 "mm_pereza_01" "mm_inoperancia_01" 0.5 "mm_pereza_01" "mm_desaplicación_01" 0.5 "mm_pereza_01" "mm_insolidaridad_01" 0.5 "mm_pereza_01" "mm_descontrol_01" 0.5 "mm_pereza_01" "mm_anosmia_01" 0.5 "mm_pereza_01" "mm_inurbanidad_01" 0.5 / 667 "mm_pereza_01" "mm_inutilidad_01" 0.5 "mm_pereza_01" "mm_invertebración_01" 0.5 "mm_pereza_01" "mm_invirtud_01" 0.5 "mm_pereza_01" "mm_macana_04" 0.5 "mm_pereza_01" "mm_inadecuación_01" 0.5 "mm_pereza_01" "mm_descomedimiento_01" 0.5 "mm_pereza_01" "mm_dejamiento_04" 0.5 "mm_pereza_01" "mm_descariño_01" 0.5 "mm_pereza_01" "mm_afonía_01" 0.5 "mm_pereza_01" "mm_arritmia_01" 0.5 "mm_pereza_01" "mm_inelegancia_01" 0.5 "mm_pereza_01" "mm_descoordinación_01" 0.5 "mm_pereza_01" "mm_desentrenamiento_01" 0.5 "mm_pereza_01" "mm_desinformación_02" 0.5 "mm_pereza_01" "mm_dejadez_01" 0.5 "mm_pereza_01" "mm_fricción_03" 0.5 "mm_pereza_01" "mm_imprevisión_01" 0.5 "mm_pereza_01" "mm_indotación_01" 0.5 "mm_pereza_01" "mm_privación_03" 0.5 "mm_pereza_01" "mm_asincronismo_01" 0.5 "mm_pereza_01" "mm_anuria_01" 0.3333333333333333 "mm_pereza_01" "mm_apepsia_01" 0.3333333333333333 "mm_pereza_01" "mm_libertinaje_03" 0.3333333333333333 / Started streaming 100 records after 1142 ms and completed after 1142 ms. 668 "mm_pereza_01" "mm_inverecundia_01" 0.3333333333333333 "mm_pereza_01" "mm_novillero_05" 0.3333333333333333 "mm_pereza_01" "mm_desautoridad_01" 0.3333333333333333 "mm_pereza_01" "mm_caída_05" 0.3333333333333333 "mm_pereza_01" "mm_descompostura_02" 0.3333333333333333 "mm_pereza_01" "mm_desatavío_01" 0.3333333333333333 "mm_pereza_01" "mm_desarbolado_02" 0.3333333333333333 "mm_pereza_01" "mm_libertinaje_02" 0.3333333333333333 "mm_pereza_01" "mm_morosidad_02" 0.3333333333333333 "mm_pereza_01" "mm_indelicadeza_01" 0.3333333333333333 "mm_pereza_01" "mm_indisciplina_01" 0.3333333333333333 "mm_pereza_01" "mm_indecisión_01" 0.3333333333333333 "mm_pereza_01" "mm_indefinición_01" 0.3333333333333333 "mm_pereza_01" "mm_indisposición_03" 0.3333333333333333 "mm_pereza_01" "mm_alza_03" 0.3333333333333333 "mm_pereza_01" "mm_incomprensión_01" 0.3333333333333333 "mm_pereza_01" "mm_mengua_03" 0.3333333333333333 "mm_pereza_01" "mm_incivilidad_01" 0.3333333333333333 "mm_pereza_01" "mm_incompetencia_01" 0.3333333333333333 "mm_pereza_01" "mm_inatención_01" 0.3333333333333333 / Tabla 19: Los 100 sustantivos más cercanos a “cantar” usando el índice de Superposición Distancia usando el índice de Superposición entre el nodo correspondiente al verbo “cantar_01” y los 100 sustantivos más próximos a este. ● Consulta en Cypher : MATCH (p1:V {termId: "mm_cantar_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:NC)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.overlap(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 669 from to similarity "mm_cantar_01" "mm_sueno_01" 1.0 "mm_cantar_01" "mm_cantadera_01" 1.0 "mm_cantar_01" "mm_bocaza_01" 1.0 "mm_cantar_01" "mm_cantada_01" 1.0 "mm_cantar_01" "mm_tono_10" 1.0 "mm_cantar_01" "mm_grupo_04" 1.0 "mm_cantar_01" "mm_saetero_03" 1.0 "mm_cantar_01" "mm_semicultismo_01" 1.0 "mm_cantar_01" "mm_silbador_01" 1.0 "mm_cantar_01" "mm_justificación_02" 1.0 "mm_cantar_01" "mm_bocacha_01" 1.0 / 670 "mm_cantar_01" "mm_son_01" 0.6666666666666666 "mm_cantar_01" "mm_dueto_01" 0.6666666666666666 "mm_cantar_01" "mm_apócopa_01" 0.6666666666666666 "mm_cantar_01" "mm_rugido_02" 0.6666666666666666 "mm_cantar_01" "mm_trino_01" 0.6 "mm_cantar_01" "mm_borrufalla_01" 0.5 "mm_cantar_01" "mm_milonguero_01" 0.5 "mm_cantar_01" "mm_definición_02" 0.5 "mm_cantar_01" "mm_pasionista_01" 0.5 "mm_cantar_01" "mm_consonamiento_01" 0.5 "mm_cantar_01" "mm_antifonero_01" 0.5 "mm_cantar_01" "mm_ostial_01" 0.5 "mm_cantar_01" "mm_ti_02" 0.5 "mm_cantar_01" "mm_pedigrí_01" 0.5 "mm_cantar_01" "mm_gorgorita_02" 0.5 "mm_cantar_01" "mm_tarasca_06" 0.5 "mm_cantar_01" "mm_silbatina_01" 0.5 "mm_cantar_01" "mm_predicción_02" 0.5 "mm_cantar_01" "mm_dativo_01" 0.5 "mm_cantar_01" "mm_tarareo_01" 0.5 "mm_cantar_01" "mm_musicalidad_01" 0.5 "mm_cantar_01" "mm_eco_02" 0.5 "mm_cantar_01" "mm_proposición_02" 0.5 / 671 "mm_cantar_01" "mm_reto_02" 0.5 "mm_cantar_01" "mm_balido_02" 0.5 "mm_cantar_01" "mm_evangelio_01" 0.5 "mm_cantar_01" "mm_estridor_01" 0.5 "mm_cantar_01" "mm_antifonal_01" 0.5 "mm_cantar_01" "mm_zafaduría_01" 0.5 "mm_cantar_01" "mm_solfa_02" 0.5 "mm_cantar_01" "mm_solfeador_01" 0.5 "mm_cantar_01" "mm_solfista_01" 0.5 "mm_cantar_01" "mm_onomatopeya_02" 0.5 "mm_cantar_01" "mm_loor_01" 0.5 "mm_cantar_01" "mm_tiroriro_01" 0.5 "mm_cantar_01" "mm_retartalillas_01" 0.5 "mm_cantar_01" "mm_asonancia_02" 0.5 "mm_cantar_01" "mm_tilín_01" 0.5 "mm_cantar_01" "mm_mayido_01" 0.5 "mm_cantar_01" "mm_guaiño_01" 0.5 "mm_cantar_01" "mm_buera_01" 0.5 "mm_cantar_01" "mm_brocal_05" 0.5 "mm_cantar_01" "mm_musicasete_01" 0.5 "mm_cantar_01" "mm_refutación_02" 0.5 "mm_cantar_01" "mm_rechifla_01" 0.5 "mm_cantar_01" "mm_buzón_02" 0.5 / 672 "mm_cantar_01" "mm_aspiración_03" 0.5 "mm_cantar_01" "mm_relej_03" 0.5 "mm_cantar_01" "mm_perengano_01" 0.5 "mm_cantar_01" "mm_cantable_03" 0.5 "mm_cantar_01" "mm_quejido_01" 0.5 "mm_cantar_01" "mm_iotacismo_01" 0.5 "mm_cantar_01" "mm_polisílabo_01" 0.5 "mm_cantar_01" "mm_releje_03" 0.5 "mm_cantar_01" "mm_prótesis_03" 0.5 "mm_cantar_01" "mm_fonograma_01" 0.5 "mm_cantar_01" "mm_letra_02" 0.5 "mm_cantar_01" "mm_escala_04" 0.5 "mm_cantar_01" "mm_aserto_02" 0.5 "mm_cantar_01" "mm_metátesis_01" 0.4 "mm_cantar_01" "mm_acrónimo_01" 0.4 "mm_cantar_01" "mm_sinfonía_01" 0.4 "mm_cantar_01" "mm_anagrama_01" 0.4 "mm_cantar_01" "mm_arrullo_02" 0.4 "mm_cantar_01" "mm_balada_03" 0.4 "mm_cantar_01" "mm_quiebro_03" 0.4 "mm_cantar_01" "mm_peñolada_01" 0.3333333333333333 "mm_cantar_01" "mm_lema_07" 0.3333333333333333 "mm_cantar_01" "mm_avispero_03" 0.3333333333333333 / Started streaming 100 records after 2801 ms and completed after 2801 ms. 673 "mm_cantar_01" "mm_petalla_01" 0.3333333333333333 "mm_cantar_01" "mm_defensa_04" 0.3333333333333333 "mm_cantar_01" "mm_mi_01" 0.3333333333333333 "mm_cantar_01" "mm_bunga_02" 0.3333333333333333 "mm_cantar_01" "mm_cruz_02" 0.3333333333333333 "mm_cantar_01" "mm_cucho_02" 0.3333333333333333 "mm_cantar_01" "mm_heptacordo_02" 0.3333333333333333 "mm_cantar_01" "mm_buchada_01" 0.3333333333333333 "mm_cantar_01" "mm_derivativo_02" 0.3333333333333333 "mm_cantar_01" "mm_cruce_06" 0.3333333333333333 "mm_cantar_01" "mm_contrabajete_01" 0.3333333333333333 "mm_cantar_01" "mm_paragoge_01" 0.3333333333333333 "mm_cantar_01" "mm_paronimia_01" 0.3333333333333333 "mm_cantar_01" "mm_mediante_02" 0.3333333333333333 "mm_cantar_01" "mm_concierto_04" 0.3333333333333333 "mm_cantar_01" "mm_crujido_01" 0.3333333333333333 "mm_cantar_01" "mm_oral_04" 0.3333333333333333 "mm_cantar_01" "mm_clangor_01" 0.3333333333333333 "mm_cantar_01" "mm_orfeonista_01" 0.3333333333333333 "mm_cantar_01" "mm_isofonía_01" 0.3333333333333333 / Tabla 20: Los 100 verbos más cercanos a “cantar” usando el índice de Superposición Distancia usando el índice de Superposición entre el nodo correspondiente al verbo “cantar_01” y los 100 verbos más próximos a este. ● Consulta en Cypher : MATCH (p1:V {termId: "mm_cantar_01"})-[:RELATED_TO]-(conjunto1) WITH p1, collect(id(conjunto1)) AS p1Conjunto MATCH (p2:V)-[:RELATED_TO]-(conjunto2) WHERE p1<>p2 WITH p1, p1Conjunto, p2, collect(id(conjunto2)) AS p2Conjunto RETURN p1.termId AS from, p2.termId AS to, algo.similarity.overlap(p1Conjunto, p2Conjunto) AS similarity ORDER BY similarity DESC limit 100 674 from to similarity "mm_cantar_01" "mm_salmodiar_01" 1.0 "mm_cantar_01" "mm_esdrujulizar_01" 1.0 "mm_cantar_01" "mm_designar_02" 1.0 "mm_cantar_01" "mm_chuflar_01" 1.0 "mm_cantar_01" "mm_tatarear_01" 1.0 "mm_cantar_01" "mm_rechiflar_01" 1.0 "mm_cantar_01" "mm_chiflar_02" 1.0 "mm_cantar_01" "mm_chistar_02" 0.6666666666666666 "mm_cantar_01" "mm_boquear_01" 0.5 "mm_cantar_01" "mm_vaporear_02" 0.5 "mm_cantar_01" "mm_discordar_01" 0.5 / 675 "mm_cantar_01" "mm_escupir_02" 0.5 "mm_cantar_01" "mm_resonar_02" 0.5 "mm_cantar_01" "mm_bichofear_01" 0.5 "mm_cantar_01" "mm_gorgoritear_01" 0.5 "mm_cantar_01" "mm_radiar_01" 0.5 "mm_cantar_01" "mm_mascar_02" 0.5 "mm_cantar_01" "mm_asonar_03" 0.5 "mm_cantar_01" "mm_asonar_04" 0.5 "mm_cantar_01" "mm_empalicar_01" 0.5 "mm_cantar_01" "mm_deletrear_01" 0.5 "mm_cantar_01" "mm_reverberar_02" 0.5 "mm_cantar_01" "mm_adjuntar_02" 0.5 "mm_cantar_01" "mm_rechistar_01" 0.4 "mm_cantar_01" "mm_gargantear_01" 0.4 "mm_cantar_01" "mm_grajear_02" 0.4 "mm_cantar_01" "mm_rozar_12" 0.4 "mm_cantar_01" "mm_componer_07" 0.36363636363636365 "mm_cantar_01" "mm_crascitar_01" 0.3333333333333333 "mm_cantar_01" "mm_espurrear_01" 0.3333333333333333 "mm_cantar_01" "mm_prefijar_02" 0.3333333333333333 "mm_cantar_01" "mm_espinar_03" 0.3333333333333333 "mm_cantar_01" "mm_quemar_04" 0.3333333333333333 "mm_cantar_01" "mm_bailar_05" 0.3333333333333333 / 676 "mm_cantar_01" "mm_esdrujulizar_02" 0.3333333333333333 "mm_cantar_01" "mm_pluralizar_01" 0.3333333333333333 "mm_cantar_01" "mm_chillar_01" 0.3333333333333333 "mm_cantar_01" "mm_ligar_07" 0.3333333333333333 "mm_cantar_01" "mm_soflamar_03" 0.3333333333333333 "mm_cantar_01" "mm_debilitar_02" 0.3333333333333333 "mm_cantar_01" "mm_jalear_01" 0.3333333333333333 "mm_cantar_01" "mm_apoyar_06" 0.3333333333333333 "mm_cantar_01" "mm_pintar_11" 0.3333333333333333 "mm_cantar_01" "mm_fallir_04" 0.3333333333333333 "mm_cantar_01" "mm_rimar_02" 0.3333333333333333 "mm_cantar_01" "mm_labializar_01" 0.3333333333333333 "mm_cantar_01" "mm_palpitar_02" 0.3333333333333333 "mm_cantar_01" "mm_cacarear_01" 0.2857142857142857 "mm_cantar_01" "mm_trinar_01" 0.2857142857142857 "mm_cantar_01" "mm_apocopar_01" 0.2857142857142857 "mm_cantar_01" "mm_articular_03" 0.2857142857142857 "mm_cantar_01" "mm_descontextualizar_01" 0.25 "mm_cantar_01" "mm_musitar_01" 0.25 "mm_cantar_01" "mm_compasear_01" 0.25 "mm_cantar_01" "mm_consonar_01" 0.25 "mm_cantar_01" "mm_espurriar_01" 0.25 "mm_cantar_01" "mm_televisar_01" 0.25 / 677 "mm_cantar_01" "mm_taladrar_02" 0.25 "mm_cantar_01" "mm_atiplar_01" 0.25 "mm_cantar_01" "mm_concertar_06" 0.25 "mm_cantar_01" "mm_embocar_03" 0.25 "mm_cantar_01" "mm_velarizar_01" 0.25 "mm_cantar_01" "mm_ligar_06" 0.25 "mm_cantar_01" "mm_asibilar_01" 0.25 "mm_cantar_01" "mm_sopuntar_01" 0.25 "mm_cantar_01" "mm_declinar_05" 0.25 "mm_cantar_01" "mm_asonantar_01" 0.25 "mm_cantar_01" "mm_refulgir_01" 0.25 "mm_cantar_01" "mm_gluglutear_01" 0.25 "mm_cantar_01" "mm_apianar_01" 0.25 "mm_cantar_01" "mm_doblar_02" 0.25 "mm_cantar_01" "mm_rebosar_03" 0.25 "mm_cantar_01" "mm_nasalizar_01" 0.25 "mm_cantar_01" "mm_soplar_02" 0.25 "mm_cantar_01" "mm_impostar_01" 0.25 "mm_cantar_01" "mm_implicar_02" 0.25 "mm_cantar_01" "mm_gamitar_01" 0.25 "mm_cantar_01" "mm_connotar_02" 0.25 "mm_cantar_01" "mm_contraer_03" 0.25 "mm_cantar_01" "mm_fosforecer_01" 0.25 / Started streaming 100 records after 669 ms and completed after 669 ms. 678 "mm_cantar_01" "mm_sonorizar_02" 0.25 "mm_cantar_01" "mm_parpar_01" 0.25 "mm_cantar_01" "mm_castañetear_02" 0.25 "mm_cantar_01" "mm_gruir_01" 0.25 "mm_cantar_01" "mm_embocar_02" 0.25 "mm_cantar_01" "mm_entonar_03" 0.25 "mm_cantar_01" "mm_etimologizar_01" 0.25 "mm_cantar_01" "mm_armonizar_03" 0.25 "mm_cantar_01" "mm_embudar_01" 0.25 "mm_cantar_01" "mm_contextualizar_01" 0.25 "mm_cantar_01" "mm_barbotar_01" 0.2222222222222222 "mm_cantar_01" "mm_temperar_02" 0.2222222222222222 "mm_cantar_01" "mm_rebuznar_01" 0.2222222222222222 "mm_cantar_01" "mm_sonreír_01" 0.2222222222222222 "mm_cantar_01" "mm_morrear_01" 0.2 "mm_cantar_01" "mm_mugir_01" 0.2 "mm_cantar_01" "mm_cascabelear_02" 0.2 "mm_cantar_01" "mm_bordonear_04" 0.2 "mm_cantar_01" "mm_detonar_01" 0.2 "mm_cantar_01" "mm_berrear_02" 0.2 / Apéndice 3: Algoritmos de rutas óptimas. ● Figura 161. Subgrafo con un recorrido aleatorio limitado a 500 nodos de recorrido. 679 / Tabla 21: Mínimo árbol recubridor (MINST) de la palabra “abacería” En la siguiente consulta se ha obtenido el árbol recubridor mínimo de la palabra“abacería,” y además, se muestran los valores de las propiedades de “ community ”, “ partition ”, y “ pagerank ” ordenados descendentemente por el valor de esta última propiedad. ● Consulta en Cypher (limitada a 100 resultados): MATCH p=(a:NC{termId:"mm_abacería_01"})-[r:MINST]-(b) RETURN b.termId,b.community,b.partition, b.pagerank order by b.pagerank DESC LIMIT 100 680 termId community partition pagerank "mm_joyería_01" 16139 16139 3.913113917189185 "mm_mostrador_02" 16139 16139 0.642482298225525 "mm_carnicería_01" 16139 31703 0.3348750057630241 "mm_tendejón_01" 16139 77641 0.27750000506639483 "mm_tenducho_01" 16139 77664 0.27750000506639483 "mm_especiería_01" 16139 62971 0.27750000506639483 "mm_quincallería_01" 16139 58809 0.27750000506639483 "mm_tablero_15" 16139 16139 0.25921962450361213 "mm_tabernáculo_01" 16139 76150 0.19905208385316656 "mm_trastienda_01" 16139 80215 0.19250000063329936 "mm_cajón_04" 16139 27453 0.19250000063329936 "mm_quesería_01" 16139 58664 0.1754999994300306 "mm_librería_01" 16139 16703 0.1712500003166497 / 681 "mm_óptica_03" 16139 6973 0.15000000000000002 "mm_panilla_03" 16139 42085 0.15000000000000002 "mm_florería_01" 16139 69626 0.15000000000000002 "mm_changarro_02" 16139 35896 0.15000000000000002 "mm_paragüería_01" 16139 42742 0.15000000000000002 "mm_clientela_02" 16139 39362 0.15000000000000002 "mm_zapatería_03" 16139 5170 0.15000000000000002 "mm_velería_01" 16139 82508 0.15000000000000002 "mm_pulquería_01" 16139 57231 0.15000000000000002 "mm_peletería_02" 16139 46548 0.15000000000000002 "mm_turronería_01" 16139 81344 0.15000000000000002 "mm_multicentro_01" 16139 32787 0.15000000000000002 "mm_boutique_01" 16139 24539 0.15000000000000002 "mm_existencia_03" 16139 66006 0.15000000000000002 "mm_carbonería_01" 16139 31282 0.15000000000000002 "mm_moda_02" 16139 28792 0.15000000000000002 "mm_botiga_02" 16139 24481 0.15000000000000002 "mm_motril_02" 16139 32055 0.15000000000000002 "mm_sedería_03" 16139 70157 0.15000000000000002 "mm_taponería_03" 16139 76904 0.15000000000000002 "mm_verdulería_01" 16139 716 0.15000000000000002 "mm_salchichería_01" 16139 68432 0.15000000000000002 "mm_merchante_02" 16139 26457 0.15000000000000002 / Started streaming 58 records after 2 ms and completed after 91 ms. 682 "mm_marchante_02" 16139 22845 0.15000000000000002 "mm_colmado_01" 16139 40542 0.15000000000000002 "mm_tipi_01" 16139 78544 0.15000000000000002 "mm_bodega_08" 16139 23385 0.15000000000000002 "mm_floristería_01" 16139 69652 0.15000000000000002 "mm_almuercería_01" 16139 10234 0.15000000000000002 "mm_vecero_04" 16139 82361 0.15000000000000002 "mm_tenducha_01" 16139 77663 0.15000000000000002 "mm_carnecería_01" 16139 31681 0.15000000000000002 "mm_cigarrería_01" 16139 38002 0.15000000000000002 "mm_casero_11" 16139 32708 0.15000000000000002 "mm_rebotica_02" 16139 60564 0.15000000000000002 "mm_patatería_01" 16139 44707 0.15000000000000002 "mm_duty-free_01" 16139 55655 0.15000000000000002 "mm_pesa_04" 16139 48739 0.15000000000000002 "mm_encomendería_01 " 16139 57988 0.15000000000000002 "mm_alpargatería_02" 16139 10321 0.15000000000000002 "mm_juguetería_01" 45297 13775 0.15000000000000002 "mm_calcetería_01" 16139 27643 0.15000000000000002 "mm_mantequería_02" 16139 21789 0.15000000000000002 "mm_tonelería_02" 16139 79081 0.15000000000000002 "mm_ropería_01" 16139 66812 0.15000000000000002 / Apéndice 4: Algoritmos de comunidades. ● Figura 162. Subgrafo en el que se han expandido las relaciones de ciertos nodos para visualizar la conectividad. 683 / Tabla 22: Comunidad 16139 relacionada con “árbol_01” En la siguiente consulta se han obtenido los nodos de la partición 16139, que mantienen una relación con el nodo relativo a “árbol_01”, con el que también comparten el mismo valor de dicha partición. ● Consulta en Cypher : MATCH (p:NC{termId:"mm_árbol_01"})--(q:NC{partition:16139}) return q.termId, q.partition 684 q.termId q.partition q.termId q.partition mm_copa_04 16139 mm_propiedad_01 16139 mm_suelo_04 16139 mm_rutáceo_01 16139 mm_distancia_01 16139 mm_espacio_02 16139 mm_tallo_01 16139 mm_especie_01 16139 mm_peral_01 16139 mm_ratón_01 16139 mm_olivo_01 16139 mm_tronco_06 16139 mm_oleáceo_01 16139 mm_sombra_01 16139 mm_frutal_01 16139 mm_fila_01 16139 mm_ciruelo_01 16139 mm_montaña_02 16139 mm_ciprés_01 16139 mm_planta_06 16139 mm_follaje_01 16139 mm_envés_01 16139 mm_nogal_01 16139 mm_morera_01 16139 / 685 mm_chopo_01 16139 mm_abeto_01 16139 mm_naranjo_01 16139 mm_tamaño_02 16139 mm_cerrado_04 16139 mm_quemado_01 16139 mm_musgo_01 16139 mm_canelo_02 16139 mm_euforbiáceo_01 16139 mm_madreselva_01 16139 mm_moráceo_01 16139 mm_ruda_01 16139 mm_moral_01 16139 mm_cubierta_03 16139 mm_sauce_01 16139 mm_fruto_02 16139 mm_salicáceo_01 16139 mm_aroma_02 16139 mm_cara_11 16139 mm_apretado_03 16139 mm_caprifoliáceo_01 16139 mm_chopo_01 16139 mm_rutáceo_01 16139 mm_puntal_01 16139 mm_rubiáceo_01 16139 mm_cortado_01 16139 mm_rosáceo_02 16139 mm_conífero_01 16139 mm_rosáceo_02 16139 mm_flexibilidad_01 16139 mm_eritroxiláceo_01 16139 mm_alerce_01 16139 mm_canelo_02 16139 mm_ciruela_01 16139 mm_mata_01 16139 mm_selva_01 16139 mm_entalladura_02 16139 mm_savia_01 16139 mm_manzano_01 16139 mm_mora_03 16139 / 686 mm_café_01 16139 mm_quino_01 16139 mm_cafeto_01 16139 mm_hoja_08 16139 mm_malváceo_01 16139 mm_saúco_01 16139 mm_bosque_01 16139 mm_betuláceo_01 16139 mm_leguminoso_01 16139 mm_corcho_01 16139 mm_lauráceo_01 16139 mm_cultivado_01 16139 mm_laurel_01 16139 mm_pulpa_01 16139 mm_rama_03 16139 mm_cara_11 16139 mm_betuláceo_01 16139 mm_camino_03 16139 mm_quino_01 16139 mm_salicáceo_01 16139 mm_postura_04 16139 mm_región_01 16139 mm_postura_03 16139 mm_flor_05 16139 mm_huerto_01 16139 mm_huerto_01 16139 mm_plátano_01 16139 mm_dado_06 16139 mm_platanáceo_01 16139 mm_aguja_09 16139 mm_pino_01 16139 mm_látex_01 16139 mm_corteza_01 16139 mm_oruga_01 16139 mm_corta_01 16139 mm_copa_04 16139 mm_copa_04 16139 mm_leguminoso_01 16139 mm_almendro_01 16139 mm_reborde_01 16139 / 687 mm_alerce_01 16139 mm_mandarina_01 16139 mm_aguja_09 16139 mm_flor_15 16139 mm_acacia_01 16139 mm_bosque_01 16139 mm_abeto_01 16139 mm_caprifoliáceo_01 16139 mm_abedul_01 16139 mm_follaje_01 16139 mm_arbusto_01 16139 mm_briofito_01 16139 mm_arbusto_01 16139 mm_porte_01 16139 mm_planta_01 16139 mm_vello_01 16139 mm_nombre_01 16139 mm_oleáceo_01 16139 mm_matorral_01 16139 mm_resina_01 16139 mm_rosáceo_02 16139 mm_fortificación_01 16139 mm_lauráceo_01 16139 mm_manzano_01 16139 mm_tronco_01 16139 mm_entalladura_02 16139 mm_cafeto_01 16139 mm_corpulencia_01 16139 mm_perfumería_01 16139 mm_acción_08 16139 mm_moráceo_01 16139 mm_frutal_01 16139 mm_fuente_01 16139 mm_desprendimiento_01 16139 mm_quinina_01 16139 mm_fresno_01 16139 mm_naranjo_01 16139 mm_acacia_01 16139 mm_rama_03 16139 mm_ápice_01 16139 / 688 mm_platanáceo_01 16139 mm_esparcido_01 16139 mm_manzana_01 16139 mm_fruto_01 16139 mm_piñón_07 16139 mm_quino_03 16139 mm_aromo_01 16139 mm_goma_01 16139 mm_euforbiáceo_01 16139 mm_rubiáceo_01 16139 mm_abedul_01 16139 mm_vegetal_04 16139 mm_cupresáceo_01 16139 mm_palmáceo_01 16139 mm_rama_02 16139 mm_corteza_01 16139 mm_laurel_01 16139 mm_pináceo_01 16139 mm_sauce_01 16139 mm_uso_04 16139 / Tabla 23: Nodos de la comunidad 41292 con la etiqueta de sustantivos En la siguiente consulta se han obtenido los nodos con la etiqueta de sustantivos pertenecientes a la comunidad 41292, que como se aprecia en la siguiente tabla, se agrupan en torno a conceptos relacionados con la palabra “comer” o la “comida”. ● Consulta en Cypher : MATCH (u:NC) where u.community= 41292 RETURN u.termId, u.DUE_definition 689 u.termId u.DUE_definition mm_gusa_01 hambre. mm_vitualla_02 abundancia de comida; mm_hambre_01 sensación interna que hace desear la comida. mm_hambrina_01 hambre muy grande. mm_hambruna_01 hambre muy grande. mm_yanta_01 comida del mediodía. mm_yantar_04 comida. mm_zampa_02 comida. mm_zancocho_01 comida mal guisada. mm_almudelio_01 ración de comida o bebida. mm_almuerzo_01 comida que se toma a veces a media mañana. mm_almuerzo_02 a veces. se llama así a la comida de mediodía. mm_almuerzo_04 cosa que se toma como almuerzo. / 690 mm_amaitaco_01 comida ligera que se toma a media mañana. mm_ambigú_01 comida. especialmente cena. que se sirve toda de una vez. mm_insatisfacción_01 estado de insatisfecho. mm_insatisfecho_01 no satisfecho o saciado. mm_angurria_05 hambre insaciable. mm_apolillado_01 apolillar . comido o deteriorado por la polilla. mm_arenzata_01 ración de comida. mm_manduca_01 comida. mm_manducatoria_01 comida. mm_manjar_02 comida especialmente delicada o apetitosa. mm_carpanta_01 hambre. mm_colación_02 comida ligera; mm_comido_01 se aplica al que ha comido ya. mm_papeo_01 comida. mm_pelma_02 se aplica a la comida indigesta. mm_pelmazo_02 cosa. por ejemplo una comida. apelmazada. mm_picnic_01 comida campestre. mm_pitanza_02 comida que se toma. mm_polifagia_01 hambre patológica. mm_refrigeración_02 comida ligera. / 691 mm_refrigerio_01 comida ligera tomada entre las importantes. mm_robla_02 comida con que se obsequia al terminar un trabajo a los que lo han ejecutado. mm_extraordinario_03 plato o manjar que se añade a la comida diaria. mm_fambre_01 hambre. mm_fame_01 hambre. mm_saciedad_01 estado de satisfecho o de harto. mm_festín_01 comida espléndida. mm_sancocho_01 comida mal o incompletamente guisada. mm_flamenquilla_01 cierta fuente pequeña para servir la comida. mm_satisfecho_02 saciado o harto de comida. mm_fuente_05 recipiente de forma redonda u ovalada que se emplea para servir la comida. mm_sobrecomida_01 postre de la comida. mm_gazuza_01 hambre. mm_taco_11 refrigerio que se toma entre las comidas. mm_tentempié_01 refrigerio. / Tabla 24: Nodos de la comunidad 4489 con la etiqueta de sustantivos En la siguiente consulta se han obtenido los nodos por la etiqueta de sustantivos pertenecientes a la comunidad 4489 (46 elementos en total), que se agrupan en torno a conceptos relacionados con “adornos”. ● Consulta en Cypher : MATCH (u:NC) where u.community= 4489 RETURN u.termId, u.DUE_definition 692 u.termId u.DUE_definition mm_abanillo_01 adorno plisado en que consistían algunos cuellos alechugados. mm_guadameco_01 cierto adorno que usaban las mujeres. mm_guara_03 adorno superfluo. mm_virguería_01 adorno. detalle o refinamiento añadido a una cosa. que se considera exagerado o molesto. mm_guilindujes_01 arrequives. mm_adorno_01 cosa que adorna. mm_historiado_02 historiar, complicado o recargado de adornos. mm_alcafar_01 cubierta. jaez o adorno del caballo. mm_alfarda_04 cierto adorno que usaban antiguamente las mujeres. mm_almocarbe_02 adorno de lazos. mm_almocárabe_02 adorno de lazos. mm_andarivel_05 adornos excesivos, generalmente de mujer. mm_jaez_01 adornos que se ponen a las caballerías. mm_aparejo_09 adornos o accesorios de un vestido. / 693 mm_joya_05 cierto broche de adorno. mm_arrequive_01 cierto adorno antiguo del vestido. mm_arrequive_02 adornos innecesarios o excesivos. mm_arrocabe_02 adorno arquitectónico a manera de friso. mm_arrumaco_02 adornos excesivos o estrafalarios. mm_banda_05 humeral (ornamento sagrado). mm_broche_02 joya o adorno consistente en un imperdible adornado. mm_charrada_03 adorno excesivo o cosa recargada de adornos. mm_cimera_02 cualquier adorno que se pone sobre la celada; mm_ornamento_01 adorno. mm_pelendengue_01 perendengue: adorno excesivo o de mal gusto. mm_pelitrique_02 adorno. mm_perendengue_02 adorno superfluo. mm_perfil_01 adorno delicado; mm_perifollo_02 adorno. mm_quillotro_07 adorno o gala. mm_requive_01 arrequive. mm_ringorrango_02 adorno exagerado y de mal gusto en cualquier cosa. mm_fantasía_04 adorno caprichoso. mm_faralá_02 adorno excesivo y de mal gusto. mm_firmal_01 joya en forma de broche. mm_firuletes_01 arrequives. mm_flocadura_01 adorno formado por flecos. / 694 mm_floritura_01 adorno en el canto. mm_flámula_01 pequeña bandera. generalmente triangular. que se pone como adorno. mm_gaitería_01 vestido o adorno gaitero. mm_galanura_02 gala: adorno vistoso. mm_sobrefalda_01 falda corta que se pone encima de otra como adorno. mm_tachonería_01 adorno de tachones. mm_tarjón_01 tarjeta (adorno arquitectónico). mm_trencellín_01 trencillo (adorno). mm_trepado_02 trepa (adorno). / Tabla 25: Nodos de la comunidad 395 con la etiqueta de adjetivos En la siguiente consulta se han obtenido los nodos con la etiqueta de adjetivo pertenecientes a la comunidad 395 . ● Consulta en Cypher : MATCH (u:AQ) where u.community= 395 RETURN u.termId, u.DUE_definition 695 u.termId u.DUE_definition mm_vicioso_02 abundante en cierta cosa que significa vigor. mm_abundado_01 abundante. mm_abundante_01 se aplica a lo que abunda. mm_abundantísimo_01 abundante. mm_abundoso_01 abundante. mm_yerboso_01 abundante en hierba. mm_herboso_01 cubierto de hierba abundante. mm_zancudo_01 se aplica a la persona o animal que tiene las piernas o las patas largas. mm_zarzoso_01 aplicado a terrenos. abundante en zarzas. mm_hornaguero_02 espacioso u holgado. mm_anchuroso_01 muy espacioso; mm_juncoso_02 abundante en juncos. mm_kilométrico_01 muy largo. mm_lagunoso_01 abundante en lagunas. mm_lanoso_01 lanudo. / 696 mm_lanudo_01 cubierto de abundante lana. mm_largo_01 abundante. mm_larguero_02 abundante. mm_lengüilargo_01 deslenguado. largo de lengua. mm_leptorrino_01 se aplica al que tiene la nariz larga y delgada. mm_arterioso_02 abundante en arterias. mm_astado_02 provisto de asta (mango largo). mm_longar_01 largo. mm_longazo_01 luengo. mm_longo_01 largo. mm_luengo_01 largo. mm_lungo_01 largo. mm_azaroso_01 abundante en peligros o percances. mm_barbiluengo_01 de barba larga. mm_mangado_01 con mangas largas. mm_boscoso_01 abundante en bosques. mm_campuroso_01 espacioso. mm_canilludo_01 zanquilargo. mm_careador_01 se aplica al perro que guía las ovejas a diferencia del mastín. que las defiende. mm_nevoso_01 aplicado a países de nieves abundantes. mm_nivoso_01 nevoso. mm_chamborote_02 se aplica a la persona de nariz larga. mm_olivoso_01 abundante en olivos. / 697 mm_olivífero_01 abundante en olivos. mm_opimo_01 aplicado a nombres que representan riqueza o fertilidad. abundante. mm_opulento_01 rico. abundante o muy desarrollado. mm_contioso_01 cuantioso. mm_copioso_01 abundante; mm_pastoso_05 abundante en pastos. mm_crinado_01 de largos cabellos. mm_crinito_01 crinado. mm_pelilargo_01 de pelo largo. mm_pepitoso_02 abundante en pepitas. mm_cuantioso_01 aplicado a cosas que suponen riqueza. abundante. mm_cuellilargo_01 de cuello largo. mm_pestañoso_02 con largas pestañas. mm_pinífero_01 abundante en pinos. mm_pituitoso_01 abundante en pituita. mm_pizarreño_02 pizarroso. mm_pizarroso_01 abundante en pizarra. mm_pulposo_01 abundante en pulpa. mm_rabicorto_02 se aplicaba a las personas que llevaban demasiado cortas las vestiduras talares. mm_rabilargo_01 de rabo largo. mm_espacioso_01 se aplica a los recintos en cuyo interior hay abundante espacio para la cosa que contienen o a que se destinan. mm_estepero_01 abundante en estepas. / 698 mm_ripioso_01 aplicado a composiciones en verso. abundante en ripios. mm_rocalloso_01 abundante en rocalla (trozos de roca). mm_seboso_01 abundante en sebo. mm_fontanoso_01 abundante en manantiales. mm_fortunoso_02 azaroso. mm_selvoso_01 abundante en selvas. mm_silvoso_01 selvoso. mm_sobrelleno_02 muy abundante. mm_gatero_02 aplicado a lugares. abundante en gatos o muy frecuentado por ellos. mm_superior_04 se aplica a los seres vivos más complejos en cuanto a sus organismos y funciones. considerados como el resultado de una larga evolución. mm_talar_06 se aplica a las vestiduras largas hasta los talones; mm_tupido_04 abundante. mm_ventiscoso_01 aplicado al tiempo o a un lugar. abundante en ventiscas. / Tabla 26: Verbos de la comunidad 8147 En la siguiente consulta se han obtenido los nodos con la etiqueta de sustantivo pertenecientes a la comunidad 8147. ● Consulta en Cypher : MATCH (u:V) where u.community= 8147 RETURN u.termId, u.DUE_definition 699 u.termId u.DUE_definition mm_abuñolar_01 abuñuelar. mm_abuñuelar_01 freír los huevos u otro alimento de modo que queden como un buñuelo. mm_guisar_01 preparar los alimentos mediante el fuego y con diversas manipulaciones. para ser comidos. mm_gulusmear_01 comer golosinas. mm_gulusmear_02 curiosear lo que se está guisando. olfatearlo o probarlo. mm_yacer_05 pastar por la noche las caballerías. mm_yantar_01 comer. mm_aderezar_03 guisar. mm_herbajar_01 apacentar el ganado. mm_herbajar_02 pastar el ganado. mm_herbajear_01 herbajar. mm_zampar_03 comer. o menos frecuentemente beber. con precipitación. con avidez o con exageración. mm_hinchar_04 hartarse de comer. mm_aforrar_04 comer o beber mucho. / 700 mm_agarrar_08 pegarse la comida a la vasija en que se guisa al quemarse ligeramente. mm_agostar_04 pastar el ganado durante la época de sequía en dehesas o rastrojeras. mm_aguachar_03 engordar excesivamente un caballo por haber estado pastando y ocioso. mm_ahogar_11 estofar o rehogar una vianda. mm_ahojar_01 ramonear (pacer el ganado las hojas y las puntas de las ramas de los árboles). mm_alenguar_01 en el Concejo de la Mesta. contratar el arriendo de alguna dehesa. o hierbas para pastar el ganado lanar. mm_apacentar_01 cuidar el ganado mientras pace. mm_apacentar_02 pastar el ganado. mm_jamar_01 comer algo que se considera exagerado. mm_apastar_01 apacentar. mm_lactar_02 tomar leche para nutrirse los niños que todavía no comen. directamente del seno. o de otra manera. mm_lagarearse_01 estropearse. por estrujarse. la uva que se destina a comer. mm_laminar_01 lamer o golosinear. mm_laminear_01 golosinear. mm_asaetear_02 freír o mortificar. mm_atizar_04 beber o comer algo que se considera exagerado. mm_ayunar_01 no comer durante un cierto tiempo. mm_malcomer_01 comer escasamente. mm_malcomer_02 comer una comida que no satisface o de manera que no satisface. mm_mamar_03 engullir. mm_bastonear_02 comer el ganado bastones o tallos tiernos de los árboles. / 701 mm_manducar_01 engullir. mm_beber_02 tomar más o menos bebidas alcohólicas. mm_bellotear_01 pastar la bellota el ganado de cerda. mm_marear_02 rehogar las viandas. mm_bocear_01 bocezar. mm_bocezar_01 mover los labios a un lado y a otro los caballos y otros animales cuando comen o beben. mm_merendar_01 tomar alguna cosa de comer por la tarde. entre la comida de mediodía y la cena. mm_merendar_02 tomar la comida de mediodía. mm_merendillar_01 merendar. mm_moflir_01 comer o masticar. mm_campear_05 salir a pastar al campo los animales domésticos o silvestres. mm_montanear_01 pastar el ganado de cerda bellotas o hayucos en el monte. mm_morar_01 estar. dormir. comer. etc.. habitualmente en determinado sitio. mm_carear_05 dirigir el ganado a pastar a algún sitio. mm_carear_06 pastar el ganado. mm_cargar_30 comer o beber mucho. mm_causear_01 tomar un causeo. o merendar. mm_chascar_03 engullir. mm_ofrecer_05 entrar a beber en la taberna. mm_pacer_01 comer el ganado la hierba del campo. mm_pajear_01 comer mucha paja una caballería sin que le siente mal. mm_comer_01 en sentido amplio. tomar alimentos por la boca. / 702 mm_comer_02 en sentido restringido. tomar alimento sólido. mm_comer_03 tomar la comida de mediodía. mm_comichear_01 comiscar. mm_comiscar_01 comer de cuando en cuando muy pequeñas cantidades de cualquier comida. mm_comisquear_01 comiscar. mm_papear_02 comer. mm_pastar_01 comer el ganado en el campo la hierba con que se alimenta. mm_pastar_02 llevar el ganado al campo a pastar o cuidarle mientras lo hace. mm_pastear_01 apacentar. mm_pastorear_01 cuidar el ganado y llevarlo a pastar. mm_pasturar_01 apacentar o alimentar al ganado. mm_pegar_04 quemarse y adherirse a una vasija algo de lo que se está calentando o guisando en ella. por ejemplo por dejar de removerlo o por quedarse sin caldo. mm_pegotear_02 presentarse en las casas a la hora de comer para hacerse invitar. mm_perdigar_02 rehogar una perdiz u otra ave. la carne. etc. mm_curiar_01 cuidar. guardar o pastorear. mm_picotear_02 coger trocitos de algo para comerlos. o ir tomando de cuando en cuando una cosa de comer. pequeña o en poca cantidad. mm_descalificar_02 privar a alguien de tomar parte en cierta actividad. como sanción por alguna actuación suya. mm_poner_23 disponer o preparar la mesa para comer. mm_ponzoñar_01 emponzoñar. mm_devorar_02 comer con avidez. / 703 mm_dorar_02 asar o freír suficientemente las cosas de comer para que tomen color dorado. mm_privar_06 tomar bebidas alcohólicas. mm_promiscuar_01 comer en días de cuaresma u otros en que lo prohíbe la Iglesia carne y pescado en la misma comida. mm_embaular_02 comer mucho. mm_embocar_04 comer mucho y deprisa. mm_embribar_01 invitar a comer. mm_embuchar_03 comer precipitadamente. tragando casi sin masticar. mm_empastar_07 padecer meteorismo un animal por haber comido el pasto en malas condiciones. mm_empinar_07 beber mucho alcohol. mm_emponzoñar_01 convertir alguna sustancia. particularmente de comer o beber. en peligrosa o nociva para la salud. mm_empotrerar_01 meter el ganado caballar en el potrero para que paste. mm_englutir_01 engullir. mm_engolliparse_02 comer con exceso. mm_engullir_01 comer o tragar algo precipitadamente. por avidez o por prisa. mm_ramonear_02 pacer los animales las puntas tiernas de los árboles. directamente o cortadas previamente. mm_ensortijar_02 poner un aro de hierro atravesando la nariz de un animal. para conducirle o para impedirle pacer en cierto sitio. mm_entonar_07 ponerse alegre tomando bebidas alcohólicas. mm_ratonar_02 enfermar los gatos por comer muchos ratones. mm_entrar_16 ser agradable de tomar una comida o bebida. no resultar pesadas. mm_rechichivar_01 quemar . o freír[se]. asar[se]. etc.. demasiado una vianda. / 704 mm_refrescar_07 tomar un refresco o una bebida cualquiera. mm_refreír_01 freír una cosa por segunda vez o recalentarla en la sartén con algo de aceite. mm_rehogar_01 freír una vianda en manteca o aceite. a fuego lento. en cacerola o en sartén. antes de añadirle el agua o caldo con que acaba de guisarse. mm_repacer_01 pastar la hierba hasta agotarla. mm_repapilarse_01 comer mucho y con delectación. mm_repastar_02 pastar otra vez el ganado. mm_repastar_03 volver a apacentar al ganado. mm_repletar_02 hartarse de comer. mm_estovar_01 rehogar o estofar una vianda. mm_rustrir_02 pastar. mm_rustrir_03 comer con avidez. mm_salmuerarse_01 enfermar el ganado por comer mucha sal. mm_freír_01 guisar una comida poniéndola al fuego en una sartén con aceite o sustancia similar. mm_fritar_01 freír. mm_sofreír_01 freír una cosa ligeramente. mm_gazmiar_01 golosinear. mm_soplar_11 tomar bebidas alcohólicas en exceso. mm_glotonear_01 comer con glotonería. mm_golmajear_01 golosinear. mm_golosear_01 golosinear. mm_golosinar_01 comer golosinas. mm_golosinear_01 comer golosinas. / 705 mm_golosmear_01 golosinear. mm_tascar_02 romper la hierba con los dientes los animales cuando pastan. produciendo un ruido característico. mm_tomar_05 comer o beber una cosa. mm_tomar_06 beber alcohol. mm_tragar_02 comer mucho o con voracidad. mm_tragonear_01 comer mucho y repetidamente. mm_tripear_01 comer con glotonería. / Tabla 27: Comunidad 2855 El siguiente listado muestra todos los nodos pertenecientes a la comunidad 2855, creada con el algoritmo LPA de “propagación de etiquetas”. Como se puede observar es una comunidad muy grande y heterogénea. ● Consulta en Cypher : MATCH -(q:V{community:2855}) return q.termId, q.community mm_abanderar_01 mm_abarrancar_01 mm_abatir_05 mm_abonar_07 mm_absolver_02 mm_acondicionar_02 mm_adelantar_06 mm_adelantar_11 mm_adelantar_12 mm_aduanar_01 mm_afinar_04 mm_aflorar_01 mm_agenciar_01 mm_aguantar_03 mm_ahocicar_01 mm_aislar_02 mm_ajustar_05 mm_alambicar_03 mm_alfabetizar_02 mm_alistar_02 mm_allanar_07 mm_almohazar_01 mm_almohazar_02 mm_alzar_06 mm_alzar_09 mm_amparar_06 mm_ancorar_02 mm_aparecer_06 mm_apartar_02 mm_apartar_09 mm_apersonarse_01 mm_aporrar_01 mm_aprovechar_03 mm_apuntar_08 mm_arbitrar_05 mm_arenar_02 mm_arrastrar_07 mm_arrebañar_02 mm_arrellanar_01 mm_arreplegar_01 mm_arriesgar_02 mm_arrimar_06 mm_articular_01 mm_asacar_01 mm_asentir_01 mm_atinar_02 mm_atingir_02 mm_autorizar_02 mm_avecinar_02 mm_avecindar_01 mm_bachillerar_01 mm_baraustar_02 mm_barbear_07 mm_barrear_02 706 / mm_barrenar_04 mm_barrer_02 mm_barrer_04 mm_basurear_01 mm_batir_10 mm_biografiar_01 mm_bolear_07 mm_bornear_05 mm_borrajear_02 mm_borrar_01 mm_bracear_04 mm_burocratizar_01 mm_buscar_01 mm_caer_18 mm_calcar_02 mm_calcografiar_01 mm_camotear_01 mm_campar_01 mm_camperear_01 mm_camuflar_01 mm_caramelear_01 mm_cefear_01 mm_celar_02 mm_celebrar_05 mm_centrar_05 mm_cepillar_07 mm_cerrebojar_01 mm_chafar_04 mm_chapaletear_01 mm_chicanear_01 mm_chinear_02 mm_cifrar_03 mm_circunscribir_01 mm_clauquillar_01 mm_climatizar_01 mm_coger_12 mm_colaborar_02 mm_colegiar_01 mm_comer_10 mm_comprender_04 mm_confiscar_01 mm_confundir_01 mm_considerar_05 mm_constar_02 mm_consultar_01 mm_contornar_01 mm_contornear_01 mm_contralorear_01 mm_contraponer_02 mm_correr_09 mm_corrocar_01 mm_cortar_11 mm_cuadrar_02 mm_cuadrar_04 mm_cuadricular_01 mm_curar_06 mm_decampar_01 mm_delinear_01 mm_demandar_03 mm_demediar_02 mm_desacalorarse_01 mm_desacotar_04 mm_desahogar_03 mm_desalforjar_02 mm_desapadrinar_01 mm_desaplomar_01 mm_desaprobar_01 mm_desapuntar_01 mm_desatestar_01 mm_desautorizar_02 mm_desbarrar_01 mm_descaminar_02 mm_descansar_07 mm_descarriar_01 mm_desconocer_04 mm_desconsiderar_01 mm_descorrer_02 mm_describir_02 707 / mm_descubrir_05 mm_desear_03 mm_desenlazar_02 mm_desenlazar_03 mm_desflorar_04 mm_deshinchar_02 mm_desigualar_02 mm_desinfartar_01 mm_deslindar_02 mm_desojar_03 mm_despachurrar_03 mm_desplantar_02 mm_despotizar_01 mm_despuntar_03 mm_destacar_02 mm_destocar_01 mm_destorrentar_01 mm_destronchar_01 mm_desvarar_02 mm_desviar_01 mm_detraer_02 mm_dibujar_01 mm_dictar_01 mm_diferenciar_05 mm_diplomar_01 mm_disculpar_01 mm_disculpar_02 mm_discurrir_04 mm_disonar_03 mm_divagar_02 mm_editorializar_01 mm_embargar_02 mm_embarrancar_01 mm_emborronar_03 mm_embozar_02 mm_emitir_04 mm_empadronar_01 mm_emparejar_03 mm_enaciyar_01 mm_encabezar_04 mm_encadenar_03 mm_encamisar_03 mm_encarnar_09 mm_enclaustrar_03 mm_encontrar_01 mm_engalgar_02 mm_enganchar_05 mm_enrasar_01 mm_enrocar_01 mm_enrolar_01 mm_enrolar_02 mm_enrollar_02 mm_enrollar_06 mm_ensolver_02 mm_entrecoger_02 mm_entrelinear_01 mm_esbarizar_01 mm_esborregar_01 mm_escachifollar_03 mm_escachifullar_03 mm_escarabajear_04 mm_escarbar_01 mm_escobillar_01 mm_escorar_06 mm_escorzar_01 mm_escribir_01 mm_escullir_01 mm_espigar_02 mm_esquiciar_01 mm_estampar_01 mm_estorbar_03 mm_estrellar_03 mm_etimologizar_01 mm_excusar_01 mm_expansionarse_02 mm_expedir_02 mm_expiar_02 mm_explicar_02 708 / mm_extender_08 mm_extraditar_01 mm_extrañar_06 mm_extravenar_02 mm_fabricar_02 mm_fabular_01 mm_falsear_04 mm_fondear_04 mm_fotograbar_01 mm_frezar_06 mm_frisar_06 mm_frivolizar_01 mm_gallardear_01 mm_garabatear_02 mm_girar_01 mm_gofrar_01 mm_gofrar_02 mm_gongorizar_01 mm_grabar_01 mm_gracejar_01 mm_gramatiquear_01 mm_granear_03 mm_granear_04 mm_hallar_01 mm_historiar_01 mm_hocicar_01 mm_hocicar_03 mm_hocicar_05 mm_hociquear_01 mm_hozar_01 mm_huir_02 mm_imaginar_02 mm_improbar_01 mm_inhalar_02 mm_inquirir_03 mm_inscribir_01 mm_inscribir_02 mm_inscribir_04 mm_interlinear_01 mm_inventar_01 mm_ironizar_01 mm_lambisquear_01 mm_lampacear_01 mm_lapizar_02 mm_latinar_01 mm_latinear_01 mm_legitimar_01 mm_levantar_16 mm_liftar_01 mm_linear_02 mm_luir_02 mm_lujar_01 mm_lustrar_01 mm_matear_03 mm_matricular_01 mm_maximizar_01 mm_mercerizar_01 mm_merendar_03 mm_merodear_01 mm_metatizar_01 mm_mimar_01 mm_minimizar_03 mm_montear_02 mm_morder_06 mm_motear_01 mm_mundificar_01 mm_narrar_01 mm_nivelar_04 mm_novelar_02 mm_obtemperar_01 mm_opinar_02 mm_orbitar_01 mm_otorgar_01 mm_paletear_02 mm_paliar_03 mm_parecer_07 mm_parlamentar_02 mm_partir_07 709 / mm_pasar_19 mm_patear_02 mm_pautar_01 mm_pecorear_02 mm_pedir_08 mm_pegar_09 mm_peinar_03 mm_pendrar_01 mm_pensar_05 mm_pepenar_01 mm_peregrinar_03 mm_perquirir_01 mm_persignar_01 mm_personarse_01 mm_pescudar_01 mm_picar_06 mm_picar_23 mm_pintar_06 mm_pintar_08 mm_pintarrajar_01 mm_pintarrajear_01 mm_pintorrear_01 mm_pisar_05 mm_pisotear_02 mm_pivotar_01 mm_planificar_02 mm_plantear_01 mm_platicar_02 mm_plumear_01 mm_poner_11 mm_popar_01 mm_pormenorizar_01 mm_prear_01 mm_predominar_02 mm_preguntar_01 mm_prologar_01 mm_promover_02 mm_proponer_01 mm_proponer_03 mm_proveer_06 mm_proyectar_04 mm_psicoanalizar_01 mm_publicar_03 mm_puntear_02 mm_puntualizar_02 mm_purgar_02 mm_purificar_04 mm_purpurear_01 mm_quemar_10 mm_radiar_03 mm_rasar_02 mm_rascar_01 mm_rasguear_02 mm_rasguear_03 mm_rasguñar_02 mm_raspar_01 mm_raspar_02 mm_raspear_01 mm_rastrear_02 mm_rastrear_03 mm_rastrear_04 mm_rayar_01 mm_rayar_02 mm_reargüir_01 mm_rebañar_01 mm_rebramar_02 mm_rebuscar_01 mm_recalar_02 mm_recalzar_03 mm_reciclar_02 mm_reclamar_01 mm_reclutar_01 mm_recoger_03 mm_recoger_04 mm_recorrer_02 mm_recuadrar_01 mm_recurrir_02 mm_redolar_01 710 / mm_reencontrar_01 mm_reenganchar_02 mm_reescribir_01 mm_referir_01 mm_referir_02 mm_refrotar_01 mm_regalonear_01 mm_registrar_01 mm_reglar_01 mm_relamer_03 mm_relevar_01 mm_rellanar_01 mm_relucir_02 mm_remorder_02 mm_repetir_05 mm_repisar_02 mm_replantear_01 mm_replantear_02 mm_repurgar_01 mm_resalir_01 mm_resaltar_03 mm_resbalar_01 mm_resolver_01 mm_respaldar_02 mm_respetar_02 mm_responder_01 mm_responder_09 mm_restar_02 mm_restregar_01 mm_retajar_04 mm_retratar_02 mm_reverenciar_01 mm_revezar_01 mm_revolcar_02 mm_revolucionar_01 mm_revolver_11 mm_rolar_01 mm_rolar_02 mm_ronchar_02 mm_rozar_01 mm_rozar_02 mm_rubricar_01 mm_rutar_05 mm_saborear_04 mm_sacar_13 mm_sacar_20 mm_salir_23 mm_salir_26 mm_santificar_05 mm_santiguar_01 mm_saquear_01 mm_segar_03 mm_sellar_01 mm_ser_06 mm_sicoanalizar_01 mm_sigilar_01 mm_signar_03 mm_sobreponer_03 mm_sobresalir_01 mm_soltar_10 mm_solucionar_01 mm_solventar_01 mm_solver_01 mm_sonar_04 mm_soplar_10 mm_sostener_03 mm_sublevar_02 mm_subrayar_01 mm_subsanar_01 mm_subsanar_03 mm_sustraer_03 mm_sutilizar_03 mm_tagarotear_01 mm_tajar_02 mm_tallar_04 mm_tantear_05 mm_teclear_02 mm_teologizar_01 711 / mm_timbrar_02 mm_tiranizar_01 mm_tirar_11 mm_tocar_20 mm_topar_03 mm_topar_04 mm_torcer_04 mm_torcer_05 mm_trabar_11 mm_trabucar_02 mm_tragar_08 mm_tramitar_02 mm_transfregar_01 mm_trasfregar_01 mm_trasnombrar_01 mm_traspintar_03 mm_tratar_01 mm_trazar_01 mm_trazar_02 mm_trazar_03 mm_triangular_04 mm_tropezar_04 mm_valer_15 mm_ventar_03 mm_ventilar_05 mm_ver_11 mm_verdear_02 mm_versar_01 mm_vetear_01 mm_visitar_12 mm_vocalizar_03 mm_volar_12 mm_vosear_01 mm_zanjar_02 mm_zanquear_04 mm_zigzaguear_05 712 / Apéndice 5: Campos lexicográficos ● Figura 163. Expansión de las relaciones de un nodo del camino generado de manera aleatoria tras la consulta una consulta en Cypher con nodos anónimos. 713 / 714 / Tabla 28: Denominadores comunes del campo lexicográfico de “mamífero” y “carnívoro” En la siguiente tabla se ha reflejado una consulta que construye el producto cartesiano entre “mamífero_01” y “carnívoro_02”. ● Consulta en Cypher : MATCH (n:NC{termId:"mm_mamífero_01"})-[]-(o)-[]-(m:NC{termId:"mm_carnívoro_02"}) RETURN o.termId, o.DUE_definition 715 o.termId o.DUE_definition "mm_turón_01" "mamífero carnívoro de pequeño tamaño, de cuerpo flexible y prolongado. que despide un olor fétido." "mm_patialbillo_01" "garduña (mamífero carnívoro)." "mm_papialbillo_01" "garduña (mamífero carnívoro)." "mm_tasugo_01" "tejón (mamífero carnívoro)." "mm_ganeta_01" "jineta (mamífero carnívoro)." "mm_tajugo_01" "tejón (mamífero carnívoro)." "mm_onza_05" "mamífero carnívoro también llamado «leopardo de las nieves» que habita en las estepas montañosas del Himalaya." "mm_fuina_01" "garduña (mamífero carnívoro)." "mm_chita_01" "guepardo (mamífero carnívoro)." "mm_chinga_01" "mofeta (mamífero carnívoro)." "mm_chacal_01" "mamífero carnívoro cánido. parecido al lobo. pero algo menor que él. que vive. a veces en manadas. en las regiones templadas de Asia y África." / 716 "mm_mustélido_01" "se aplica a los animales mamíferos carnívoros del grupo de la comadreja. como el armiño. el chucuru. el glotón. el huillín. el lataz. la nutria o el visón." "mm_mustela_01" "comadreja (mamífero carnívoro)." "mm_satandera_01" "comadreja (mamífero carnívoro)." "mm_caracal_01" "mamífero carnívoro. especie de lince." "mm_rámila_01" "garduña (mamífero carnívoro)." "mm_meloncillo_02" "mamífero carnívoro nocturno. del género de la mangosta. de cuerpo pequeño y patas cortas con grandes uñas." "mm_melandro_01" "tejón (mamífero carnívoro)." "mm_cangrejero_02" "animal mamífero carnívoro parecido al perro. que se alimenta de cangrejos." "mm_rezmila_01" "garduña (mamífero carnívoro)." "mm_maracayá_01" "tigrillo (mamífero carnívoro)." "mm_manigordo_01" "ocelote (mamífero carnívoro)." "mm_donosilla_01" "comadreja (mamífero carnívoro)." "mm_prionodonte_01" "mamífero carnívoro. parecido a la jineta. que vive en las selvas tropicales del sudeste asiático." "mm_zorrillo_01" "mofeta (mamífero carnívoro)." "mm_yaguré_01" "mofeta (mamífero carnívoro)." "mm_vulpeja_01" "zorra (mamífero carnívoro)." "mm_vormela_01" "mamífero carnívoro mustélido. parecido al hurón. de pelaje jaspeado. que vive desde el este de Europa hasta el centro de Asia." / 717 "mm_vivérrido_01" "se aplica a los mamíferos carnívoros de la familia a la que pertenecen la civeta y la jineta." "mm_vivérrido_01" "se aplica a los mamíferos carnívoros de la familia a la que pertenecen la civeta y la jineta." "mm_icneumón_01" "mangosta (mamífero carnívoro)." "mm_villería_01" "comadreja (mamífero carnívoro)." "mm_cánido_01" "se aplica a los animales mamíferos carnívoros de la familia del perro y el lobo." "mm_cunaguaro_01" "mamífero carnívoro muy feroz. como de 1 m de largo. con piel roja con manchas sobre el lomo y los costados." "mm_pizote_01" "pisote (mamífero carnívoro)." "mm_hiena_01" "nombre aplicado a varias especies de mamíferos carnívoros del género Hyaena y Crocuta;" "mm_glotón_03" "mamífero carnívoro propio de los países árticos. del tamaño de un zorro grande." "mm_gineta_01" "jineta (mamífero carnívoro)." "mm_collareja_02" "comadreja (mamífero carnívoro)." "mm_guatusa_01" "mamífero roedor parecido a la paca. cuya carne se come." "mm_cánido_01" "se aplica a los animales mamíferos carnívoros de la familia del perro y el lobo." "mm_vivérrido_01" "se aplica a los mamíferos carnívoros de la familia a la que pertenecen la civeta y la jineta." "mm_guatusa_01" "mamífero roedor parecido a la paca. cuya carne se come." "mm_visón_01" "mamífero carnívoro mustélido. parecido a la marta. que vive en el norte de América y Europa." / 718 "mm_triquina_01" "gusano nematodo de unos 3 mm de longitud. parásito de mamíferos carnívoros y omnívoros. cuya larva se enquista enrollada en los músculos." "mm_basáride_01" "mamífero carnívoro americano. semejante al mapache. pero menor;" "mm_pisote_01" "mamífero carnívoro americano. de color pardo. cuerpo alargado. extremidades cortas y cola larga;" "mm_pisote_01" "mamífero carnívoro americano. de color pardo. cuerpo alargado. extremidades cortas y cola larga;" "mm_tigrillo_01" "nombre dado en distintos países de América a algunos félidos. incluyendo a veces al ocelote. caracterizados porque su piel presenta manchas parecidas a las del tigre. como Felis tigrina y Felis wiedii." "mm_abazón_01" "buche o bolsa de los dos que tienen dentro de la boca algunos mamíferos. particularmente algunos monos. en los que depositan los alimentos antes de masticarlos. para comerlos más tarde." "mm_adive_01" "mamífero carnívoro de Asia. parecido a la zorra;" "mm_mangosta_01" "pequeño mamífero carnívoro de África." "mm_melón_04" "meloncillo (mamífero carnívoro)." "mm_marta_01" "mamífero carnívoro de color pardo rojizo o negruzco. con alguna manchita amarillenta." "mm_mapache_01" "mamífero plantígrado de América del Norte. de piel gris con una máscara negra alrededor de los ojos. hocico blanco y cola peluda con anillos blancos." "mm_lince_01" "mamífero félido. parecido al gato. con las orejas terminadas en dos pinceles de pelos." "mm_civeta_01" "mamífero carnívoro de pequeño tamaño. de la familia de los vivérridos;" / 719 "mm_tejón_02" "mamífero carnívoro. de pelo largo y espeso;" "mm_coyote_01" "mamífero carnívoro. semejante al lobo. que vive en Méjico y otros países del oeste de América del Norte." "mm_tigre_01" "mamífero carnívoro félido. muy fiero. algo mayor que el león y con el pelo rojizo rayado de negro." "mm_félido_01" "se aplica a los animales mamíferos carnívoros de la familia del género Felis y otros. digitígrados. con las uñas agudas y retráctiles y un solo molar. tuberculoso. en la mandíbula superior." "mm_armiño_01" "pequeño mamífero carnívoro. de unos 25 cm de longitud. cuya piel. llamada del mismo modo. es parda en verano pero blanquísima en invierno. salvo la punta de la cola que es negra." "mm_jineta_01" "mamífero carnívoro de cuerpo esbelto. cabeza pequeña. aproximadamente del tamaño de un gato." "mm_garduña_01" "pequeño animal carnívoro nocturno, de unos 70 cm. con pelaje pardo y una mancha blanca en el pecho." "mm_fiera_01" "mamífero carnívoro de gran tamaño." "mm_guepardo_01" "mamífero carnívoro félido semejante al leopardo pero de aspecto más esbelto. de pelo gris amarillento con manchas negras." "mm_leopardo_01" "mamífero felino carnívoro que habita en Asia y África." "mm_jaguar_01" "mamífero carnívoro félido de América." "mm_hurón_01" "mamífero carnívoro de cuerpo pequeño y prolongado." "mm_mofeta_01" "mamífero carnívoro que vive en América;" "mm_comadreja_01" "pequeño mamífero carnívoro. de unos 25 cm de largo. de color pardo rojizo por el lomo y blanco por el vientre, muy vivo, y perjudicial porque mata las crías de las aves y se come los huevos." "mm_dentición_01" "acción de dentar." / Started streaming 120 records after 1 ms and completed after 147 ms. 720 "mm_león_01" "mamífero carnívoro félido que vive en los desiertos y estepas de África y de Asia meridional." "mm_lobo_01" "mamífero carnívoro semejante al perro." "mm_zorro_01" "mamífero carnívoro. más pequeño que el lobo, de pelaje largo. cabeza ancha con el hocico agudo. y cola recta y peluda;" "mm_perro_01" "mamífero carnívoro cánido. doméstico. del que hay infinidad de razas muy distintas entre sí por la forma. el tamaño y el pelaje." / Tabla 29: Campo lexicográfico del sustantivo “libro_01” En la siguiente tabla se ha reflejado el campo lexicográfico del sustantivo relativo al nodo “libro_01”, con la correspondiete definición del DUE . ● Consulta en Cypher : MATCH (n:NC{termId:"mm_libro_01"})-[]-(o) return o.termId 721 q.termId q.DUE_definition "mm_escrito_01" "escribir. Cosa escrita de cualquier naturaleza. extensión. etc.." "mm_tárgum_01" "libro de los judíos que contiene las glosas y paráfrasis caldeas de la Biblia." "mm_tratado_01" "libro sobre cierta materia." "mm_traspellar_02" "cerrar las alas. la mano. un libro. etc." "mm_trashojar_01" "hojear un libro." "mm_trasfojar_01" "hojear un libro." "mm_tonario_01" "libro antifonario." "mm_pasionario_01" "libro que contiene los cantos litúrgicos de la Pasión que se cantan en Semana Santa." "mm_pandectas_02" "cuaderno con las hojas señaladas con las letras del alfabeto en orden. en que se apuntan. en la letra correspondiente. los nombres de las personas con quien se tiene abierta cuenta corriente y el número del folio del libro correspondiente en que está su cuenta." "mm_teneduría_01" "teneduría de libros." "mm_tapa_04" "cada una de las cubiertas de un libro encuadernado." / 722 "mm_taoísmo_01" "religión china inspirada en los libros del filósofo Lao-Tsé (siglo VI a.C." "mm_oficionario_01" "libro en que está el oficio divino u horas canónicas." "mm_sutra_01" "cada libro de una de las colecciones dedicadas a comentar los vedas." "mm_frontispicio_03" "dorso de la primera hoja de un libro. que queda enfrente de la portada." "mm_superventas_01" "libro. disco o casete que tiene un gran éxito de ventas." "mm_obra_02" "libro." "mm_obituario_01" "libro parroquial en que se anotan las defunciones y entierros." "mm_formato_01" "tamaño y forma de un libro o cuaderno;" "mm_forma_11" "tamaño de un libro por sus dimensiones de alto y ancho (no grueso)." "mm_fondo_14" "conjunto de libros o de documentos existentes en una biblioteca. en una librería o en un archivo." "mm_folio_02" "tamaño de papel o libro que resulta de doblar el pliego una vez. o sea haciendo con él dos hojas o cuatro páginas." "mm_folio_01" "hoja de un libro o cuaderno. particularmente cuando están numerados por hojas y no por páginas." "mm_foliar_01" "numerar los folios de un libro o cuaderno." "mm_folder_01" "carpeta para papeles. libros. etc." "mm_file_01" "carpeta para papeles. libros. etc." "mm_nervura_01" "conjunto de los nervios del lomo de un libro." "mm_nervio_05" "cordón que forma en el lomo del conjunto de cuadernillos de un libro que se encuaderna la cuerda con que están cosidos." / 723 "mm_facsímile_01" "copia o reproducción exacta de un libro. un impreso. un dibujo. una firma. etc." "mm_facsímil_01" "copia o reproducción exacta de un libro. un impreso. un dibujo. una firma. etc." "mm_facistol_01" "atril grande donde se ponen los libros para el canto en los coros de las iglesias." "mm_fachada_03" "portada de un libro." "mm_exégesis_01" "explicación o interpretación. particularmente de los libros de la Biblia." "mm_extravagante_02" "cualquiera de las constituciones pontificias que se hallan recogidas y puestas al fin del cuerpo del derecho canónico. después de los cinco libros de las decretales y clementinas." "mm_extractar_01" "hacer un extracto de un escrito. libro. discurso. etc." "mm_musiquero_01" "mueble adecuado para guardar en él los libros y cuadernos de música." "mm_exegesis_01" "explicación o interpretación. particularmente de los libros de la Biblia." "mm_evangelio_04" "libro muy pequeño con el principio y el fin del Evangelio de San Juan y un capítulo de cada uno de los otros tres. que se les ponía como reliquia a los niños. colgada de la cintura." "mm_evangeliario_01" "libro litúrgico en que están contenidos los evangelios de cada día del año." "mm_sexto_03" "libro que contiene algunas constituciones y decretos canónicos." "mm_sermonario_02" "libro que contiene sermones." "mm_separata_01" "conjunto de ejemplares impresos por separado. de un artículo de revista o capítulo de un libro. o cada uno de ellos." "mm_monumento_04" "libro científico o literario de gran valor y en el que se invierte mucho trabajo. a veces de varias personas." / 724 "mm_semanilla_01" "libro de rezos de la Semana Santa." "mm_estacionario_04" "hombre que. por los estatutos de Salamanca. tenía a su cargo dar los libros de la biblioteca." "mm_estacionario_03" "librero que tenía un puesto de libros para venderlos o dejarlos estudiar o copiar." "mm_cartapacio_02" "carpeta con papeles. libros. etc.. dentro." "mm_misal_01" "libro en que lee el sacerdote mientras celebra la misa." "mm_espigar_02" "buscar y recoger de distintos libros o escritos datos. noticias. citas. etc." "mm_santo_08" "grabado de un libro." "mm_salterio_02" "libro de coro que contiene sólo salmos." "mm_mentiroso_03" "se aplica al libro que contiene muchos errores o erratas." "mm_capitulario_01" "libro de coro que contiene las capítulas." "mm_memoriógrafo_01" "autor de un libro de memorias." "mm_memorial_02" "libro o cuaderno de anotaciones." "mm_mediacaña_04" "en un libro encuadernado. corte opuesto al lomo. cuando es cóncavo." "mm_cantoral_01" "libro grande y. generalmente. de pergamino. que tiene la letra y la música de los himnos religiosos y se tiene sobre un atril en el coro de las iglesias." "mm_cantonero_03" "utensilio empleado por los encuadernadores para dorar los cantos de los libros." "mm_cantonera_01" "protección de material distinto que se pone en las puntas de las tapas de los libros o cuadernos. en las esquinas de los muebles. etc." "mm_canto_07" "corte de un libro opuesto al lomo." / 725 "mm_episcopal_02" "libro con los oficios de los obispos." "mm_canon_10" "libro que usan los obispos en la misa desde el principio del canon hasta terminar las abluciones." "mm_entretejer_03" "incluir versos. citas. etc.. en un libro o escrito." "mm_martirologio_01" "libro o catálogo de los mártires del cristianismo y. por extensión. de todos los santos." "mm_canal_13" "en un libro encuadernado. corte opuesto al lomo. cuando es cóncavo." "mm_marmosete_01" "grabado alegórico que se pone al final de un libro o un capítulo." "mm_marial_01" "se aplica a algunos libros que contienen alabanzas a la Virgen." "mm_mareado_03" "en bibliografía. se aplica al libro con manchas producidas por la descomposición del papel." "mm_enquiridión_01" "libro manual." "mm_maquetar_01" "hacer la maqueta de un libro." "mm_maqueta_02" "libro en blanco. del mismo grosor que el que se ha de encuadernar. con el que se proyectan los dibujos del lomo. etc." "mm_enlomar_01" "hacer el lomo de un libro." "mm_manual_08" "libro con los ritos con que deben administrarse los sacramentos." "mm_manual_04" "se aplica a diccionarios y otros libros que tienen un tamaño menor en relación con otros." "mm_enjundia_02" "riqueza de ideas de un libro. un discurso. etc." "mm_manecilla_02" "pequeño broche metálico que sirve para sujetar cerrado un libro." "mm_cajón_06" "en los estantes. por ejemplo para libros. hueco entre cada dos tablas." / 726 "mm_cajonera_02" "especie de cajón que tienen las mesas de los colegios y otros sitios para guardar libros. cuadernos. etc." "mm_cajo_01" "pestaña que se deja en el lomo del libro para sujetarlo a las tapas." "mm_encuadernar_01" "coser o pegar unos a otros los pliegos u hojas que han de constituir un libro o cuaderno y ponerles unas tapas." "mm_encuadernación_03" "cubierta o tapas de un libro encuadernado." "mm_encuadernación_02" "manera de estar encuadernado un libro." "mm_mamotreto_02" "libro muy voluminoso." "mm_cabás_02" "especie de bolso o cartera en forma de caja usado para llevar libros y demás utensilios al colegio." "mm_encarte_03" "hoja o folleto que se introduce en un periódico o libro para repartirlo con él." "mm_cabreo_02" "becerro (libro)." "mm_cabezada_05" "cinta de seda con que se adornan las cabeceras del lomo de un libro encuadernado." "mm_encaje_04" "hoja de papel. a veces plegada. que se coloca dentro de un periódico o un libro para repartirlo con él." "mm_cabecera_10" "cada uno de los bordes superior e inferior del lomo de un libro." "mm_cabecear_08" "poner cabezadas a un libro." "mm_bullón_01" "pieza de metal. generalmente decorada. de forma de cabeza de clavo. con que se guarnecían las encuadernaciones de algunos libros. particularmente los de coro." "mm_empastar_03" "encuadernar un libro en pasta." "mm_lámina_05" "dibujo estampado en una hoja. por ejemplo de un libro." "mm_luminador_01" "iluminador de estampas. libros. etc." / 727 "mm_registrar_08" "poner una señal o registro entre las hojas de un libro." "mm_regimiento_04" "libro en que se daban a los pilotos las reglas y preceptos de su oficio." "mm_lomo_03" "en los libros. parte exterior opuesta al corte de las hojas. en la que se suele escribir el título. nombre del autor. etc." "mm_lomera_03" "trozo de piel o de tela que se coloca en el lomo del libro en la encuadernación de media pasta." "mm_elzevir_01" "libro elzeviriano." "mm_breviario_03" "libro de rezos." "mm_breviario_02" "libro de notas." "mm_reencuadernar_01" "volver a encuadernar un libro." "mm_literatura_03" "conjunto de los libros. artículos. etc.. escritos acerca de determinada materia." "mm_recto_06" "se aplica a «folio» para designar la plana de una hoja de libro o registro que queda a la derecha cuando está abierto." "mm_borrador_02" "libro en que se hacen anotaciones y cuentas que se pasan luego a otro definitivo." "mm_librote_01" "libro." "mm_libro_09" "se aplica a cosas de forma semejante a la de un libro. o se emplea para describir esa forma." "mm_libro_04" "con un adjetivo de color. «amarillo. blanco. rojo. azul». etc.. se aplica a ciertos libros publicados en algunos casos por los gobiernos con documentos diplomáticos de interés para cierto asunto. que importa divulgar." "mm_recetario_04" "libro en que se reseñan las sustancias medicinales y su uso." "mm_recetario_02" "libro en que se anotaban las recetas en los hospitales." / 728 "mm_recepta_01" "libro en que se apuntaban las multas impuestas por el Consejo de Indias." "mm_libreta_02" "libro de hojas de papel en que se escribe o hacen apuntaciones. dibujos. etc." "mm_libresco_01" "de libros." "mm_librería_01" "tienda de libros." "mm_librero_02" "mueble donde se colocan libros." "mm_librero_01" "comerciante de libros." "mm_libreril_01" "del comercio de libros." "mm_dumio_01" "bloque de madera o cartón. de forma y tamaño semejantes a los de un libro mediano. que se emplea en las bibliotecas para poner en los estantes los letreros que deben ir intercalados entre los libros." "mm_dumio_01" "bloque de madera o cartón. de forma y tamaño semejantes a los de un libro mediano. que se emplea en las bibliotecas para poner en los estantes los letreros que deben ir intercalados entre los libros." "mm_leviatán_01" "monstruo marino descrito en el libro de Job. que se interpreta como representación del demonio." "mm_bolso_02" "caja o estuche de cuero u otro material. con asa. que llevan las niñas al colegio con los libros. etc." "mm_dorso_02" "en un objeto delgado. por ejemplo la hoja de un libro. la mano. una moneda o las hojas de las plantas. parte opuesta a la que se considera principal o anverso." "mm_legendario_04" "colección o libro de leyendas de cualquier clase." "mm_legendario_03" "libro de vidas de santos." "mm_lección_06" "cada división de la materia en un libro destinado a la enseñanza." "mm_leccionario_01" "libro de coro que contiene las lecciones de maitines." / 729 "mm_diurno_02" "libro eclesiástico que contiene las horas menores. desde laudes hasta completas." "mm_bibliófilo_02" "persona muy aficionada a los libros." "mm_bibliófilo_01" "aficionado a los libros raros y valiosos y que se dedica a coleccionarlos y a su estudio." "mm_biblioteca_01" "conjunto ordenado de un número considerable de libros." "mm_bibliopola_01" "librero: vendedor de libros." "mm_bibliología_01" "estudio de los libros en sus diversos aspectos. particularmente el histórico. sin consideración del contenido." "mm_bibliográfico_01" "de libros o de [la] bibliografía." "mm_bibliografía_02" "lista de libros sobre cierta materia. o información acerca de ellos." "mm_bibliografía_01" "descripción de los elementos materiales del libro." "mm_bibliofilia_01" "afición a los libros por cualquiera de sus méritos de contenido o de forma. o por su rareza." "mm_becerro_03" "libro antiguo que contiene los privilegios de alguna iglesia o monasterio. o de la corona." "mm_becerro_02" "piel de ternero curtida. que se emplea principalmente para hacer calzado y para la encuadernación de libros." "mm_dietario_01" "libro en que los cronistas de Aragón escribían los sucesos notables." "mm_diccionario_01" "libro en que se da una serie más o menos completa de las palabras de un idioma o de una materia determinada. definidas o con su equivalencia en otro idioma. generalmente por orden alfabético." "mm_devocionario_01" "libro de rezos." "mm_baremo_01" "cuaderno o libro de cuentas ya realizadas." "mm_baraja_03" "se aplica a un libro desencuadernado. con las hojas sueltas." / 730 "mm_bandera_05" "en encuadernación. lámina. mapa. etc.. que se colocan doblados dentro de un libro." "mm_intonso_04" "se aplica al libro que se encuaderna sin cortar las barbas a los pliegos de que consta." "mm_interfoliar_01" "intercalar entre las hojas impresas de un libro otras en blanco." "mm_índice_06" "catálogo de los libros prohibidos por la Iglesia." "mm_índice_05" "relación en listas o en fichas de los libros existentes en una biblioteca." "mm_índice_03" "lista de las materias contenidas en un libro. que se coloca al principio o al final de él." "mm_desencuadernar_01" "romper o deshacer[se] la encuadernación de un libro o cuaderno." "mm_procesionario_01" "se aplica al libro que se lleva en las procesiones con lo que hay que rezar y cantar en ellas." "mm_ingenio_06" "instrumento empleado por los encuadernadores para cortar los cantos de los libros." "mm_atril_01" "soporte en donde se coloca un libro. partitura. etc.. para poder leer con comodidad." "mm_infolio_01" "libro de tamaño folio." "mm_atlas_04" "libro de carácter didáctico que presenta sus contenidos principalmente en forma de ilustraciones. gráficos o cuadros sinópticos." "mm_descatalogado_01" "se aplica al libro que una editorial ya no tiene a la venta." "mm_asentar_12" "anotar algo. particularmente en un libro de cuentas." "mm_volumen_01" "libro u obra escrita que constituye un solo cuerpo." "mm_ilustrador_03" "autor de las ilustraciones de un libro." "mm_delantera_07" "corte de un libro opuesto al lomo. generalmente acanalado." / 731 "mm_portalibros_02" "pequeño estante portátil que. por ejemplo. se tiene con los libros que se necesitan a mano encima de la mesa de trabajo." "mm_portalibros_01" "utensilio con correas en que llevan los libros los escolares." "mm_arquear_02" "hacer recuento de caudales en la caja o en los libros de contabilidad." "mm_portadilla_01" "hoja de un libro en que sólo va impreso el titulo del capítulo o parte que sigue." "mm_portada_02" "página situada al principio de los libros impresos. en que va escrito el título. el autor y el pie de imprenta." "mm_armario_02" "mueble donde se colocan libros." "mm_pornografía_02" "representación o descripción explícita de actos obscenos en películas. revistas. libros. etc." "mm_pontifical_04" "libro que contiene las ceremonias pontificias o episcopales." "mm_códice_01" "libro manuscrito antiguo." "mm_vesperal_01" "libro de canto llano que contiene las vísperas." "mm_versícula_01" "lugar de la iglesia donde se ponen los libros de coro." "mm_versiculario_02" "el que cuida los libros de coro." "mm_plúteo_01" "compartimiento o estante de una estantería de libros." "mm_hojear_02" "leer un libro a la ligera." "mm_hojear_01" "pasar las hojas de un libro." "mm_cuerno_09" "botón que formaba el remate de la varilla de los rollos que hacían las veces de libros entre los antiguos." "mm_plaza_11" "inscripción en el libro correspondiente del que se presenta voluntariamente a servir como soldado." / 732 "mm_venimécum_01" "vademécum (libro manual)." "mm_cubierta_03" "hoja de papel o cartulina de las dos que cubren por delante y por detrás un libro no encuadernado." "mm_antifonario_01" "libro de antífonas." "mm_antifonal_01" "libro de antífonas." "mm_anteportada_01" "hoja que precede a la portada en un libro. en la cual. generalmente. sólo se pone el título de la obra." "mm_pique_04" "acción y efecto de picar o marcar con señales un libro u otro escrito." "mm_anejo_05" "libro que se edita como complemento de una revista." "mm_anaquel_03" "mueble donde se colocan libros." "mm_vademécum_01" "carpeta. bolsa o cartera en que llevaban los estudiantes y colegiales sus libros y papeles." "mm_hagiógrafo_02" "autor de cualquiera de los libros de la Biblia." "mm_corte_05" "cada uno de los cantos de un libro que no son el lomo." "mm_cortapapeles_01" "utensilio semejante a un cuchillo poco afilado. a veces decorado. que se emplea para cortar las hojas de los libros. o papeles previamente doblados." "mm_amazacotado_03" "amazacotar . aplicado a un libro. una conferencia. etc.. demasiado recargado de datos." "mm_ultílogo_01" "consideraciones puestas como epílogo en un libro." "mm_título_01" "enunciado del contenido de un libro o un escrito cualquiera. que se escribe al frente de él." "mm_copyright_01" "indicación con que se consigna en los libros el hecho de estar registrado y garantizado el derecho exclusivo de su reproducción. / 733 con la expresión de la fecha y la persona o la entidad en favor de la cual se establece ese derecho." "mm_grimorio_01" "libro de hechicería." "mm_grial_01" "en las leyendas y libros caballerescos. copa o vaso místico. que se suponía haber servido para la institución de la Eucaristía." "mm_grafomanía_01" "tendencia a escribir en exceso (cartas. libros. artículos. etc.)." "mm_afinar_04" "igualar las tapas de un libro al encuadernarlo para que sobresalgan igual por todo alrededor." "mm_colofón_01" "nota final que se pone en algunos libros;" "mm_abrir_05" "cortar los dobleces de las hojas de un libro para poder separarlas." / Tabla 30: Campo lexicográfico del verbo “escribir_01” En la siguiente tabla se ha reflejado el campo lexicográfico del verbo “escribir_01”. ● Consulta en Cypher : MATCH (n:V{termId:"mm_escribir_01"})-[]-(o) return o.termId mm_ágrafo_01 mm_alfabetizar_02 mm_amanuense_01 mm_amanuense_01 mm_anacoluto_01 mm_antefirma_01 mm_apoyatura_01 mm_apuntación_02 mm_apuntar_08 mm_aticista_01 mm_bajete_02 mm_biografiar_01 mm_biógrafo_01 mm_bloc_01 mm_bolígrafo_01 mm_borrador_01 mm_borrajear_02 mm_bufete_01 mm_buró_01 mm_bustrófedon_01 mm_caja_11 mm_calendarista_01 mm_calígrafo_01 mm_candidatura_03 mm_cartapacio_03 mm_cartela_01 mm_caído_05 mm_cañón_04 mm_cedilla_02 mm_ciclostil_01 mm_ciclostilo_01 mm_cifrar_03 mm_clave_02 mm_coautor_01 mm_colaborar_02 mm_comer_10 mm_cometer_01 mm_cronista_02 mm_cuartilla_01 mm_cursor_02 mm_cálamo_03 mm_decretar_02 mm_despacho_05 mm_diabolín_01 mm_dialoguista_01 mm_dibujar_01 mm_dictado_02 mm_dictar_01 mm_dietario_01 mm_donaire_01 mm_dramática_01 mm_dramático_04 mm_díptica_01 mm_editorializar_01 mm_emborronar_03 mm_emitir_04 mm_encausto_01 734 / mm_encerado_02 mm_enclaustrar_03 mm_enclítico_01 mm_endoso_02 mm_enrollar_02 mm_entablación_02 mm_entendimiento_02 mm_entrelinear_01 mm_escribanía_03 mm_escribanía_04 mm_escribiente_01 mm_escrito_02 mm_escritor_01 mm_escritor_02 mm_escritura_01 mm_escritura_05 mm_espaciador_01 mm_estenotipista_01 mm_estenógrafo_01 mm_estilo_02 mm_estilográfico_01 mm_evangelista_01 mm_expresión_10 mm_extender_08 mm_fabulista_02 mm_falsilla_01 mm_ficha_02 mm_figura_08 mm_gacetero_01 mm_garantizar_01 mm_gavilán_02 mm_glosador_01 mm_gongorizar_01 mm_gracejar_01 mm_gracejo_01 mm_granear_04 mm_gratulatorio_01 mm_hablar_01 mm_historiador_01 mm_historiografía_01 mm_homófono_01 mm_humor_04 mm_inciso_02 mm_inculto_03 mm_inscribir_01 mm_inscribir_02 mm_interjección_01 mm_interlinear_01 mm_ironista_01 mm_ironizar_01 mm_irónico_01 mm_jugo_04 mm_latinar_01 mm_leer_01 mm_legitimar_01 mm_libelista_01 mm_libreta_02 mm_literato_01 mm_llave_11 mm_lomo_03 mm_manguillero_01 mm_manguillo_01 mm_margarita_09 mm_marginador_01 mm_materia_08 mm_mecanografía_01 mm_mecanógrafo_01 mm_melografía_01 mm_memoria_05 mm_meollo_04 mm_mesa_01 mm_metatizar_01 mm_miga_05 mm_monografista_01 mm_monstruo_06 mm_mote_06 mm_mudo_05 mm_multicopista_01 735 / mm_místico_06 mm_narrar_01 mm_nostras_01 mm_novelar_02 mm_novelista_01 mm_oficina_02 mm_omitir_01 mm_ortografía_01 mm_palillero_02 mm_palimpsesto_01 mm_palimpsesto_01 mm_palimpsesto_02 mm_palote_02 mm_papelería_01 mm_papiro_01 mm_pauta_02 mm_pendolista_01 mm_pentagrama_01 mm_pentágrama_01 mm_pergamino_01 mm_periodista_01 mm_pintar_06 mm_pizarra_03 mm_pizarrín_01 mm_pizarrón_01 mm_pluma_02 mm_plumear_01 mm_plumero_02 mm_plumilla_01 mm_pocho_08 mm_poligrafía_01 mm_portada_02 mm_portaplumas_01 mm_post-it_01 mm_prefacio_01 mm_premioso_02 mm_prolepsis_01 mm_prologar_01 mm_prosa_01 mm_publicar_03 mm_punto_04 mm_pupitre_01 mm_purista_01 mm_péñola_01 mm_péñola_02 mm_quebrado_08 mm_rasgo_01 mm_rasgueador_01 mm_rasguear_02 mm_rasguear_03 mm_raspa_06 mm_raspear_01 mm_reescribir_01 mm_referir_01 mm_renglonadura_01 mm_renglón_02 mm_respaldar_02 mm_retajar_04 mm_retorno_02 mm_retórica_01 mm_revistero_01 mm_ringlero_01 mm_rollo_04 mm_romancerista_01 mm_romancista_01 mm_rotulador_03 mm_rubricar_02 mm_satírico_02 mm_secretario_02 mm_secreter_01 mm_seguidero_01 mm_señalar_10 mm_señalar_10 mm_signo_01 mm_solfa_01 mm_sombra_14 mm_sonar_04 mm_sonido_01 736 / mm_suscrito_01 mm_sutilizar_03 mm_tablero_05 mm_tablilla_03 mm_tabulación_02 mm_tabulador_01 mm_tagarotear_01 mm_tajar_02 mm_taquígrafo_01 mm_tarjeta_01 mm_tarjetón_01 mm_teclear_02 mm_teclista_01 mm_tetralogía_01 mm_tinta_04 mm_tipiadora_01 mm_tiza_01 mm_tratadista_01 mm_tratar_01 mm_trazo_01 mm_tríptico_01 mm_título_01 mm_vade_02 mm_vade_03 mm_vocalizar_03 mm_volver_01 mm_vuelapluma_01 mm_vuelapluma_01 mm_vuelapluma_01 mm_yeso_02 mm_yuxtalineal_01 737 / 738 / Tesis Miguel Ortega Martín PORTADA AGRADECIMIENTOS ÍNDICE RESUMEN ABSTRACT SIGLAS ÍNDICE DE TABLAS ÍNDICE DE IMÁGENES DE GRAFOS PARTE I: PLANTEAMIENTO DE LA INVESTIGACIÓN PREÁMBULO: REPRESENTACIÓN EN GRAFOS DEL VÍNCULO SEMÁNTICO ENTRE EL DEFINIENDUM Y EL DEFINIENS CAPÍTULO 1: INTRODUCCIÓN, OBJETIVOS, HIPÓTESIS JUSTIFICACIÓN Y ASPECTOS METODOLÓGICOS PARTE II: MARCO TEÓRICO CAPÍTULO 2: PRINCIPALES PERSPECTIVAS EN SEMÁNTICA Y SEMÁNTICA COMPUTACIONAL CAPÍTULO 3: TECNOLOGÍAS SEMÁNTICAS Y SUS APLICACIONES CAPÍTULO 4: ESTRUCTURA, RELACIONES Y PROPIEDADES DEL SIGNIFICADO A TRAVÉS DEL DEFINIENS Y EL DEFINIENDUM CAPÍTULO 5: DICCIONARIO DE USO DEL ESPAÑOL DE MARÍA MOLINER PARTE III: PARTE EXPERIMENTAL, CONSTRUCCIÓN Y ANÁLISIS DEL GRAFO CAPÍTULO 6: CONSTRUCCIÓN DEL GRAFO CAPÍTULO 7 : C ARACTERÍSTICAS DEL GRAFO EN N EO4J CAPÍTULO 8: RESULTADOS Y ANÁLISIS PARTE IV: CONCLUSIONES, CONSIDERACIONESFINALES Y TRABAJO FUTURO CONCLUSIONES CONSIDERACIONES FINALES TRABAJO FUTURO BIBLIOGRAFÍA APÉNDICES