1 puntos por GN⁺ 2025-05-19 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2025-05-19
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

    • Gracias por darme a conocer PaCMAP y LocalMAP por primera vez; siento que este tipo de enfoques de reducción de dimensionalidad, que preservan bien la estructura, podrían ajustarse mejor a estos datos que PCA. Me despertaste el interés, así que planeo revisarlos más a fondo
    • En mi experiencia, UMAP me dio resultados mucho mejores que PCA o t-SNE para reducir embeddings
  • 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 embeddings

    • Elegí paraphrase-multilingual-MiniLM-L12-v2 principalmente por velocidad y compatibilidad, pero coincido en que, a estas alturas, claramente es un modelo antiguo. Probar con modelos más recientes como all-mpnet-base-v2 o text-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ón
  • No 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

    • Exactamente. Me pregunto por qué no simplemente pusieron a 100 personas a escribir el manuscrito Voynich y luego entrenaron con esos datos
  • 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

    • Buen punto: al principio seguí con PCA porque inesperadamente produjo una separación bastante limpia. Pero, como dices, aplicar UMAP o t-SNE podría revelar patrones o problemas más sutiles desde una perspectiva no lineal. Tampoco construí una matriz de similitud entre clústeres, pero escuchando tu sugerencia, suena como el siguiente paso natural para verificar cuánto de la señal realmente se está capturando. Definitivamente siento que hay que intentarlo como trabajo posterior. Gracias por hacerme pensarlo
    • Si tienes un ejemplo de cómo se hace ese mapeo de referencia, me interesaría verlo. Quiero intentar algo así con embeddings de otras modalidades, pero no tengo mucha experiencia del lado de NLP
    • Cuando PCA ya separa bastante bien, yo suelo evitar UMAP porque me resulta más fácil interpretar las distancias entre puntos individuales. Siempre evito t-SNE porque siento que interpretar distancias allí casi no tiene sentido. Claro, eso es solo una preferencia personal
  • 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

    • También vi hace tiempo evidencia de que Edward Kelly estaba en el lugar y momento adecuados y conocía la Cardan grille. Así que tiendo a pensar que probablemente fue el autor, y que el libro en sí se hizo como fraude o broma
    • Este hilo discute varias afirmaciones de “desciframiento”. El sitio de Bernholz está bien, pero el trabajo de Child en realidad no ayuda mucho al desciframiento
  • Yo pensaba que esto era turco antiguo

    • Aquí se puede ver una traducción al inglés del manuscrito
  • 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

    • Sí, una palabra como “okeeodair” viene directamente del archivo de transcripción EVA. Es el resultado de vincular los símbolos originales del Voynich a ASCII según el sistema EVA (European Voynich Alphabet). En este proyecto no trabajé con los símbolos en sí, sino que usé directamente las palabras según la transcripción EVA. Si “okeeodair” aparece en el dataset, significa que alguien (un experto) acordó llamar así a esa combinación de símbolos. La información sobre la transcripción puede verse en este sitio
  • 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

    • Hay muchos estudios sobre la consistencia entre páginas. Entre especialistas existe la afirmación de que hubo dos (o cinco) escribas. También puede servirte revisar una discusión experimental basada en los argumentos de Lisa Fagin Davis
  • 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

    • Quiero señalar que ese enfoque requiere asumir que cada palabra se mapea 1:1, pero los idiomas no necesariamente funcionan así. Por ejemplo, las palabras compuestas son difíciles de mapear de esa manera. También existen diferencias más fundamentales en la estructura del significado debido a diferencias culturales
    • Qué pregunta tan interesante; de hecho yo también había pensado algo parecido. No soy especialista en criptografía, así que no sé bien qué tan realista es hacer “fuerza bruta” a gran escala. Pero el enfoque de mapear cada “palabra” del Voynich a una palabra de un idioma real para optimizar consistencia coincide bastante con varios intentos y líneas experimentales. La dificultad es que el vocabulario en sí es enorme y ni siquiera está claro que la unidad “palabra” se mapee 1:1 a palabras reales. No está claro si una “palabra” del Voynich es realmente una sola unidad léxica, un fragmento, o una combinación de raíz y afijo. En ese sentido, creo que un mapeo simple sería bastante difícil. Aun así, hacerlo con IDs de clúster en lugar de tokens individuales y luego puntuar los resultados con un modelo de lenguaje me parece una idea bastante buena. Creo que valdría la pena probarlo con optimización o técnicas evolutivas. También podría dar pistas sobre qué tan “parecida a un idioma” es realmente la estructura. Gracias por la buena idea. Ojalá alguien especialista en el área vea este comentario y lo intente
  • 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