Data Explorer-Abfrage, um die Themen mit der längsten "geschätzten Lesezeit" aufzulisten?

Hallo zusammen,

ist es möglich, eine Data-Explorer-Abfrage zu erstellen, die die „Top X

Ich denke, der Ansatz, den ich in diesem Thema vorgeschlagen habe, muss verbessert werden. Ein Problem dabei ist, dass nur Benutzer mit TL3 und höher Beiträge auf Meta taggen können. Das bedeutet, dass die Mehrheit der Nutzer der Seite meinen Anweisungen nicht folgen könnte. Das andere Problem ist, dass wir sowohl unbeantwortete als auch beantwortete Themen mit dem data-explorer-Tag erhalten werden. Das hilft bei der Suche nach Abfragen nicht wirklich weiter.

[quote=“Richie, post:1, topic:196761”]
Ist es möglich, eine Data-Explorer-Abfrage zu erstellen, die die „Top X

Hi @simon,

stimmt diese Formel?

Wenn ich vier oder fünf zufällig auswähle und das Ergebnis der Spalte „geschätzte Lesezeit

Es sieht so aus, als würde diese Abfrage die Themen anzeigen, die am längsten gelesen wurden, und nicht die Themen, die am längsten zum Lesen dauern?

Ah, das könnte das Problem erklären.

Ich vermute mal, total_msecs_viewed ist hier nicht die richtige Spalte?

Sie können die durchschnittliche Zeit verwenden, die Benutzer benötigen, um das Thema zu lesen.
In diesem Fall ändern Sie einfach die SUM-Funktion in AVG. Das Ergebnis sieht dann so aus:

SELECT
    topic_id,
    category_id,
    AVG(total_msecs_viewed) / 60000  AS estimated_minutes_read
FROM topic_users tu
JOIN topics t ON t.id = tu.topic_id
WHERE t.deleted_at IS NULL
AND t.archetype = 'regular'
GROUP BY tu.topic_id, category_id
ORDER BY estimated_minutes_read DESC
LIMIT 100

Danke für den Vorschlag @michebs, aber ich fürchte, auch dieser liegt daneben.

Ein paar Beispiele:

Was die Abfrage sagt Was das Thema sagt
438 61
353 58
335 40
196 24

Aber das würde im Durchschnitt bedeuten, dass eine Person 438 Minuten benötigt, um dieses Top-Thema zu lesen? Das scheint unwahrscheinlich. Das mag albern klingen, aber hattest du in 60.000 genug Nullen?

Edit: Oder beinhaltet der Durchschnittswert vielleicht auch alle Wiederlesungen eines Themas? Ein einmaliges Durchlesen würde also 61 Minuten dauern, aber Nutzer verbringen tatsächlich durchschnittlich 438 Minuten damit.

Obwohl ich jetzt ziemlich neugierig darauf bin, wie die geschätzte Lesezeit für die Zusammenfassung berechnet wird, da diese idealerweise übereinstimmen sollten. Selbst wenn man sie um den Faktor zehn verkürzt, kommt man nur auf eine grobe Schätzung. :thinking:

Ja, genau :blush:

Ich habe kurz gesucht und dies gefunden: "There are 84 replies with an estimated read time of 0 minutes." - #9 by nbianca.

Ich habe Schwierigkeiten, diese Dinge zu entschlüsseln, aber es scheint, dass eine Wortanzahl-Zeit-Figur verwendet wird (plus eine Mindestzeit, um Beiträge ohne Wörter, wie Bilder, abzudecken).

Es gab auch diesen Beitrag, der einen Hinweis darauf gab, wie der endgültige Wert möglicherweise heißt: (obwohl er alt ist und sich das geändert haben könnte?)

Nicht gerade sehr hilfreich, aber ich dachte, ich teile es trotzdem, falls es doch hilft. :slightly_smiling_face:

Ich hoffe, du bekommst die Antworten, die du suchst. :crossed_fingers:

Ich habe mir das noch einmal angesehen, und es scheint (in seiner einfachsten Form) topic.word_count multipliziert mit der Admin-Einstellung „read time word count“ (standardmäßig 500 Wörter/Minute) zu sein. Ich glaube also, dass diese Abfrage die Top X „am längsten zu lesenden“ Themen ergeben würde:

-- [params]
-- integer :limit = 10

SELECT t.id as topic_id, (t.word_count)/500+1 AS estimated_read_time
FROM topics t
WHERE t.word_count IS NOT NULL
AND t.archetype = 'regular'
ORDER BY t.word_count DESC 
LIMIT :limit

Es gibt jedoch auch die alternative „4 Sekunden Minimum“: (Anzahl der Beiträge x 4)/60. Diese dient zur Berücksichtigung von Fotothemen ohne Wortanzahl. Es funktioniert also beides, und es wird angezeigt, welcher Wert größer ist. Aber ich habe noch nicht ganz herausgefunden, wie ich das hinzufügen kann. :slightly_smiling_face:

Leider habe ich keine ausreichend große Website, um es richtig zu testen. Es schien bei einer kleinen Teststichprobe zu funktionieren, aber es muss möglicherweise angepasst werden. :slightly_smiling_face:

Bearbeitung: Ich habe einen „limit“-Parameter hinzugefügt, um es näher an der OP-Spezifikation zu machen. :+1:

Bei Gott, ich glaube, er hat es!

@JammyDodger Ich habe deine Abfrage ausgeführt, hier sind ein paar Screenshots zur Referenz.

Zuerst die „Top 10“:

Und siehe da:

:scream: :clap:t2:

Es gibt ein paar Zahlen, die nicht ganz übereinstimmen, aber es ist wirklich nah dran!

Es scheint, als ob ich definitiv herausfinden muss, wie ich das Foto hinzufüge. :slightly_smiling_face: Ich habe noch nicht aufgegeben. :crossed_fingers:

Ich habe es noch einmal versucht. :slightly_smiling_face: Ich bin mir bei diesem nicht zu 100 % sicher, da ich keine ausreichend große Stichprobe zum Testen habe, aber es hat meine Testthemen erfasst. :+1:

-- [params]
-- integer :limit = 10

WITH read_time AS (
SELECT t.id as topic_id,
(t.word_count)/500+1 as word_count_time,
(t.posts_count*4)/60+1 as post_count_time
FROM topics t
WHERE t.word_count IS NOT NULL
AND t.archetype = 'regular'
AND t.deleted_at IS NULL
)

SELECT topic_id, CONCAT (CASE WHEN word_count_time > post_count_time THEN word_count_time ELSE post_count_time END, ' min') AS estimated_reading_time
FROM read_time
ORDER BY estimated_reading_time DESC
LIMIT :limit