Hiểu ngôn ngữ tự nhiên (NLU)
Câu mẫu (Samples)
Các câu mẫu là những câu nói với mục đích khác nhau mà khách hàng thường đề cập tới. Những câu mẫu có cấu trúc ngữ pháp khác nhau nhưng nội dung tương tự nhau sẽ được tổ chức thành một nhóm - Ý định
Trong mỗi câu mẫu, có thể đánh dấu những từ khóa chính - Thực thể.
Bạn có thể thêm trực tiếp câu mẫu bằng cách chọn Create Samplesđiền nội dung câu mẫu, ngôn ngữ, loại intent và ấn New Samples để thêm câu mẫu hoặc thêm câu mẫu ngay trong phần Intent hoặc tải lên từ file có sẵn.
Ý định (Intent)
Ở phần tài liệu này sẽ hướng dẫn bạn cách tạo ra một ý định với một nhóm câu mẫu giúp đào tạo mô hình AI tốt hơn như thế nào.
Bất kì một câu nào cũng sẽ được chia thành các thành phần nhỏ hơn:
Ý định : đây là nghĩa, mục đích của câu nói. Trong ví dụ trên, ý định ở đây là mua xe.
Đối tượng cụ thể là những sự kiện hoặc thông tin bổ sung giúp bổ sung nghĩa cho câu, ví dụ xe máy điện, Klara a2 ( được định nghĩa là các thực thể trong câu nói, sẽ được nhắc tới cụ thể ở phần tiếp theo trong bài viết này).
Các bạn có thể Ấn Create Intent để thêm mới một Intent hoặc tải lên từ một tệp theo format sau:
Sample: các câu mẫu trong Ý định, mỗi câu mẫu tương ứng 1 dòng
Intent: tên ý định, tiếng Việt không dấu hoặc tiếng Anh, không chứa ký tự đặc biệt.
Language : Ngôn ngữ hỗ trợ, Vi (tiếng Việt), En (Tiếng Anh)...
Confirm Message:(có thể để **{'vi': None}** nếu chưa điền có thông tin)
Domain: Nếu không có thông tin này, hệ thống tự thêm ý định vào Domain GENERAL.
Cùng VinBase học một số mẹo tạo ý định để mô hình AI học tốt nhất nhé!
Không nên | Nên |
---|---|
Không tạo Ý định mà chứa câu mẫu chỉ khác nhau chữ hoa / chữ thường | Thêm ít nhất 30 cách nói cho mỗi Ý định |
Không nên thêm những câu mẫu chỉ thay đổi 1 biến thể duy nhất như số điện thoại, ngày tháng, tên thành phố… | Đảm bảo số lượng dữ liệu trong mỗi ý định là ngang nhau |
Không tạo nhiều ý định với mục đích tương tự nhau | Tạo ý định hợp nhất từ những ý định nhỏ hơn |
Không nên thêm các từ đơn lẻ | Thêm câu đầy đủ |
Thêm các từ viết tắt, từ đồng nghĩa để làm giàu dữ liệu |
- Không tạo Ý định mà chứa câu mẫu chỉ khác nhau chữ hoa / chữ thường: điều này sẽ làm cho dữ liệu nặng hơn nhưng bot không học được nhiều cấu trúc, dẫn tới nhận diện ý định kém.
Sai | Đúng |
---|---|
Mua xe máy điện | Mình muốn mua một chiếc xe máy điện |
mua Xe Máy điện | Tôi cần mua xe máy điện |
MUA XE MÁY ĐIỆN | Làm thế nào để sở hữu chiếc xe này? |
mua Xe Máy Điện | Tôi muốn đặt xe |
- Không nên thêm những câu mẫu chỉ thay đổi 1 biến thể duy nhất như số điện thoại, ngày tháng, tên thành phố…
Sai | Đúng |
---|---|
Mua xe máy klara | Mình muốn mua xe Klara |
Mua xe máy Theon | Tôi cần mua xe máy Theon |
Thêm ít nhất 30 cách nói cho mỗi Ý định | Cho mình đặt lịch bảo dưỡng xe nhé |
Đặt lịch hẹn bảo dưỡng xe ô tô | Giúp tôi hẹn lịch bảo dưỡng xe ô tô vào ngày mai |
-
Thêm ít nhất 30 cách nói cho mỗi Ý định
- Đảm bảo số lượng dữ liệu trong mỗi ý định là ngang nhau: Cố gắng giữ cân bằng về số lượng cách nói giữa các Ý định.
- Không tạo nhiều ý định với mục đích tương tự nhau.
-
Đảm bảo số lượng dữ liệu trong mỗi ý định là ngang nhau: Cố gắng giữ cân bằng về số lượng cách nói giữa các Ý định
-
Không tạo nhiều ý định với mục đích tương tự nhau
Ý định 1: Gặp nhân viên tư vấn
Ý định 2: Chuyển cuộc hội thoại cho nhân viên hỗ trợ
Ý định 3: Muốn nói chuyện với nhân viên
Hợp nhất thành một ý định: Gặp nhân viên tư vấn
-
Tạo ý định hợp nhất từ những ý định nhỏ hơn
Ý định: Mua xe máy điện
Ý định : Mua xe đạp
Ý định: Mua xe ô tô
=> Chuyển về cùng ý định: mua xe
Hỏi lại người dùng: Bạn đang quan tâm tới dòng xe nào?
Xe đạp, xe máy điện, ô tô...
-
Thêm các từ viết tắt, từ đồng nghĩa để làm giàu dữ liệu:
- Ví dụ khi hỏi về địa điểm bán xe: ở đâu, địa chỉ, đại lý, địa điểm…
Thực thể (Entities)
Hiểu một cách đơn giản thực thể chính là từ khóa quan trọng mà người dùng muốn đề câp đến. Bằng việc xây dựng các thực thể trong hoạt động nghiệp vụ, bot của bạn có thể cung cấp các câu trả lời cụ thể cho các truy vấn của khách hàng.
Trên nền tảng vinbase.ai hiện nay có 2 loại thực thể: Thực thể tùy chỉnh và thực thể hệ thống
Thực thể hệ thống:
Hiện tại hệ thống vinbase.ai có khả năng phát hiện tự động 25 thực thể khác nhau trong cùng một câu mẫu được tại trên Chatbot. Bao gồm: Ngày, giờ, vị trí, tên người… Những Thực thể này sẽ được mô hình nhận dạng ngay lập tức, không cần đào tạo.
Dưới đây là mô tả cụ thể về từng entity và ví dụ đi kèm. Việc hiểu rõ các định nghĩa về entity trên hệ thống sẽ giúp bạn dễ dàng hơn trong việc gán nhãn, giúp chatbot nắm được thông tin quan trong mà bạn mong muốn sử dụng.
STT | Tên thực thể | Mô tả sơ qua | Ví dụ / định dạng |
---|---|---|---|
1 | @SYS.EMAIL | Địa chỉ email, thư điện tử | abc@gmail.com |
2 | @SYS.URL | Địa chỉ web | Vinbase.ai |
3 | @SYS.PHONE | Số điện thoại | +84 1 234 5678 |
4 | @SYS.COLOR | màu sắc | Bộ quần áo màu đỏ. |
5 | @SYS.IP | Địa chỉ IP | Ví dụ về địa chỉ IP dạng IPv4: 151.101.65.121 |
6 | @SYS.NUMBER | số | 1234, 567… |
7 | @SYS.MONEY | Đơn vị tiền tệ | Giá của chiếc áo này là 20 ngàn đồng. |
8 | @SYS.GEO-PROVINCE | Đơn vị hành chính gồm tỉnh / thành phố trực thuộc trung ương. | Địa chỉ là ở tỉnh Thanh Hóa. |
9 | @SYS.GEO-DISTRICT | Quận, huyện, thị xã, thành phố trực thuộc tỉnh | Mình đi ăn ở quận Thanh Xuân. |
10 | @SYS.GEO-COUNTRY | Tên một quốc gia | Tôi sống ở Việt Nam. |
11 | @SYS.PERCENT | Phần trăm | Mình có mã giảm giá 20% . |
12 | @SYS.TEMPERATURE | Số/khoảng số + đơn vị đo nhiệt độ | Nhiệt độ ở Hà Nội là 30 oC. |
13 | @SYS.TIME | Thời gian liên quan đến giờ | Thời gian checkin là 13h. |
14 | @SYS.DATETIME | Mốc thời gian liên quan đến ngày | Kì nghỉ là từ 11 đến 15/9/2022. |
15 | @SYS.DISTANCE | Khoảng cách | Từ sân bay tới khách sạn là 10km. |
16 | @SYS.DURATION | Khoảng thời gian | Chuyến nghỉ dưỡng kéo dài 2 ngày 3 đêm. |
17 | @SYS.JOB | Nghề nghiệp | Tôi là nhân viên văn phòng. |
18 | @SYS.ORGANIZATION | Tên tổ chức | Khách sạn của Vingroup. |
19 | @SYS.PERSON | Tên riêng người | Tên của mình là Nguyễn Thị A. |
20 | @SYS.MASS | Số / Khoảng số + đơn vị khối lượng. | Con cua này nặng 200 gram. |
21 | @SYS.SPEED | Tốc độ | Vận tốc của xe là 50km/giờ. |
22 | @SYS.AREA | Số / Khoảng số + đơn vị diện tích | Ngôi nhà này rộng 300m2. |
23 | @SYS.VOLUME | Số / Khoảng số + đơn vị thể tích | Một cốc sinh tố là 250ml. |
24 | @SYS.LOCATION | Địa điểm | Tôi muốn đặt phòng tại Vinpearl Luxury Landmark 81. |
25 | @SYS.EMOJI | Biểu tượng cảm xúc khi chat | :slight_smile:, ❤️, 😑, … |
- Thực thể tùy chỉnh : Với vai trò là quản trị viên, bạn hoàn toàn có thể tạo thêm các thực thể của riêng mình để phát hiện từ khóa tùy thuộc vào ngữ cảnh mà không bị giới hạn ở những thực thể có sẵn trong hệ thống.
Có 3 kiểu giá trị cho thực thể tùy chỉnh:
- Synonym: Một ví dụ để bạn có thể dễ hình dung khi nào nên dùng loại giá trị này là trong thư viện có hàng trăm ngàn tên các loại sách, danh sách tên sách là một giá trị khổng lồ. Lúc này bạn nên dùng kiể synonym cho thực thể.
Chatbot tìm kiếm Thực thể bằng học máy, do đó người tạo Chatbot cần gán nhãn Entity. Sau đó, trong cuộc trò chuyện thực, Chatbot sẽ sử dụng kiến thức được đào tạo để đoán thông tin nào là giá trị của Thực thể (nhưng không tra cứu trong một giá trị danh sách cố định như với dạng listing). Sử dụng loại này nếu giá trị của Thực thể không thể xác định trước.
- Pattern: bạn muốn lấy một giá trị cho thực thể mà định dạng bắt đầu bằng 3 chữ cái và 4 chữ số. Lúc đó, hãy lựa chọn kiểu Pattern và thêm dãy regex sau vào ô nhập từ khóa: [A-Z] 3 [0-9] 4.
Thực thể biểu thức chính quy (regex) trích xuất các giá trị thực thể dựa trên một định dạng mẫu. Bằng cách sử dụng regex, bạn không cần phải tạo một danh sách nghiêm ngặt gồm tất cả các từ. Sử dụng kiểu giá trị này với trường hợp có quy tắc nhận diện các thực thể và số lượng thực thể khổng lồ không thể liệt kê hết.
- Listing: ví dụ thực thể “VIHICLE_KEYWORD” có 3 giá trị cho 3 dòng xe là ô tô, ô tô điện, xe máy điện. hãy tạo 3 giá trị tương ứng nằm trong Thực thể, mỗi giá trị đều chọn kiểu Listing. Với giá trị “Xe_may”, liệt kê các giá trị tương ứng với các cách viết khác nhau.
Để tạo Entity, bạn vào mục Entites, trong phần Custem Entities, Ấn Create Entity và điền các trường thông tin liên quan.
Chatbot tìm kiếm Thực thể với danh sách giá trị là các từ khóa được xác định trước và cố định. Sử dụng loại này nếu các giá trị của các thực thể có giới hạn và có thể xác định trước. Lưu ý: Khi tạo listing nên tạo đa dạng cách viết, kể cả viết tắt, viết sai chính tả, teencode… vì người chat có rất nhiều cách viết khác nhau, càng đa dạng cách viết cho 1 thực thể thì mức độ phát hiện của Chatbot sẽ càng cao.