Algoritmo di coerenza multibase

Descrizione linguaggio-agnostica dell’engine usato da MB-X.01.

Input / Output

Pseudocodice

function EVALUATE(s, B={2,3,4}, priors):
    # 1) Preprocessing
    s_clean   = NORMALIZE_TEXT(s)             # minuscole, diacritici rimossi, spazi compattati
    s_noego   = STRIP_EGO(s_clean)            # rimozione forme autoriferite (IT/EN)

    # 2) Firme per n-gram (per semplicità: n ∈ {2,3,4})
    sig_base  = { n: SIGNATURE(s_clean,  n) for n in {2,3,4} }
    sig_noego = { n: SIGNATURE(s_noego,  n) for n in {2,3,4} }

    # SIGNATURE(t, n):
    #   counts = NGRAM_COUNTS(t, n)
    #   len    = LENGTH(t)
    #   topK   = TOP_K(counts)
    #   return {len, topK}

    # 3) Coerenza (proxy): convergenza delle lunghezze tra n
    Co_base = COHERENCE(sig_base)   # 0..100
    Co_ne   = COHERENCE(sig_noego)  # 0..100
    # COHERENCE({s2,s3,s4}):
    #   L = [s2.len, s3.len, s4.len]
    #   return ROUND(50 + 50*(1 - (max(L)-min(L))/max(L)))

    # 4) Bias (B) e Interesse (I)
    sim_ego = { n: COS_SIM( NGRAM_COUNTS(s_clean,n), NGRAM_COUNTS(EGO_MARKERS,n) ) for n in {2,3,4} }
    B_pern  = [ BIAS(sim_ego[n], priors.stress, priors.self, priors.ext) for n in {2,3,4} ]
    B_med   = MEDIAN(B_pern)
    # BIAS(sim, stress, self, ext) = clamp(0.45*sim*(1-stress) + 0.35*self + 0.20*(1-ext), 0,1)

    dist    = DIST(sig_base)   # divergenza firme tra n (0..1)
    I_val   = INTEREST(priors.leverage, priors.risk, dist)
    # INTEREST = clamp(0.6*(0.5*leverage+0.5*risk) + 0.4*dist, 0,1)

    # 5) Truth evaluation per viste
    views = []
    for n in {2,3,4}:
        views.append( TRUTH(priors.C, Co_base, B_med, I_val, view="base n="+n) )
        views.append( TRUTH(priors.C, Co_ne,  B_med*0.90, I_val*0.90, view="noego n="+n) )

    # TRUTH(C, Co(0..100), B, I):
    #   Co01  = Co/100
    #   score = C*Co01 - (B+I)/2
    #   state = bucket(score)  # VERO/PROBABILE/INCERTO/FALSO
    #   return {C, Co, B, I, score, state}

    # 6) Aggregazione
    S = [v.score for v in views]
    agg = { median: MEDIAN(S), min: MIN(S), max: MAX(S) }

    return {
      statement: s,
      priors: priors,
      signatures: { base: sig_base, noego: sig_noego },
      BI: { B_med: B_med, I: I_val, dist_proxy: dist },
      views: views,
      aggregate: agg
    }
  

Complessità

Edge cases

Verifica

← Torna all’Hub