హబ్రాస్టాటిస్టిక్స్: హబ్ర్ గీక్‌టైమ్స్ లేకుండా ఎలా జీవిస్తాడు

హలో, హబ్ర్.

ఈ వ్యాసం రేటింగ్ యొక్క తార్కిక కొనసాగింపు 2018 కోసం ఉత్తమ హబ్ర్ కథనాలు. మరియు సంవత్సరం ఇంకా పూర్తి కానప్పటికీ, మీకు తెలిసినట్లుగా, వేసవిలో నియమాలలో మార్పులు జరిగాయి, తదనుగుణంగా, ఇది ఏదైనా ప్రభావితం చేస్తుందో లేదో చూడటం ఆసక్తికరంగా మారింది.

హబ్రాస్టాటిస్టిక్స్: హబ్ర్ గీక్‌టైమ్స్ లేకుండా ఎలా జీవిస్తాడు

వాస్తవ గణాంకాలకు అదనంగా, కథనాల యొక్క నవీకరించబడిన రేటింగ్ అందించబడుతుంది, అలాగే ఇది ఎలా పని చేస్తుందనే దానిపై ఆసక్తి ఉన్నవారికి కొంత సోర్స్ కోడ్ అందించబడుతుంది.

ఏమి జరిగిందో ఆసక్తి ఉన్నవారికి, కొనసాగింపు కట్ కింద ఉంది. సైట్ యొక్క విభాగాల యొక్క మరింత వివరణాత్మక విశ్లేషణలో ఆసక్తి ఉన్నవారు కూడా చూడవచ్చు తదుపరి భాగం.

మూల డేటా

ఈ రేటింగ్ అనధికారికమైనది మరియు నా దగ్గర ఎలాంటి అంతర్గత సమాచారం లేదు. మీ బ్రౌజర్ యొక్క చిరునామా పట్టీని చూడటం ద్వారా మీరు సులభంగా చూడగలిగే విధంగా, Habréలోని అన్ని కథనాలు నిరంతర సంఖ్యను కలిగి ఉంటాయి. అప్పుడు ఇది సాంకేతికతకు సంబంధించిన విషయం, మేము అన్ని కథనాలను వరుసగా లూప్‌లో చదువుతాము (ఒక థ్రెడ్‌లో మరియు పాజ్‌లతో, సర్వర్‌ను లోడ్ చేయకుండా). పైథాన్‌లోని సాధారణ పార్సర్ ద్వారా విలువలు పొందబడ్డాయి (మూలాలు అందుబాటులో ఉన్నాయి ఇక్కడ) మరియు ఇలాంటి csv ఫైల్‌లో సేవ్ చేయబడింది:

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

ప్రాసెసింగ్

అన్వయించడం కోసం మేము పైథాన్, పాండాలు మరియు మాట్‌ప్లాట్‌లిబ్‌లను ఉపయోగిస్తాము. గణాంకాలపై ఆసక్తి లేని వారు ఈ భాగాన్ని దాటవేసి నేరుగా కథనాలకు వెళ్లవచ్చు.

మొదట మీరు డేటాసెట్‌ను మెమరీలోకి లోడ్ చేయాలి మరియు కావలసిన సంవత్సరానికి డేటాను ఎంచుకోవాలి.

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)

ఈ సంవత్సరం (ఇది ఇంకా పూర్తి కానప్పటికీ) వ్రాసే సమయానికి 12715 వ్యాసాలు ప్రచురించబడ్డాయి. పోలిక కోసం, మొత్తం 2018 కోసం - 15904. సాధారణంగా, చాలా - ఇది రోజుకు దాదాపు 43 కథనాలు (మరియు ఇది సానుకూల రేటింగ్‌తో మాత్రమే; ప్రతికూలంగా లేదా తొలగించబడిన మొత్తం కథనాలు ఎన్ని డౌన్‌లోడ్ చేయబడ్డాయి, ఒకరు మాత్రమే ఊహించగలరు లేదా ఐడెంటిఫైయర్‌ల మధ్య ఖాళీల నుండి సుమారుగా అంచనా వేయండి).

డేటాసెట్ నుండి అవసరమైన ఫీల్డ్‌లను ఎంచుకుందాం. మెట్రిక్‌లుగా మేము వీక్షణల సంఖ్య, వ్యాఖ్యలు, రేటింగ్ విలువలు మరియు బుక్‌మార్క్‌ల సంఖ్యను ఉపయోగిస్తాము.

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

ఇప్పుడు డేటా సెట్‌కు జోడించబడింది మరియు మనం దానిని ఉపయోగించవచ్చు. రోజువారీగా డేటాను సమూహపరచి, సగటు విలువలను తీసుకుందాం.

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

ఇప్పుడు ఆసక్తికరమైన భాగం ఏమిటంటే మనం గ్రాఫ్‌లను చూడవచ్చు.

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

ఫలితం ఆసక్తికరంగా ఉంది. మీరు చూడగలిగినట్లుగా, హబ్ర్ ఏడాది పొడవునా కొద్దిగా "సాసేజ్" గా ఉంది. కారణం నాకు తెలియదు.

హబ్రాస్టాటిస్టిక్స్: హబ్ర్ గీక్‌టైమ్స్ లేకుండా ఎలా జీవిస్తాడు

పోలిక కోసం, 2018 కొద్దిగా సున్నితంగా కనిపిస్తుంది:

హబ్రాస్టాటిస్టిక్స్: హబ్ర్ గీక్‌టైమ్స్ లేకుండా ఎలా జీవిస్తాడు

సాధారణంగా, గ్రాఫ్‌లో 2019లో ప్రచురించబడిన కథనాల సంఖ్య గణనీయంగా తగ్గడం నాకు కనిపించలేదు. పైగా, దీనికి విరుద్ధంగా, వేసవి నుండి ఇది కొద్దిగా పెరిగినట్లు కనిపిస్తోంది.

కానీ తరువాతి రెండు గ్రాఫ్‌లు నన్ను కొంచెం ఎక్కువ నిరుత్సాహపరుస్తాయి.

ఒక్కో కథనానికి సగటు వీక్షణల సంఖ్య:

హబ్రాస్టాటిస్టిక్స్: హబ్ర్ గీక్‌టైమ్స్ లేకుండా ఎలా జీవిస్తాడు

ప్రతి కథనానికి సగటు రేటింగ్:

హబ్రాస్టాటిస్టిక్స్: హబ్ర్ గీక్‌టైమ్స్ లేకుండా ఎలా జీవిస్తాడు

మీరు గమనిస్తే, ఏడాది పొడవునా సగటు వీక్షణల సంఖ్య కొద్దిగా తగ్గుతుంది. కొత్త కథనాలు ఇంకా శోధన ఇంజిన్‌లచే ఇండెక్స్ చేయబడలేదు మరియు అవి చాలా తరచుగా కనుగొనబడలేదు అనే వాస్తవం ద్వారా దీనిని వివరించవచ్చు. కానీ ఒక్కో వ్యాసానికి సగటు రేటింగ్ తగ్గడం మరింత అపారమయినది. పాఠకులకు చాలా కథనాలను చూసే సమయం లేదు లేదా రేటింగ్‌లపై శ్రద్ధ చూపడం లేదని భావన. రచయిత రివార్డ్ ప్రోగ్రామ్ యొక్క కోణం నుండి, ఈ ధోరణి చాలా అసహ్యకరమైనది.

మార్గం ద్వారా, ఇది 2018లో జరగలేదు మరియు షెడ్యూల్ ఎక్కువ లేదా తక్కువ కూడా ఉంది.

హబ్రాస్టాటిస్టిక్స్: హబ్ర్ గీక్‌టైమ్స్ లేకుండా ఎలా జీవిస్తాడు

సాధారణంగా, వనరుల యజమానులు ఆలోచించాల్సిన అవసరం ఉంది.

కానీ విచారకరమైన విషయాల గురించి మాట్లాడకూడదు. సాధారణంగా, హబ్ర్ వేసవిని చాలా విజయవంతంగా మారుస్తుంది మరియు సైట్‌లోని కథనాల సంఖ్య తగ్గలేదని మేము చెప్పగలం.

రేటింగ్

ఇప్పుడు, నిజానికి, రేటింగ్. అందులో చేరిన వారికి అభినందనలు. రేటింగ్ అనధికారికంగా ఉందని, బహుశా నేను ఏదో కోల్పోయానని మీకు మరోసారి గుర్తు చేస్తాను మరియు కొన్ని కథనాలు ఖచ్చితంగా ఇక్కడ ఉండాలి, కానీ అది కాదు, వ్రాయండి, నేను దానిని మాన్యువల్‌గా జోడిస్తాను. రేటింగ్‌గా, నేను లెక్కించిన కొలమానాలను ఉపయోగిస్తాను, ఇది చాలా ఆసక్తికరంగా ఉందని నేను భావిస్తున్నాను.

వీక్షణల సంఖ్య ఆధారంగా అగ్ర కథనాలు

వీక్షణల నిష్పత్తికి రేటింగ్ ద్వారా అగ్ర కథనాలు

వీక్షణల నిష్పత్తికి వ్యాఖ్యల ద్వారా అగ్ర కథనాలు

అత్యంత వివాదాస్పద కథనాలు

రేటింగ్ ద్వారా అగ్ర కథనాలు

బుక్‌మార్క్‌ల సంఖ్య ఆధారంగా అగ్ర కథనాలు

వీక్షణలకు బుక్‌మార్క్‌ల నిష్పత్తిలో టాప్

వ్యాఖ్యల సంఖ్య ఆధారంగా అగ్ర కథనాలు

చివరకు, చివరిది అయిష్టాల సంఖ్య ఆధారంగా యాంటీటాప్

అయ్యో. నా దగ్గర మరికొన్ని ఆసక్తికరమైన ఎంపికలు ఉన్నాయి, కానీ నేను పాఠకులకు విసుగు తెప్పించను.

తీర్మానం

రేటింగ్‌ను నిర్మించేటప్పుడు, ఆసక్తికరంగా అనిపించిన రెండు పాయింట్‌లకు నేను శ్రద్ధ వహించాను.

ముందుగా, 60% అగ్రభాగాలు “గీక్‌టైమ్స్” కళా ప్రక్రియకు చెందిన కథనాలు. వచ్చే ఏడాది వాటిలో తక్కువగా ఉంటాయా మరియు బీర్, స్పేస్, మెడిసిన్ మొదలైన వాటి గురించి కథనాలు లేకుండా హబ్ర్ ఎలా ఉంటుందో నాకు తెలియదు. ఖచ్చితంగా, పాఠకులు ఏదో కోల్పోతారు. చూద్దాం.

రెండవది, అగ్ర బుక్‌మార్క్‌లు ఊహించని విధంగా అధిక నాణ్యతను కలిగి ఉన్నాయి. ఇది మానసికంగా అర్థం చేసుకోదగినది, అయితే పాఠకులు రేటింగ్‌పై శ్రద్ధ చూపకపోవచ్చు అవసరం, అది మీ బుక్‌మార్క్‌లకు జోడించబడుతుంది. మరియు ఇక్కడ ఉపయోగకరమైన మరియు తీవ్రమైన కథనాల యొక్క గొప్ప ఏకాగ్రత ఖచ్చితంగా ఉంది. సైట్ యజమానులు హాబ్రేలో ఈ నిర్దిష్ట కథనాలను ఇక్కడ పెంచాలనుకుంటే బుక్‌మార్క్‌ల సంఖ్య మరియు రివార్డ్ ప్రోగ్రామ్‌ల మధ్య కనెక్షన్ గురించి ఆలోచించాలని నేను భావిస్తున్నాను.

ఇలాంటిది ఏదైనా. ఇది సమాచారంగా ఉందని నేను ఆశిస్తున్నాను.

కథనాల జాబితా చాలా పొడవుగా ఉంది, ఇది బహుశా మంచిదే. అందరూ చదవడం ఆనందంగా ఉంది.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి