Habrastatistics: come vive Habr senza geektimes

Ciao Habr.

Questo articolo è una logica continuazione della valutazione I migliori articoli Habr per il 2018. E anche se l'anno non è ancora finito, come sapete, in estate ci sono stati dei cambiamenti nelle regole, di conseguenza è diventato interessante vedere se ciò ha influito su qualcosa.

Habrastatistics: come vive Habr senza geektimes

Oltre alle statistiche effettive, verrà fornita una valutazione aggiornata degli articoli, nonché del codice sorgente per coloro che sono interessati a come funziona.

Per coloro che sono interessati a quello che è successo, il seguito è tagliato. Può consultare anche chi è interessato ad un'analisi più dettagliata delle sezioni del sito parte successiva.

Dati iniziali

Questa valutazione non è ufficiale e non ho alcuna informazione privilegiata. Come puoi facilmente verificare guardando la barra degli indirizzi del tuo browser, tutti gli articoli su Habré hanno una numerazione continua. Poi è una questione di tecnica, leggiamo semplicemente tutti gli articoli di seguito in ciclo (in un thread e con pause, per non caricare il server). I valori stessi sono stati ottenuti da un semplice parser in Python (i sorgenti sono disponibili qui) e salvato in un file CSV qualcosa del genere:

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

lavorazione

Per l'analisi utilizzeremo Python, Pandas e Matplotlib. Chi non è interessato alle statistiche può saltare questa parte e passare direttamente agli articoli.

Per prima cosa è necessario caricare il set di dati in memoria e selezionare i dati per l'anno desiderato.

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)

Risulta che quest'anno (anche se non è ancora finito) nel momento in cui scrivo sono stati pubblicati 12715 articoli. Per fare un confronto, per l'intero 2018 - 15904. In generale, molto: si tratta di circa 43 articoli al giorno (e questo è solo con una valutazione positiva; quanti articoli totali vengono scaricati che sono diventati negativi o sono stati cancellati, si può solo immaginare o stima approssimativa dalle lacune tra gli identificatori).

Selezioniamo i campi necessari dal set di dati. Come metrica utilizzeremo il numero di visualizzazioni, commenti, valori di valutazione e il numero di segnalibri.

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

Ora i dati sono stati aggiunti al set di dati e possiamo utilizzarli. Raggruppiamo i dati per giorno e prendiamo i valori medi.

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()

Ora la parte interessante è che possiamo guardare i grafici.

Diamo un'occhiata al numero di pubblicazioni su Habré nel 2019.

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()

Il risultato è interessante. Come potete vedere, Habr è stata una piccola “salsiccia” durante tutto l’anno. Non so il motivo.

Habrastatistics: come vive Habr senza geektimes

Per fare un confronto, il 2018 sembra un po’ più tranquillo:

Habrastatistics: come vive Habr senza geektimes

In generale, non ho notato sul grafico alcuna diminuzione drastica del numero di articoli pubblicati nel 2019. Inoltre, al contrario, sembra addirittura leggermente aumentato rispetto all'estate.

Ma i due grafici successivi mi deprimono un po’ di più.

Numero medio di visualizzazioni per articolo:

Habrastatistics: come vive Habr senza geektimes

Voto medio per articolo:

Habrastatistics: come vive Habr senza geektimes

Come puoi vedere, il numero medio di visualizzazioni diminuisce leggermente durante l'anno. Ciò può essere spiegato dal fatto che i nuovi articoli non sono ancora stati indicizzati dai motori di ricerca e non vengono trovati così spesso. Ma il calo della valutazione media per articolo è ancora più incomprensibile. La sensazione è che i lettori semplicemente non abbiano il tempo di leggere così tanti articoli o non prestino attenzione alle valutazioni. Dal punto di vista del programma di ricompensa degli autori, questa tendenza è molto spiacevole.

A proposito, questo non è accaduto nel 2018 e il programma è più o meno uniforme.

Habrastatistics: come vive Habr senza geektimes

In generale, i proprietari delle risorse hanno qualcosa a cui pensare.

Ma non parliamo di cose tristi. In generale, possiamo dire che Habr è "sopravvissuto" ai cambiamenti estivi con successo e il numero di articoli sul sito non è diminuito.

Valutazione

Ora, in realtà, la valutazione. Complimenti a chi ci è riuscito. Lascia che ti ricordi ancora una volta che la valutazione non è ufficiale, forse mi sono perso qualcosa, e se qualche articolo dovrebbe sicuramente essere qui, ma non lo è, scrivi, lo aggiungerò manualmente. Come valutazione, utilizzo metriche calcolate, che penso si siano rivelate piuttosto interessanti.

Articoli principali per numero di visualizzazioni

Articoli principali per rapporto valutazione/visualizzazione

Articoli principali per rapporto commenti/visualizzazioni

Gli articoli più controversi

Articoli principali per valutazione

Articoli principali per numero di segnalibri

In alto per rapporto tra segnalibri e visualizzazioni

Articoli principali per numero di commenti

E infine, l'ultimo Antitop per numero di Non mi piace

Uffa. Ho alcune selezioni più interessanti, ma non annoierò i lettori.

conclusione

Durante la costruzione della valutazione, ho prestato attenzione a due punti che mi sembravano interessanti.

In primo luogo, il 60% dei migliori sono articoli del genere "geektimes". Se l'anno prossimo ce ne saranno meno e come sarà Habr senza articoli su birra, spazio, medicina, ecc., non lo so. Sicuramente i lettori perderanno qualcosa. Vediamo.

In secondo luogo, i segnalibri migliori si sono rivelati di qualità inaspettatamente elevata. Questo è psicologicamente comprensibile; i lettori potrebbero non prestare attenzione alla valutazione, ma se l'articolo è necessario, verrà aggiunto ai tuoi segnalibri. Ed è proprio qui che si trova la maggiore concentrazione di articoli utili e seri. Penso che i proprietari dei siti dovrebbero in qualche modo pensare al collegamento tra il numero di segnalibri e il programma di premi se vogliono aumentare questa particolare categoria di articoli qui su Habré.

Qualcosa come questo. Spero che sia stato informativo.

L'elenco degli articoli si è rivelato lungo, beh, probabilmente è meglio così. Buona lettura a tutti.

Fonte: habr.com

Aggiungi un commento