Habrastatistics: com viu Habr sense geektimes

Hola Habr.

Aquest article és una continuació lògica de la qualificació Els millors articles Habr del 2018. I tot i que encara no s'ha acabat l'any, com ja sabeu, a l'estiu hi va haver canvis en la normativa, en conseqüència, es va fer interessant veure si això afectava alguna cosa.

Habrastatistics: com viu Habr sense geektimes

A més de les estadístiques reals, es proporcionarà una puntuació actualitzada dels articles, així com algun codi font per a aquells que estiguin interessats en el seu funcionament.

Per a aquells que estiguin interessats en el que va passar, la continuació està sota el tall. Aquells que estiguin interessats en una anàlisi més detallada de les seccions del lloc també poden mirar següent part.

Dades primeres

Aquesta qualificació no és oficial i no tinc cap informació privilegiada. Com podeu veure fàcilment mirant la barra d'adreces del vostre navegador, tots els articles a Habré tenen una numeració contínua. Aleshores és qüestió de tècnica, simplement llegim tots els articles seguits en un cicle (en un fil i amb pauses, per no carregar el servidor). Els mateixos valors es van obtenir mitjançant un analitzador senzill en Python (les fonts estan disponibles aquí) i es va desar en un fitxer csv com això:

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

Tractament

Per analitzar utilitzarem Python, Pandas i Matplotlib. Aquells que no estiguin interessats en les estadístiques poden saltar-se aquesta part i anar directament als articles.

Primer cal carregar el conjunt de dades a la memòria i seleccionar les dades de l'any desitjat.

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)

Resulta que aquest any (tot i que encara no està acabat) en el moment d'escriure aquest article s'han publicat 12715 articles. Per comparació, per a tot el 2018 - 15904. En general, molt - això és d'uns 43 articles per dia (i això només és amb una puntuació positiva; quants articles totals es descarreguen que van ser negatius o es van eliminar, només es pot endevinar o estimació aproximadament a partir de les llacunes entre identificadors).

Seleccionem els camps necessaris del conjunt de dades. Com a mètriques utilitzarem el nombre de visualitzacions, comentaris, valors de valoració i el nombre d'adreces d'interès.

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

Ara les dades s'han afegit al conjunt de dades i les podem utilitzar. Agrupem les dades per dia i prenem els valors mitjans.

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

Ara la part interessant és que podem mirar els gràfics.

Vegem el nombre de publicacions sobre Habré el 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()

El resultat és interessant. Com podeu veure, Habr ha estat una mica de "salsitxa" durant tot l'any. No sé el motiu.

Habrastatistics: com viu Habr sense geektimes

Per comparar, el 2018 sembla una mica més suau:

Habrastatistics: com viu Habr sense geektimes

En general, no vaig veure cap disminució dràstica del nombre d'articles publicats el 2019 al gràfic. A més, al contrari, sembla que fins i tot ha augmentat lleugerament des de l'estiu.

Però els dos gràfics següents em deprimeixen una mica més.

Nombre mitjà de visualitzacions per article:

Habrastatistics: com viu Habr sense geektimes

Valoració mitjana per article:

Habrastatistics: com viu Habr sense geektimes

Com podeu veure, el nombre mitjà de visualitzacions disminueix lleugerament al llarg de l'any. Això es pot explicar pel fet que els nous articles encara no han estat indexats pels motors de cerca i no es troben tan sovint. Però el descens de la qualificació mitjana per article és més incomprensible. La sensació és que els lectors o simplement no tenen temps per mirar tants articles o no es fixen en les valoracions. Des del punt de vista del programa de recompensa d'autor, aquesta tendència és molt desagradable.

Per cert, això no va passar el 2018, i el calendari és més o menys igualat.

Habrastatistics: com viu Habr sense geektimes

En general, els propietaris de recursos tenen alguna cosa en què pensar.

Però no parlem de coses tristes. En general, podem dir que Habr "va sobreviure" als canvis d'estiu amb força èxit i el nombre d'articles al lloc no va disminuir.

Classificació

Ara, de fet, la qualificació. Felicitats als que s'hi van posar. Permeteu-me que us recordi una vegada més que la qualificació no és oficial, potser m'he perdut alguna cosa, i si algun article hauria d'estar aquí, però no ho és, escriviu, l'afegiré manualment. Com a valoració, faig servir mètriques calculades, que crec que van resultar força interessants.

Articles principals per nombre de visualitzacions

Articles principals per ràtio de valoració a visualitzacions

Articles principals per ràtio de comentaris a visualitzacions

Els articles més polèmics

Articles principals per valoració

Articles principals per nombre d'adreces d'interès

Top per proporció d'adreces d'interès i visualitzacions

Articles principals per nombre de comentaris

I finalment, l'últim Antitop pel nombre de no m'agrada

Uf. Tinc algunes seleccions més interessants, però no avorriré els lectors.

Conclusió

A l'hora de construir la qualificació, vaig parar atenció a dos punts que em semblaven interessants.

En primer lloc, el 60% del top són articles del gènere "geektimes". Si l'any vinent n'hi haurà menys, i com serà Habr sense articles sobre cervesa, espai, medicina, etc., no ho sé. Definitivament, els lectors perdran alguna cosa. A veure.

En segon lloc, els principals marcadors van resultar ser d'una qualitat inesperadament alta. Això és psicològicament comprensible; és possible que els lectors no prestin atenció a la qualificació, però si l'article es necessita, llavors s'afegirà als vostres marcadors. I aquí és precisament la major concentració d'articles útils i seriosos. Crec que els propietaris del lloc haurien de pensar d'alguna manera a través de la connexió entre el nombre d'adreces d'interès i el programa de recompenses si volen augmentar aquesta categoria particular d'articles aquí a Habré.

Alguna cosa com això. Espero que hagi estat informatiu.

La llista d'articles va resultar ser llarga, bé, probablement sigui per a millor. Feliç lectura a tothom.

Font: www.habr.com

Afegeix comentari