Blog ·
Ein Schlagwort, das die Hälfte des Korpus trägt
Ein Schlagwort saß auf 75 von 127 Artikeln, also fiel der Weiterlesen-Block auf das Datum zurück, und 71 Seiten bekamen gar keine eingehende Kachel.
Von Provibr
Unter jedem Artikel auf dieser Seite steht ein Block aus vier Kacheln mit der Überschrift Weiterlesen. Es ist die einzige automatische interne Verlinkung, die wir haben; alles andere ist ein Link, den jemand in einen Satz geschrieben hat.
Der Block stand seit Monaten, und niemand hatte gefragt, was er auswählt. Als wir es gemessen haben, auf den gerenderten Seiten eines Produktionsbuilds statt an der Funktion, die sie füllt, lautete die Antwort: fast nichts. Von den 127 englischen Artikeln bekamen 71 null eingehende Kacheln. Der mittlere Artikel wurde von niemandem verlinkt. Vier Artikel bekamen 304 der 508 vorhandenen Kacheln, mit 88, 76, 72 und 68 je Artikel.
Ein Block, der 71 Seiten nie nennt, ist keine interne Verlinkung. Er ist eine Bestenliste mit vier Plätzen und einer Überschrift darüber.
Das Schlagwort tat keine Arbeit
Die alte Auswahl arbeitete in drei Familienschichten: gleiche Familie mit gemeinsamem Schlagwort, andere Familie mit gemeinsamem Schlagwort, gleiche Familie ohne eines. Innerhalb jeder Schicht sortierte sie nach Veröffentlichungsdatum und nahm vier.
Das liest sich wie eine vernünftige Ordnung, und auf diesem Korpus war es eine Maschine zur Erzeugung von Waisen, aus einem Grund, der mit der Sortierung nichts zu tun hat: proxmox sitzt auf 75 der 127 englischen Artikel, also auf 59 Prozent. Fast jede technische Notiz, die dieses Projekt schreibt, entsteht auf Proxmox, also bekam fast jede Notiz das Schlagwort.
Ein Schlagwort, das die Hälfte des Korpus trägt, unterscheidet nichts. Schicht eins war deshalb fast immer voll, und innerhalb einer vollen Schicht bedeutet nach Datum die vier neuesten Artikel. 300 der 508 Nachbarpaare teilten dieses eine Schlagwort und sonst nichts, und bei 75 Artikeln galt das für alle vier Nachbarn gleichzeitig. Das deutlichste Symptom zeigten die Vergleichsseiten: Die vier Alternativenartikel über konkurrierende Produkte kachelten dieselben vier neuen Notizen und damit nie einander und nie ihren eigenen direkten Vergleich.
Eine zweite Messung sagt dasselbe von der anderen Seite her, und sie hat entschieden, wie wir die Artikel verschlagwortet haben, die Sie gerade lesen. Von den 75 englischen Artikeln mit proxmox enthalten 43 das Wort Proxmox nirgends im Text. Das Schlagwort hatte aufgehört, hier geht es um Proxmox zu bedeuten, und angefangen, das ist einer von uns zu bedeuten.
Eine Punktzahl, drei Arten von Begriff, keine Bonuspunkte von Hand
Der Ersatz ist eine einzige Punktzahl. Zwei Artikel sind in dem Maße Nachbarn, in dem sie Begriffe teilen, und ein Begriff ist ln(N / df) wert: die klassische inverse Dokumenthäufigkeit, mit N als Zahl der Artikel in dieser Sprache und df als Zahl derer, die den Begriff tragen.
Drei Arten von Begriff leben in einem Raum, mit einem Präfix davor, damit sie nicht kollidieren können: tag: aus dem Frontmatter, vorm: aus der Gestalt des Artikels, wie sie an Slug und Familie ablesbar ist, und over: aus den Gegenstandswörtern im Slug.
Die Gewichtung fällt an, statt gesetzt zu werden. Auf dem Korpus, den wir gemessen haben, ist tag:proxmox 0,53 wert und tag:dedicated 2,45. Keine der beiden Zahlen hat jemand getippt, und niemand muss daran denken, die erste zu senken, wenn die sechzehnte Proxmox-Notiz erscheint.
Das Gegenstandsvokabular ist abgeleitet statt getippt. Es ist die Vereinigung der Integrations-Slugs, die die Seite ohnehin führt, und der about-Werte aus den Aussageblöcken über Wettbewerber, woher Namen wie solusvm, tenantos, virtfusion und virtualizor stammen: genau die Wörter, die Gegenstand einer Seite und keine Integration sind. Eine dritte handgeschriebene Liste wäre die vierte Stelle gewesen, an der derselbe Name lebt, und die erste, die veraltet.
Nur die Schlagwörter zu gewichten ist schlechter, nicht halb so gut
Die verlockende kleine Änderung ist, das Schlagwort als einziges Signal zu behalten und es einfach zu gewichten. Wir haben diese Variante vor der Entscheidung gemessen, denn genau das wird jemand vorschlagen, wenn das Thema das nächste Mal aufkommt.
Sie erzeugt 74 Waisen statt 71, und von den 22 Alternativen- und Vergleichsseiten behielt genau eine zwei Nachbarn der eigenen Gestalt, gegenüber neun zuvor. Ein Signal zu gewichten, das nicht unterscheidet, bringt es nicht zum Unterscheiden. Die Unterscheidung kommt aus vorm: und over:; die inverse Dokumenthäufigkeit entscheidet nur, wie das Gewicht verteilt wird.
Hat ein Merkmal fast keine Varianz, rettet es kein Gewichtungsschema, und eine kluge Formel über einem schlechten Merkmal sieht nach Fortschritt aus, weil sich die Zahlen bewegen.
Der Stichentscheid ist die halbe Reparatur
Hier kommt der Teil, den wir nicht vorhergesagt hätten. Bei 75 Artikeln, die nichts teilen außer der Notizgestalt und dem häufigen Schlagwort, ist die Punktzahl identisch. Jedes dieser Paare ist ein Gleichstand, also entscheidet der Stichentscheid alles und nicht die Randfälle.
Gleichstände nach Datum zu sortieren ist das alte Verhalten in neuem Mantel: wieder die vier neuesten. Der Stichentscheid lautet jetzt der am wenigsten gekachelte Artikel zuerst, mit Datum und Slug dahinter als stabilem Abschluss.
Diese eine Änderung hat die Zahl der Waisen auf null gebracht, und sie kostet etwas Echtes an Gestalt: Sie ist nicht je Artikel berechenbar. Man muss die ganze Sprache einmal durchlaufen, in fester Reihenfolge, und zählen, was schon vergeben wurde.
Im Englischen: Median 0 wird 4, Maximum 88 wird 12, 71 Waisen werden 0. Jede andere Sprache landet beim selben Median und bei derselben Null, mit einem Maximum von 13. Von den 46 Nachbarpaaren, die überhaupt kein Schlagwort teilen, teilen jetzt alle 46 die Gestalt, wo zuvor 37 Paare rein gar nichts teilten.
Wir haben auch einen Abschlag innerhalb der Punktzahl selbst gemessen, der ein Viertel der bereits vergebenen Kacheln eines Artikels abzieht. Er glättet noch etwas weiter, Minimum zwei statt eins, und er erkauft das mit Relevanz: Der Anteil der Nachbarn ohne jede Gemeinsamkeit steigt von 9,1 auf 12,2 Prozent. Ein Stichentscheid kann konstruktionsbedingt nur Kandidaten umordnen, die ohnehin gleich bewertet wurden, also kann er nie einen besseren Nachbarn hinausdrängen. Ein Abschlag kann das.
Was eine Wache hier ehrlich behaupten kann
Der bestehende Test für diesen Block prüfte, dass der Block voll ist. Er war durchgehend grün, und das zu Recht: Auf jeder Seite wurden vier Kacheln gerendert. Er hatte keine Meinung dazu, ob sie von irgendetwas handelten.
Die naheliegende strenge Regel für den Ersatz ist falsch. Jede Alternativen- und Vergleichsseite muss mindestens zwei Nachbarn der eigenen Gestalt haben klingt nach der Eigenschaft, die wir wollen, und würde schlechtere Nachbarn erzwingen: Eine dieser Seiten handelt von cPanel-Alternativen, und ihre vier besten Nachbarn sind vier cPanel-Artikel ohne jede Übereinstimmung in der Gestalt. Das ist richtig so, und eine Regel, die etwas anderes verlangt, würde es kaputtmachen. Die Wache nennt deshalb die neun Seiten, um die es in dieser Runde tatsächlich ging.
Und die Eigenschaft, die Sie wollen, existiert auf Ihren Daten vielleicht schlicht nicht. Kein Paar darf nur das häufigste Schlagwort teilen ist hier nicht erfüllbar. Die ehrliche Form ist vergleichend: kein nicht gewählter Kandidat erreicht eine höhere Punktzahl als der schwächste gewählte Nachbar. Das ist prüfbar, es ist die eigentliche Definition von korrekt, und es tut nicht so, als wäre das Korpus etwas, das es nicht ist.
Was wir aufschreiben würden
- Messen Sie die gerenderten Seiten, nicht die Funktion. Die Verteilung ist der Defekt; die Funktion sah gut aus.
- Ein Schlagwort auf 59 Prozent eines Korpus ist kein Signal. Es ist eine Hausstilmarke.
- Prüfen Sie, ob Ihr Schlagwort noch das bedeutet, was sein Name sagt. 43 von 75 taten es nicht.
- Geschichtete Auswahl mit einer Sortierung in jeder Schicht ist eine Sortierung. Die erste Schicht reichte fast immer.
- Gleichstände nach Datum zu sortieren führt die Neuheitsverzerrung wieder ein, überall dort, wo Gleichstände häufig sind, und auf einem einheitlichen Korpus sind sie der Normalfall.
- Der Stichentscheid kann die ganze Reparatur sein. Unserer brachte die Waisen von 71 auf null.
- Ein Merkmal ohne Varianz zu gewichten ändert nichts. Messen Sie die verlockende halbe Lösung, bevor Sie sie mit einem Argument verwerfen.
- Ziehen Sie einen Stichentscheid einem Abschlag vor. Ein Stichentscheid kann keinen besseren Kandidaten verdrängen; der Abschlag hätte 3,1 Punkte Relevanz gekostet.
- Leiten Sie Ihr Vokabular aus einem Verzeichnis ab, das Sie ohnehin führen. Eine vierte Kopie eines Produktnamens ist die erste, die veraltet.
- Ist die gewünschte Eigenschaft nicht erfüllbar, schreiben Sie die vergleichende auf. Nichts Ungewähltes schlägt das schwächste Gewählte ist prüfbar und wahr.
Zur Klarheit: Die Verteilungen davor und danach wurden aus dem DOM zweier Produktionsbuilds ausgelesen, 20 von 20 Seiten stimmten unmittelbar mit der Auswahlfunktion überein, zwei getrennte Builds desselben Commits waren über 18 Kachelabschnitte hinweg Byte für Byte gleich, ein Crawl über 1758 Seiten fand keine Waisen und keine toten Links, die neue Wache trägt 13 Tests, von denen 5 zuerst rot bewiesen wurden, die Web-Suite endete bei 4703 grün und die Inhaltsprüfung bei 923 von 923. Nicht bewiesen: die Wirkung all dessen auf das Ranking, die in vier bis sechs Wochen messbar ist und nicht früher, gegen die festgehaltene Liste der 71 Seiten, die früher nichts bekamen.
Aus der Plattformarbeit an Provibr. Was ein Titel und die Links, die auf ihn zeigen, einander schulden, steht in Drei Fehler, die kein Skript sehen konnte, warum derselbe Artikel mit zwei Namen enden kann, steht in Zwei Namen für denselben Artikel, und der Fall, in dem eine Überschrift und ein Seitentitel auseinandergehen müssen, steht in Wenn der Titel nicht die Überschrift sein kann.