Habrastatistics: ڪيئن Habr geektimes کان سواء رهن ٿا

هي حبر.

هي آرٽيڪل ريٽنگ جو منطقي تسلسل آهي 2018 لاءِ بهترين Habr آرٽيڪل. ۽ جيتوڻيڪ سال اڃا ختم نه ٿيو آهي، جيئن توهان ڄاڻو ٿا، اونهاري ۾ ضابطن ۾ تبديليون هيون، ان جي مطابق، اهو ڏسڻ لاء دلچسپ ٿي ويو ته ڇا اهو ڪجهه متاثر ٿيو.

Habrastatistics: ڪيئن Habr geektimes کان سواء رهن ٿا

اصل انگن اکرن کان علاوه، آرٽيڪلز جي هڪ تازه ڪاري درجه بندي مهيا ڪئي ويندي، انهي سان گڏ ڪجهه سورس ڪوڊ انهن لاءِ جيڪي دلچسپي رکن ٿا ته اهو ڪيئن ڪم ڪري ٿو.

انهن لاء جيڪي دلچسپي وٺندا آهن ڇا ٿيو، تسلسل کٽ هيٺ آهي. جيڪي دلچسپي رکن ٿا وڌيڪ تفصيلي تجزيو سائيٽ جي حصن جي پڻ ڏسي سگهن ٿا ايندڙ حصو.

شروعاتي ڊيٽا

هي درجه بندي غير رسمي آهي، ۽ مون وٽ ڪا به اندروني ڄاڻ ناهي. جيئن توهان آساني سان ڏسي سگهو ٿا توهان جي برائوزر جي ايڊريس بار کي ڏسي، 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

پروسيسنگ

parsing لاءِ اسان 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 کان سواء رهن ٿا

عام طور تي، وسيلن جي مالڪن کي سوچڻ لاء ڪجهه آهي.

پر اچو ته اداس شين جي باري ۾ نه ڳالهايون. عام طور تي، اسان اهو چئي سگهون ٿا ته حبر "بچايو" اونهاري ۾ ڪاميابي سان تبديل ٿي وئي، ۽ سائيٽ تي آرٽيڪل جو تعداد گهٽ نه ٿيو.

درجه بندي

هاڻي، اصل ۾، درجه بندي. انهن کي مبارڪون جيڪي ان ۾ داخل ٿيا. اچو ته مان توهان کي هڪ ڀيرو ٻيهر ياد ڏياريان ته درجه بندي غير سرڪاري آهي، ٿي سگهي ٿو مون کي ڪجهه ياد اچي، ۽ جيڪڏهن ڪجهه مضمون ضرور هتي هجڻ گهرجي، پر اهو ناهي، لکو، مان ان کي دستي طور شامل ڪندس. هڪ درجه بندي جي طور تي، مان حساب ڪيل ميٽرڪ استعمال ڪريان ٿو، جيڪو منهنجي خيال ۾ ڪافي دلچسپ نڪتو.

نظرن جي تعداد جي لحاظ کان مٿيون مضمون

ڏات جي تناسب جي لحاظ کان مٿيون مضمون

تبصرن جي لحاظ کان مٿيون مضمون ڏسڻ جي تناسب سان

سڀ کان وڌيڪ تڪراري مضمون

درجه بندي جي لحاظ کان مٿيون مضمون

بک مارڪس جي تعداد جي لحاظ کان مٿيون مضمون

بک مارڪس جي نظرن جي نسبت سان مٿي

تبصرن جي تعداد جي لحاظ کان مٿيون مضمون

۽ آخرڪار، آخري ناپسنديده تعداد جي لحاظ کان اينٽي ٽاپ

اوڇ. مون وٽ ڪجهه وڌيڪ دلچسپ چونڊون آهن، پر مان پڙهندڙن کي بور نه ڪندس.

ٿڪل

جڏهن درجه بندي ٺاهي، مون ٻن نقطن تي ڌيان ڏنو جيڪي دلچسپ لڳي رهيا هئا.

پهريون، 60 سيڪڙو مٿيون مضمون ”جيڪ ٽائمز“ صنف جا آهن. ڇا ايندڙ سال انهن مان گهٽ هوندا، ۽ بيئر، اسپيس، دوائن وغيره جي مضمونن کان سواءِ هيبر ڪهڙو نظر ايندو، مون کي خبر ناهي. يقينن، پڙهندڙن کي ڪجهه وڃائي ڇڏيندو. اچو ته ڏسون.

ٻيو، مٿين بک مارڪس غير متوقع طور تي اعلي معيار جا ٿي ويا. اهو نفسياتي طور تي سمجھڻ وارو آهي؛ پڙهندڙن کي شايد درجه بندي تي ڌيان نه ڏيو، پر جيڪڏهن مضمون گهربل، پوءِ اھو توھان جي بک مارڪس ۾ شامل ڪيو ويندو. ۽ هتي ئي مفيد ۽ سنجيده مضمونن جو تمام وڏو مرڪز آهي. منهنجو خيال آهي ته سائيٽ جي مالڪن کي ڪنهن نه ڪنهن طريقي سان بک مارڪس جي تعداد ۽ انعام پروگرام جي وچ ۾ رابطي ذريعي سوچڻ گهرجي جيڪڏهن اهي هتي Habré تي مضمونن جي هن خاص قسم کي وڌائڻ چاهيندا.

ڪجهه هن طرح. مون کي اميد آهي ته اها معلوماتي هئي.

مضمونن جي فهرست ڊگھي ٿي وئي، چڱو، اھو شايد بھتر لاءِ آھي. هرڪو پڙهڻ خوش ٿيو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو