Mẫu truyền phát thời gian thực: Tiền xử lý để phân tích tình cảm


Bùi Quang Anh
1 năm trước
Hữu ích 2 Chia sẻ Viết bình luận 0
Đã xem 2394

Giới thiệu

Tôi đang bắt đầu một loạt các bài đăng xem xét một loạt các mẫu xử lý dữ liệu được sử dụng để xây dựng các ứng dụng xử lý luồng thời gian thực, các trường hợp sử dụng mà các mẫu liên quan đến và cách bạn sẽ triển khai chúng trong Wallaroo.

Những bài đăng này sẽ giúp bạn hiểu các trường hợp sử dụng xử lý dữ liệu mà Wallaroo được thiết kế tốt nhất để xử lý và cách bạn có thể tiến hành xây dựng chúng ngay lập tức.

Tôi sẽ xem xét trình xây dựng ứng dụng Wallaroo, một phần của ứng dụng của bạn nối vào khung Wallaroo và một số logic kinh doanh của mẫu.

Mẫu: Tiền xử lý

Tiền xử lý liên quan đến việc chuyển đổi các thông điệp trong đường ống dữ liệu của bạn.

Một loạt các hoạt động có thể xảy ra, bao gồm:

  • Loại bỏ các thuộc tính từ một tin nhắn.
  • Thêm hoặc tăng cường các thuộc tính trong một tin nhắn.
  • Lọc toàn bộ tin nhắn từ một đường ống.
  • Chia tách tin nhắn sẽ được xử lý bởi nhiều đường ống.
  • Kết hợp nhiều đường ống thành một đường ống mới.

Trường hợp sử dụng

Không có gì lạ khi thấy mẫu tiền xử lý được sử dụng trong nhiều trường hợp sử dụng và kết hợp với các mẫu khác.

Một trường hợp sử dụng ví dụ tuyệt vời là loại bỏ các từ dừng để phân tích tình cảm.

Phân tích tình cảm được sử dụng bởi các nhà khoa học dữ liệu để xem xét một đoạn văn bản và xác định xem tình cảm tiềm ẩn là tích cực hay tiêu cực.

Giả sử bạn đang theo dõi các tweet có đề cập đến Nike. Bạn muốn biết mọi người đang cảm thấy thế nào về Nike. Các tweet và bình luận nói chung là tích cực hay tiêu cực? "Nike có một số diện mạo mới tuyệt vời trong mùa này" sẽ là một tình cảm tích cực. Mỗi đoạn văn bản được cho một điểm và bạn có thể cộng điểm số trong một khoảng thời gian, giả sử giờ cuối cùng, để có được điểm số tình cảm tổng thể.

Chúng tôi sẽ giả định rằng ngược dòng từ bộ xử lý tình cảm của chúng tôi để chúng tôi chỉ có các tweet liên quan đến Nike. Bước tiếp theo trước khi thực hiện phân tích tình cảm thực tế là loại bỏ các từ dừng . Từ dừng là những từ vô nghĩa đối với phân tích tình cảm cơ bản và do đó có thể và nên được loại bỏ trước khi thuật toán tình cảm chạy.

Danh sách từ dừng được tùy chỉnh theo các chi tiết cụ thể của trường hợp sử dụng nhưng sẽ bao gồm các từ như "là, không, như, tại, bởi vì, đã, có, tôi, nó, trên, một số, cái này. "

Trong thông báo ví dụ của chúng tôi ở trên "@Nike có một số giao diện mới tuyệt vời trong mùa này" sẽ trở thành "@Nike giao diện mới tuyệt vời" sau khi xảy ra quá trình tiền xử lý từ. Đây không phải là văn bản dễ nhất cho con người đọc, nhưng đó chỉ là cách thuật toán tình cảm của chúng tôi muốn xem nó!

Trình xây dựng ứng dụng Wallaroo

Tổng quan

ab.new_pipeline(
            "Sentiment Analysis",
            wallaroo.TCPSourceConfig(order_host, order_port, order_decoder)
        )
ab.to_parallel(remove_stop_words)
ab.to_stateful(sum_sentiment, Sentiment, "Sentiment")
ab.to_sink(wallaroo.TCPSinkConfig(out_host, out_port, encoder))
return ab.build()

ab.new_pipeline(
            "Sentiment Analysis",
            wallaroo.TCPSourceConfig(order_host, order_port, order_decoder)
        )

Định nghĩa về đường ống Wallaroo bao gồm tên đường ống, "Phân tích tình cảm" và nguồn dữ liệu, trong ví dụ này, chúng tôi đang nhận được tin nhắn tweet qua TCP.

ab.to_parallel(remove_stop_words) 

Bước xử lý đầu tiên của chúng tôi là gọi một hàm gọi là "remove_stop_words." Hàm này sẽ xem xét văn bản của tweet và loại bỏ bất kỳ trường hợp nào của các từ dừng khỏi danh sách của chúng tôi, sau đó gửi tin nhắn được xử lý đến bước tiếp theo trong đường ống.

Trong ví dụ này, tôi đang sử dụng to_parallelphương pháp Wallaroo để thêm một tính toán cho đường ống dẫn. Các remove_stop_wordschức năng không cần phải lưu bất cứ điều gì với nhà nước, và các tính toán có thể chạy song song trên tất cả các công nhân có sẵn.

ab.to_stateful(sum_sentiment, Sentiment, "Sentiment") 

to_statefullà một phương pháp không song song có chứa một tính toán trạng thái. Các sum_sentimentchức năng trả khớp lên điểm tình cảm và lưu trữ tổng số trong "Niềm tin" đối tượng trạng thái. Bạn có thể sử dụng thư viện Python như NLTK để thực hiện phân tích tình cảm.

    ab.to_sink(wallaroo.TCPSinkConfig(out_host, out_port, encoder))
    return ab.build()

to _sinkchỉ định điểm cuối của đường ống và nơi các tin nhắn được gửi. build()chỉ định cho Wallaroo rằng không có thêm bước nào cho ứng dụng này.

Phần kết luận

Mẫu tiền xử lý là một trong những mẫu được sử dụng phổ biến nhất mà bạn sẽ bắt gặp khi xây dựng ứng dụng phát trực tuyến của mình. Như bạn có thể thấy, API nhẹ của Wallaroo cung cấp cho bạn khả năng xây dựng đường ống xử lý dữ liệu của bạn và chạy bất kỳ logic ứng dụng nào bạn cần để cung cấp năng lượng cho ứng dụng của mình.

Hãy thử Wallaroo

Chúng tôi hy vọng rằng bài đăng này đã khơi gợi sự quan tâm của bạn đến Wallaroo!

Nếu bạn chỉ mới bắt đầu, chúng tôi khuyên bạn nên thử hình ảnh Docker của chúng tôi , cho phép bạn khởi động Wallaroo chỉ trong vài phút.

Hữu ích 2 Chia sẻ Viết bình luận 0
Đã xem 2394