Agente-editorial-novela / editor_literario_avanzado.py
Horacio Perez
Upload 11 files
5852f36 verified
import nltk
nltk.download('punkt')
from sentence_transformers import SentenceTransformer, util
from textblob import TextBlob
modelo = SentenceTransformer('all-MiniLM-L6-v2')
autores_referencia = {
"Gabriel García Márquez": "La soledad es la forma de nuestra memoria, y el olvido es la forma de nuestra paz.",
"Mario Vargas Llosa": "La literatura es fuego, es pasión, es crítica y vida.",
"Julio Cortázar": "Andábamos sin buscarnos, pero sabiendo que andábamos para encontrarnos."
}
def analizar_tono_y_autores(texto_usuario):
resultado = []
# Análisis de tono
blob = TextBlob(texto_usuario)
polaridad = blob.sentiment.polarity
tono = "Positivo" if polaridad > 0.1 else "Negativo" if polaridad < -0.1 else "Neutral"
resultado.append(f"**Tono general del texto:** {tono} (polaridad: {polaridad:.2f})\n")
# Comparación semántica
emb_texto = modelo.encode(texto_usuario, convert_to_tensor=True)
similitudes = {}
for autor, ejemplo in autores_referencia.items():
emb_autor = modelo.encode(ejemplo, convert_to_tensor=True)
similitud = util.cos_sim(emb_texto, emb_autor).item()
similitudes[autor] = similitud
autor_mas_similar = max(similitudes, key=similitudes.get)
resultado.append(f"**Estilo más similar al de:** {autor_mas_similar} (similaridad: {similitudes[autor_mas_similar]:.2f})")
return "\n".join(resultado)