SlideShare a Scribd company logo
Giới thiệu về A.I.M.L
Phạm Quang Nhật Minh
FPT University
2
Mục lục
● Alicebot là gì?
● AIML là gì?
● Ứng dụng của AIML
● Sử dụng AIML trong dự án chatbot
● Cú pháp của AIML
● Kết luận
● Tài liệu tham khảo
3
AIML là gì?
● Viết tắt của “Artificial Intelligence Markup
Language”
● Được dùng để tạo các kịch bản giao tiếp cho
chatbot
● Tuân theo cú pháp XML
4
AIML là gì?
<category>
<pattern>WHAT ARE YOU</pattern>
<template>
<think><set name="topic">Me</set></think>
I am the latest result in artificial
intelligence, which can reproduce the capabilities
of the human brain with greater speed and
accuracy.
</template>
</category>
5
AIML là gì?
● Các thẻ chính trong AIML
– <aiml>: Thẻ bắt đầu và kết thúc một tài liệu
AIML
– <category>: Thẻ đánh dấu một đơn vị tri thức
(unit of knowledge) trong cơ sở tri thức của
một Alicebot.
– <pattern>: Chứa pattern để đối sánh với
những gì người dùng nói hoặc nhập vào
Alicebot.
– <template>: Chứa phản hồi cho đầu vào của
người dùng.
6
Mục lục
● Alicebot là gì?
● AIML là gì?
● Ứng dụng của AIML
● Sử dụng AIML trong dự án chatbot
● Cú pháp của AIML
● Kết luận
● Tài liệu tham khảo
7
Cú pháp của AIML
● Tag <category> là đơn vị tri thức cơ bản của
tài liệu AIML
● Mỗi category bao gồm:
– Câu hỏi đầu vào
– Câu trả lời
– Các ngữ cảnh (optional context)
8
Cú pháp của AIML
● Mỗi câu hỏi trong category là một pattern
● pattern trong AIML
– Bao gồm từ (words), dấu cách (spaces),
wildcard _, và *
9
RECURSION
● AIML cài đặt recursion với toán tử <srai>
1)Symbolic reduction: Biến các dạng ngữ pháp phức tạp
thành dạng đơn giản hơn
2)Divide and Conquer: Chia input thành 2 hoặc nhiều các
phần nhỏ hơn, và tổng hợp các phản hồi.
3)Synonyms: Ánh xạ các cách nói khác nhau về cùng một
thứ tới cùng một phản hồi (reply)
4)Chỉnh sửa chính tả và ngữ pháp
5)Phát hiện keywords tại các vị trí trong đầu vào
6)Điều kiện (Conditionals) Một số dạng rẽ nhánh có thể được
cài đặt với <srai>
7)Các kết hợp của (1)-(6)
10
Symbolic Reduction
● Quá trình biến các dạng ngữ pháp phức tạp
thành dạng đơn giản hơn
– Ví dụ: câu "DO YOU KNOW WHO
SOCRATES IS" có thể đơn giản hoá thành
"WHO IS SOCRATES"
11
Symbolic Reduction
<category>
<pattern>DO YOU KNOW WHO * IS</pattern>
<template><srai>WHO IS <star/></srai></template>
</category>
● Khi câu đầu vào được đối sánh với pattern, vị trí được
đánh dấu bằng * sẽ được chèn vào câu trả lời với
markup <star/>
● Câu đầu vào ở dạng "Do you know who X is?" sẽ được
đơn giản hoá thành “"Who is X?"
12
Divide and Conquer
● Một số câu hỏi có thể được chia thành các
thành phần nhỏ
– Câu trả lời sẽ là tổng hợp của câu trả lời cho
các thành phần
<category>
<pattern>YES *</pattern>
<template><srai>YES</srai> <sr/></template>
</category>
* <sr/> là cách viết tắt của <srai><star/></srai>
13
Synonyms
● Nhiều cách nói khác nhau thể hiện cùng một ý nghĩa.
● Synonyms cho phép ánh xạ các cách nói khác nhau
thành cùng một template
<category>
<pattern>HELLO</pattern>
<template>Hi there!</template>
</category>
<category>
<pattern>HI</pattern>
<template><srai>HELLO</srai></template>
</category>
14
Spelling and Grammar correction
<category>
<pattern>YOUR A *</pattern>
<template>I think you mean "you’re" or "you
are" not "your."
<srai>YOU ARE A <star/></srai>
</template>
</category>
15
Keywords
● Trong một số trường hợp, chúng ta có thể
muốn chatbot đưa ra câu trả lời nếu một
keyword xuất hiện trong câu hỏi
● Ví dụ:
<category>
<pattern>MOTHER</pattern>
<template> Tell me more about your family. </template>
</category>
16
Keywords
● Ví dụ:
<category>
<pattern>_ MOTHER</pattern>
<template><srai>MOTHER</srai></template>
</category>
– Khi từ _MOTHER xuất hiện ở phần cuối của câu
17
Keywords
● Ví dụ:
<category>
<pattern>MOTHER _</pattern>
<template><srai>MOTHER</srai></template>
</category
– Khi từ _MOTHER xuất hiện ở phần đầu của câu
18
Keywords
● Ví dụ:
<category>
<pattern>_ MOTHER *</pattern>
<template><srai>MOTHER</srai></template>
</category>
– Khi từ _MOTHER xuất hiện ở phần giữa của câu
● Mỗi category trong 3 category cuối sử dụng <srai> để
link tới category đầu
– Cả 4 câu đều có cùng câu trả lời (chỉ cần lưu một lần)
19
Conditionals
● Có thể sử dụng duy nhất một tag <srai> để
viết các rẽ nhánh trong AIML
<category>
<pattern>WHO IS HE</pattern>
<template><srai>WHOISHE <get
name="he"/></srai></template>
</category>
20
Conditionals
● Có thể sử dụng duy nhất một tag <srai> để
viết các rẽ nhánh trong AIML
<category>
<pattern>WHOISHE *</pattern>
<template>He is <get name="he"/>.</template>
</category>
21
Conditionals
● Có thể sử dụng duy nhất một tag <srai> để
viết các rẽ nhánh trong AIML
<category>
<pattern>WHOISHE UNKNOWN</pattern>
<template>I don’t know who he is.</template>
</category>
● Tuỳ thuộc vào việc giá trị của “he” đã được
khởi tạo hay không mà đưa ra câu trả lời
tương ứng
22
Targeting
● Tình huống: khi đầu vào của người dùng
không “match” với bất kỳ pattern nào, bot
không tìm ra trả lời
– Input sẽ được log lại dưới dạng Target
– Botmaster sẽ tạo những phản hồi thích hợp
23
Targeting
User: Where do I find the webpage with Australopithecus?
Alice: Where do you want to find it?
User: Bad Answer Alice, time to Learn a new Line
Alice: How would you answer "Where do I find the webpage with
Australopithecus?"
User: I would say: "http://www.ancientskulls.net/australopithecus.html"
Alice: Thanks, human. Try asking me again.
User: Where do I find the webpage with Australopithecus?
Alice: http://www.ancientskulls.net/australopithecus.html
24
Ngữ cảnh (context)
● Trong AIML từ khoá “that” liên hệ đến câu trả
lời trước đó của bot
● Ví dụ:
<category>
<pattern>YES</pattern>
<that>DO YOU LIKE MOVIES</that>
<template>What is your favorite movie?</template>
</category>
25
Ngữ cảnh (context)
● Ví dụ:
<category>
<pattern>YES</pattern>
<that>DO YOU LIKE MOVIES</that>
<template>What is your favorite movie?</template>
</category>
● <that>...</that> chứa pattern match với câu
trả lời trước đó của bot
– Bot phải biết là người dùng trả lời YES cho
câu hỏi nào.
26
Ngữ cảnh (Context)
● Khi nào sử dụng ngữ cảnh
– Khi câu hỏi đầu vào match với nhiều pattern
khác nhau, chương trình phải phân biệt
chúng bằng context (giá trị trong
<that>...</that>)
– Nếu có nhiều category có cùng <pattern> và
<that>, chương trình sẽ xem xét đến <topic>
27
Ngữ cảnh (Context)
<topic name="CARS">
<category>
<pattern>*</pattern>
<template>
<random>
<li>What’s your favorite car?</li>
<li>What kind of car do you drive?</li>
<li>Do you get a lot of parking tickets?</li>
<li>My favorite car is one with a driver.</li>
</random>
</template>
28
Tài liệu tham khảo
● AIML Overview
– http://tinyurl.com/4qeu5y
● What is AIML?
– http://tinyurl.com/oqhd5
● AIML Implementations
– http://tinyurl.com/2appwo
● AI Chat Bot in Python with AIML
– http://tinyurl.com/jruh88e

More Related Content

What's hot

Mot so ham do hoa trong c c++
Mot so ham do hoa trong c c++Mot so ham do hoa trong c c++
Mot so ham do hoa trong c c++
ANHMATTROI
 
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
Pix Nhox
 
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UMLPHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
Dang Tuan
 
Bài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhBài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tính
Cao Toa
 
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
Thùy Linh
 

What's hot (20)

Nhập môn công nghệ thông tin
Nhập môn công nghệ thông tinNhập môn công nghệ thông tin
Nhập môn công nghệ thông tin
 
Chuong 6
Chuong 6Chuong 6
Chuong 6
 
Mot so ham do hoa trong c c++
Mot so ham do hoa trong c c++Mot so ham do hoa trong c c++
Mot so ham do hoa trong c c++
 
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
 
báo cáo bài tập lớn phân tích thiết kế hệ thống quản lý khách sạn
báo cáo bài tập lớn phân tích thiết kế hệ thống quản lý khách sạnbáo cáo bài tập lớn phân tích thiết kế hệ thống quản lý khách sạn
báo cáo bài tập lớn phân tích thiết kế hệ thống quản lý khách sạn
 
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UMLPHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
 
【 Giáo Trình 】Tài Liệu Nhập Môn Blender
【 Giáo Trình 】Tài Liệu Nhập Môn Blender【 Giáo Trình 】Tài Liệu Nhập Môn Blender
【 Giáo Trình 】Tài Liệu Nhập Môn Blender
 
Luận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAY
Luận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAYLuận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAY
Luận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAY
 
Đề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đ
Đề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đĐề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đ
Đề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đ
 
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng pythonBáo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
 
hệ quản trị cơ sỡ dữ liệu bán vé xem phim
hệ quản trị cơ sỡ dữ liệu bán vé xem phimhệ quản trị cơ sỡ dữ liệu bán vé xem phim
hệ quản trị cơ sỡ dữ liệu bán vé xem phim
 
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
 
Hệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng online
 
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
 
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
Bài 3: Xác định yêu cầu hệ thống & Phân tích quy trình xử lý nghiệp vụ - Giáo...
Bài 3: Xác định yêu cầu hệ thống & Phân tích quy trình xử lý nghiệp vụ - Giáo...Bài 3: Xác định yêu cầu hệ thống & Phân tích quy trình xử lý nghiệp vụ - Giáo...
Bài 3: Xác định yêu cầu hệ thống & Phân tích quy trình xử lý nghiệp vụ - Giáo...
 
Bài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhBài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tính
 
Báo cáo thực tập công nghệ thông tin.
Báo cáo thực tập công nghệ thông tin.Báo cáo thực tập công nghệ thông tin.
Báo cáo thực tập công nghệ thông tin.
 
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
 

More from Minh Pham

More from Minh Pham (13)

Prompt Engineering Tutorial: Cách viết prompt hiệu quả với ChatGPT
Prompt Engineering Tutorial: Cách viết prompt hiệu quả với ChatGPTPrompt Engineering Tutorial: Cách viết prompt hiệu quả với ChatGPT
Prompt Engineering Tutorial: Cách viết prompt hiệu quả với ChatGPT
 
AimeLaw at ALQAC 2021: Enriching Neural Network Models with Legal-Domain Know...
AimeLaw at ALQAC 2021: Enriching Neural Network Models with Legal-Domain Know...AimeLaw at ALQAC 2021: Enriching Neural Network Models with Legal-Domain Know...
AimeLaw at ALQAC 2021: Enriching Neural Network Models with Legal-Domain Know...
 
A Multimodal Ensemble Model for Detecting Unreliable Information on Vietnames...
A Multimodal Ensemble Model for Detecting Unreliable Information on Vietnames...A Multimodal Ensemble Model for Detecting Unreliable Information on Vietnames...
A Multimodal Ensemble Model for Detecting Unreliable Information on Vietnames...
 
Research methods for engineering students (v.2020)
Research methods for engineering students (v.2020)Research methods for engineering students (v.2020)
Research methods for engineering students (v.2020)
 
Mạng neural nhân tạo và ứng dụng trong xử lý ngôn ngữ tự nhiên
Mạng neural nhân tạo và ứng dụng trong xử lý ngôn ngữ tự nhiênMạng neural nhân tạo và ứng dụng trong xử lý ngôn ngữ tự nhiên
Mạng neural nhân tạo và ứng dụng trong xử lý ngôn ngữ tự nhiên
 
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingBERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
 
Deep Contexualized Representation
Deep Contexualized RepresentationDeep Contexualized Representation
Deep Contexualized Representation
 
Research Methods in Natural Language Processing (2018 version)
Research Methods in Natural Language Processing (2018 version)Research Methods in Natural Language Processing (2018 version)
Research Methods in Natural Language Processing (2018 version)
 
A Feature-Based Model for Nested Named-Entity Recognition at VLSP-2018 NER Ev...
A Feature-Based Model for Nested Named-Entity Recognition at VLSP-2018 NER Ev...A Feature-Based Model for Nested Named-Entity Recognition at VLSP-2018 NER Ev...
A Feature-Based Model for Nested Named-Entity Recognition at VLSP-2018 NER Ev...
 
Về kỹ thuật Attention trong mô hình sequence-to-sequence tại hội nghị ACL 2017
Về kỹ thuật Attention trong mô hình sequence-to-sequence  tại hội nghị ACL 2017Về kỹ thuật Attention trong mô hình sequence-to-sequence  tại hội nghị ACL 2017
Về kỹ thuật Attention trong mô hình sequence-to-sequence tại hội nghị ACL 2017
 
Research Methods in Natural Language Processing
Research Methods in Natural Language ProcessingResearch Methods in Natural Language Processing
Research Methods in Natural Language Processing
 
Các bài toán xử lý ngôn ngữ tự nhiên trong phát triển hệ thống chatbot
Các bài toán xử lý ngôn ngữ tự nhiên trong phát triển hệ thống chatbotCác bài toán xử lý ngôn ngữ tự nhiên trong phát triển hệ thống chatbot
Các bài toán xử lý ngôn ngữ tự nhiên trong phát triển hệ thống chatbot
 
Introduction to natural language processing
Introduction to natural language processingIntroduction to natural language processing
Introduction to natural language processing
 

Recently uploaded

BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000
BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000
BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000
support03
 

Recently uploaded (8)

Khóa luận tốt nghiệp Công tác Quản trị Văn phòng tại Công ty than Khe Chàm
Khóa luận tốt nghiệp Công tác Quản trị Văn phòng tại Công ty than Khe ChàmKhóa luận tốt nghiệp Công tác Quản trị Văn phòng tại Công ty than Khe Chàm
Khóa luận tốt nghiệp Công tác Quản trị Văn phòng tại Công ty than Khe Chàm
 
Khoá luận tốt nghiệp Công nghệ sinh học Nghiên cứu tuyển chọn chủng vi sinh v...
Khoá luận tốt nghiệp Công nghệ sinh học Nghiên cứu tuyển chọn chủng vi sinh v...Khoá luận tốt nghiệp Công nghệ sinh học Nghiên cứu tuyển chọn chủng vi sinh v...
Khoá luận tốt nghiệp Công nghệ sinh học Nghiên cứu tuyển chọn chủng vi sinh v...
 
Tín hiệu xếp hạng trên Google là những gì.pdf
Tín hiệu xếp hạng trên Google là những gì.pdfTín hiệu xếp hạng trên Google là những gì.pdf
Tín hiệu xếp hạng trên Google là những gì.pdf
 
BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000
BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000
BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000
 
BT quy hoạch tuyến tính (có lời giải chi tiết)
BT quy hoạch tuyến tính (có lời giải chi tiết)BT quy hoạch tuyến tính (có lời giải chi tiết)
BT quy hoạch tuyến tính (có lời giải chi tiết)
 
Google E-E-A-T là gì? Yếu tố giúp Google đánh giá website của bạn
Google E-E-A-T là gì? Yếu tố giúp Google đánh giá website của bạnGoogle E-E-A-T là gì? Yếu tố giúp Google đánh giá website của bạn
Google E-E-A-T là gì? Yếu tố giúp Google đánh giá website của bạn
 
Khóa luận tốt nghiệp Công nghệ kỹ thuật hóa học Xây dựng phương pháp định lượ...
Khóa luận tốt nghiệp Công nghệ kỹ thuật hóa học Xây dựng phương pháp định lượ...Khóa luận tốt nghiệp Công nghệ kỹ thuật hóa học Xây dựng phương pháp định lượ...
Khóa luận tốt nghiệp Công nghệ kỹ thuật hóa học Xây dựng phương pháp định lượ...
 
Checklist SEO để tối ưu website mà bạn cần biết.pdf
Checklist SEO để tối ưu website mà bạn cần biết.pdfChecklist SEO để tối ưu website mà bạn cần biết.pdf
Checklist SEO để tối ưu website mà bạn cần biết.pdf
 

Giới thiệu về AIML

  • 1. Giới thiệu về A.I.M.L Phạm Quang Nhật Minh FPT University
  • 2. 2 Mục lục ● Alicebot là gì? ● AIML là gì? ● Ứng dụng của AIML ● Sử dụng AIML trong dự án chatbot ● Cú pháp của AIML ● Kết luận ● Tài liệu tham khảo
  • 3. 3 AIML là gì? ● Viết tắt của “Artificial Intelligence Markup Language” ● Được dùng để tạo các kịch bản giao tiếp cho chatbot ● Tuân theo cú pháp XML
  • 4. 4 AIML là gì? <category> <pattern>WHAT ARE YOU</pattern> <template> <think><set name="topic">Me</set></think> I am the latest result in artificial intelligence, which can reproduce the capabilities of the human brain with greater speed and accuracy. </template> </category>
  • 5. 5 AIML là gì? ● Các thẻ chính trong AIML – <aiml>: Thẻ bắt đầu và kết thúc một tài liệu AIML – <category>: Thẻ đánh dấu một đơn vị tri thức (unit of knowledge) trong cơ sở tri thức của một Alicebot. – <pattern>: Chứa pattern để đối sánh với những gì người dùng nói hoặc nhập vào Alicebot. – <template>: Chứa phản hồi cho đầu vào của người dùng.
  • 6. 6 Mục lục ● Alicebot là gì? ● AIML là gì? ● Ứng dụng của AIML ● Sử dụng AIML trong dự án chatbot ● Cú pháp của AIML ● Kết luận ● Tài liệu tham khảo
  • 7. 7 Cú pháp của AIML ● Tag <category> là đơn vị tri thức cơ bản của tài liệu AIML ● Mỗi category bao gồm: – Câu hỏi đầu vào – Câu trả lời – Các ngữ cảnh (optional context)
  • 8. 8 Cú pháp của AIML ● Mỗi câu hỏi trong category là một pattern ● pattern trong AIML – Bao gồm từ (words), dấu cách (spaces), wildcard _, và *
  • 9. 9 RECURSION ● AIML cài đặt recursion với toán tử <srai> 1)Symbolic reduction: Biến các dạng ngữ pháp phức tạp thành dạng đơn giản hơn 2)Divide and Conquer: Chia input thành 2 hoặc nhiều các phần nhỏ hơn, và tổng hợp các phản hồi. 3)Synonyms: Ánh xạ các cách nói khác nhau về cùng một thứ tới cùng một phản hồi (reply) 4)Chỉnh sửa chính tả và ngữ pháp 5)Phát hiện keywords tại các vị trí trong đầu vào 6)Điều kiện (Conditionals) Một số dạng rẽ nhánh có thể được cài đặt với <srai> 7)Các kết hợp của (1)-(6)
  • 10. 10 Symbolic Reduction ● Quá trình biến các dạng ngữ pháp phức tạp thành dạng đơn giản hơn – Ví dụ: câu "DO YOU KNOW WHO SOCRATES IS" có thể đơn giản hoá thành "WHO IS SOCRATES"
  • 11. 11 Symbolic Reduction <category> <pattern>DO YOU KNOW WHO * IS</pattern> <template><srai>WHO IS <star/></srai></template> </category> ● Khi câu đầu vào được đối sánh với pattern, vị trí được đánh dấu bằng * sẽ được chèn vào câu trả lời với markup <star/> ● Câu đầu vào ở dạng "Do you know who X is?" sẽ được đơn giản hoá thành “"Who is X?"
  • 12. 12 Divide and Conquer ● Một số câu hỏi có thể được chia thành các thành phần nhỏ – Câu trả lời sẽ là tổng hợp của câu trả lời cho các thành phần <category> <pattern>YES *</pattern> <template><srai>YES</srai> <sr/></template> </category> * <sr/> là cách viết tắt của <srai><star/></srai>
  • 13. 13 Synonyms ● Nhiều cách nói khác nhau thể hiện cùng một ý nghĩa. ● Synonyms cho phép ánh xạ các cách nói khác nhau thành cùng một template <category> <pattern>HELLO</pattern> <template>Hi there!</template> </category> <category> <pattern>HI</pattern> <template><srai>HELLO</srai></template> </category>
  • 14. 14 Spelling and Grammar correction <category> <pattern>YOUR A *</pattern> <template>I think you mean "you’re" or "you are" not "your." <srai>YOU ARE A <star/></srai> </template> </category>
  • 15. 15 Keywords ● Trong một số trường hợp, chúng ta có thể muốn chatbot đưa ra câu trả lời nếu một keyword xuất hiện trong câu hỏi ● Ví dụ: <category> <pattern>MOTHER</pattern> <template> Tell me more about your family. </template> </category>
  • 16. 16 Keywords ● Ví dụ: <category> <pattern>_ MOTHER</pattern> <template><srai>MOTHER</srai></template> </category> – Khi từ _MOTHER xuất hiện ở phần cuối của câu
  • 17. 17 Keywords ● Ví dụ: <category> <pattern>MOTHER _</pattern> <template><srai>MOTHER</srai></template> </category – Khi từ _MOTHER xuất hiện ở phần đầu của câu
  • 18. 18 Keywords ● Ví dụ: <category> <pattern>_ MOTHER *</pattern> <template><srai>MOTHER</srai></template> </category> – Khi từ _MOTHER xuất hiện ở phần giữa của câu ● Mỗi category trong 3 category cuối sử dụng <srai> để link tới category đầu – Cả 4 câu đều có cùng câu trả lời (chỉ cần lưu một lần)
  • 19. 19 Conditionals ● Có thể sử dụng duy nhất một tag <srai> để viết các rẽ nhánh trong AIML <category> <pattern>WHO IS HE</pattern> <template><srai>WHOISHE <get name="he"/></srai></template> </category>
  • 20. 20 Conditionals ● Có thể sử dụng duy nhất một tag <srai> để viết các rẽ nhánh trong AIML <category> <pattern>WHOISHE *</pattern> <template>He is <get name="he"/>.</template> </category>
  • 21. 21 Conditionals ● Có thể sử dụng duy nhất một tag <srai> để viết các rẽ nhánh trong AIML <category> <pattern>WHOISHE UNKNOWN</pattern> <template>I don’t know who he is.</template> </category> ● Tuỳ thuộc vào việc giá trị của “he” đã được khởi tạo hay không mà đưa ra câu trả lời tương ứng
  • 22. 22 Targeting ● Tình huống: khi đầu vào của người dùng không “match” với bất kỳ pattern nào, bot không tìm ra trả lời – Input sẽ được log lại dưới dạng Target – Botmaster sẽ tạo những phản hồi thích hợp
  • 23. 23 Targeting User: Where do I find the webpage with Australopithecus? Alice: Where do you want to find it? User: Bad Answer Alice, time to Learn a new Line Alice: How would you answer "Where do I find the webpage with Australopithecus?" User: I would say: "http://www.ancientskulls.net/australopithecus.html" Alice: Thanks, human. Try asking me again. User: Where do I find the webpage with Australopithecus? Alice: http://www.ancientskulls.net/australopithecus.html
  • 24. 24 Ngữ cảnh (context) ● Trong AIML từ khoá “that” liên hệ đến câu trả lời trước đó của bot ● Ví dụ: <category> <pattern>YES</pattern> <that>DO YOU LIKE MOVIES</that> <template>What is your favorite movie?</template> </category>
  • 25. 25 Ngữ cảnh (context) ● Ví dụ: <category> <pattern>YES</pattern> <that>DO YOU LIKE MOVIES</that> <template>What is your favorite movie?</template> </category> ● <that>...</that> chứa pattern match với câu trả lời trước đó của bot – Bot phải biết là người dùng trả lời YES cho câu hỏi nào.
  • 26. 26 Ngữ cảnh (Context) ● Khi nào sử dụng ngữ cảnh – Khi câu hỏi đầu vào match với nhiều pattern khác nhau, chương trình phải phân biệt chúng bằng context (giá trị trong <that>...</that>) – Nếu có nhiều category có cùng <pattern> và <that>, chương trình sẽ xem xét đến <topic>
  • 27. 27 Ngữ cảnh (Context) <topic name="CARS"> <category> <pattern>*</pattern> <template> <random> <li>What’s your favorite car?</li> <li>What kind of car do you drive?</li> <li>Do you get a lot of parking tickets?</li> <li>My favorite car is one with a driver.</li> </random> </template>
  • 28. 28 Tài liệu tham khảo ● AIML Overview – http://tinyurl.com/4qeu5y ● What is AIML? – http://tinyurl.com/oqhd5 ● AIML Implementations – http://tinyurl.com/2appwo ● AI Chat Bot in Python with AIML – http://tinyurl.com/jruh88e