Blog ·
Een tag die het halve corpus draagt
Eén tag stond op 75 van de 127 artikelen, dus viel het blok Verder lezen terug op de datum en kregen 71 pagina's geen enkele inkomende tegel.
Door Provibr
Onder elk artikel op deze site staat een blok van vier tegels met de kop verder lezen. Het is de enige automatische interne verwijzing die we hebben; al het andere is een link die iemand in een zin geschreven heeft.
Het blok stond er al maanden en niemand had gevraagd wat het koos. Toen we het maten, op de gerenderde pagina's van een productiebuild en niet op de functie die ze vult, was het antwoord dat het bijna niets koos. Van de 127 Engelse artikelen kregen er 71 nul inkomende tegels. Het mediane artikel werd door niemand gelinkt. Vier artikelen kregen 304 van de 508 tegels die er zijn, met 88, 76, 72 en 68 per stuk.
Een blok dat 71 pagina's nooit noemt is geen interne verwijzing. Het is een top vier met een kop erboven.
De tag deed geen werk
De oude selectie werkte in drie familielagen: dezelfde familie met een gedeelde tag, een andere familie met een gedeelde tag, dezelfde familie zonder tag. Binnen elke laag sorteerde hij op publicatiedatum en nam er vier.
Dat leest als een verstandige ordening, en op dit corpus was het een machine die wezen produceerde, om een reden die niets met dat sorteren te maken heeft: proxmox staat op 75 van de 127 Engelse artikelen, oftewel 59 procent. Bijna elke technische notitie die dit project schrijft gebeurt op Proxmox, dus bijna elke notitie kreeg de tag.
Een tag die het halve corpus draagt onderscheidt niets. Laag één was daarom bijna altijd vol, en binnen een volle laag betekent op datum de vier nieuwste artikelen. 300 van de 508 buurparen deelden die ene tag en verder niets, en voor 75 artikelen gold dat voor alle vier de buren tegelijk. Het duidelijkste symptoom zat op de vergelijkingspagina's: de vier alternatievenartikelen over concurrerende producten tegelden dezelfde vier recente notities, en dus nooit elkaar en nooit hun eigen directe vergelijking.
Een tweede meting zegt hetzelfde van de andere kant, en die bepaalde hoe we de artikelen die je nu leest getagd hebben. Van de 75 Engelse artikelen die proxmox dragen bevatten er 43 het woord Proxmox nergens in de tekst. De tag was opgehouden dit gaat over Proxmox te betekenen en was dit is er een van ons gaan betekenen.
Eén score, drie soorten term, geen handmatige bonussen
De vervanging is één score. Twee artikelen zijn buren in de mate waarin ze termen delen, en een term is ln(N / df) waard: de klassieke inverse document frequency, met N het aantal artikelen in die taal en df het aantal dat de term draagt.
Drie soorten term wonen in één ruimte, met een voorvoegsel zodat ze niet kunnen botsen: tag: uit de frontmatter, vorm: uit de vorm van het artikel zoals die aan zijn slug en familie af te lezen is, en over: uit de onderwerpswoorden in de slug.
De weging volgt eruit in plaats van dat ze ingesteld wordt. Op het corpus dat we gemeten hebben is tag:proxmox 0,53 waard en tag:dedicated 2,45. Niemand heeft een van die twee getallen getypt, en niemand hoeft eraan te denken het eerste te verlagen als de zestiende Proxmox-notitie binnenkomt.
De onderwerpswoordenschat is afgeleid en niet getypt. Hij is de vereniging van de integratieslugs die de site toch al bijhoudt en de about-waarden van de blokken met concurrentiebeweringen, en daar komen namen als solusvm, tenantos, virtfusion en virtualizor vandaan: precies de woorden die het onderwerp van een pagina zijn en geen integratie. Een derde met de hand geschreven lijst was de vierde plek geweest waar dezelfde naam woont, en de eerste die veroudert.
Alleen de tags wegen is slechter, niet half beter
De verleidelijke kleine wijziging is de tag als enige signaal houden en hem alleen wegen. We hebben die variant gemeten voordat we kozen, want dit is wat iemand gaat voorstellen zodra dit de volgende keer ter sprake komt.
Hij levert 74 wezen op in plaats van 71, en van de 22 alternatieven- en vergelijkingspagina's hield er precies één twee buren van zijn eigen vorm over, tegen negen daarvoor. Een signaal wegen dat niet onderscheidt maakt het niet onderscheidend. Het onderscheid komt van vorm: en over:; de inverse document frequency beslist alleen hoe het gewicht verdeeld wordt.
Heeft een kenmerk bijna geen variantie, dan redt geen enkele wegingsvorm het, en een knappe formule over een slecht kenmerk lijkt op vooruitgang omdat de getallen bewegen.
De tie break is de halve reparatie
Hier komt het deel dat we niet voorspeld zouden hebben. Op 75 artikelen die niets delen behalve de notitievorm en de gemeenschappelijke tag is de score identiek. Elk van die paren is een gelijkspel, dus de tie break beslist alles, en niet alleen de randgevallen.
Gelijke scores op datum sorteren is het oude gedrag in een nieuwe jas: opnieuw de vier nieuwste. De tie break is nu het minst getegelde artikel eerst, met de datum en de slug erachter als stabiele afsluiting.
Die ene wijziging is wat het aantal wezen op nul bracht, en hij kost iets echts in vorm: hij is niet per artikel uit te rekenen. Je moet de hele taal één keer aflopen, in een vaste volgorde, en tellen wat er al uitgedeeld is.
In het Engels: mediaan 0 wordt 4, maximum 88 wordt 12, en 71 wezen worden 0. Elke andere taal komt op dezelfde mediaan en dezelfde nul uit, met een maximum van 13. Van de 46 buurparen die helemaal geen tag delen, delen alle 46 nu de vorm, waar eerder 37 paren helemaal niets deelden.
We hebben ook een straf binnen de score zelf gemeten, waarbij een kwart van het bestaande tegelaantal van een artikel wordt afgetrokken. Dat vlakt nog iets verder af, minimum twee in plaats van één, en het koopt dat met relevantie: het aandeel buren met niets gemeenschappelijks gaat van 9,1 naar 12,2 procent. Een tie break kan per constructie alleen kandidaten herordenen die al gelijk scoorden, dus hij kan nooit een betere buur wegduwen. Een straf wel.
Wat een bewaking hier eerlijk kan beweren
De bestaande test voor dit blok controleerde dat het blok vol was. Hij bleef de hele tijd groen, en terecht: er werden op elke pagina vier tegels gerenderd. Hij had geen mening over de vraag of ze ergens over gingen.
De voor de hand liggende strenge regel voor de vervanging is fout. Elke alternatieven- en vergelijkingspagina moet minstens twee buren van zijn eigen vorm hebben klinkt als de eigenschap die we willen, en hij zou slechtere buren afdwingen: een van die pagina's gaat over cPanel-alternatieven, en zijn vier beste buren zijn vier cPanel-artikelen met nul vormovereenkomst. Dat is correct, en een regel die iets anders eist zou het breken. De bewaking noemt daarom de negen pagina's waar de ronde werkelijk over ging.
En de eigenschap die je wilt bestaat op jouw data misschien gewoon niet. Geen enkel paar mag alleen de meest voorkomende tag delen is hier onvervulbaar. De eerlijke vorm is vergelijkend: geen niet-gekozen kandidaat scoort hoger dan de zwakste gekozen buur. Dat is toetsbaar, het is de werkelijke definitie van correct, en het doet niet alsof het corpus iets is wat het niet is.
Wat we zouden opschrijven
- Meet de gerenderde pagina's, niet de functie. De verdeling is het defect; de functie zag er goed uit.
- Een tag op 59 procent van een corpus is geen signaal. Het is een huisstijlmarkering.
- Controleer of je tag nog betekent wat zijn naam zegt. 43 van de 75 deden dat niet.
- Gelaagde selectie met een sortering binnen elke laag is een sortering. De eerste laag was bijna altijd genoeg.
- Gelijke scores op datum sorteren brengt de voorkeur voor het nieuwste terug overal waar gelijkspel vaak voorkomt, en op een uniform corpus is gelijkspel het normale geval.
- De tie break kan de hele reparatie zijn. De onze bracht de wezen van 71 naar nul.
- Een kenmerk zonder variantie wegen verandert niets. Meet de verleidelijke halve oplossing voordat je hem met een argument afwijst.
- Kies een tie break boven een straf. Een tie break kan geen betere kandidaat verdringen; de onze zou 3,1 punt relevantie gekost hebben als hij dat wel had gedaan.
- Leid je woordenschat af uit een register dat je toch al bijhoudt. Een vierde kopie van een productnaam is de eerste die veroudert.
- Bestaat de eigenschap die je wilt niet, schrijf dan de vergelijkende op. Niets wat niet gekozen is verslaat de zwakste gekozene is toetsbaar en waar.
Voor de duidelijkheid over wat dit is: de verdelingen van voor en na zijn uit de DOM van twee productiebuilds gelezen, 20 van de 20 pagina's kwamen overeen met de selectiefunctie zelf, twee losse builds van dezelfde commit waren byte-identiek over 18 tegelsecties, een crawl van 1758 pagina's vond geen wezen en geen dode links, de nieuwe bewaking draagt 13 tests waarvan er 5 eerst rood bewezen zijn, de websuite eindigde op 4703 groen en de contentcontrole op 923 van de 923. Onbewezen: het ranking-effect van dit alles, dat over vier tot zes weken meetbaar is en niet eerder, tegen de vastgelegde lijst van de 71 pagina's die vroeger niets kregen.
Uit het platformwerk aan Provibr. Wat een titel en de links die ernaar wijzen elkaar schuldig zijn staat in drie fouten die geen script kon zien, waarom hetzelfde artikel twee namen kan krijgen staat in twee namen voor hetzelfde artikel, en het geval waarin een kop en een paginatitel moeten verschillen staat in als de titel niet de kop kan zijn.