Bài viết chuyên sâu

[ANAP - Part1] Thu thập dữ liệu báo chí qua công cụ, bóc tách câu từ, phân cụm nhóm từ câu hay viết của một phóng viên

[ANAP - Part1] Thu thập dữ liệu báo chí qua công cụ, bóc tách câu từ, phân cụm nhóm từ câu hay viết của một phóng viên

by Admin Dathoc -
Number of replies: 0

#koolj_dataengineering

#nlp

#anap


Lại một dự án nữa để chúng ta áp dụng Phân tích dữ liệu - Kỹ thuật máy học và học sâu cho phân tích câu chữ để:

- Biết được phong cách viết báo của một Phóng Viên

- Biết được Bài báo viết là đạo văn từ một Bài báo khác

- Biết được câu chữ comment, và ngăn cản post bài comment, reply Bài báo vì: vi phạm thuần phong mỹ tục + pháp Luật Nhà nước Việt Nam

- Hỗ trợ Phóng viên viết bài theo phong cách của bạn Phóng viên đó: tức là tự sinh câu chữ, đoạn văn với gợi ý từ ngữ cho trước. Tạo mở bài, thân bài kết luận.


Sau đây là cách chúng tôi triển khai. Với mục tiêu chia sẻ thành quả lẫn mong muốn các fans góp ý cũng như boost việc học hành tự học tự tìm hiểu của các fans ngày một tốt hơn. Thank you các bạn đã ủng hộ!

.

.

.


Tôi sẽ viết thành nhiều phần kèm kỹ thuật chúng tôi làm. Các bạn yêu thích Phân tích dữ liệu theo: Ngành Nghề này thì cho 1 LIKE về:

https://www.facebook.com/dathoc.net 

Mình cám ơn.


Thứ tự các phần như sau:

Phần 1:  Thu thập dữ liệu báo chí qua công cụ, bóc tách câu từ, phân cụm nhóm từ câu hay viết của một phóng viên

Phần 2:  Lập từ điển và áp dụng tagging phát hiện bài viết đạo văn 

Phần 3:  Lập từ điển và áp dụng tagging phát hiện bài viết vi phạm thuần phong mỹ tục + pháp Luật Nhà nước

Phần 4:  Lập từ điển và áp dụng NER viết bài theo phong cách của bạn Phóng viên

Phần 5: Sizing/scale up hệ thống, tunning hệ thống cho tối ưu performance


----------------------------------

🎯[ANAP - Part1]

👉Input: 

- Thu thập toàn bài viết qua tool HERA (tham khảo https://dathoc.net/hera)

- Qua mẫu bài viết vào pipeline nlp của bot, nhận diện bài nào của phóng viên nào

- Vậy phóng viên X thì thường viết những câu từ gì thuộc thể loại gì


👉Output: 

- Thu thập được nhiều bài báo từ các trang mạng khác nhau, tốc độ 200-2000 bài/ 10 phút cho máy tính thông thường

- Bot nlp tạo mô hình để nhận diện bài viết đó thể loại đó là của phóng viên X

- Nhóm từ ngữ chỉ bài viết viết về cái gì- Nhóm từ ngữ chỉ phong cách viết của một phóng viên (1 phóng viên có thể viết nhiều thể loại)


👉Kỹ thuật: 

1. Sử dụng tool HERA để thu thập bài báo viết qua các site thông tin điên tử

Tham khảo (dathoc.net/hera)


Chọn lựa tool - kỹ thuật:

- Vâng có rất nhiều tool và công nghệ crawl. Khỏi giói thiệu cho b rồi. Và nếu cho lời khuyên tôi khuyên bạn dùng HERA. Vì nó customize cho cả dân không biết coding gì cả chỉ cần thêm từ khoá, cái "từ khoá" ý là những hành động bạn định lấy thông tin ở đâu. Tất nhiên chúng tôi sẽ chỉ lấy những thông tin mà site, hệ thống, show ra cho chúng tôi xem. Phục vụ đúng nguyên tắc cộng đồng là: public

- Và tất nhiên nếu lựa chọn thứ 2 mã nguồn mở cho các bạn lập trình nên là: scrapy.org. Còn với các bạn sale kinh doanh thì... có lẽ cần học lập trình thôi ạ.


Tăng tốc tool:

- Đúng rồi nhận đc tool crawl sẽ phải tìm cách cấu hình nhanh nhất có thể. Tốc độ cao nhất của HERA khi đạt lấy ảnh cache của Google cũng như bài viết là 2 triệu cái ảnh 200px x 200 px + bài báo/8h. Tức là tôi cho máy 48 lõi, 128 ram và chạy liên tục trong 8h. Ra vấn đề đó chứ!


Chướng ngại:

- Chỉ đơn giản là lấy Google cache, cache cả ảnh lẫn bài viết. Cả bài viết đã bị xoá lẫn bài mới. Và thêm cấu hình nên cũng cần... code thêm "từ khoá" cho các bạn cộng tác viên lấy. Cũng mất 2-3 buổi.

- Rồi các site cấm ip, không sao tôi thuê AWS cứ 3h-4h tôi lại chuyển clone sang một con máy khác, vùng khác... thế là ip đổi. Chắc các cao thủ khác sẽ có những fixing cái này tốt hơn. Hoặc sẽ phải dùng một vpn provider hoặc proxy provide để nó chuyển ip nhận diện vùng khác cho mình. Giờ báo nào cũng chặn khi ai đó request họ quá nhiều.


Ưu việt:

- 2 triệu cái ảnh 200px x 200 px + bài báo/8h. Tức là tôi cho máy 48 lõi, 128 ram và chạy liên tục trong 8h

- Không sợ cấm ip


Đằng sau sân khấu:

- Đây là lõi chương trình mình viết từ 2011. Bạn có thể tham khảo nhé: https://code.google.com/archive/p/datadriven-for-robotium-selenium/wikis/DFRSintro.wiki

.

.

.


2. Sử dụng bot nlp để nhận diện một bài báo, cách viết của phóng viên X

Tham khảo pipeline nlp: http://dathoc.net/nlpbot


Chọn lựa tool - kỹ thuật:

- Tensorflow 1.13, python 3.6.5, rnn

- Bot nlp opensource, tự biên tự diễn mô hình


Tăng tốc tool:

- Chọn các máy cho thuê có hỗ trợ tensor core là hay nhất để tăng tốc training data


Chướng ngại:

- Training khi tới 1k-20k bài viết mỗi bài 200 chữ, khá đầu lâu. Xong lúc này bạn cần thuê máy mạnh cho Tensor là đc.

- Xoá những dâu hoặc kép hoặc câu vô nghĩa, từ vô nghĩa.... đại loại gọi là làm sạch. Hoặc chúng tôi phải có list các từ ngữ đặc biệt để thay thế. Một số pv viết bài rất vui tính.


Ưu việt:

- Bot đưa ngay lên ram mô hình và có thể tạo api nhanh, ngay lập tức

- Phải nói bot sinh ra với tối ưu tuyệt vời để làm nhanh với đúng thư viện của nó


Đằng sau sân khấu:

- A c e có thể tham khảo mã nguồn mở: https://rasa.com/docs/rasa/user-guide/rasa-tutorial/

.

.

.

3. Sử dụng tagging word để phân bổ phong cách viết về các chủ đề

Tham khảo api syptom và api wword trong tài liệu này: http://dathoc.net/covid


Chọn lựa tool - kỹ thuật:

- Thực sự là có rất nhiều công nghệ để bạn tagging, segment, ner... bạn có thể dùng tu fans vn

https://github.com/phuonglh/vn.vitk

https://github.com/vunb/vntk

https://github.com/undertheseanlp/underthesea

https://github.com/vncorenlp/VnCoreNLP


Điểm chung của các git này là: chưa thấy share thư viện từ... có thể share xong không đầy đủ. Ví dụ VN có cỡ 27k từ điển 1 từ, 10k từ điển 2 từ, và 3k từ điển 3 từ

Nếu khuyên bạn thực hành với độ chính xác thì mình gợi ý: vitk, vì đó là nơi mình start với nlp vn


Tăng tốc tool:

- Tự tạo lấy một nhóm 27k từ điển 1 từ, 10k từ điển 2 từ, và 3k từ. Cái này mất cỡ 2-5 năm.

- Tạo api, và dùng haproxy để load balancing cho nhanh


Chướng ngại:

- Test và phân nhóm từ loại đơn sơ

- Phân nhóm mẫu loại dạng sau đó cần manual


Ưu việt:

- Từ điển đủ nhiều để ôm các nhóm 2 từ, 3 từ mà ng Việt hay nói, như thế NER về sentiment từ câu chữ sẽ dễ hơn

- Phải phải dùng thêm bot để nhận diện nhóm 3 từ, 4 từ cảm thán hay ... nhóm 2 từ 3 từ


Đằng sau sân khấu:

- A c e có thể tham khảo từ điển và một số hàm sử dụng qua api syptom và api wword trong tài liệu này: http://dathoc.net/covid. Donate qua dathoc.net/donation để dùng thử.

.

.

.


Mục tiêu đã rõ ràng, kỹ thuật nêu đã đủ. Vậy mong các fan chuyên sâu nlp cho tham khảo các cách khác các bạn làm và những khó khăn cũng như được mất khi "đánh vật" với ngôn ngữ Tiếng Việt.


Với mục tiêu chia sẻ thành quả lẫn mong muốn các fans góp ý cũng như boost việc học hành tự học tự tìm hiểu của các fans ngày một tốt hơn. Thank you các bạn đã xem và ủng hộ!