څنګه ما حبر تجزیه کړ، 1 برخه: رجحانات

کله چې د نوي کال اولیور پای ته ورسید، ما د کولو لپاره هیڅ نه درلود، او ما پریکړه وکړه چې د حبرهبر (او اړونده پلیټ فارمونو) څخه زما کمپیوټر ته ټولې مقالې ډاونلوډ او سپړم.

څو په زړه پورې کیسې وې. د دوی لومړی د سایټ د شتون د 12 کلونو په اوږدو کې د مقالو فورمو او موضوعاتو پراختیا ده. د بیلګې په توګه، د ځینو موضوعاتو متحرکات خورا څرګند دي. دوام - د کټ لاندې.

څنګه ما حبر تجزیه کړ، 1 برخه: رجحانات

د تحلیل پروسه

د دې لپاره چې پوه شي چې هابر څنګه وده کړې، دا اړینه وه چې د هغه ټولو مقالو ته لاړ شئ او له دوی څخه میټا معلومات راوباسئ (د بیلګې په توګه، نیټې). بای پاس اسانه و، ځکه چې د ټولو مقالو لینکونه د "habrahabr.ru/post/337722/" په څیر ښکاري، او شمیرې په کلکه ترتیب شوي. په دې پوهیدل چې وروستی پوسټ د 350 زرو څخه لږ څه لږ شمیر لري، زه یوازې په لوپ کې د ټولو ممکنه اسنادو ID ته لاړم (Python code):

import numpy as np
from multiprocessing import Pool
with Pool(100) as p:
    docs = p.map(download_document, np.arange(350000))

دنده download_document هڅه کوي چې پاڼه د اړونده id سره پورته کړي او هڅه کوي د html جوړښت څخه معنی لرونکي معلومات راوباسي.

import requests
from bs4 import BeautifulSoup

def download_document(pid):
    """ Download and process a Habr document and its comments """
    # выгрузка документа
    r = requests.get('https://habrahabr.ru/post/' +str(pid) + '/')
    # парсинг документа
    soup = BeautifulSoup(r.text, 'html5lib') # instead of html.parser
    doc = {}
    doc['id'] = pid
    if not soup.find("span", {"class": "post__title-text"}):
        # такое бывает, если статья не существовала или удалена
        doc['status'] = 'title_not_found'
    else:
        doc['status'] = 'ok'
        doc['title'] = soup.find("span", {"class": "post__title-text"}).text
        doc['text'] = soup.find("div", {"class": "post__text"}).text
        doc['time'] = soup.find("span", {"class": "post__time"}).text
        # create other fields: hubs, tags, views, comments, votes, etc.
        # ...
    # сохранение результата в отдельный файл
    fname = r'files/' + str(pid) + '.pkl'
    with open(fname, 'wb') as f:
        pickle.dump(doc, f)

د تحلیل کولو په بهیر کې، ما ډیری نوي شیان وموندل.

لومړی، دوی وايي چې په پروسیسر کې د کورونو په پرتله ډیر پروسې رامینځته کول بې ګټې دي. مګر زما په قضیه کې، دا معلومه شوه چې محدوده سرچینه پروسیسر نه ده، مګر شبکه، او 100 پروسې د 4 یا 20 څخه ګړندي کار کوي.

دوهم، په ځینو پوسټونو کې د ځانګړو حروفونو ترکیبونه وو - د بیلګې په توګه، د "%&#@" په څیر خوشالۍ. دا معلومه شوه چې html.parser، کوم چې ما لومړی کارولی ، ترکیب ته عکس العمل ښیې &# په دردناکه توګه، دا د html وجود پیل په پام کې نیولو سره. زه دمخه تور جادو کولو ته ځم ، مګر فورم وړاندیز وکړ چې تاسو یوازې پارسر بدلولی شئ.

دریم، ما اداره کوله چې ټولې خپرونې پورته کړم، پرته له دریو څخه. د 65927، 162075، او 275987 شمیرې اسناد زما د انټي ویروس لخوا سمدلاسه حذف شوي. دا په ترتیب سره د جاوا سکریپټ سلسلې په اړه مقالې دي چې ناوړه pdf ډاونلوډ کوي ، د براوزر پلگ انونو سیټ په توګه د SMS ransomware ډاونلوډ کوي ، او د CrashSafari.com سایټ چې آی فونونه ریبوټ ته لیږي. انټي ویروس وروسته بله مقاله وموندله ، د سیسټم سکین په جریان کې: د پالتو پلورنځي ویب پا onه کې د سکریپټونو په اړه 338586 پوسټ کړئ چې د کارونکي پروسیسر د کریپټو کرنسی ماین لپاره کاروي. نو موږ کولی شو په پام کې ونیسو چې د انټي ویروس کار خورا کافي دی.

"ژوندی" مقالې د احتمالي اعظمي حد یوازې نیمایي - 166307 ټوټې وې. د پاتې نورو په اړه، هابر اختیارونه ورکوي "پاڼه زوړ شوی، حذف شوی یا هیڅ شتون نلري." ښه، هر څه پیښ کیدی شي.

د مقالو پورته کول د تخنیکي کار لخوا تعقیب شوي: د بیلګې په توګه، د خپرولو نیټه باید د "21 دسمبر 2006 د سهار په 10:47 بجو" معیار ته بدله شي. datetime، او "12,8k" لیدونه - په 12800 کې. په دې مرحله کې یو څو نورې پیښې راوتلې. تر ټولو په زړه پورې یو چې باید د رایو شمیرنې او د معلوماتو ډولونو سره ترسره شي: ځینې زاړه پوسټونه په بشپړ ډول ډیر روان وو او هر یو یې 65535 رایې ترلاسه کړې.

څنګه ما حبر تجزیه کړ، 1 برخه: رجحانات

د پایلې په توګه، د مقالو متنونه (پرته له انځورونو) ما 1.5 ګیګابایټ واخیست، د میټا معلوماتو سره تبصرې - بل 3، او شاوخوا سل میګابایټ - د مقالو په اړه میټا معلومات. دا په بشپړ ډول په رام کې ساتل کیدی شي، کوم چې زما لپاره یو خوندور حیرانتیا وه.

ما د مقالو تحلیل پخپله له متنونو نه پیل کړ ، مګر د میټا معلوماتو څخه: نیټې ، ټاګونه ، مرکزونه ، لیدونه او خوښونه. دا معلومه شوه چې هغه کولی شي ډیر څه ووایی.

د هابرابر پرمختیا رجحانات

په سایټ کې مقالې د 2006 راهیسې خپرې شوي؛ په ډیر شدت سره - په 2008-2016 کې.

څنګه ما حبر تجزیه کړ، 1 برخه: رجحانات

دا مقالې په بیلابیلو وختونو کې څومره په فعاله توګه لوستل شوي ارزول دومره اسانه ندي. د 2012 او کوچنیو متنونو ډیر نظرونه او درجه بندي ترلاسه کړي، مګر نوي متنونه ډیر لیدونه او بک مارکونه لري. دا میټریک یوازې یو ځل په 2015 کې ورته چلند (نیمګړی) کړ. شاید، د اقتصادي او سیاسي بحران په حالت کې، د لوستونکو پام د آی ټي بلاګونو څخه ډیرو دردناکو مسلو ته اړولی وي.

څنګه ما حبر تجزیه کړ، 1 برخه: رجحانات

پخپله د مقالو سربیره ، ما دوی ته نور نظرونه ډاونلوډ کړل. 6 ملیونه تبصرې وې، په هرصورت، 240 زره یې منع شوي وو ("یو UFO الوتنه وکړه او دا لیکنه یې دلته خپره کړه"). د تبصرو ګټور ملکیت دا دی چې دوی د وخت ټاپه لري. د تبصرو د وخت په مطالعه کولو سره، تاسو کولی شئ په سمه توګه پوه شئ کله چې مقالې لوستل کیږي.

دا معلومه شوه چې ډیری مقالې د سهار له 10 بجو څخه د ماښام تر 20 بجو پورې لیکل شوي او تبصره کیږي. په مسکو کې په عادي کاري ورځ کې. دا ممکن پدې معنی وي چې حبر د مسلکي موخو لپاره لوستل کیږي، او دا په کار کې د ځنډولو لپاره یوه ښه لار ده. په هرصورت، د ورځې دا ویش د حبر له بنسټ څخه تر نن ورځې پورې ثابت دی.

څنګه ما حبر تجزیه کړ، 1 برخه: رجحانات

په هرصورت، د تبصرې مهال ویش اصلي ګټه د ورځې وخت نه دی، مګر د مقالې د "فعال ژوند" موده ده. ما محاسبه کړه چې د مقالې له خپرولو څخه د هغې تبصرې ته وخت څنګه ویشل کیږي. دا معلومه شوه چې اوس منځنۍ تبصره (شنه کرښه) په شاوخوا 20 ساعتونو کې راځي، i.e. د خپرونې وروسته په لومړۍ ورځ، په اوسط ډول، د مقالې په اړه د ټولو نظرونو نیمایي څخه لږ پاتې دي. او په دوو ورځو کې دوی د ټولو تبصرو 75٪ پریږدي. په ورته وخت کې، پخوانۍ مقالې حتی په چټکۍ سره لوستل شوي - د بیلګې په توګه، په 2010 کې، نیمایي تبصرې په لومړیو 6 ساعتونو کې راغلې.

څنګه ما حبر تجزیه کړ، 1 برخه: رجحانات

دا زما لپاره د حیرانتیا په توګه راغله چې نظرونه اوږد شوي: په تبصره کې د حروفونو اوسط شمیر د حبر په ژوند کې نږدې دوه چنده شوی!

څنګه ما حبر تجزیه کړ، 1 برخه: رجحانات

د نظرونو په پرتله اسانه فیډبیک رایې دي. د ډیری نورو سرچینو برخلاف ، په هابری کې تاسو کولی شئ نه یوازې پلسونه ، بلکه منفي هم واچوئ. په هرصورت، لوستونکي د وروستي فرصت څخه ډیری وختونه نه کاروي: د ناخوښۍ اوسنی برخه د ټولو رایو شاوخوا 15٪ ده. پخوا به ډیر څه وو، مګر د وخت په تیریدو سره، لوستونکي مهربان شوي.

څنګه ما حبر تجزیه کړ، 1 برخه: رجحانات

متنونه پخپله د وخت په تیریدو سره بدل شوي. د مثال په توګه، د متن معمول اوږدوالی د بحرانونو سره سره، د سایټ له پیل څخه په ثابت ډول وده نه کوي. په یوه لسیزه کې، متنونه نږدې لس ځله اوږد شوي!

څنګه ما حبر تجزیه کړ، 1 برخه: رجحانات

د متنونو سټایل (لومړی اټکل ته) هم بدل شو. د هبر د وجود په لومړیو کلونو کې، د بیلګې په توګه، په متنونو کې د کوډ او شمیرو ونډه زیاته شوه:

څنګه ما حبر تجزیه کړ، 1 برخه: رجحانات

د سایټ د عمومي متحرکاتو د پوهیدو وروسته، ما پریکړه وکړه چې دا اندازه کړم چې څنګه د مختلفو موضوعاتو شهرت بدل شو. موضوعات په اوتومات ډول د متنونو څخه غوره کیدی شي ، مګر د پیل کونکو لپاره ، تاسو نشئ کولی څرخ له سره رامینځته کړئ ، مګر د هرې مقالې لیکوالانو لخوا ټاکل شوي چمتو شوي ټاګونه وکاروئ. ما په چارټ کې څلور عام تمایلونه رسم کړي دي. د "ګوګل" موضوع په پیل کې تسلط لري (شاید په عمده توګه د SEO له امله)، مګر د کلونو په اوږدو کې وزن له لاسه ورکوي. جاواسکریپټ یوه مشهوره موضوع وه او ورو ورو وده کوي، مګر د ماشین زده کړه یوازې په وروستیو کلونو کې په چټکۍ سره د شهرت ترلاسه کولو لپاره پیل شوې. لینوکس، له بلې خوا، د لسیزې په اوږدو کې په مساوي توګه اړوند پاتې دی.

څنګه ما حبر تجزیه کړ، 1 برخه: رجحانات

البته، زه د دې سره علاقه لرم چې کوم موضوعات د لوستونکي فعالیت جذبوي. ما په هره موضوع کې د نظرونو، رایو او نظرونو منځنۍ شمیره محاسبه کړه. دلته هغه څه دي چې پیښ شوي:

  • ډیری لیدل شوي موضوعات: arduino، ویب ډیزاین، ویب پراختیا، هضم، لینکونه، css، html، html5، nginx، الګوریتم.
  • ترټولو "خوښه شوي" موضوعات: vkontakte، humor، jquery، opera، c، html، ویب پرمختیا، html5، css، ویب ډیزاین.
  • تر ټولو ډیر بحث شوي موضوعات: اوپرا، سکایپ، فری لانس، vkontakte، اوبنټو، کار، نوکیا، نګینکس، arduino، Firefox.

په هرصورت، څنګه چې زه موضوعات پرتله کوم، تاسو کولی شئ دوی د فریکونسۍ له مخې درجه بندي کړئ (او پایلې یې پرتله کړئ د 2013 څخه ورته مقاله).

  • د هبر د موجودیت د ټولو کلونو لپاره، خورا مشهور ټاګونه (په نزولي ترتیب کې) دي ګوګل، انډرایډ، جاوا سکریپټ، مایکروسافټ، لینکس، پی ایچ پی، ایپل، جاوا، پیتون، برنامه، پیل، پراختیا، iOS، پیل، ټولنیز شبکې
  • په 2017 کې، ترټولو مشهور جاوا سکریپټ، پیتون، جاوا، انډرایډ، پراختیا، لینکس، c++، پروګرامینګ، php، c#، ios، ماشین زده کړه، د معلوماتو امنیت، مایکروسافټ، غبرګون و.

کله چې دا درجه بندي پرتله کول، یو څوک کولی شي پام وکړي، د بیلګې په توګه، د پایتون بریالۍ مارچ او د پی ایچ پی له منځه تللو، یا د پیل موضوعاتو "لمر غروب" او د ماشین زده کړې وده.

په Habré کې ټول ټګونه دومره روښانه موضوعي رنګ نلري. د مثال په توګه، دلته یو درجن ټګونه دي چې یوازې یو ځل لیدل شوي، مګر یوازې زما لپاره مسخره ښکاري. نو: "نظریه د پرمختګ محرک ځواک دی"، "د فلاپي عکس څخه بوټ"، "ایووا ایالت"، "ډرامه"، "سوپرالیش"، "بھاپ انجن"، "د شنبې په ورځ د کولو لپاره شیان"، "زه لرم. د غوښې په پیسه کې ګیدړ"، "د تل په څیر وګرځید"، "موږ نشو کولی د مسخره ټاګونو سره راشي". د دې ډول مقالو موضوع ټاکلو لپاره، ټاګونه کافي ندي - تاسو باید د مقالو متنونو کې موضوعي ماډلینګ ترسره کړئ.

د مقالو د محتوياتو نور تفصيلي تحلیل به په راتلونکي پوسټ کې وي. لومړی، زه به یو ماډل جوړ کړم چې د هغې د منځپانګې پر بنسټ د یوې مقالې لپاره د مخ لیدونو شمیر اټکل کوي. دوهم، زه غواړم عصبي شبکې ته درس ورکړم چې متنونه په ورته سټایل کې د حبر لیکوالانو په څیر رامینځته کړي. نو ګډون وکړئ 🙂

PS او دلته بیپ دی ډیټاسیټ.

سرچینه: www.habr.com

Add a comment