- Proyecto open source que analiza la estructura lingüística del Manuscrito Voynich con técnicas modernas de NLP como SBERT
- Se enfoca en la eliminación de sufijos y la agrupación en clústeres para verificar si existen estructuras similares a un idioma real y no patrones falsos
- Los resultados del análisis estructural desde varios ángulos, como el papel de las palabras funcionales y de contenido y las matrices de transición, muestran patrones significativos
- A diferencia de los enfoques tradicionales basados en estadísticas o conjeturas, intenta analizar características lingüísticas estructurales con métodos de lingüística computacional
- Es un proyecto centrado únicamente en el modelado estructural, sin intentar una traducción semántica, y permite investigación adicional y experimentos comparativos
📜 Introducción al proyecto de análisis estructural del Manuscrito Voynich
🔍 Resumen
- Este proyecto comenzó como un experimento personal para analizar la estructura del Manuscrito Voynich utilizando herramientas modernas de procesamiento de lenguaje natural (NLP)
- Aplica métodos reales de modelado lingüístico como agrupación en clústeres, inferencia de partes del habla, transiciones de Markov y extracción de patrones por sección
- Sin intentar interpretación semántica, traducción ni estimaciones exageradas de patrones, solo busca verificar si existe una estructura que funcione como un idioma
- Todas las etapas están abiertas al público, incluida la eliminación de sufijos, embeddings con SBERT y generación de hipótesis de léxico
🧠 Importancia
- El Manuscrito Voynich sigue siendo un documento misterioso sin descifrar, y no existe una solución lingüística o criptográfica definitiva
- Los análisis previos se han dividido entre pruebas estadísticas de entropía y conjeturas no científicas
- Este proyecto explora de forma neutral si hay patrones estructurales similares a los de un idioma real, con base en la lingüística computacional
📁 Estructura del proyecto
- /data/
- Incluye datos como la transcripción completa del manuscrito, tipos de palabras raíz, ID de clúster, lista de sufijos eliminados y secuencias de clúster por línea
- /scripts/
- Incluye scripts principales para agrupación de palabras con SBERT, predicción de partes del habla, construcción de matrices de transición de Markov y generación de candidatos de léxico
- /results/
- Incluye visualizaciones de clústeres, mapas de calor de matrices de transición y resúmenes por clúster, entre otros resultados del análisis
✅ Principales aportes
- Agrupación en clústeres de palabras raíz con sufijos eliminados usando SBERT multilingüe
- Distinción entre clústeres similares a palabras funcionales y clústeres similares a palabras de contenido
- Modelado de la estructura de transición entre clústeres con enfoque de Markov
- Análisis de la estructura sintáctica por sección (por ejemplo, Botanical, Biological, etc.)
- Generación de una tabla de hipótesis léxicas basada en datos
🔧 Decisiones de preprocesamiento
- Antes de agrupar, se eliminaron sufijos repetitivos (por ejemplo, aiin, dy, chy)
- Con ello se extrajo la forma raíz de las palabras, lo que hizo más clara la concentración de clústeres y los patrones estructurales
- Los sufijos podrían ser relleno fonológico, morfemas gramaticales, recursos mnemónicos, repetición o ruido sin significado
- Sin embargo, esta decisión tiene limitaciones, como pérdida de información morfológica, ocultamiento de flexiones significativas y sesgo hacia palabras funcionales
- También vale la pena hacer experimentos comparativos sin eliminar sufijos; cualquiera puede realizar pruebas derivadas
📈 Principales resultados del análisis
- Cluster 8: aparece con mucha frecuencia, tiene baja diversidad y suele estar al inicio de línea; es candidato a clúster de palabra funcional
- Cluster 3: tiene alta diversidad y posición libre; es candidato a clúster de palabra raíz de contenido
- Matriz de transición: muestra una fuerte estructura interna, lejos de la aleatoriedad
- Patrones de clúster y partes del habla: difieren según las secciones del manuscrito (por ejemplo, Biological, Botanical, etc.)
🧬 Hipótesis
- El manuscrito sería un lenguaje artificial o mnemónico estructurado que utiliza repetición silábica y repetición posicional
- Muestra con claridad una estructura lingüística como sintaxis, separación entre función y contenido, y transiciones lingüísticas sensibles a la sección
📊 Visualizaciones de ejemplo
- Figure 1: embeddings de clúster con SBERT (reducción PCA)
- Figure 2: mapa de calor de la matriz de transición
📌 Limitaciones
- El mapeo entre clúster y palabra es indirecto, por lo que hay solapamientos en la estimación de frecuencias
- El criterio de eliminación de sufijos es heurístico y podría perder terminaciones realmente significativas
- No intenta una interpretación semántica y se concentra solo en el análisis estructural
✍️ Nota del autor
- Es un proyecto iniciado con fines de aprendizaje en IA, NLP y análisis estructural
- Más que descifrar el manuscrito, la idea es entender su estructura con herramientas modernas, lo que se considera un enfoque más productivo
- Se invita especialmente a quienes se interesan menos en una descodificación tipo Rosetta Stone y más en la idea de que modelar ya es valioso
🤝 Guía para contribuir
- Este proyecto da la bienvenida a la colaboración y expansión por parte de lingüistas, criptógrafos, investigadores de lenguajes artificiales y la comunidad de lingüística computacional
1 comentarios
Comentarios en Hacker News
Vi que estás buscando clústeres dentro de una proyección PCA; para encontrar una estructura más profunda, me gustaría recomendar algoritmos modernos de reducción de dimensionalidad como PaCMAP o LocalMAP. Estoy trabajando en un proyecto que toma datos de la herramienta de sondeo de opiniones Pol.is y los vuelve a proyectar con este tipo de algoritmos en lugar de PCA. Me impresiona cómo estos algoritmos nuevos ofrecen insights que antes no se veían. También tengo resultados donde coloreé los grupos para mostrarlos visualmente, así que te sugiero revisarlos en escritorio. Si te da curiosidad qué es Pol.is, también recomiendo un artículo relacionado
El modelo de embeddings de texto usado aquí es
paraphrase-multilingual-MiniLM-L12-v2, un modelo de hace unos 4 años. En el mundo del procesamiento de lenguaje natural, eso ya es bastante viejo. Con los avances recientes de los LLM, la capacidad de representación de información de los modelos de embeddings y su poder de separación dentro del espacio de embeddings han mejorado drásticamente. Incluso modelos de embeddings recientes cuyo objetivo no es el soporte multilingüe muestran un rendimiento excelente en este tipo de datos. Por eso, probablemente también podrían funcionar mejor con un idioma relativamente poco conocido como el del Manuscrito Voynich. Creo que las técnicas tradicionales de NLP, como quitar sufijos o identificar partes de la oración, más bien corren el riesgo de perder información contextual necesaria y degradar la calidad de los embeddingsparaphrase-multilingual-MiniLM-L12-v2principalmente por velocidad y compatibilidad, pero coincido en que, a estas alturas, claramente es un modelo antiguo. Probar con modelos más recientes comoall-mpnet-base-v2otext-embedding-ada-002, manteniendo también los sufijos e intentando embeddings de contexto completo, probablemente daría resultados aún más interesantes. Gracias a tu observación, ahora estoy considerando positivamente eso para la siguiente iteraciónNo sé mucho de NLP. Me pregunto si tendría sentido revisar el proceso controlando grupos de comparación. Por ejemplo, hacer que personas escriban oraciones que parezcan un idioma pero que en realidad no lo sean, y luego pasar por el mismo procedimiento —quitar sufijos, intentar agrupar, etc.— para ver si salen resultados parecidos
Creo que sería bueno analizarlo con UMAP o t-SNE, aunque en PCA ya haya salido una separación limpia. Mapear también cada clúster en referencia a los demás parece una buena forma de mostrar que no queda variabilidad dentro del análisis
Creo que esta hipótesis es la más interesante: parece que algún autor logró avances importantes al considerar el voynichés como una lengua germánica. También he visto afirmaciones de que sería una lengua urálica o fino-úgrica. Me parece muy buena tu metodología y me pregunto si daría mejores resultados si se adaptara específicamente a una familia lingüística concreta
Yo pensaba que esto era turco antiguo
Puede que se me haya pasado en el README, pero me pregunto cómo codificaste inicialmente las “palabras”. Por ejemplo, me gustaría saber cómo algo como “okeeodair” se vuelve a mapear a los símbolos originales
Lo que imagino es que, si eso fuera simplemente un garabato sin significado y ni siquiera un criptograma, entonces por la naturaleza del manuscrito deberían evolucionar desde la primera hasta la última página cosas como el estilo, la caligrafía, las palabras usadas e incluso las letras mismas. Claro, el orden de las páginas podría haberse alterado, pero creo que debería notarse alguna diferencia. A menos que el autor haya escrito decenas de volúmenes con un estilo parecido y todos se hayan perdido. No es una idea nueva, pero me pregunto si hubo análisis de este tipo de patrón; nunca vi que se mencionara la consistencia entre páginas
Me pregunto cuántos recursos requeriría intentar un desciframiento por “fuerza bruta”. Por ejemplo, pensé en seguir un proceso claro donde se vaya mapeando uno por uno a palabras de idiomas conocidos para aumentar una puntuación
Me pregunto si al hacer el análisis con textos de longitud similar en idiomas conocidos aparecen patrones parecidos. Dicho de otro modo, pregunto si aplicar esta técnica de análisis a distintos tipos de texto podría ayudar a entender qué significa este sistema de escritura