Sentiment Analysis cơ bản

Amazon customer reviews
Sentiment analysis – hay phân tích tâm lý của đối tượng – là một chủ đề thách thức trong Machine Learning. Mọi người thể hiện cảm nhận của mình thông qua ngôn ngữ tự nhiên có bản chất nhập nhằng, mơ hồ đã gây không ít khó khăn cho việc xử lý cho máy tính hiểu. Chưa kể, họ sử dụng các cách chơi chữ, ẩn ý hay các kí hiệu như

:), :(, =)))

để giải bày cảm xúc của họ.

Trong bài viết này, tôi sẽ sử dụng tập dữ liệu Web data: Amazon Fine Foods reviews cho việc áp dụng kĩ thuật Sentiment analysis. Đây là tutorial cơ bản dành cho các bạn mới bắt đầu nghiên cứu vấn đề này. Ở đây, ta sẽ sử dụng hướng tiếp cận Bag of Words để chuyển đổi dữ liệu văn bản thành ma trận vector từ đó có thể đưa vào các mô hình phân lớp để học.

Notebooks: sentiment_analysis_basics.ipynb
Source code:
classification_algorithms.py

16 thoughts on “Sentiment Analysis cơ bản

  1. Xin lỗi anh, em có làm theo hướng dẫn trên nhưng gặp lỗi này
    print_words_frequency()
    TypeError: print_words_frequency() takes exactly 1 argument (0 given)

    Không rõ để khởi chạy file py này bắt đầu từ hàm main như thế nào?

    Số lượt thích

    1. print_words_frequency(train_data_features)

      hàm này nhận một đối số là vector feature đó em.

      # convert data-set to term-document matrix
      X_train = vectorizer.fit_transform(train_text).toarray()
      y_train = train[“sentiment”]

      X_test = vectorizer.fit_transform(test_text).toarray()
      y_test = test[“sentiment”]

      print_words_frequency(X_train)

      Số lượt thích

  2. Em chào anh ạ. Em đang bắt đầu nghiên cứu về sentiment analysis và ví dụ anh demo. Em đang sử dụng từng hàm phân lớp Gaussian Process để train và đánh giá
    Em đang có một chút vấn đề là :
    Em muốn nhập vào một câu review rồi đưa ra score của câu đấy thì làm thế nào ạ.
    Em cảm ơn anh.

    Số lượt thích

  3. Anh cho em hỏi một chút ạ, tại sao X_train trước và sau khi tính X_test lại khác nhau ạ:
    # convert data-set to term-document matrix
    X_train = vectorizer.fit_transform(train_text).toarray()
    y_train = train[“sentiment”]

    print_words_frequency(X_train)

    X_test = vectorizer.fit_transform(test_text).toarray()
    y_test = test[“sentiment”]

    print_words_frequency(X_train)

    Em sửa lại là tạo ra 1 vectorizer1 thì ok nhưng X_train sẽ có mỗi vector có các phần tử là số lần xuất hiện cho 10 từ khác với mỗi vector trong X_test, vậy sao so sánh được ạ?

    Số lượt thích

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

w

Connecting to %s