Habrastatistics: pagsusuri ng mga komento ng mambabasa

Hello Habr. SA naunang bahagi Ang katanyagan ng iba't ibang mga seksyon ng site ay nasuri, at sa parehong oras lumitaw ang tanong - anong data ang maaaring makuha mula sa mga komento sa mga artikulo. Nais ko ring subukan ang isang hypothesis, na tatalakayin ko sa ibaba.
Habrastatistics: pagsusuri ng mga komento ng mambabasa

Ang data ay naging medyo kawili-wili, at nakapag-compile din kami ng isang maliit na "mini-rating" ng mga komentarista. Nagpatuloy sa ilalim ng hiwa.

Pagkolekta ng data

Para sa pagsusuri, gagamitin namin ang data para sa taong ito, 2019, lalo na't nakatanggap na ako ng listahan ng mga artikulo sa csv form. Ang natitira na lang ay kunin ang mga komento mula sa bawat artikulo sa kabutihang-palad para sa amin, sila ay naka-imbak doon, at walang karagdagang mga kahilingan na kailangang gawin.

Upang i-highlight ang mga komento mula sa isang artikulo, ang sumusunod na code ay sapat na:

r = requests.get("https://habr.com/ru/post/467453/")
data_html = r.text
comments = data_html.split('<div class="comment" id=')

comments_list = []
for comment in comments:
    body = Str(comment).find_between('<div class="comment__message', '<div class="comment__footer"').find_between('>', '</div>')# .replace('n', '-')
    if len(body) < 4: continue

    body = body.translate(str.maketrans(dict.fromkeys("tnrvf")))
    body = body.replace('"', "'").replace(',', " ").replace('<br>', ' ').replace('<p>', '').replace('</p>', '').replace('  ', ' ')

    user = Str(comment).find_between('data-user-login', '>').find_between('"', '"')
    date_str = Str(comment).find_between('<time class="comment__date-time comment__date-time_published', 'time>').find_between('>', '<')
    vote = Str(comment).find_between('<div class="voting-wjt', '</div>').find_between('<span', 'span>').find_between('>', '<')
    date = dateparser.parse(date_str)

    csv_data = "{},{},{},{}".format(user, date, vote, body)
    comments_list.append(csv_data)

Nagbibigay-daan ito sa amin na makakuha ng listahan ng mga komentong ganito ang hitsura (naalis ang mga palayaw para sa mga dahilan ng privacy):

xxxxxxx,2019-02-06 11:50:00,0,А ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ?
xxxxxxx-02-24 16:15:00,+1,ПобольшС Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ нСзависимыС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ источники Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΊΠΈΡ… вопросов Π½Π΅ Π±Ρ‹Π»ΠΎ.
xxxxxxx,2019-02-23 20:15:00,–5,А Π½Π΅ Π²Π°ΠΆΠ½ΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π² плюсС ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ

Tulad ng nakikita mo, para sa bawat komento maaari naming makuha ang user name, petsa, rating, at ang aktwal na teksto. Tingnan natin kung ano ang makukuha natin dito.

Sa pamamagitan ng paraan, sa una, ang ideya ng pagkolekta ng mga rating ay medyo naiiba - upang makita kung ano ang mga rating na ibinibigay ng mga gumagamit. Halimbawa, maaari kang tumingin sa YouTube - kahit na ang pinaka-perpektong video, kahit na isang video na hindi naglalaman ng anumang pansariling impormasyon, para lamang sa sanggunian o isang paglabas ng balita, ay nakakakuha pa rin ng isang tiyak na bilang ng mga minus. Ang hypothesis ay mayroong mga gumagamit na, puro klinikal, ay hindi gusto ang lahat, marahil ang serotonin ay hindi ginawa sa utak o iba pa. Marahil ang isang tao ay hindi na kailangang umupo sa HabrΓ©, ngunit upang gamutin ang depresyon... Ngunit sa nangyari, hindi ko ito masuri dito, dahil... hindi naka-save sa comment o article ang listahan ng mga nagbigay ng ratings. Well, iyon ay, gagana kami sa magagamit na data. Ang resulta ay isang "reverse" na rating - makikita mo kung anong mga rating ang _natatanggap_ ng mga user. Na, sa prinsipyo, ay kawili-wili din.

Pagproseso

Upang magsimula sa, isang tradisyonal na disclaimer. Ang rating na ito, tulad ng lahat ng nauna, ay hindi opisyal. Hindi ko ginagarantiya na hindi ako nagkamali kahit saan. Para sa mga interesado sa mga teknikal na detalye, mas detalyadong code ang ibinigay sa naunang bahagi.

Kaya simulan na natin. Ang mga komento para sa taong ito, 2019 (na hindi pa tapos), ay kinuha para sa pagsusuri. Sa oras ng pagsulat, sumulat ang mga gumagamit 448533 коммСнтария, ang laki ng csv file ay 288MB. Makapangyarihan, kahanga-hanga.

Panahon ng pagsulat

Igrupo natin ang mga komento ayon sa oras, hatiin nang hiwalay ang mga karaniwang araw at katapusan ng linggo.

Habrastatistics: pagsusuri ng mga komento ng mambabasa

Dito hindi kami interesado sa mga ganap na halaga, ngunit sa mga kamag-anak. Kung titingnan mo lang ito "as it is", then it turns out thatΠΎKaramihan sa mga komento ay nakasulat sa oras ng trabaho mula 10 hanggang 18 πŸ˜‰ Sa kabilang banda, ang mga time zone ay hindi isinasaalang-alang dito, kaya ang tanong ay bukas pa rin.

Tingnan natin ang pamamahagi ng mga komento sa buong taon:

Habrastatistics: pagsusuri ng mga komento ng mambabasa

At gayon pa man ito ay umiikot; malinaw na nakikita ang isang surge sa mga karaniwang araw - ang lingguhang periodicity ay malinaw na nakikita, kaya masasabi natin nang may mataas na kumpiyansa na ang mga tao ay nagbabasa at nagkokomento sa Habr mula sa trabaho (ngunit hindi ito tiyak).

Sa pamamagitan ng paraan, mayroong isang ideya na subukan ang hypothesis kung ang bilang ng mga minus o plus na natanggap ay naiiba mula sa araw o oras ng araw, ngunit hindi posible na makahanap ng isang relasyon - ang oras na ibinigay ang rating ay hindi nai-save, at walang direktang koneksyon sa oras ng komento.

Mga gumagamit

Siyempre, hindi ko alam ang eksaktong bilang ng mga gumagamit sa site. Ngunit ang mga nag-iwan ng hindi bababa sa isang komento sa taong ito ay naging humigit-kumulang 25000 mga tao.

Ang graph ng bilang ng mga mensaheng iniwan ng mga user ay mukhang medyo kawili-wili:

Habrastatistics: pagsusuri ng mga komento ng mambabasa

Sa una ay hindi ako naniniwala sa aking sarili, ngunit tila walang pagkakamali. 5% ng mga user ang nag-iiwan ng 60% ng mga mensahe. 10% - 74% ng lahat ng mga mensahe (kung saan, hayaan mong ipaalala ko sa iyo, sa taong ito, 450 libo). Ang karamihan ay nagbabasa lamang ng site, nag-iiwan ng mga komento na napakabihirang, o hindi iniiwan ang mga ito sa lahat (mga, natural, ay hindi kasama sa aking listahan).

Rating

Lumipat tayo sa huli at pinakanakakatuwang bahagi ng mga istatistika - mga rating. Para sa mga kadahilanan ng pagkapribado, hindi ko ibibigay ang buong palayaw ng mga gumagamit, kung sino ang nais, sa palagay ko, ay makikilala ang kanilang sarili.

Sa bilang ng mga komento para sa taong ito, ang nangungunang 5 ay inookupahan ng VoXXXX (3377 komento), 0xdXXXXX (3286 komento), strXXXX (3043 komento), AmXXXX (2897 komento) at khXXXX (2748 komento).

Sa bilang ng mga benepisyong natanggap, ang nangungunang 5 ay inookupahan ng amXXXX (1395 komento, rating +3231/-309), tvXXXX (1544 komento, rating +3231/-97), WhuXXXX (921 komento, rating +2288/-13), MTXXXX (1328 komento, +1383 /-7) at amaXXXX (736 komento, rating +1340/-16).

Sa ganap na positibong rating (walang sinuman negatibong na-rate na komento) ang tuktok ng tuktok ay inookupahan ng Milfgard ΠΈ Boomburum. Bilang isang pagbubukod, ipinakita ko ang kanilang mga palayaw nang buo, sa palagay ko ay karapat-dapat sila.

Ang mga downsides ay kawili-wili din. Top by bilang ng mga minus na nakolekta para sa taong ito ay inookupahan sila ng siXX (473 plus, 699 minus), khXX (1915 plus, 573 minus) at nicXXXX (456 plus, 487 minus). Ngunit tulad ng nakikita mo, ang mga gumagamit na ito ay may sapat na positibong komento. Ngunit ayon sa ganap na minus Kasama sa antitopic ang vladXXXX (55 komento, 84 minus, 0 plus), ekoXXXX (77 komento, 92 minus, 1 plus) at iMXXXX (225 komento, 205 minus, 12 plus).

Konklusyon

Hindi ko nakalkula ang lahat ng binalak, ngunit umaasa ako na ito ay kawili-wili.

Tulad ng nakikita mo, kahit na ang isang dataset na may kaunting bilang ng mga patlang ay maaaring magbigay ng kawili-wiling data para sa pagsusuri. Marami pa ring dapat hukayin, mula sa pagbuo ng "word cloud" hanggang sa pagsusuri ng teksto. Kung may lumabas na mga interesanteng resulta, mai-publish ang mga ito.

Pinagmulan: www.habr.com

Magdagdag ng komento