Habrastatistik: Wie Habr ohne Geektimes lebt

Hallo Habr.

Dieser Artikel ist eine logische Fortsetzung der Rangliste der Artikel von Best Habr für 2018 . Und obwohl das Jahr noch nicht zu Ende ist, gab es, wie Sie wissen, im Sommer Änderungen in den Regeln, und es wurde interessant zu sehen, ob sich dies auf irgendetwas auswirkte.



Zusätzlich zur Statistik werden eine aktualisierte Bewertung der Artikel sowie einige Quellcodes für diejenigen bereitgestellt, die daran interessiert sind, wie dies funktioniert.

Für diejenigen, die daran interessiert sind, was passiert ist, weiter unter dem Schnitt. Diejenigen, die an einer detaillierteren Analyse von Abschnitten der Website interessiert sind, können auch den nächsten Teil sehen .

Ausgangsdaten


Diese Bewertung ist inoffiziell und ich habe keine Insiderdaten. Wie leicht zu erkennen ist, sind alle Artikel auf Habré in der Adressleiste des Browsers durchgehend nummeriert. Als nächstes ist eine technische Angelegenheit, wir lesen einfach alle Artikel in einer Reihe in einem Zyklus (in einem Thread und mit Pausen, um den Server nicht zu laden). Die Werte selbst wurden von einem einfachen Parser in Python (Quellcode ist hier ) abgerufen und in einer CSV-Datei von ungefähr diesem Typ gespeichert:

2019-08-11T22:36Z,https://habr.com/ru/post/463197/,"Blazor + MVVM = Silverlight , ",votes:11,votesplus:17,votesmin:6,bookmarks:40,views:5300,comments:73
2019-08-11T05:26Z,https://habr.com/ru/news/t/463199/," NASA ",votes:15,votesplus:15,votesmin:0,bookmarks:2,views:1700,comments:7


Verarbeitung


Zum Parsen verwenden wir Python, Pandas und Matplotlib. Wer sich nicht für Statistik interessiert, kann diesen Teil überspringen und sofort zu den Artikeln gehen.

Zuerst müssen Sie den Datensatz in den Speicher laden und Daten für das gewünschte Jahr auswählen.

 import pandas as pd import datetime import matplotlib.dates as mdates from matplotlib.ticker import FormatStrFormatter from pandas.plotting import register_matplotlib_converters df = pd.read_csv("habr.csv", sep=',', encoding='utf-8', error_bad_lines=True, quotechar='"', comment='#') dates = pd.to_datetime(df['datetime'], format='%Y-%m-%dT%H:%MZ') df['datetime'] = dates year = 2019 df = df[(df['datetime'] >= pd.Timestamp(datetime.date(year, 1, 1))) & (df['datetime'] < pd.Timestamp(datetime.date(year+1, 1, 1)))] print(df.shape) 

Es stellt sich heraus, dass für dieses Jahr (obwohl es noch nicht fertig ist) zum Zeitpunkt des Schreibens 12715 Artikel veröffentlicht wurden. Zum Vergleich für das gesamte Jahr 2018 - 15904. Im Allgemeinen viel - das sind ungefähr 43 Artikel pro Tag (und dies ist nur bei einer positiven Bewertung, wie viele Artikel heruntergeladen werden, die negativ oder gelöscht sind, können Sie nur die Auslassungen unter erraten oder grob herausfinden Kennungen).

Wählen Sie die erforderlichen Felder aus dem Datensatz aus. Als Metriken verwenden wir die Anzahl der Ansichten, Kommentare, Bewertungswerte und die Anzahl der hinzugefügten Lesezeichen.

 def to_float(s): # "bookmarks:22" => 22.0 num = ''.join(i for i in s if i.isdigit()) return float(num) def to_int(s): # "bookmarks:22" => 22 num = ''.join(i for i in s if i.isdigit()) return int(num) def to_date(dt): return dt.date() date = dates.map(to_date, na_action=None) views = df["views"].map(to_int, na_action=None) bookmarks = df["bookmarks"].map(to_int, na_action=None) votes = df["votes"].map(to_float, na_action=None) votes_up = df["up"].map(to_float, na_action=None) votes_down = df["down"].map(to_float, na_action=None) comments = df["comments"].map(to_int, na_action=None) df['date'] = date df['views'] = views df['votes'] = votes df['bookmarks'] = bookmarks df['up'] = votes_up df['down'] = votes_down 

Jetzt wurden die Daten zum Datensatz hinzugefügt, und wir können sie verwenden. Gruppieren Sie die Daten nach Tag und nehmen Sie die gemittelten Werte.

 g = df.groupby(['date']) days_count = g.size().reset_index(name='counts') year_days = days_count['date'].values grouped = g.median().reset_index() grouped['counts'] = days_count['counts'] counts_per_day = grouped['counts'].values counts_per_day_avg = grouped['counts'].rolling(window=20).mean() view_per_day = grouped['views'].values view_per_day_avg = grouped['views'].rolling(window=20).mean() votes_per_day = grouped['votes'].values votes_per_day_avg = grouped['votes'].rolling(window=20).mean() bookmarks_per_day = grouped['bookmarks'].values bookmarks_per_day_avg = grouped['bookmarks'].rolling(window=20).mean() 

Nun zum lustigen Teil können wir uns die Diagramme ansehen.

Sehen wir uns die Anzahl der Veröffentlichungen zu Habré im Jahr 2019 an.

 import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = (16, 8) fig, ax = plt.subplots() plt.bar(year_days, counts_per_day, label='Articles/day') plt.plot(year_days, counts_per_day_avg, 'g-', label='Articles avg/day') plt.xticks(rotation=45) ax.xaxis.set_major_formatter(mdates.DateFormatter("%d-%m-%Y")) ax.xaxis.set_major_locator(mdates.MonthLocator(interval=1)) plt.legend(loc='best') plt.tight_layout() plt.show() 

Das Ergebnis ist interessant. Wie Sie sehen können, "Wurst" Habr im Laufe des Jahres leicht. Ich kenne den Grund nicht.



Zum Vergleich: 2018 sieht etwas „glatter“ aus:



Im Allgemeinen konnte ich keinen drastischen Rückgang der Anzahl der veröffentlichten Artikel im Jahr 2019 in der Grafik feststellen. Im Gegenteil, es scheint seit dem Sommer sogar leicht gewachsen zu sein.

Aber die folgenden zwei Grafiken bedrücken mich ein bisschen mehr.

Durchschnittliche Aufrufe pro Artikel:



Durchschnittliche Bewertung pro Artikel:



Wie Sie sehen können, ist die durchschnittliche Anzahl der Aufrufe während des Jahres leicht reduziert. Dies kann durch die Tatsache erklärt werden, dass neue Artikel noch nicht von Suchmaschinen indiziert wurden und nicht so oft gefunden werden. Der Rückgang der durchschnittlichen Bewertung pro Artikel ist jedoch unverständlicher. Das Gefühl ist, dass die Leser entweder einfach keine Zeit haben, so viele Artikel zu durchsuchen, oder die Bewertungen nicht beachten. Aus Sicht des Belohnungsprogramms der Autoren ist dieser Trend sehr unangenehm.

Dies war übrigens 2018 nicht der Fall, und der Zeitplan ist mehr oder weniger gleichmäßig.



Im Allgemeinen müssen Ressourcenbesitzer über etwas nachdenken.

Aber reden wir nicht über traurige Dinge. Im Allgemeinen können wir sagen, dass Habr die Sommeränderungen recht erfolgreich "überlebt" hat und die Anzahl der Artikel auf der Website nicht abgenommen hat.

Bewertung


Nun eigentlich die Bewertung. Herzlichen Glückwunsch an diejenigen, die ihn geschlagen haben. Ich möchte Sie noch einmal daran erinnern, dass die Bewertung inoffiziell ist. Vielleicht habe ich etwas verpasst. Wenn ein Artikel definitiv hier sein sollte, aber nicht, schreibe ich, ich füge ihn manuell hinzu. Als Bewertung verwende ich berechnete Metriken, die sich meiner Meinung nach als sehr interessant erwiesen haben.

Top Viewed Artikel


Top-Artikel zum Verhältnis von Bewertungen zu Ansichten


Top-Artikel zum Verhältnis von Kommentaren zu Ansichten


Top umstrittensten Artikel


Bestbewertete Artikel


Top Lesezeichen Artikel


Top by View Lesezeichenverhältnis


Top kommentierte Artikel


Und schließlich der letzte Anti-Stop durch die Anzahl der Abneigungen


Uff. Ich habe einige interessantere Beispiele, aber ich werde die Leser nicht langweilen.

Fazit


Bei der Erstellung der Bewertung habe ich auf zwei Punkte hingewiesen, die interessant erschienen.

Erstens sind immerhin 60% der Top-Artikel im Geektimes-Genre. Ob es nächstes Jahr weniger davon geben wird und wie Habr ohne Artikel über Bier, Weltraum, Medizin usw. aussehen wird - weiß ich nicht. Die Leser werden definitiv etwas verlieren. Mal sehen.

Zweitens erwies sich die Lesezeichenoberseite als unerwartet hochwertig. Dies ist psychologisch verständlich, die Leser achten möglicherweise nicht auf die Bewertung, und wenn ein Artikel benötigt wird, fügen sie ihn Lesezeichen hinzu. Und hier ist nur die größte Konzentration nützlicher und seriöser Artikel. Ich denke, dass die Eigentümer der Website die Beziehung zwischen der Anzahl der Lesezeichen und dem Incentive-Programm in Betracht ziehen sollten, wenn sie diese bestimmte Kategorie von Artikeln hier auf Habré erweitern möchten.

Irgendwie so.Ich hoffe es war informativ.

Die Liste der Artikel ist lang, aber wahrscheinlich die beste. Viel Spaß beim Lesen für alle.

Source: https://habr.com/ru/post/de466963/


All Articles