Habrastatistics: Habr geektimes کے بغیر کیسے رہتا ہے۔

ارے حبر۔

یہ مضمون درجہ بندی کا منطقی تسلسل ہے۔ 2018 کے لیے بہترین ہابر مضامین. اور اگرچہ سال ابھی ختم نہیں ہوا ہے، جیسا کہ آپ جانتے ہیں، گرمیوں میں قوانین میں تبدیلیاں ہوئیں، اس لیے یہ دیکھنا دلچسپ ہو گیا کہ آیا اس سے کچھ متاثر ہوا ہے۔

Habrastatistics: Habr geektimes کے بغیر کیسے رہتا ہے۔

اصل اعدادوشمار کے علاوہ، مضامین کی تازہ ترین درجہ بندی فراہم کی جائے گی، ساتھ ہی ان لوگوں کے لیے کچھ سورس کوڈ بھی فراہم کیے جائیں گے جو اس کے کام کرنے میں دلچسپی رکھتے ہیں۔

ان لوگوں کے لئے جو اس میں دلچسپی رکھتے ہیں کہ کیا ہوا، تسلسل کٹ کے نیچے ہے۔ وہ لوگ جو سائٹ کے حصوں کے مزید تفصیلی تجزیہ میں دلچسپی رکھتے ہیں وہ بھی دیکھ سکتے ہیں۔ اگلا حصہ.

ماخذ کا ڈیٹا

یہ درجہ بندی غیر سرکاری ہے، اور میرے پاس کوئی اندرونی معلومات نہیں ہے۔ جیسا کہ آپ اپنے براؤزر کے ایڈریس بار کو دیکھ کر آسانی سے دیکھ سکتے ہیں، Habré کے تمام مضامین میں مسلسل نمبر ہوتے ہیں۔ پھر یہ تکنیک کی بات ہے، ہم تمام مضامین کو ایک چکر میں لگاتار پڑھتے ہیں (ایک دھاگے میں اور وقفے کے ساتھ، تاکہ سرور لوڈ نہ ہو)۔ اقدار خود ازگر میں ایک سادہ تجزیہ کار کے ذریعہ حاصل کی گئیں (ذرائع دستیاب ہیں۔ یہاں) اور سی ایس وی فائل میں کچھ اس طرح محفوظ کیا گیا:

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

پروسیسنگ

تجزیہ کرنے کے لیے ہم Python، Pandas اور Matplotlib استعمال کریں گے۔ جو لوگ اعدادوشمار میں دلچسپی نہیں رکھتے وہ اس حصے کو چھوڑ کر براہ راست مضامین کی طرف جا سکتے ہیں۔

پہلے آپ کو ڈیٹاسیٹ کو میموری میں لوڈ کرنے اور مطلوبہ سال کے لیے ڈیٹا کو منتخب کرنے کی ضرورت ہے۔

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 میں Habré پر اشاعتوں کی تعداد کو دیکھتے ہیں۔

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

نتیجہ دلچسپ ہے۔ جیسا کہ آپ دیکھ سکتے ہیں، ہابر سال بھر میں تھوڑا سا "ساسیج" رہا ہے۔ مجھے وجہ نہیں معلوم۔

Habrastatistics: Habr geektimes کے بغیر کیسے رہتا ہے۔

مقابلے کے لیے، 2018 تھوڑا ہموار لگ رہا ہے:

Habrastatistics: Habr geektimes کے بغیر کیسے رہتا ہے۔

عام طور پر، میں نے گراف پر 2019 میں شائع شدہ مضامین کی تعداد میں کوئی زبردست کمی نہیں دیکھی۔ مزید برآں، اس کے برعکس، لگتا ہے کہ گرمیوں کے بعد اس میں قدرے اضافہ ہوا ہے۔

لیکن اگلے دو گراف مجھے کچھ اور افسردہ کرتے ہیں۔

فی مضمون ملاحظات کی اوسط تعداد:

Habrastatistics: Habr geektimes کے بغیر کیسے رہتا ہے۔

فی مضمون اوسط درجہ بندی:

Habrastatistics: Habr geektimes کے بغیر کیسے رہتا ہے۔

جیسا کہ آپ دیکھ سکتے ہیں، سال بھر میں ملاحظات کی اوسط تعداد میں قدرے کمی واقع ہوتی ہے۔ اس کی وضاحت اس حقیقت سے کی جا سکتی ہے کہ نئے مضامین کو ابھی تک سرچ انجنوں کے ذریعے انڈیکس نہیں کیا گیا ہے، اور وہ اتنی کثرت سے نہیں ملتے ہیں۔ لیکن فی مضمون اوسط درجہ بندی میں کمی زیادہ ناقابل فہم ہے۔ احساس یہ ہے کہ قارئین کے پاس یا تو اتنے مضامین کو دیکھنے کا وقت نہیں ہوتا یا پھر درجہ بندی پر توجہ نہیں دیتے۔ مصنف انعام پروگرام کے نقطہ نظر سے، یہ رجحان بہت ناخوشگوار ہے.

ویسے 2018 میں ایسا نہیں ہوا اور شیڈول بھی کم و بیش ہے۔

Habrastatistics: Habr geektimes کے بغیر کیسے رہتا ہے۔

عام طور پر، وسائل کے مالکان کے پاس سوچنے کے لیے کچھ ہے۔

لیکن آئیے افسوسناک چیزوں کے بارے میں بات نہیں کرتے ہیں۔ عام طور پر، ہم کہہ سکتے ہیں کہ Habr موسم گرما میں "بچ گیا" کافی کامیابی سے تبدیلیاں، اور سائٹ پر مضامین کی تعداد کم نہیں ہوئی.

درجہ بندی

اب، اصل میں، درجہ بندی. اس میں شامل ہونے والوں کو مبارک ہو۔ میں آپ کو ایک بار پھر یاد دلاتا ہوں کہ درجہ بندی غیر سرکاری ہے، ہوسکتا ہے کہ میں نے کچھ یاد کیا ہو، اور اگر کوئی مضمون یہاں ضرور ہونا چاہیے، لیکن ایسا نہیں ہے، لکھیں، میں اسے دستی طور پر شامل کروں گا۔ درجہ بندی کے طور پر، میں حسابی میٹرکس استعمال کرتا ہوں، جو میرے خیال میں کافی دلچسپ نکلا۔

ملاحظات کی تعداد کے لحاظ سے سرفہرست مضامین

درجہ بندی سے ملاحظات کے تناسب کے لحاظ سے سرفہرست مضامین

آراء کے تناسب سے تبصرے کے لحاظ سے سرفہرست مضامین

سرفہرست متنازعہ مضامین

درجہ بندی کے لحاظ سے سرفہرست مضامین

بک مارکس کی تعداد کے لحاظ سے سرفہرست مضامین

بک مارکس اور ملاحظات کے تناسب کے لحاظ سے اوپر

تبصروں کی تعداد کے لحاظ سے سرفہرست مضامین

اور آخر کار، آخری ناپسندیدگی کی تعداد کے لحاظ سے اینٹی ٹاپ

اوہ میرے پاس کچھ اور دلچسپ انتخاب ہیں، لیکن میں قارئین کو بور نہیں کروں گا۔

حاصل يہ ہوا

درجہ بندی کرتے وقت، میں نے دو نکات پر توجہ دی جو دلچسپ لگ رہے تھے۔

سب سے پہلے، 60% سب سے اوپر "geektimes" کی صنف کے مضامین ہیں۔ آیا اگلے سال ان میں سے کم ہوں گے، اور بیئر، اسپیس، ادویات وغیرہ کے مضامین کے بغیر حبر کیسا نظر آئے گا، مجھے نہیں معلوم۔ یقیناً قارئین کا کچھ نہ کچھ نقصان ہوگا۔ چلو دیکھتے ہیں.

دوم، سب سے اوپر بک مارکس غیر متوقع طور پر اعلیٰ معیار کے نکلے۔ یہ نفسیاتی طور پر قابل فہم ہے؛ قارئین شاید درجہ بندی پر توجہ نہ دیں، لیکن اگر مضمون ضرورت ہے، پھر اسے آپ کے بُک مارکس میں شامل کر دیا جائے گا۔ اور یہاں بالکل مفید اور سنجیدہ مضامین کا سب سے بڑا ارتکاز ہے۔ میرے خیال میں سائٹ کے مالکان کو کسی نہ کسی طرح بک مارکس کی تعداد اور انعامات کے پروگرام کے درمیان تعلق کے ذریعے سوچنا چاہیے اگر وہ یہاں Habré پر مضامین کے اس مخصوص زمرے کو بڑھانا چاہتے ہیں۔

کچھ اس طرح۔ مجھے امید ہے کہ یہ معلوماتی تھا۔

مضامین کی فہرست لمبی نکلی، ٹھیک ہے، یہ شاید بہتر کے لیے ہے۔ سب کو پڑھ کر خوشی ہوئی۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں