Aprendiendo japonés con música: analizando las letras de Ichiko Aoba
Hace poco empecé a aprender japonés. Creo que la inmersión es necesaria para adquirir un idioma; así es como los niños aprenden su lengua materna. Como el proceso requiere miles de horas, intento hacerlo divertido con buenas películas y música.
Hace casi cuatro años me enamoré de las tiernas melodías de la cantautora japonesa Ichiko Aoba (青葉市子) a través de su mágico álbum
«La música trasciende las barreras del lenguaje, llegando a lugares donde las palabras no pueden.»
— 青葉市子 (Ichiko Aoba)
«言葉が通じないところでも音楽は通じていくものだ»
— 青葉市子 (Ichiko Aoba)
Habiendo sentido su música, decidí intentar entender la letra. Es difícil; conozco muy poco vocabulario. Estoy aprendiendo las palabras más comunes del idioma, pero para darle más propósito al aprendizaje, decidí averiguar qué palabras aparecen con mayor frecuencia en sus letras, y estudiarlas —aunque sean menos comunes.
¿Por qué no escuchas su música mientras lees este artículo? Aquí tienes una buena recopilación.
Contando palabras
Conseguir las palabras más usadas en un texto en español es sencillo:
- Divides el texto en palabras
- Cuentas cuántas veces aparece cada una
- Ordenas las palabras por frecuencia
Sin embargo, hay dos problemas. Primero, el japonés no usa espacios, lo que complica la divisón en palabras. Segundo, incluso si usara espacios, quiero agrupar las palabras por su raíz; no me importa si encuentro «veía» X veces, «veo» Y veces y «veremos» Z veces. Quiero «ver» con un conteo de X+Y+Z.
Una sola herramienta resuelve ambos problemas: el análisis morfológico. La morfología examina cómo se construyen las palabras a partir de las unidades significativas más pequeñas de un idioma: los morfemas. Por ejemplo, «descontento» tiene tres morfemas: «des-», «content» y «-o». Un analizador morfológico dividirá la palabra en estos componentes.
Encontré una colección de herramientas de procesamiento de lenguaje natural para japonés que incluye herramientas de análisis morfológico. Dado un texto, un analizador morfológico lo dividirá en palabras y mostrará atributos como su «forma de diccionario» (por ejemplo, no «canté», sino «cantar»).
Mi plan: descargar todas las letras de Aoba, procesarlas con un analizador morfológico y contar cuántas veces aparece cada palabra.
Descargando las letras
Si alguna vez has buscado la letra de una canción, probablemente hayas terminado en Genius.com. Ese sitio tiene la mayoría de las letras de Ichiko Aoba. Para descargarlas, usé LyricsGenius.
Haz clic para ver el código
# Using a fork of LyricsGenius with a bug fix: https://github.com/xathon/LyricsGenius
# pip install git+https://github.com/xathon/LyricsGenius.git
= # Create an account and visit https://genius.com/api-clients
=
# Configuration.
= True
=
return f
=
# All her albums except a soundtrack (Amiko) and a field recording album (鮎川のしづく [Ayukawa no shizuku]).
=
=
# Avoid re-downloading.
continue
=
Corregí algunos errores y añadí letras para canciones que no las tenían.
La letra de 血の風 (Chi no kaze) está en idioma okinawense y sólo encontré una traducción parcial; la eliminé.
Después de probar varias librerías de Python, decidí usar Janome para el análisis morfológico. Escaneé las letras de cada álbum, contando cuántas veces aparecía cada palabra (en su «forma de diccionario»).
Haz clic para ver el código
=
return
# docs: https://mocobeta.github.io/janome/api/janome.html#janome.tokenizer.Token
# Each Token object has the following attributes:
# - surface: the word as it appears in the text
# - part_of_speech: the part of speech of the word, which can be a compound value like "動詞,自立,*,*"
# - infl_type: the type of inflection of the word (e.g., "五段・ラ行" for a verb)
# - infl_form: the form of inflection of the word (e.g., "連用形" for a verb in the continuous form)
# - base_form: the word in its dictionary/base form (e.g., "行く" for the verb "行った")
# - reading: the reading of the word in katakana
# - phonetic: the phonetic representation of the word in katakana
=
=
=
return
# Function to remove non-word characters (space, comma, newline…)
return
=
=
=
=
=
=
+=
Ahora tenía una lista de todas las palabras en las letras de Ichiko Aoba y su frecuencia: aquí está. Con los datos listos, no pude resistirme a visualizarlos.
Nubes de palabras
En una nube de palabras, el tamaño de cada palabra es proporcional a su frecuencia.
Usé el paquete de Python word_cloud, y las API de Jisho y de DeepL para obtener traducciones aproximadas.
Haz clic para ver el código
= 3000
= 3000
=
= f
# Overall cloud.
# It's translation time!
# Jisho provided too much context for these, or not the right meaning.
=
return
= f
=
=
=
=
=
return
return None
=
=
# Multiple words can have the same translation (e.g. "僕" & "私" = "I").
+=
=
return
# Fetch translations for all words.
=
=
=
=
=
# Translated word clouds.
# Note: I used the SVG masks to complete the word clouds with the album covers in Photoshop.
# I got the covers from https://ichikoaoba.com/discography/.
=
=
=
=
=
# Some words have context in parentheses. We use the entire input as context, but ask only to translate the word.
=
=
return
=
=
=
Aquí está la nube de palabras creada con todas las canciones juntas. Haz clic en la imagen para traducirla:
Repetí el proceso para cada álbum utilizando la nube de palabras como máscara y la portada como fondo. De nuevo, haz clic para ver la traducción:
Para ver una imagen en tamaño completo, haz clic derecho en ella y selecciona “Abrir imagen en una nueva pestaña”.
Algunas observaciones:
- Muchas de las palabras más grandes están relacionadas con la naturaleza: 風 (viento), 光 (luz), 星 (estrella), 海 (mar), 空 (cielo)… Estas, junto con otras como 静か (tranquilo), 夢 (sueño), 消える (desaparecer) y ふわり (suavemente), encajan con las emociones que evoca su música.
- Más del 60% de las palabras extraídas aparecen solo una vez. Estos son hápax legómena: palabras que ocurren solo una vez en un contexto. Esto coincide con la ley de Zipf, que predice que un pequeño número de palabras serán comunes, mientras que la mayoría de las palabras raramenre aparecerán.
- 言霊 (kotodama) es uno de los hápax legómenon. Su significado literal es «espíritu/alma de la palabra», y se refiere al poder espiritual que se dice que poseen las palabras. En el Japón antiguo, se creía que las palabras tenían la misma esencia que los objetos físicos.
Para aprender este vocabulario, crearé flashcards con las palabras más frecuentes e intentaré reconocerlas cuando escuche japonés.
Lento pero seguro (じわじわ), seré capaz de entender las letras de Ichiko Aoba —o las palabras que usa, cuanto menos.