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

සැකසීම

විග්‍රහ කිරීම සඳහා අපි 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()

ප්රතිඵලය සිත්ගන්නා සුළුය. ඔබට පෙනෙන පරිදි, Habr වසර පුරාවටම කුඩා "සොසේජස්" වී ඇත. හේතුව මම දන්නේ නැහැ.

Habrastatistics: Habr geektimes නොමැතිව ජීවත් වන ආකාරය

සංසන්දනය කිරීම සඳහා, 2018 ටිකක් සුමට ලෙස පෙනේ:

Habrastatistics: Habr geektimes නොමැතිව ජීවත් වන ආකාරය

පොදුවේ ගත් කල, ප්‍රස්ථාරයේ 2019 දී ප්‍රකාශිත ලිපි සංඛ්‍යාවේ දැඩි අඩුවීමක් මා දුටුවේ නැත. එපමණක් නොව, ඊට පටහැනිව, ගිම්හානයේ සිට එය තරමක් වැඩි වී ඇති බව පෙනේ.

නමුත් ඊළඟ ප්‍රස්ථාර දෙක මාව තව ටිකක් මානසික අවපීඩනයට පත් කරයි.

ලිපියකට නැරඹුම් සාමාන්‍ය සංඛ්‍යාව:

Habrastatistics: Habr geektimes නොමැතිව ජීවත් වන ආකාරය

ලිපියකට සාමාන්‍ය ඇගයීම:

Habrastatistics: Habr geektimes නොමැතිව ජීවත් වන ආකාරය

ඔබට පෙනෙන පරිදි, වසර පුරා සාමාන්‍ය නැරඹුම් සංඛ්‍යාව තරමක් අඩු වේ. නව ලිපි තවමත් සෙවුම් යන්ත්‍ර මගින් සුචිගත කර නොමැති අතර ඒවා බොහෝ විට සොයා නොගැනීමෙන් මෙය පැහැදිලි කළ හැකිය. නමුත් එක් ලිපියක් සඳහා සාමාන්‍ය ශ්‍රේණිගත කිරීම පහත වැටීම වඩා තේරුම්ගත නොහැකි ය. හැඟීම නම් එක්කෝ පාඨකයන්ට බොහෝ ලිපි දෙස බැලීමට කාලය නොමැති බව හෝ ශ්‍රේණිගත කිරීම් කෙරෙහි අවධානය යොමු නොකිරීමයි. කර්තෘ විපාක වැඩසටහනේ දෘෂ්ටි කෝණයෙන්, මෙම ප්රවණතාවය ඉතා අප්රසන්නය.

මාර්ගය වන විට, මෙය 2018 දී සිදු නොවූ අතර, කාලසටහන වැඩි හෝ අඩු වේ.

Habrastatistics: Habr geektimes නොමැතිව ජීවත් වන ආකාරය

පොදුවේ, සම්පත් හිමිකරුවන්ට සිතීමට යමක් තිබේ.

ඒත් දුක හිතෙන දේවල් කතා නොකර ඉමු. පොදුවේ ගත් කල, අපට පැවසිය හැක්කේ Habr ගිම්හානය තරමක් සාර්ථක ලෙස වෙනස් වන අතර, වෙබ් අඩවියේ ලිපි ගණන අඩු නොවූ බවයි.

ශ්රේණිගත කිරීම

දැන්, ඇත්ත වශයෙන්ම, ශ්රේණිගත කිරීම. එයට සම්බන්ධ වූ අයට සුබ පැතුම්. ශ්‍රේණිගත කිරීම නිල නොවන බව මම ඔබට නැවත වරක් මතක් කරමි, සමහර විට මට යමක් මග හැරී ඇත, සමහර ලිපිය අනිවාර්යයෙන්ම මෙහි තිබිය යුතුය, නමුත් එය නොවේ, ලියන්න, මම එය අතින් එකතු කරමි. ශ්‍රේණිගත කිරීමක් ලෙස, මම ගණනය කළ ප්‍රමිතික භාවිතා කරමි, එය තරමක් සිත්ගන්නා සුළු විය.

බැලීම් ගණන අනුව ඉහළම ලිපි

නැරඹුම් අනුපාතයට ශ්‍රේණිගත කිරීම අනුව ඉහළම ලිපි

අදහස් සහ බැලීම් අනුපාතය අනුව ඉහළම ලිපි

ඉහළම මතභේදාත්මක ලිපි

ශ්‍රේණිගත කිරීම අනුව ඉහළම ලිපි

පිටුසන් ගණන අනුව ඉහළම ලිපි

පිටු සලකුණු සහ බැලීම් අනුපාතය අනුව ඉහළට

අදහස් ගණන අනුව ඉහළම ලිපි

අවසාන වශයෙන්, අවසාන එක අකමැති ගණන අනුව ඇන්ටිටොප්

අහ්. මට තවත් රසවත් තේරීම් කිහිපයක් ඇත, නමුත් මම පාඨකයන්ට කම්මැලි නොවනු ඇත.

නිගමනය

ශ්‍රේණිගත කිරීම ගොඩනඟන විට, මම සිත්ගන්නා සුළු කරුණු දෙකක් කෙරෙහි අවධානය යොමු කළෙමි.

පළමුව, ඉහලින් 60% "geektimes" ප්‍රභේදයේ ලිපි වේ. ලබන වසරේ ඒවායින් අඩු සංඛ්‍යාවක් තිබේද යන්න සහ බියර්, අභ්‍යවකාශය, බෙහෙත් ආදිය පිළිබඳ ලිපි නොමැතිව හබ්ර් කෙබඳු වනු ඇත්ද යන්න මම නොදනිමි. නිසැකවම, පාඨකයන්ට යමක් අහිමි වනු ඇත. අපි බලමු.

දෙවනුව, ඉහළ පිටු සලකුණු අනපේක්ෂිත ලෙස උසස් තත්ත්වයේ බවට පත් විය. මෙය මනෝවිද්‍යාත්මකව තේරුම් ගත හැකි ය; පාඨකයින් ශ්‍රේණිගත කිරීම කෙරෙහි අවධානය යොමු නොකරනු ඇත, නමුත් ලිපිය නම් අවශ්‍යතාවය, එවිට එය ඔබගේ පිටු සලකුණු වලට එකතු වේ. ප්‍රයෝජනවත් සහ බැරෑරුම් ලිපිවල විශාලතම සාන්ද්‍රණය මෙන්න. හබ්රේ හි මෙම විශේෂිත ලිපි කාණ්ඩය වැඩි කිරීමට අවශ්‍ය නම්, අඩවි හිමිකරුවන් පිටු සලකුණු ගණන සහ ත්‍යාග වැඩසටහන අතර සම්බන්ධය කෙසේ හෝ සිතා බැලිය යුතු යැයි මම සිතමි.

මේ වගේ දෙයක්. මම බලාපොරොත්තු වෙනවා එය තොරතුරු සහිත විය.

ලිපි ලැයිස්තුව දිගු විය, හොඳයි, එය බොහෝ විට වඩා හොඳ සඳහා විය හැකිය. හැමෝම සතුටින් කියෙව්වා.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න