23
Bài 2 Natural Language Understanding (NLU) - Artificial Intelligence Markup Language (AIML) Hà Nội 2013

Hà Nội 2013

  • Upload
    bing

  • View
    65

  • Download
    0

Embed Size (px)

DESCRIPTION

B ài 2 Natural Language Understanding ( NLU) - Artificial Intelligence Markup Language ( AIML). Hà Nội 2013. Yêu cầu :. Eclipse đã cài đặt ADT, Android SDK Cài đặt Robot SDK Ref erence : http ://ftri.fpt.edu.vn/robot/docs/NAO/SDK.html. Mục đích :. - PowerPoint PPT Presentation

Citation preview

Page 1: Hà Nội  2013

Bài 2 Natural Language Understanding (NLU) - Artificial Intelligence Markup Language (AIML)

Hà Nội 2013

Page 2: Hà Nội  2013

• Eclipse đã cài đặt ADT, Android SDK• Cài đặt Robot SDK

Reference: http://ftri.fpt.edu.vn/robot/docs/NAO/SDK.html

Yêu cầu:

Page 3: Hà Nội  2013

• Giới thiệu các API của NLU và AIMLMục đích:

Page 4: Hà Nội  2013

• NLU liên quan chủ yếu đến bài toán phân lớp: C = {c1, c2, …, ck} tập k lớp X = {xi} (i=1,2,…) là tập các đối tượng cần phân lớp Xây dựng ánh xạ f:

f là mô hình phân lớp (classification model, classifier).• f có thể được xây dựng bằng học giám sát dựa theo

tập dữ liệu huấn luyện D = {(x1, c1), (x2, c2), …, (xn, cn)}: Huấn luyện mô hình f dựa trên tập huấn luyện D sao cho f phân

lớp chính xác nhất.

Task 1: NLU

X Cf

Page 5: Hà Nội  2013

Một số mô hình phân loại: Mô hình Naïve Bayes Mô hình TF IDF Mô hình Bernoulli

Tham khảo tài liệu link.

Page 6: Hà Nội  2013

• NLU API

Train Learn

Classify

Training Data

NLU API

Page 7: Hà Nội  2013

Dữ liệu training được chứa trong 1 file text có format như sau: Mỗi dòng chứa 1 label (action) và text.

Lưu ý: File này phải lưu ở sdcard khi sử dụng.

Page 8: Hà Nội  2013

API được định nghĩa trong TextClassifier class. Hầu hết các hàm là asynchronize methods: set

callback thông qua method:

Train API:

Page 9: Hà Nội  2013

Classify API:

Page 10: Hà Nội  2013

Learn API:

Page 11: Hà Nội  2013

Tạo 1 robot project mới có 2 layout: activity_main.xml

activity_other.xml

Page 12: Hà Nội  2013

Tạo 1 object TextClassifier:

Có thể lấy 1 list các action (label) được sắp xếp theo thứ tự giảm dần của xác suất:

Hoặc lấy action với xác suất lớn nhất:

Page 13: Hà Nội  2013

Để học dữ liệu mới:

Có thể download source code theo link

Page 14: Hà Nội  2013

Task 2: AIML AIML API được định nghĩa trong ChatBot class. Nó bao gồm:

Train API:

Page 15: Hà Nội  2013

Get response API:

Page 16: Hà Nội  2013

Ngoài ra còn có 1 số API khác:

Page 17: Hà Nội  2013

Sphinx + AIML project: Tạo các layout:

Page 18: Hà Nội  2013

Copy aiml, sphinx data vào assets folder:

Lưu ý: Aiml data phải được chứa trong thư mục bots của assets. Thư

mục tiếp theo là có tên giống như tên của chat bot. Các câu hỏi được chứa trong file question_data.txt.

Page 19: Hà Nội  2013

Copy aiml, sphinx data vào assets folder:

Lưu ý: Aiml data phải được chứa trong thư mục bots của assets. Thư

mục tiếp theo là có tên giống như tên của chat bot. Các câu hỏi được chứa trong file question_data.txt. Các dữ liệu trong assets sẽ được copy vào sdcard trong lần đầu

chạy app.

Page 20: Hà Nội  2013

Để train aiml phải copy dữ liệu vào sdcard trước. Sau đó set chat bot name cho Chatbot class.

Page 21: Hà Nội  2013

Để train sphinx data, phải đọc list câu hỏi vào 1 mảng.

Page 22: Hà Nội  2013

Lấy response từ input text:

Download source code từ link.

Page 23: Hà Nội  2013

Thanks for Listening!!!