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