[Opensource] Đọc báo: framework quét và tổng hợp từ khóa từ báo mạng tiếng Việt

information-retrieval
search

#1

Thân chào các anh, chị em trong group.

Trên cơ sở ứng dụng “Đọc báo theo từ khóa” đã giới thiệu trên diễn đàn trước đây, mình đã refactor lại để tạo thành một opensource framework giúp mọi người dễ dàng tùy biến cho nhu cầu quét và tổng hợp từ khóa từ các trang báo mạng tiếng Việt (hoặc các website tiếng Việt nói chung)

Demo: Đọc báo theo từ khóa

Những tính năng framework này cung cấp:

  1. Quét được mọi website tiếng Việt, chỉ cần bài viết có chứa thông tin về ngày xuất bản.

  2. Cấu hình dễ dàng danh sách báo cần quét, danh sách chuyên mục…thông qua file config.txt

  3. Thuật toán tổng hợp từ khóa thông minh, sử dụng kết hợp NLP và cơ chế cạnh tranh từ khóa, giúp giữ lại từ khóa giàu giá trị thông tin

  4. Backend hỗ trợ cung cấp dữ liệu tần suất xuất hiện của từ khóa dưới dạng timeseries, từ đó cho phép xác định từ khóa tăng trưởng nhanh, từ khóa mới xuất hiện, và dễ dàng mở rộng để xây dựng mô hình phát hiện các dạng từ khóa đặc biệt khác

  5. Tự động phân loại từ khóa vào các chuyên mục bằng cách cung cấp “từ khóa chuyên ngành” cho chuyên mục. VD: tất cả từ khóa có chứa “bóng đá” sẽ tự động đưa vào chuyên mục Thể Thao. Danh sách chuyên mục có thể tùy biến theo nhu cầu cá nhân.

  6. Export database dưới dạng excel, json, object pickle giúp dễ dàng tích hợp trong các dự án khác

  7. Bao gồm cả backend và frontend. Có thể triển khai dễ dàng trên 1 raspberry pi 3 và host php giá rẻ (là giải pháp mình đang sử dụng trong demo)

Rất mong anh chị em dùng thử và góp ý để framework ngày càng hoàn thiện



#2

Em xin chào anh, em hiện đang làm về bài toán khác với bài toán của anh 1 xíu, bài toán của em làm về nhận diện tin tức giả. Em cũng mới chỉ ở giai đoạn bắt đầu nên chưa đủ khả năng trả lời các câu hỏi của anh. Em xin phép được hỏi anh một vài kinh nghiệm về cách anh xây dựng hệ thống:

  1. Khi anh lấy dữ liệu về anh có lưu trữ lại bài báo hay dữ liệu trong database hay anh xử lý dữ liệu mỗi lần lấy về ạ?
  2. Mô hình của anh trích xuất được từ khóa, vậy dữ liệu đó anh có lưu lại không ạ?

Em xin cảm ơn anh đã quan tâm


#3

Cám ơn bạn đã quan tâm tới dự án. Về 2 câu hỏi của bạn, mình xin được trả lời:

  1. Mình có lưu trữ lại các bài báo đã quét được (gồm link, tít báo, thời gian báo xuất bản, thời gian hệ thống quét được bài báo). Dữ liệu này mình lưu tại local bằng thư viện pickle của Python. Ngoài ra mình cũng public database này dạng json tại đây: http://docbao.danghailoc.com/article_data.json (cập nhật 10p/lần. Frontend của mình hiện hiển thị dựa trên file json này)

  2. Từ khóa mình cũng có lưu lại giống như bài báo. Mình cũng public csdl từ khóa tại đây:

Mình cũng rất quan tâm tới bài toán của bạn, bạn có thể chia sẻ thêm ý tưởng được không ?


#4

Mình build thêm công cụ để sử dụng data của framework trên máy tính / laptop


#5

Ứng dụng hiện đã được tiếp tục cải tiến, đã có thể quét các trang sử dụng ajax và có cơ chế thông minh để tránh bị block

Source code: https://github.com/hailoc12/docbao


#6

Em muốn hỏi anh một chút ạ. Hiện tại anh có sử dụng content của báo không hay chỉ dựa vào tiêu đề + mô tả? Em đọc code thì không tìm thấy phần content :smiley:


#7

Bạn cho mình hỏi chút là quét các trang dùng ajax như nào thế bạn?


#8

Hi bạn, hiện tại thì mình có get được toàn bộ html của trang báo về, vì vậy vì lý thuyết là có thể dùng tiếp Xpath để get content ra. Tuy nhiên hiện nay mình chỉ lấy title và published date, một phần vì hiển thỉ cả content sẽ dính bản quyến, phần khác là liên quan tới lưu trữ dữ liệu, mình chưa dùng tới database nên lưu dử liệu bị giới hạn


#9

Với các trang dùng ajax hoặc nói chung có cơ chề chống block khó quét thì mình dùng Selenium + Firefox để quét. Còn thực tế thì bạn chỉ cần set use_browser=True trong file config như hình mình đính kèm là đượcCapture