Ứng dụng Machine Learning: phân loại khách hàng thân thiết

Từ dữ liệu về lịch sử sử dụng dịch vụ của khách hàng (giá trị gói dịch vụ, thời gian sử dụng, hình thức gia hạn, thời gian gia hạn dịch vụ(trước khi hết hạn hay sau khi hết hạn mấy ngày)…) ta có thể phân chia khách hàng thành từng nhóm khách hàng khác nhau để có thể chăm sóc khách hàng được tốt hơn.
Một số ví dụ để phân loại khách hàng:

  • Tổng thời gian sử dụng dịch vụ của khách hàng
  • Nhóm khách hàng sử dụng các phương pháp gia hạn
  • Khách hàng gia hạn dựa trên các nhóm truyền thông nào (qua tin nhắn, qua báo chí, qua mạng xã hội, qua ứng dụng…)
  • Nhóm khách hàng theo độ tuổi
  • Nhóm khách hàng theo chương trình hay muốn tham gia
  • Nhóm khách hàng lâu dài…

Ta có thể sử dụng một số phương pháp cơ bản để phân loại khách hàng như thuật toán phân cụm K-MEAN, sử dụng SVM để phân lớp… hoặc các thuật toán nâng cao.

Ứng dụng Machine Learning: phân loại tin nhắn spam (thư spam)

Hàng ngày mình nhận được rất nhiều tin nhắn spam thông qua tin nhắn SMS. Những tin nhắn này bao hàm cả của nhà mạng hoặc các đội spam khác như các cá nhân, công ty, lừa đảo…
Thử làm ứng dụng để phân loại tin nhắn spam để biết đâu là spam, đâu là tin nhắn thường hoặc tin nhắn báo khuyến mại để nhận.

Cách làm phân loại tin nhắn spam đã được nhiều người làm, để đơn giản chắc mình làm trước với nội dung tiếng anh:

  • Loại bỏ các ký tự đặc biệt và các ký tự hay được sử dụng (stop words)
  • Chuyển nội dung SMS dạng text về dạng vector (do các bộ máy đều làm việc dưới dạng số)
  • Tách 80% để train và 20% để test
  • Sử dụng một số thuật toán phổ biến để phân loại: SVM, Naive Bayes.

Ứng dụng trí tuệ nhân tạo trong giao thông Việt Nam

Nói đến ứng dụng trí tuệ nhân tạo trong giao thông người ta thường nghĩ ngay đến các hệ thống xe tự lái. Các hệ thống này sử dụng việc xử lý hình ảnh của các camera trên xe để tính toán và chỉ thị điều khiển xe có thể tự động lái thay cho con người. Tuy nhiên đó chỉ là tương lai vì còn rất nhiều vấn đề thực tế chưa giải quyết được như chất lượng giao thông, luật pháp, yếu tố an toàn… Đó là trên thế giới, còn Việt Nam thì còn phải lâu lâu nữa bởi vì mọi thứ còn chưa được đồng bộ về giao thông, ý thức người dân, phương tiện oto chưa phổ biến.

Dù vậy trong thời đại Trí tuệ nhân tạo, Cách mạng công nghệ 4.0 thì việc ứng dụng Trí tuệ nhân tạo vẫn có nhiều đất để sử dụng mặc dù không được nổi hoặc hoành tráng nhưng ý nghĩa và tính thực tiễn lại vô cùng to lớn. Ta có thể ví dụ một số ứng dụng thực tiễn như sau:

  • Thông báo, phân làn, điều hướng giao thông: Tại các ngã tư, trên đường có thể sử dụng các thuật toán xử lý ảnh để có thể nhận diện mật độ giao thông để có thể phân làn, điều hướng giao thông được tốt hơn. Thay vì tổng đài hiện tại nhìn vào camera hoặc người dân gọi điện thông báo. Việc ứng dụng các thuật toán xử lý ảnh có thể tiến hành đếm từng cung đường, vị trí để có cảnh báo sớm cho người tham gia giao thông và tổng đài điều tiết giao thông. Nó sẽ góp phần lớn giúp nạn tắc đường và tiết kiệm nhân lực là công an giao thông, dân phòng, bảo vệ… tham gia điều tiết giao thông vào giờ cao điểm.
  • Lưu trữ, thông tin các bãi đỗ xe: Bãi đỗ xe đang dần là vấn đề lớn do việc phương tiện giao thông ngày càng tăng mà đường sá chưa kịp đáp ứng cho việc gia tăng này. Càng ngày việc tìm bãi đỗ xe cho oto càng khó khăn hơn. Thiết lập được các bãi đỗ xe thông minh cho phép tìm kiếm, đặt chỗ đỗ xe là việc cần thiết, tiết kiệm thời gian tìm chỗ đỗ xe. Từ đó cũng cho phép mọi người có nhà mặt đường tham gia hệ thống cho đỗ xe phù hợp gia tăng thu nhập.
  • Thu phí cho việc sử dụng phương tiện cá nhân: Hạn chế phương tiện cá nhân bằng phương pháp đánh thuế mua xe hoặc xăng dầu có vẻ chưa được ổn. Việc thu phí cho lượt sử dụng phương tiện cá nhân là yếu tố có thể tính đến. Tương tự như việc thu phí tại các trạm BOT, việc nhận diện biển số xe để có thể thu phí trong mạng lưới camera ngày càng phát triển. Thu thập và tính toán tần suất sử dụng phương tiện cần sử dụng các thuật toán thông minh…
  • Cảnh báo cho người sử dụng phương tiện giao thông: Kết hợp các dữ liệu thời gian thực thu được từ các phương tiện và các camera tĩnh có thể thông tin tới các tài xế để cho người lái xe tự quyết định hành vi của mình như cảnh báo tắc đường, cảnh báo đường cấm, cảnh báo lái xe có dấu hiệu buồn ngủ, cảnh báo lái xe có sử chất kích thích như rượu, bia…

Phát hiện đối tượng real-time với YOLO

YOLO là một thư viện sử dụng trí tuệ nhân tạo để phát hiện đối tượng real-time trong ảnh và video. Ta có thể sử dụng YOLO với nhiều ngôn ngữ khác nhau như Python, Javascript, C++… YOLO xử lý ảnh có thể sử dụng GPU hoặc OPENCV
Trang chủ của YOLO: https://pjreddie.com/darknet/yolo/#demo

Phát hiện đối tượng với YOLO
Phát hiện đối tượng với YOLO

Cài đặt YOLO trên máy ảo

  • Thiết lập máy ảo CENTOS 7
  • Cài đặt git: sudo yum install git
  • cài đặt GCC: # yum group install “Development Tools”
  • Clone project darknet: git clone https://github.com/pjreddie/darknet
  • Cài đặt OPEN CV
    yum install cmake gcc gtk2-devel numpy pkconfig -y
    cd
    wget https://github.com/opencv/opencv/archive/3.4.2.zip
    unzip 3.4.2.zip
    https://www.vultr.com/docs/how-to-install-opencv-on-centos-7
  • Sửa file Makefile dòng OPENCE từ 0 thành 1
  • Biên dịch darknet:
    cd darknet
    make
  • Tải trọng số có sẵn đã được train: wget https://pjreddie.com/media/files/yolov3.weights
  • Test: ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

Một số địa chỉ tham khảo:

https://www.blog.pythonlibrary.org/2018/06/05/creating-pdfs-with-pyfpdf-and-python/

https://pjreddie.com/darknet/yolo/#demo

https://www.vultr.com/docs/how-to-install-opencv-on-centos-7

AI rà soát và đề xuất fix lỗi code

Google, Facebook nghiên cứu và phát triển hệ thống thông minh rà soát bug và đề xuất cách fix cho lập trình viên.

Công cụ của Facebook mang tên Getafix (https://code.fb.com/developer-tools/getafix-how-facebook-tools-learn-to-fix-bugs-automatically/)

Các hệ thống này sử dụng Trí tuệ nhân tạo, thu lập các code lỗi trước đây của lập trình viên, sau đó với các dòng code mới mà lập trình viên viết ra. Hệ thống sẽ đọc và tìm ra code lỗi hoặc nghi ngờ code có lỗi và đề xuất phương án fix cho lập trình viên.

Việc này như các buổi review code cho lập trình viên, nâng cao chất lượng code.