Metodologia

Come funziona l'analisi

Un'architettura trasparente basata su dati astronomici reali, calcolo geometrico degli aspetti planetari, un motore di scoring con apprendimento adattivo e generazione del testo via intelligenza artificiale.

Flusso di elaborazione

◈ Profilo natale → ◉ Posizioni NASA → ◎ Feature engine → ◊ Scoring → ✦ AI text
1

Profilo natale

Dalla data di nascita viene ricavata la longitudine eclittica del Sole natale in gradi (0°–360°) tramite la formula di approssimazione J2000.0, standard in astronomia per il calcolo delle effemeridi solari.

Se l'utente ha inserito ora e coordinate di nascita nel profilo, viene calcolato l'ascendente — il punto dell'eclittica che transitava sull'orizzonte al momento della nascita — anch'esso in longitudine assoluta. L'ascendente aggiunge un secondo punto natale di riferimento per il calcolo degli aspetti.

// Longitudine Sole natale (formula J2000.0)
n = JD - 2451545.0  // giorni dal 1 gen 2000
L = 280.459 + 0.9856474 × n  // longitudine media
g = 357.529 + 0.9856003 × n  // anomalia media
λ = L + 1.915 × sin(g) + 0.020 × sin(2g)
2

Posizioni planetarie reali — NASA JPL Horizons

Per ogni data di analisi, il sistema interroga l'API NASA JPL Horizons per ottenere le posizioni di 7 corpi celesti: Sole, Luna, Mercurio, Venere, Marte, Giove, Saturno.

Il parametro richiesto è QUANTITIES=31 — longitudine eclittica geocentrica osservata (standard astrologia tropicale occidentale) in gradi decimali 0°–360°. Il moto retrogrado viene rilevato confrontando la longitudine del giorno con quella del giorno successivo: una decrescita monotona (con Δ < 180°) indica retrogradazione.

Sole ID 10
Luna ID 301
Mercurio ID 199
Venere ID 299
Marte ID 499
Giove ID 599
Saturno ID 699

Le posizioni vengono cachate per 6 ore su file JSON giornalieri. Il prefetch multi-giorno usa curl_multi_exec per recuperare tutti i 7 pianeti in parallelo (~1-2 secondi invece di ~8).

3

Calcolo degli aspetti e feature engineering

Il nucleo del motore è il calcolo degli aspetti planetari: la distanza angolare tra ogni pianeta in transito e i punti natali dell'utente (Sole natale, Ascendente). Quando questa distanza cade entro una tolleranza (orb) da certi angoli canonici, si definisce un aspetto.

Aspetto Angolo Orb Tipo Forza
Congiunzione 0° ±8° Armonico 1 - (dist/orb)
Sestile 60° ±6° Armonico 1 - (dist/orb)
Quadratura 90° ±6° Teso 1 - (dist/orb)
Trigono 120° ±6° Armonico 1 - (dist/orb)
Opposizione 180° ±8° Teso 1 - (dist/orb)

La forza dell'aspetto (0.0–1.0) è inversamente proporzionale alla distanza dall'angolo esatto: un aspetto perfetto vale 1.0, uno al limite dell'orb vale ~0. Oltre alle forze dei singoli aspetti, vengono calcolati tre aggregati:

  • harmonic_count — somma delle forze di congiunzione + sestile + trigono
  • tense_count — somma delle forze di quadratura + opposizione
  • net_harmony — harmonic_count − tense_count

A queste si aggiungono le feature di elemento (binarie 0/1: il pianeta transita in un segno di Fuoco, Terra, Aria, Acqua?) e le distanze angolari normalizzate (0° → 1.0, 180° → 0.0) per ciascun pianeta rispetto al Sole natale.

4

Motore di scoring — modello lineare con pesi adattativi

Le feature estratte (circa 20–25 per ciascun punto di riferimento natale) vengono combinate in un modello lineare pesato. Per ciascuno dei 4 domini base, il punteggio grezzo è:

score_raw = bias + Σ ( weighti × featurei )
score_final = clamp( score_raw, 0, 100 )

◈

Energia

Vitalità fisica, iniziativa, drive

◉

Relazioni

Interazioni sociali, empatia, armonia

◎

Mente

Lucidità, concentrazione, comunicazione

◌

Emozioni

Equilibrio interiore, stabilità affettiva

Gli utenti Premium ricevono 4 score aggiuntivi calcolati sui 4 base più il profilo natale completo:

♡ Amore
◊ Denaro
✦ Fortuna
◉ Salute

I pesi iniziali (seed v1) derivano da principi astrologici classici: per esempio, Marte in tensione con il Sole natale abbassa l'Energia, un trigono Luna–Sole la aumenta. I pesi sono salvati in un file JSON versionato (horoscope_weights.json) e vengono aggiornati nel tempo tramite online learning.

5

Apprendimento adattivo dal feedback

Quando un utente fornisce feedback numerico (1–5 stelle per dominio), il sistema aggiorna i pesi del modello con un passo di gradient descent online:

error = feedback_reale − score_previsto
new_weight = old_weight + lr × error × feature_value
new_bias   = old_bias + lr × error × 0.1
// lr = 0.015  |  pesi clampati in [−25, 25]

Il feedback 1–5 viene convertito in scala 0–100: (stars − 1) / 4 × 100. Ogni aggiornamento incrementa il numero di versione del modello, tracciabile nel file dei pesi. Il modello migliora quindi con l'uso, calibrandosi progressivamente sulle percezioni reali degli utenti.

Nota: il modello è globale (non per-utente) nella versione attuale. I feedback di tutti gli utenti convergono verso un unico set di pesi ottimizzato.
6

Generazione del testo via AI

Gli score numerici e i dati planetari vengono assemblati in un prompt strutturato e inviati a GPT-4o mini (OpenAI) per la generazione del testo interpretativo. Il prompt include: profilo natale, score per dominio con trend, posizioni planetarie, fase lunare, stagione, highlights calcolati algoritmicamente.

Il testo generato viene poi suddiviso in sezioni tematiche (energia, relazioni, mente, emozioni, consiglio del giorno) tramite parsing del markup dell'AI. In assenza di connettività all'API OpenAI, un generatore di testo template-based garantisce un fallback sempre funzionante.

Modello GPT-4o mini
Temperatura 0.72 (bilanciato)
Max token output 700 token
Fallback Template PHP deterministico
Lingua Italiano
Contesto Profilo + score + pianeti + trend
7

Astrologo AI — chat contestuale

La chat con l'Astrologo AI (funzionalità Premium) opera con un system prompt dinamico costruito a ogni sessione, che include il profilo astrologico completo, la lettura odierna integrale (testo + score + pianeti), lo storico delle ultime 10 letture con eventuali valutazioni, e le statistiche di accuratezza percepita per dominio.

L'AI non risponde in modo generico: ogni risposta è ancorata ai dati reali dell'utente e alla data corrente. La cronologia della conversazione (fino a 30 messaggi) viene inclusa nel contesto per garantire coerenza narrativa.

Nota metodologica

Il sistema utilizza dati astronomici reali e un modello algoritmico trasparente. L'astrologia non è una disciplina scientifica e non ha capacità predittive causalmente dimostrate. Gli score prodotti sono una trasformazione matematica di posizioni geometriche — offrono un frame interpretativo, non una previsione. Il sistema è progettato per essere massimamente trasparente sulla propria natura computazionale.

Genera la tua lettura →

Crea un account per salvare lo storico e accedere alle funzionalità premium.