#
#   python_similitud_spacy.py
#
#   Compara 2 frases e imprime su porcentaje de similitud usando la biblioteca "spacy"
#
#   REQUISITOS:
#       Descargar el modelo en Español con:
#           $ python3 -m spacy download es_core_news_md     # Modelo mediano
#           $ python3 -m spacy download es_core_news_lg     # Modelo grande (recomendado)
#
#   Rogelio Ferreira Escutia - noviembre/2026
#

# Bibliotecas utilizadas que hay que instalar
import spacy

# Calcular en porcentaje la similud de 2 frases usando "spacy"
def calcular_similitud(frase_1: str, frase_2: str):
    global nlp
    # Convertir las frases a minúsculas
    frase_1 = frase_1.lower()
    frase_2 = frase_2.lower()
    texto_1 = nlp(frase_1)
    texto_2 = nlp(frase_2)
    porcentaje_similitud = texto_1.similarity(texto_2) * 100
    return round(porcentaje_similitud, 2)

#
#       PROGRAMA PRINCIPAL
#
print("\n*** Verificar Similitud usando 'spacy' ***\n")

# Cargar el modelo en Español con vectores de palabras (Large)
nlp = spacy.load("es_core_news_lg")

# Frases a comparar
frase_1 = "El gato que está triste y azul"
frase_2 = "El cielo es azul"

# Impresión de frases
print("Frase 1: ", frase_1)
print("Frase 2: ", frase_2)

# Llamar a la función para calcular la similitud
similitud = calcular_similitud(frase_1, frase_2)
print("\nLa similitud es: ", similitud, "\n")
