Natural Language Processing on Ios Application Implement Viper Clean Architecture in an Ios App

Abstract

Xây dựng ứng dụng iOS với kiến trúc VIPER về dự đoán tác giả bài thơ. Input đầu vào là một đoạn text đoạn thơ người dùng nhập vào và output là tác giả của đoạn thơ đó. Ví dụ: INPUT = Sao anh không về chơi thôn Vĩ? → OUTPUT = Hàn Mặc Tử

  • Tìm hiểu về Bag of Words, Turi Create.
  • Xây dựng ứng dụng iOS trên kiến trúc VIPER Clean Architecture
  • Một số từ khóa liên quan: Bag of Word, Logictic Classifier, Turi Create VIPER, iOS Application

Đặt Vấn Đề

INPUT STRING:

Sao anh không về chơi thôn Vĩ? Nhìn nắng hàng cau nắng mới lên  →  Hàn Mặc Tử

Nếu sử dụng các phương thức string compare chúng ta sẽ gặp rất nhiều trường hợp để xử lý về format, break, space brute-force So it’s hard to do a blind string compare. Vì vậy chúng ta cần một mô hình để đưa ra dự đoán

Thực hiện

Sẽ bao gồm 3 bước chính. 1. Crawler dữ liệu, 2. Xây dựng mô hình bằng TuriCreate, 3. Triển khai mô hình trên ứng dụng iOS

1. Crawl dữ liệu

Dữ liệu từ trang https://poem.tkaraoke.com. Với nhiều tác giả khác nhau

Bạn có thể xem đầy đủ source-code ở đây Poem_Scraping.ipynb.

Corpus

Json format | Bao gồm 696 bài thơ của 10 tác giả:

{"title": "âm nhạc", "text": "Tinh hơn đồng trinh. Hừng qua hừng đông. Em mình nghe không. Im chưa nên đông. Say chưa ra lòng. Đều ngâm giấm cả . Màu nào sắp rã. Vồng nào sắp cao. Ánh nào tương giao. Muôn thương đều lắng. Nhấn nào khăn khắn...", "author": "Hàn Mặc Tử"}

tandat1405

Export coreml - Logistic regression

Từ corpus trên ta tiến hành tạo model bằng Turicreate. Bạn tham khảo tài liệu tại đây: turicreate-userguide

Xây dựng ứng dụng ios

Với textField là nơi người dùng nhập vào một đoạn thơ bất kỳ, và đầu ra là danh sách dự đoán tác giả của đoạn text trên. Xây dựng ứng dụng với giao diện sau

Tổng kết

Với việc phần chia công việc cho từng thành phần của kiến trúc VIPER Chúng ta sẽ chia nhỏ ra các việc ra và mỗi phần đảm nhiệm một việc. Việc xử lý nhuần nhuyễn giữa các thành phần, giữa các modules với nhau sẽ làm cho code của chúng ta sạch, rõ ràng và dễ nâng cấp trong tương lai.

Bạn có thể tham khảo source-code ứng dụng tại đây: PoemFinder-Swift5-ViperArch

Ref

Michael Katz - Natural Language Processing on iOS with Turi Create

Apple - turicreate

Posts in this Series