#
#   python_similitud_scikit-learn.py
#
#   Compara 2 frases e imprime su porcentaje de similitud usando la biblioteca "scikit-learn"
#
#   Rogelio Ferreira Escutia - noviembre/2026
#

# Bibliotecas utilizadas que hay que instalar
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

# Calcular en porcentaje la similud de 2 frases usando "scikit-learn"
def calcular_similitud_scikit(frase_1: str, frase_2: str):
    # Convertir las frases a minúsculas
    frase_1 = frase_1.lower()
    frase_2 = frase_2.lower()
    # Vectorizando
    vectorizador = TfidfVectorizer()
    # Ajustar y transformar las frases en una matriz numérica TF-IDF
    matriz_tfidf = vectorizador.fit_transform([frase_1, frase_2])
    # Calcular similitud
    resultado_similitud = cosine_similarity(matriz_tfidf[0], matriz_tfidf[1])
    # Calcular porcentaje
    porcentaje_similitud = resultado_similitud[0][0] * 100
    return round(porcentaje_similitud, 2)

#
#       PROGRAMA PRINCIPAL
#
print("\n*** Verificar Similitud usando 'scikit-learn' ***\n")

# 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_scikit(frase_1, frase_2)
print("\nLa similitud es: ", similitud, "\n")