Text classification là gì

Text classification là gì

Bài toán phân loại văn bản (text classification)       NLP                     classification


pencil.forever             2018-09-13 02:07:30 UTC                 #1

Trong tiếng Anh bài toán này được biết đến với cái tên (text classification. E.g. sentiment classification). Mình xin chia sẻ một số kiến thức mình học được liên quan tới bài toán này (Mình thấy có bạn cũng hỏi về sentiment classification).

Trước hết đã là bài toán phân loại thì các bạn có thể dùng các thuật toán phân loại (trong machine learning hay deep learning). Mình xin được liệt kê một số cái tên: Naive Bayes, Decision Tree (Random Forest), Vector Support Machine (SVM), Convolution Neural Network (CNN), Recurrent Neural Network (RNN), Long Short-Term Memory (LSTM, Bi-LSTM) Ví dụ: Naive Bayes được sử dụng rất nhiều trong bài toán Spam Classification, CNN được thử nghiệm cho bài toán Sentiment Classification cho độ chính xác tương đối cao, LSTM cũng được sử dụng cho Sentiment Classification.

Nhưng vấn đề mấu chốt ở đây là dữ liệu đầu vào, dữ liệu này là văn bản. Chúng ta cần đưa dữ liệu này về một dạng mà các mô hình nêu phía trên có thể học một cách dễ dàng. Theo mình được biết thì có 2 hướng tiếp cận: 1- Biểu diễn văn bản bằng các từ quan trọng, các từ này sẽ ảnh hưởng tới việc văn bản thuộc class nào. Để xem thêm code implement các bạn có thể tham khảo ở đây:

Text classification là gì

Towards Data Science  23 Jul 17

Text classification là gì

Machine Learning, NLP: Text Classification using scikit-learn, python and NLTK.

Latest Update: I have uploaded the complete code (Python and Jupyter notebook) on GitHub: https://github.com/javedsha/text-classification

Reading time: 7 min read           2 - Biểu diễn văn bản thành một ma trận (văn bản ngắn thì có thể biểu diễn thành một mảng 2 chiều) hoặc thành một vector (văn bản dài có thể thực hiện theo cách này - khá lý tưởng). Mình xin được giải thích thêm như sau: a. Biểu diễn thành ma trận:

  • Bước 1: Biến 1 từ (word) thành một vector (có thể sử dụng word2vec training sẵn)
  • Bước 2: Ghép các từ lại thành 1 mảng, như vậy ta được mảng 2 chiều (ma trận): l x d (l = length là chiều dài của văn bản hay số từ; d = dimension là chiều của không gian vector mà 1 từ (word) được biểu diễn). Xem thêm: https://medium.com/jatana/report-on-text-classification-using-cnn-rnn-han-f0e887214d5f

b. Biểu diễn thành vector: Cho một mô hình học từ nhiều văn bản khác nhau và có thể ánh xạ một văn bản thành 1 vector Xem thêm:

Text classification là gì

Medium  26 Jul 17

Text classification là gì

A gentle introduction to Doc2Vec  ScaleAbout  Medium

TL;DR

Reading time: 8 min read

Chú ý: Đầu vào là text dài hay ngắn (short text) cũng ảnh hưởng tới việc chọn model. Ví dụ: short text thì có thể chọn các mô hình deep learning. Ở đây mình lấy link ví dụ toàn tiếng Anh nhưng các bạn có thể áp dụng cho tiếng Việt, chỉ cần tìm 1 thư viện tokenizer tiếng Việt, sau đó tìm 1 pre-trained Word2Vec, FastText tiếng Việt nữa là được.

Thêm một mô hình deep learning khá mới là Temporal Convolutional Network, cũng có thể dụng cho bài toán phân loại văn bản.

Text classification là gì

Medium  2 Apr 18

Text classification là gì

[Tensorflow] Implementing Temporal Convolutional Networks

Understanding Tensorflow Part 3

Reading time: 8 min read


[VNLP Core] [3] Bài toán phân loại văn bản - Phân tích cảm xúc của bình luận (text classification)


Tìm giải pháp cho bài toán sentiments classification


Tiep             2018-09-13 02:09:55 UTC                 #2

Cảm ơn bạn.

Mình vừa đổi bài viết về chuyên mục Tutorials để tránh nhầm lẫn với các câu hỏi. Bạn có thể post lên  Facebook group chia sẻ, hoặc mình cũng có thể giúp bạn.


pencil.forever             2018-09-13 02:12:17 UTC                 #3

Ok bạn, giúp mình chia sẻ bài trên facebook nhé!


Trang chủ Chuyên mục FAQ/Hướng dẫn Điều khoản Dịch vụ Chính sách Riêng tư

Powered by Discourse, best viewed with JavaScript enabled