Salta al contenuto

Blog ·

Un tag portato da metà del corpus

Un solo tag stava su 75 dei 127 articoli, così il blocco delle letture ripiegava sulla data di pubblicazione e 71 pagine non ricevevano alcun riquadro.

Di Provibr

Sotto ogni articolo di questo sito c’è un blocco di quattro riquadri intitolato altre letture. È l’unico collegamento interno automatico che abbiamo; tutto il resto è un collegamento che qualcuno ha scritto dentro una frase.

Il blocco era in funzione da mesi e nessuno aveva chiesto che cosa scegliesse. Quando l’abbiamo misurato, sulle pagine generate di una build di produzione invece che sulla funzione che le riempie, la risposta è stata che non sceglieva quasi nulla. Dei 127 articoli inglesi, 71 non ricevevano alcun riquadro in entrata. All’articolo mediano non puntava nessuno. Quattro articoli ricevevano 304 dei 508 riquadri esistenti, rispettivamente 88, 76, 72 e 68.

Un blocco che non nomina mai 71 pagine non è collegamento interno. È un elenco dei primi quattro con sopra un’intestazione.

Il tag non stava facendo alcun lavoro

La vecchia selezione lavorava su tre strati di famiglia: stessa famiglia con un tag in comune, altra famiglia con un tag in comune, stessa famiglia senza. Dentro ogni strato ordinava per data di pubblicazione e ne prendeva quattro.

Sembra un ordinamento sensato, e su questo corpus era una macchina per produrre orfani, per una ragione che non ha nulla a che vedere con l’ordinamento: proxmox sta su 75 dei 127 articoli inglesi, cioè il 59 per cento. Quasi ogni nota tecnica che questo progetto scrive nasce su Proxmox, quindi quasi ogni nota si è presa il tag.

Un tag portato da metà del corpus non distingue nulla. Il primo strato era perciò quasi sempre pieno, e dentro uno strato pieno per data significa i quattro articoli più recenti. 300 delle 508 coppie di vicini condividevano quell’unico tag e nient’altro, e per 75 articoli questo valeva per tutti e quattro i vicini insieme. Il sintomo più chiaro stava nelle pagine di confronto: i quattro articoli sulle alternative ai prodotti concorrenti mettevano in riquadro le stesse quattro note recenti, e quindi mai l’uno l’altro e mai il proprio confronto diretto.

Una seconda misurazione dice la stessa cosa dall’altro lato, ed è quella che ha deciso come abbiamo assegnato i tag agli articoli che sta leggendo ora. Dei 75 articoli inglesi che portano proxmox, 43 non contengono la parola Proxmox da nessuna parte nel corpo. Il tag aveva smesso di significare questo parla di Proxmox e aveva cominciato a significare questo è uno dei nostri.

Un solo punteggio, tre generi di termine, nessun bonus manuale

Il sostituto è un punteggio unico. Due articoli sono vicini nella misura in cui condividono dei termini, e un termine vale ln(N / df): la classica frequenza inversa di documento, con N il numero di articoli in quella lingua e df il numero di quelli che portano il termine.

Tre generi di termine vivono in un unico spazio, con un prefisso che impedisce loro di collidere: tag: dal frontmatter, vorm: dalla forma dell’articolo, letta dal suo slug e dalla sua famiglia, e over: dalle parole del soggetto contenute nello slug.

La pesatura viene fuori da sé invece di essere fissata. Sul corpus che abbiamo misurato, tag:proxmox vale 0,53 e tag:dedicated 2,45. Nessuno ha digitato nessuno dei due numeri, e nessuno deve ricordarsi di abbassare il primo quando arriva la sedicesima nota su Proxmox.

Il vocabolario dei soggetti è derivato invece che digitato. È l’unione degli slug delle integrazioni che il sito già tiene e dei valori about dei blocchi di affermazioni sui concorrenti, da cui vengono nomi come solusvm, tenantos, virtfusion e virtualizor: esattamente le parole che sono il soggetto di una pagina e non sono un’integrazione. Un terzo elenco scritto a mano sarebbe stato il quarto posto in cui vive lo stesso nome, e il primo a invecchiare.

Pesare i soli tag è peggio, non metà meglio

La piccola modifica allettante è tenere il tag come unico segnale e limitarsi a pesarlo. Abbiamo misurato quella variante prima di scegliere, perché è ciò che qualcuno proporrà la prossima volta che il tema tornerà fuori.

Produce 74 orfani invece di 71, e delle 22 pagine di alternative e di confronto esattamente una ha tenuto due vicini della propria forma, mentre prima erano nove. Pesare un segnale che non discrimina non lo fa discriminare. La discriminazione viene da vorm: e da over:; la frequenza inversa di documento decide soltanto come si ripartisce il peso.

Se una caratteristica non ha quasi varianza, nessuno schema di pesatura la salva, e una formula ingegnosa sopra una caratteristica cattiva sembra un progresso perché i numeri si muovono.

Lo spareggio è metà della riparazione

Ecco la parte che non avremmo previsto. Su 75 articoli che non condividono nulla se non la forma della nota e il tag comune, il punteggio è identico. Ognuna di quelle coppie è un pareggio, quindi è lo spareggio a decidere tutto, non i casi limite.

Ordinare i pareggi per data è il vecchio comportamento con un cappotto nuovo: di nuovo i quattro più recenti. Lo spareggio ora mette per primo l’articolo meno messo in riquadro, con la data e lo slug dietro come chiusura stabile.

Quell’unica modifica è ciò che ha portato a zero il numero di orfani, e costa qualcosa di reale nella forma: non si può calcolare per singolo articolo. Bisogna percorrere l’intera lingua una volta, in un ordine fisso, contando ciò che è già stato distribuito.

Sull’inglese: la mediana 0 diventa 4, il massimo 88 diventa 12, i 71 orfani diventano 0. Ogni altra lingua arriva alla stessa mediana e allo stesso zero, con un massimo di 13. Delle 46 coppie di vicini che non condividono alcun tag, tutte e 46 condividono ora la forma, mentre prima 37 coppie non condividevano proprio nulla.

Abbiamo misurato anche una penalità dentro il punteggio stesso, sottraendo un quarto dei riquadri che un articolo ha già ricevuto. Appiattisce leggermente di più, minimo due invece di uno, e compra quel risultato con la pertinenza: la quota di vicini senza nulla in comune passa dal 9,1 al 12,2 per cento. Uno spareggio può per costruzione soltanto riordinare candidati che hanno già totalizzato lo stesso punteggio, quindi non può mai spingere fuori un vicino migliore. Una penalità sì.

Che cosa una protezione può affermare onestamente qui

Il test esistente per questo blocco controllava che il blocco fosse pieno. È passato per tutto il tempo, ed era giusto che lo facesse: su ogni pagina venivano generati quattro riquadri. Non aveva alcuna opinione sul fatto che parlassero di qualcosa.

La regola rigida ovvia per il sostituto è sbagliata. Ogni pagina di alternative e di confronto deve avere almeno due vicini della propria forma suona come la proprietà che vogliamo, e imporrebbe vicini peggiori: una di quelle pagine parla delle alternative a cPanel, e i suoi quattro vicini migliori sono quattro articoli su cPanel con zero accordo di forma. Così è corretto, e una regola che pretendesse il contrario lo romperebbe. La protezione nomina quindi le nove pagine di cui il turno parlava davvero.

E la proprietà che vuole può semplicemente non esistere sui suoi dati. Nessuna coppia può condividere soltanto il tag più comune qui è insoddisfacibile. La forma onesta è comparativa: nessun candidato scartato totalizza più del vicino scelto più debole. Questo è controllabile, è la definizione vera di corretto, e non finge che il corpus sia qualcosa che non è.

Che cosa annoteremmo

  1. Misuri le pagine generate, non la funzione. Il difetto è la distribuzione; la funzione sembrava a posto.
  2. Un tag sul 59 per cento di un corpus non è un segnale. È un marcatore di stile di casa.
  3. Controlli se il suo tag significhi ancora quello che dice il suo nome. 43 su 75 non lo facevano.
  4. Una selezione a strati con un ordinamento dentro ogni strato è un ordinamento. Il primo strato bastava quasi sempre.
  5. Ordinare i pareggi per data reintroduce la distorsione verso il recente ovunque i pareggi siano frequenti, e su un corpus uniforme il pareggio è il caso normale.
  6. Lo spareggio può essere l’intera riparazione. Il nostro ha portato gli orfani da 71 a zero.
  7. Pesare una caratteristica senza varianza non cambia nulla. Misuri la mezza riparazione allettante prima di respingerla per via di ragionamento.
  8. Preferisca uno spareggio a una penalità. Uno spareggio non può scalzare un candidato migliore; il nostro sarebbe costato 3,1 punti di pertinenza se lo avesse fatto.
  9. Derivi il suo vocabolario da un registro che già tiene. Una quarta copia del nome di un prodotto è la prima a invecchiare.
  10. Se la proprietà che vuole è insoddisfacibile, scriva quella comparativa. Niente di ciò che è stato scartato batte il più debole di quelli scelti è controllabile e vero.

Per chiarezza su che cosa sia: le distribuzioni prima e dopo sono state lette dal DOM di due build di produzione, 20 pagine su 20 concordavano direttamente con la funzione di selezione, due build separate dello stesso commit erano identiche byte per byte su 18 sezioni di riquadri, una scansione di 1758 pagine non ha trovato né orfani né collegamenti morti, la nuova protezione porta 13 test di cui 5 dimostrati rossi prima, la suite web si è chiusa a 4703 verdi e il controllo dei contenuti a 923 su 923. Non dimostrato: l’effetto di tutto questo sul posizionamento, che è misurabile fra quattro e sei settimane e non prima, contro l’elenco registrato delle 71 pagine che prima non ricevevano nulla.

Dal lavoro di piattaforma su Provibr. Che cosa si devono a vicenda un titolo e i collegamenti che puntano ad esso si trova in tre difetti che nessuno script poteva vedere, perché lo stesso articolo può finire con due nomi si trova in due nomi per lo stesso articolo, e il caso in cui un’intestazione e il titolo di una pagina devono differire si trova in quando il titolo non può essere l’intestazione.

Inizi con un host e un agente

Crei un account, installi l’agente con un solo comando e colleghi il suo primo host Proxmox. Il periodo di prova dura 14 giorni e non chiede alcun dato di pagamento.