Trong bài tutorial này, chúng ta sẽ sử dụng CoreNLP để phân tích quan điểm trong các bài đăng trên Twitter về một chủ đề nhất định. Bên cạnh thư việc CoreNLP, chúng ta sẽ sử dụng cả thư viện twitter4j để thu thập các bài đăng trên Twitter. Do đó ta thêm dependency của twitter4j vào file pom.xml như sau:

Để có thể sử dụng các hàm API của Twitter, ta cần log in vào Twitter và tạo một App tại trang Twitter’s developer (do chính sách mới thay đổi nên muốn tạo một Twitter App, ta phải điền thông tin về mục đích và ý định phát triển App để đội ngũ Twitter phê duyệt. Thông thường mất vài tiếng đến vài ngày để nhận kết quả liệu Twitter có phê duyệt việc tạo App mới của chúng ta hay không). Sau khi tạo thành công App mới, ta lấy thông tin về 4 keys của App đó là: consumerKey, consumerSecret, accessToken và accessTokenSecret. Bốn keys này được xử dụng để xác thực quyền truy cập của chúng ta.

Việc thu thập bài đăng về một chủ đề nào đó có thể được thực hiện với hàm getTweets(String topic) như sau:

Sau khi thu thập được các bài đăng, ta tiến hành phân tích quan điểm của từng bài đăng sử dụng sentiment annotator của CoreNLP như sau:

Như ta đã biết trong bài trước, sentiment annotator làm việc ở mức độ câu (sentence) nên để phân tích quan điểm của cả bài đăng (gồm nhiều câu trong đó), ta phải áp dụng một phương pháp nhất định. Trong bài này để đơn giản chúng ta lấy điểm Sentiment Score bằng cách tính trung bình cộng Sentiment Score của từng câu (chúng ta coi các câu có vai trò ngang nhau và đều được đánh trọng số bằng nhau). Tuy nhiên nhằm tăng độ chính xác, ta sử dụng RNNCoreAnnotations.getPredictions() để tính tổng xác xuất của từng Sentiment Class (very nagative, negative, neutral, positive, very positive) thay vì sử dụng RNNCoreAnnotations.getPredictedClass() như bài trước.

Sau khi tính tổng xác xuất của từng Sentiment Class, ta tính Sentiment Score cho cả bài đăng bằng cách chọn Sentiment Class có xác suất cao nhất như sau (Sentiment Score chính là chỉ số (index) của giá trị lớn nhất trong dãy các giá trị xác suất):

Full code của chương trình được viết như sau:

Chạy chương trình trên ta được kết quả

Như vậy, ta đã hoàn thành việc viết một chương trình thu thập bài đăng trên Twitter và phân tích quan điểm của bài đăng đó. Đây chỉ là một ví dụ đơn giản nhằm giúp người đọc nắm được cách thu thập bài đăng trên Twitter bằng API và phân tích quan điểm của cả bài đăng thay vì chỉ phân tích quan điểm của từng câu. Ở bài tutorial tiếp theo, chúng ta sẽ viết một chương trình phức tạp hơn, sử dụng kết hợp nhiều phương pháp khác nhau (xử lý dữ liệu đầu vào, bóc tách URL, hastag, hiệu chỉnh từ viết sai,…) nhằm nâng cao độ chính xác của kết quả thu được.

Tháng Mười Một 28, 2018
ITechSeeker