Habrastatistics: การวิเคราะห์ความคิดเห็นของผู้อ่าน

สวัสดีฮับ ใน ส่วนก่อนหน้า มีการวิเคราะห์ความนิยมในส่วนต่างๆ ของเว็บไซต์ และในขณะเดียวกันก็เกิดคำถามขึ้นว่าข้อมูลใดที่สามารถดึงมาจากความคิดเห็นในบทความได้ ฉันยังต้องการทดสอบสมมติฐานข้อหนึ่งด้วย ซึ่งฉันจะพูดถึงด้านล่างนี้
Habrastatistics: การวิเคราะห์ความคิดเห็นของผู้อ่าน

ข้อมูลกลายเป็นข้อมูลที่ค่อนข้างน่าสนใจ และเรายังสามารถรวบรวม "คะแนนเล็กๆ" ของผู้แสดงความเห็นได้ด้วย ดำเนินการต่อภายใต้การตัด

การเก็บรวบรวมข้อมูล

สำหรับการวิเคราะห์ เราจะใช้ข้อมูลสำหรับปีนี้ 2019 โดยเฉพาะเมื่อผมได้รับรายชื่อบทความในรูปแบบ CSV แล้ว สิ่งที่เหลืออยู่คือการแยกความคิดเห็นออกจากแต่ละบทความ โชคดีสำหรับเราที่ความคิดเห็นเหล่านั้นถูกเก็บไว้ที่นั่น และไม่จำเป็นต้องทำการร้องขอเพิ่มเติม

หากต้องการเน้นความคิดเห็นจากบทความ โค้ดต่อไปนี้ก็เพียงพอแล้ว:

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)

ซึ่งช่วยให้เราได้รับรายการความคิดเห็นที่มีลักษณะดังนี้ (ชื่อเล่นถูกลบออกด้วยเหตุผลด้านความเป็นส่วนตัว):

xxxxxxx,2019-02-06 11:50:00,0,А можно пример как именно?
xxxxxxx-02-24 16:15:00,+1,Побольше читайте независимые официальные источники чтобы таких вопросов не было.
xxxxxxx,2019-02-23 20:15:00,–5,А не важно главное в итоге в плюсе оказаться

อย่างที่คุณเห็น สำหรับแต่ละความคิดเห็น เราจะได้รับชื่อผู้ใช้ วันที่ การให้คะแนน และข้อความจริง มาดูกันว่าเราจะได้อะไรจากสิ่งนี้

อย่างไรก็ตาม ในตอนแรก แนวคิดในการรวบรวมเรตติ้งจะแตกต่างออกไปเล็กน้อย - เพื่อดูว่าผู้ใช้ให้คะแนนเท่าใด ตัวอย่างเช่น คุณสามารถดู YouTube ได้ แม้แต่วิดีโอในอุดมคติที่สุด แม้แต่วิดีโอที่ไม่มีข้อมูลเชิงอัตวิสัยใด ๆ เพื่อใช้อ้างอิงหรือข่าวประชาสัมพันธ์เท่านั้น แต่ก็ยังได้รับข้อเสียจำนวนหนึ่ง สมมติฐานก็คือ มีผู้ใช้ที่ไม่ชอบทุกอย่างเลย ในทางคลินิก บางทีเซโรโทนินไม่ได้ผลิตในสมองหรืออย่างอื่น บางทีคนเราอาจไม่จำเป็นต้องนั่งบนHabréอีกต่อไป แต่เพื่อรักษาภาวะซึมเศร้า... แต่เมื่อปรากฏออกมา ฉันไม่สามารถตรวจสอบสิ่งนี้ได้ที่นี่ เพราะ... รายชื่อผู้ที่ให้คะแนนจะไม่ถูกบันทึกไว้ในความคิดเห็นหรือบทความ นั่นคือเราจะทำงานกับข้อมูลที่มีอยู่ ผลลัพธ์ที่ได้คือการให้คะแนน "ย้อนกลับ" - คุณสามารถดูได้ว่าผู้ใช้ให้คะแนน _receive_ ใดบ้าง ซึ่งโดยหลักการแล้วก็น่าสนใจเช่นกัน

การประมวลผล

เริ่มต้นด้วยข้อจำกัดความรับผิดชอบแบบดั้งเดิม การให้คะแนนนี้เหมือนกับครั้งก่อน ๆ คือไม่เป็นทางการ ไม่รับประกันว่าไม่ได้ทำผิดตรงไหน สำหรับผู้ที่สนใจรายละเอียดด้านเทคนิคมีโค้ดรายละเอียดเพิ่มเติมมาให้ ในส่วนก่อนหน้า.

มาเริ่มกันเลย ความเห็นปีนี้ 2019 (ที่ยังไม่จบ) นำมาวิเคราะห์ ในขณะที่เขียน ผู้ใช้เขียน ความคิดเห็น 448533ขนาดของไฟล์ csv คือ 288MB- ทรงพลังและน่าประทับใจ

เวลาเขียน

มาจัดกลุ่มความคิดเห็นตามชั่วโมง โดยแยกวันธรรมดาและวันหยุดสุดสัปดาห์ออกจากกัน

Habrastatistics: การวิเคราะห์ความคิดเห็นของผู้อ่าน

ในที่นี้เราไม่ได้สนใจค่าสัมบูรณ์ แต่สนใจค่าสัมพัทธ์ หากคุณเพียงแค่มองมัน "อย่างที่มันเป็น" มันก็จะกลายเป็นอย่างนั้นоความคิดเห็นส่วนใหญ่เขียนในช่วงเวลาทำงานตั้งแต่ 10 ถึง 18 😉 ในทางกลับกัน เขตเวลาจะไม่ถูกนำมาพิจารณาที่นี่ ดังนั้นคำถามยังคงเปิดอยู่

มาดูการกระจายความคิดเห็นตลอดทั้งปี:

Habrastatistics: การวิเคราะห์ความคิดเห็นของผู้อ่าน

แต่ก็ยังหมุนเวียน มองเห็นการเพิ่มขึ้นอย่างชัดเจนในวันธรรมดา - มองเห็นช่วงเวลารายสัปดาห์ได้ชัดเจน ดังนั้นเราจึงสามารถพูดด้วยความมั่นใจค่อนข้างสูงว่าผู้คนกำลังอ่านและแสดงความคิดเห็นเกี่ยวกับ Habr จากที่ทำงาน (แต่นี่ไม่แน่นอน)

อย่างไรก็ตามมีแนวคิดที่จะทดสอบสมมติฐานว่าจำนวน minuses หรือ pluses ที่ได้รับนั้นแตกต่างจากวันหรือเวลาของวัน แต่ไม่สามารถค้นหาความสัมพันธ์ได้ - เวลาที่ให้คะแนนไม่ได้ถูกบันทึกและ ไม่มีการเชื่อมโยงโดยตรงกับเวลาที่แสดงความคิดเห็น

สมาชิก

แน่นอนว่าฉันไม่ทราบจำนวนผู้ใช้ที่แน่นอนบนเว็บไซต์ แต่ผู้ที่แสดงความคิดเห็นอย่างน้อยหนึ่งรายการในปีนี้ กลับกลายเป็นว่าประมาณนั้น คน 25000.

กราฟจำนวนข้อความที่ผู้ใช้ทิ้งไว้ดูน่าสนใจทีเดียว:

Habrastatistics: การวิเคราะห์ความคิดเห็นของผู้อ่าน

ตอนแรกฉันก็ไม่เชื่อตัวเอง แต่ดูเหมือนว่าจะไม่มีข้อผิดพลาด 5% ของผู้ใช้ฝากข้อความ 60%- 10% - 74% ของข้อความทั้งหมด (ซึ่งฉันขอเตือนคุณในปีนี้ 450) คนส่วนใหญ่เพียงแต่อ่านเว็บไซต์ แสดงความคิดเห็นน้อยมาก หรือไม่ทิ้งความคิดเห็นไว้เลย (โดยธรรมชาติแล้วความคิดเห็นเหล่านั้นไม่รวมอยู่ในรายการของฉัน)

คะแนน

เรามาดูสถิติส่วนสุดท้ายและสนุกที่สุดกันดีกว่า - การให้คะแนน ด้วยเหตุผลด้านความเป็นส่วนตัว ฉันจะไม่ให้ชื่อเล่นเต็มๆ ของผู้ใช้ ซึ่งฉันคิดว่าใครก็ตามที่ต้องการจะจดจำตัวเองได้

บน จำนวนความคิดเห็น สำหรับปีนี้ 5 อันดับแรกถูกครอบครองโดย VoXXXX (3377 ความคิดเห็น), 0xdXXXXX (3286 ความคิดเห็น), strXXXX (3043 ความคิดเห็น), AmXXXX (2897 ความคิดเห็น) และ khXXXX (2748 ความคิดเห็น)

บน จำนวนผลประโยชน์ที่ได้รับ, 5 อันดับแรกถูกครอบครองโดย amXXXX (1395 ความเห็น, เรตติ้ง +3231/-309), tvXXXX (1544 คอมเมนต์, เรตติ้ง +3231/-97), WhuXXXX (921 คอมเมนต์, เรตติ้ง +2288/-13), MTXXXX (1328 คอมเมนต์, +1383 /-7) และ amaXXXX (736 ความคิดเห็น เรตติ้ง +1340/-16)

บน คะแนนบวกแน่นอน (ไม่มีใคร ความคิดเห็นที่ให้คะแนนเชิงลบ) ด้านบนของด้านบนถูกครอบครองโดย มิลล์การ์ด и บูมบูรัม- เป็นข้อยกเว้น ฉันนำเสนอชื่อเล่นของพวกเขาแบบเต็ม ฉันคิดว่าพวกเขาสมควรได้รับมัน

ข้อเสียก็น่าสนใจเช่นกัน ด้านบนโดย จำนวน minuses ที่รวบรวม สำหรับปีนี้พวกเขาถูกครอบครองโดย siXX (473 pluses, 699 minuses), khXX (1915 pluses, 573 minuses) และ nicXXXXX (456 pluses, 487 minuses) แต่อย่างที่คุณเห็น ผู้ใช้เหล่านี้มีความคิดเห็นเชิงบวกเพียงพอ แต่ตาม ลบแน่นอน สารต่อต้านโทปิกประกอบด้วย vladXXXX (55 ความคิดเห็น, 84 minuses, 0 pluses), ekoXXXX (77 ความคิดเห็น, 92 minuses, 1 pluses) และ iMXXXX (225 ความคิดเห็น, 205 minuses, 12 pluses)

ข้อสรุป

ฉันไม่สามารถคำนวณทุกสิ่งที่วางแผนไว้ได้ แต่ฉันหวังว่ามันจะน่าสนใจ

อย่างที่คุณเห็น แม้แต่ชุดข้อมูลที่มีฟิลด์จำนวนน้อยก็สามารถให้ข้อมูลที่น่าสนใจสำหรับการวิเคราะห์ได้ ยังมีอะไรให้ค้นหาอีกมาก ตั้งแต่การสร้าง "word cloud" ไปจนถึงการวิเคราะห์ข้อความ หากมีผลลัพธ์ที่น่าสนใจจะมีการเผยแพร่

ที่มา: will.com

เพิ่มความคิดเห็น