Habrastatistics: phân tích ý kiến ​​của độc giả

Xin chào Habr. TRONG phần trước Mức độ phổ biến của các phần khác nhau của trang web đã được phân tích, đồng thời đặt ra câu hỏi - dữ liệu nào có thể được trích xuất từ ​​​​các nhận xét về bài viết. Tôi cũng muốn kiểm tra một giả thuyết mà tôi sẽ thảo luận dưới đây.
Habrastatistics: phân tích ý kiến ​​của độc giả

Dữ liệu hóa ra khá thú vị; chúng tôi cũng đã cố gắng tạo ra một nhóm bình luận viên “xếp hạng nhỏ”. Tiếp tục theo vết cắt.

Thu thập dữ liệu

Để phân tích, chúng tôi sẽ sử dụng dữ liệu cho năm nay, 2019, đặc biệt vì tôi đã nhận được danh sách các bài viết ở dạng csv. Tất cả những gì còn lại là trích xuất các nhận xét từ mỗi bài viết; may mắn thay cho chúng tôi, chúng được lưu trữ ở đó và không cần thực hiện thêm yêu cầu nào.

Để đánh dấu các nhận xét từ một bài viết, đoạn mã sau là đủ:

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)

Điều này cho phép chúng tôi nhận được danh sách các nhận xét trông giống như thế này (biệt hiệu đã bị xóa vì lý do riêng tư):

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

Như bạn có thể thấy, đối với mỗi nhận xét, chúng ta có thể lấy tên người dùng, ngày tháng, xếp hạng và văn bản thực tế. Hãy xem chúng ta có thể nhận được gì từ việc này.

Nhân tiện, ban đầu, ý tưởng thu thập xếp hạng hơi khác một chút - để xem người dùng đưa ra xếp hạng gì. Ví dụ: bạn có thể xem YouTube - ngay cả video lý tưởng nhất, ngay cả một video không mang bất kỳ thông tin chủ quan nào, hoàn toàn mang tính chất tham khảo hoặc đưa tin, vẫn có một số điểm trừ nhất định. Giả thuyết cho rằng có những người dùng, hoàn toàn về mặt lâm sàng, không thích mọi thứ chút nào, có thể não không sản sinh ra serotonin hay thứ gì khác. Có lẽ một người không còn cần phải ngồi trên Habré nữa mà là để điều trị chứng trầm cảm... Nhưng hóa ra, tôi không thể kiểm tra điều này ở đây, bởi vì... danh sách những người đã xếp hạng không được lưu trong bình luận hoặc bài viết. Vâng, nghĩa là chúng tôi sẽ làm việc với dữ liệu có sẵn. Kết quả là xếp hạng "ngược lại" - bạn có thể xem người dùng _receive_ xếp hạng như thế nào. Về nguyên tắc, điều đó cũng thú vị.

Chế biến

Để bắt đầu, một tuyên bố từ chối trách nhiệm truyền thống. Đánh giá này, giống như tất cả những đánh giá trước đó, là không chính thức. Tôi không đảm bảo rằng mình không phạm sai lầm ở đâu cả. Đối với những người quan tâm đến chi tiết kỹ thuật, mã chi tiết hơn được cung cấp trong phần trước.

Vậy hãy bắt đầu. Các bình luận cho năm nay, 2019 (chưa kết thúc) đã được lấy để phân tích. Tại thời điểm viết bài, người dùng đã viết 448533 комментария, kích thước của tệp csv là 288MB. Mạnh mẽ, ấn tượng.

Thời gian viết

Hãy nhóm bình luận theo giờ, chia ngày trong tuần và ngày cuối tuần riêng biệt.

Habrastatistics: phân tích ý kiến ​​của độc giả

Ở đây chúng ta không quan tâm đến giá trị tuyệt đối mà quan tâm đến giá trị tương đối. Nếu bạn chỉ nhìn “nguyên trạng” thì hóa ra là như vậyоHầu hết các bình luận được viết trong giờ làm việc từ 10 đến 18 😉 Mặt khác, múi giờ không được tính đến ở đây nên câu hỏi vẫn còn bỏ ngỏ.

Hãy xem xét việc phân phối các ý kiến ​​​​trong suốt cả năm:

Habrastatistics: phân tích ý kiến ​​của độc giả

Tuy nhiên, nó vẫn quay vòng; sự gia tăng có thể thấy rõ vào các ngày trong tuần - tính chu kỳ hàng tuần có thể thấy rõ, vì vậy chúng tôi có thể nói với độ tin cậy khá cao rằng mọi người đang đọc và bình luận về Habr từ nơi làm việc (nhưng điều này không chắc chắn).

Nhân tiện, có một ý tưởng để kiểm tra giả thuyết xem số điểm trừ hoặc điểm cộng nhận được có khác với ngày hoặc thời gian trong ngày hay không, nhưng không thể tìm thấy mối quan hệ - thời gian đưa ra xếp hạng không được lưu và không có kết nối trực tiếp với thời gian bình luận.

Thành viên

Tất nhiên, tôi không biết chính xác số lượng người dùng trên trang web. Nhưng những người để lại ít nhất một bình luận trong năm nay hóa ra là khoảng Người 25000.

Biểu đồ số lượng tin nhắn người dùng để lại trông khá thú vị:

Habrastatistics: phân tích ý kiến ​​của độc giả

Lúc đầu chính tôi cũng không tin, nhưng dường như không có sai sót gì. 5% người dùng để lại 60% tin nhắn. 10% - 74% tổng số tin nhắn (trong đó, để tôi nhắc bạn, năm nay là 450 nghìn). Phần lớn chỉ đơn giản là đọc trang web, rất hiếm khi để lại bình luận hoặc không để lại bình luận nào (tất nhiên những bình luận đó không có trong danh sách của tôi).

Xếp hạng

Hãy chuyển sang phần cuối cùng và thú vị nhất của số liệu thống kê - xếp hạng. Vì lý do riêng tư, tôi sẽ không cung cấp biệt hiệu đầy đủ của người dùng, tôi nghĩ ai muốn thì sẽ tự nhận ra.

Trên số lượng ý kiến trong năm nay, top 5 thuộc về VoXXXX (3377 bình luận), 0xdXXXXX (3286 bình luận), strXXXX (3043 bình luận), AmXXXX (2897 bình luận) và khXXXX (2748 bình luận).

Trên số lợi ích nhận được, top 5 thuộc về amXXXX (1395 bình luận, xếp hạng +3231/-309), tvXXXX (1544 bình luận, xếp hạng +3231/-97), WhuXXXX (921 bình luận, xếp hạng +2288/-13), MTXXXX (1328 bình luận, +1383 /-7) và amaXXXX (736 bình luận, xếp hạng +1340/-16).

Trên đánh giá tích cực tuyệt đối (không một ai nhận xét được đánh giá tiêu cực) phần trên cùng của phần trên cùng bị chiếm bởi Milfgard и bùng nổ. Ngoại lệ, tôi trình bày đầy đủ biệt danh của họ, tôi nghĩ họ xứng đáng với điều đó.

Nhược điểm cũng thú vị. Lên trên số điểm trừ được thu thập trong năm nay, chúng bị chiếm giữ bởi siXX (473 điểm cộng, 699 điểm trừ), khXX (1915 điểm cộng, 573 điểm trừ) và nicXXXXX (456 điểm cộng, 487 điểm trừ). Nhưng như bạn có thể thấy, những người dùng này có đủ nhận xét tích cực. Nhưng theo điểm trừ tuyệt đối Phản chủ đề bao gồm vladXXXX (55 bình luận, 84 điểm trừ, 0 điểm cộng), ekoXXXX (77 bình luận, 92 điểm trừ, 1 điểm cộng) và iMXXXX (225 bình luận, 205 điểm trừ, 12 điểm cộng).

Kết luận

Tôi không thể tính toán mọi thứ đã lên kế hoạch, nhưng tôi hy vọng nó thật thú vị.

Như bạn có thể thấy, ngay cả một tập dữ liệu có số lượng trường nhỏ như vậy cũng có thể cung cấp dữ liệu thú vị để phân tích. Vẫn còn rất nhiều điều cần nghiên cứu sâu hơn, từ việc xây dựng “đám mây từ” đến phân tích văn bản. Nếu có kết quả thú vị nào xuất hiện, chúng sẽ được công bố.

Nguồn: www.habr.com

Thêm một lời nhận xét