SlideShare uma empresa Scribd logo
1 de 77
1
Báo cáo nghiên cứu Q3
Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent
Detection) và sửa lỗi chính tả trong tiếng Việt (Spell
Correction)
1
ThanhTT
thanhtt@vietnamlab.vn
HN: 2018-09-21
https://vietnamlab.vn/
https://codetudau.com/
Nội dung trình bày
• Giới thiệu về NLP, ứng dụng của NLP
• Lý do chọn đề tài
• Các vấn đề cần giải quyết
• Bài toán xác định ý định người dùng (Intent Detection)
• Bài toán sửa lỗi chính tả (Spell Correction)
• Một số khó khăn gặp phải
• Phương hướng phát triển
2
NLP là gì
• Natural Language Processing
• Là một nhánh của trí tuệ nhân tạo tập trung vào các ứng dụng
trên ngôn ngữ của con người.
• NLP là 1 trong những phần khó nhất vì nó liên quan đến việc
phải hiểu ý nghĩa ngôn ngữ, giao tiếp.
3
NLP có còn đang sôi động ?
4
Các giải pháp phần mềm ứng dụng NLP sẽ giúp thị trường tăng trưởng từ $300 million (2018) đến $5.4 billion
Ứng dụng của NLP
5
#1. Sentiment Analysis
Ứng dụng của NLP
6
#2. Chatbots
• Trò chuyện -> Biết được sở thích, tính cách của người dùng
• Trợ lý ảo
• Giải đáp thắc mắc, tư vấn sản phẩm, dịch vụ cho khách hàng
Ứng dụng của NLP
7
#3. Customer Service
Ứng dụng của NLP
8
#4. Managing the Advertisement Funnel
• Sử dụng NLP để phân tích lịch sử truy cập website, thông tin cá nhân người dùng
• Đưa ra những quảng cáo phù hợp với từng người
• Hiển thị quảng cáo với những đối tượng phù hợp ...
Ứng dụng của NLP
9
#5. Market Intelligence
Thị trường kinh doanh luôn biến động, và bị ảnh hưởng bởi kiến thức thị trường,
thông tin kinh doanh, báo cáo kinh doanh của các công ty, tổ chức.
-> NLP giúp theo dõi, giám sát thông tin thị trường, trích xuất thông tin quan trọng
Lý do chọn đề tài
10
Mục tiêu là xây dựng hệ thống chatbot, AI Assistant, smart home.
Cùng với sự phát triển của NLP, các hệ thống sử dụng NLP càng thông minh hơn, càng có nhiều người quan tâm hơn
Thị trường Việt Nam còn rất nhiều cơ hội.
Các vấn đề cần giải quyết
1. Bài toán xác định ý định người dùng (Intent detection)
2. Bài toán nhận dạng thực thể (Named-entity recognition)
11
Các vấn đề cần giải quyết
1. Bài toán xác định ý định người dùng (Intent detection)
2. Bài toán nhận dạng thực thể (Named-entity recognition)
12
Xác định ý định người dùng (Intent detection)
• Ý định(Intent) là gì ?
Điều mà người dùng mong muốn chatbot,
smart home, assistant thực hiện.
• Intent được xác định sẽ quyết định kịch bản
của đoạn hội thoại tiếp theo
Xác định sai:
↪︎ Phản hồi không thích hợp → người dùng sẽ không hài lòng → 🤛
13
Vấn đề gặp phải là gì ? (Intent detection)
Ví dụ người dùng muốn hỏi thời tiết hôm nay:
• Thời tiết hôm nay thế nào ?
• Hôm nay mưa không em ơi ?
• Thời tiết khó chịu nhỉ ?
• Hôm nay không mưa à ?
....
• Làm sao để có thể nhận biết được
những cách diễn đạt khác nhau
cho cùng 1 intent ?
14
Vấn đề gặp phải là gì ? (Intent detection)
• Xử lý vấn đề sai chính tả
• Sai dấu, x,s,l,n...
• Các từ viết tắt, teencode
15
Cách giải quyết bài toán xác định Intent
• Xác định số lượng intent (hữu hạn hay vô hạn)
– Closed domain→ số lượng intent là hữu hạn
• Xác định intent bằng cách sử dụng phương pháp phân loại văn
bản(Text classification)
16
intent Câu ví dụ
hoi_thoi_tiet Mai mưa không em ?
hoi_thoi_tiet Thời tiết ngày mai thế nào ?
chao_hoi Chào em
chao_hoi Hi
Cách giải quyết bài toán xác định Intent
17
Mô hình hệ thống phân lớp intent
Chuẩn bị dữ liệu huấn luyện
• Mỗi intent chuẩn bị từ 2-5 mẫu câu
18
intent Câu ví dụ
hoi_thoi_tiet Mai mưa không em ?
hoi_thoi_tiet Thời tiết ngày mai thế nào ?
chao_hoi Chào em
chao_hoi Hi
ví dụ tập huấn luyện hệ thống chatbot
Tiền xử lý
Tách từ (Word segmentation)
• Mục đích để tạo vector ngữ nghĩa của câu.
Khác với tiếng anh mỗi từ có nghĩa cách nhau bởi space.
Ví dụ: Tôi yêu xử lý ngôn ngữ tự nhiên
Tách theo âm tiết: Tôi | yêu | xử | lý | ngôn | ngữ | tự | nhiên
Tách theo từ: Tôi | yêu | xử_lý | ngôn_ngữ | tự_nhiên
Sử dụng phương pháp pointwise cho tách từ tiếng Việt
https://www.scribd.com/fullscreen/342411823?access_key=key-UJOfjnzF9fZfZiAgnaR8
19
Tiền xử lý
20
Xử lý sai chính tả (Spell Correction)
Sai chính tả thì chính con người còn khó hiểu huống chi là máy
Rất tiếc là ở VN chưa có mã nguồn nào giải quyết vấn đề này. (T . T)
-> Việc gì khó quá thì bỏ qua.
Tiền xử lý
• Xử lý các từ viết tắt
user: Good night
machine: Good night! I love u
user: G9
machine:%#$&%#$%@
21
Trích xuất đặc trưng
22
Trích xuất đặc trưng(Feature Extraction)
• Biểu diễn ngôn ngữ loài người dưới dạng số sao cho có nghĩa
và machine có thể hiểu được.
• Word2Vec, One-hot Encoding, Bag of Words...
• Hiện tại sử dụng Bag of Words(BoW) để giải quyết vấn đề này.
– Lý do: Lượng data hiện tại ít, đơn giản, dễ dàng cài đặt
– Nếu có nhiều dữ liệu thì Word2Vec là lựa chọn hàng đầu.
23
Trích xuất đặc trưng(Feature Extraction)
• Bag of Words hoạt động như thế nào ?
• Ví dụ:
– The quick brown fox jumps over the lazy dog and(*)
– Never jump over the lazy dog quickly (**)
24
(*) -> [1,1,1,0,1,1,0,1,1,0,2]
(**) -> [0,1,0,1,0,1,1,1,0,1,1]
Bước 1:
Trích xuất đặc trưng(Feature Extraction)
• Tuy nhiên thực tế nhận thấy trong 1 câu tiếng Việt, 1 từ được
lặp lại nhiều lần thường là keyword
• Ngược lại từ nào mà câu nào cũng xuất hiện lại là những từ
không quan trọng.
=> Vậy có cách nào giải quyết được vấn đề này ?
25
Trích xuất đặc trưng(Feature Extraction)
• TF-IDF
– TF =
26
• f(t,d) - số lần xuất hiện từ t trong 1 câu (d)
• mẫu số: tổng số từ trong 1 câu (d)
• Số lần xuất hiện 1 từ trong câu càng nhiều thì TF càng
(TH lần này d chính là 1 câu)
• |D|: tổng số câu trong tập D
• mẫu số: số câu chứa từ t
• Càng nhiều câu chứ từ t thì idf càng thấp
log(8/3) = 0.4259
log(8/7) = 0.0579
Trích xuất đặc trưng(Feature Extraction)
27
The quick brown fox jumps over the lazy dog
and(*)
Never jump over the lazy dog quickly (**)
https://codetudau.com/bag-of-words-tf-idf-xu-ly-ngon-ngu-tu-nhien/
(*) -> [1,1,1,0,1,1,0,1,1,0,2]
(**) -> [0,1,0,1,0,1,1,1,0,1,1]
*TF*IDF
BoW
Huấn luyện mô hình (Train Model)
28
Đưa về bài toán Text Classification
intent Câu ví dụ
hoi_thoi_tiet Mai mưa không em ?
hoi_thoi_tiet Thời tiết ngày mai thế nào ?
chao_hoi Chào em
chao_hoi Hi
Huấn luyện mô hình (Train Model)
• Lựa chọn mô hình
• Naive Bayes
• SVM (more data)
• SGDClassifier(more data)
• RF...
29
Kết quả bài toán Intent Detection
30
Feature(RAW) Target
Hôm nay trời đẹp không ? hoi_thoi_tiet
Hôm nay thời tiết thế nào ? hoi_thoi_tiet
Hôm nay mưa không ? hoi_thoi_tiet
Chào em gái chao_hoi
Chào bạn chao_hoi
Hello bạn chao_hoi
Hi em chao_hoi
Đây là toàn bộ train data
Mong muốn hỏi những cách hỏi khác, máy vẫn chọn ra target đúng.
Kết quả bài toán Intent Detection
• Với những câu không có trong training data vẫn có thể xác
định chính xác.
• Nóng quá, liệu mưa không em ơi?
31
Nhưng ....
32
Tiền xử lý
33
Xử lý sai chính tả (Spell Correction)
Sai chính tả thì chính con người còn khó hiểu huống chi là máy
Rất tiếc là ở VN chưa có mã nguồn nào giải quyết vấn đề này. (T . T)
-> Việc gì khó quá thì bỏ qua.
Giải quyết như thế nào ?
34
Bài toán sửa lỗi chính tả (Spell Correction)
• Phương pháp giải quyết đơn giản nhất
35
http://norvig.com/spell-correct.html
Bài toán sửa lỗi chính tả (Spell Correction)
36
Ưu điểm Hạn chế
Dễ dàng cài đặt Cần bộ từ điển tiếng Việt hoàn chỉnh(Để làm được bộ từ điển
chuẩn tốn nhiều cost)
Độ chính xác khá cao với những từ thường dùng Thời gian xử lý chậm chạp → delay cao
Nhất và với tiếng Việt, việc sai chính tả không đơn giản như
tiếng Anh
Xử lý những câu dài khó khăn do vấn đề hiệu năng
Với những từ ít xuất hiện score thấp nên thường sai
Bài toán sửa lỗi chính tả (Spell Correction)
• Ứng dụng Deep Learning vào giải quyết bài toán
• Kỹ thuật sử dụng seq2seq (LSTM Encoder - Decoder)
– Encoder + Bidirectionl
– Decoder + Attention
37
RNN là gì ?
• RNN = Recurrent neural network = Mạng nơ-ron hồi quy
• Là một thuật toán được chú ý rất nhiều bởi kết quả tốt thu
được trong NLP.
• Ứng dụng:
– Machine Translation
– Tự động sinh văn bản
– Là bàn đạp cho LSTM ...
38
Ý tưởng của RNN
• Trong các mạng nơ-ron truyền thống tất cả các đầu vào và cả
đầu ra là độc lập với nhau.
• Nếu coi bài toán sửa lỗi chính tả chính là việc đoán từ tiếp
theo từ những từ trước đó thì mạng nơ-ron truyền thống
không dùng được.
• Ví dụ: ngày mai lắng nên anh sẽ về.
39
RNN là gì ?
• Với những hạn chế của mạng nơ-ron truyền thống, RNN đã ra
đời.
40
Mạng nơ-ron hồi quy A(hidden layer)
Đầu ra của hidden layer : ht
Đầu vào Xt
Có vẻ hơi khó hiểu nhỉ??
RNN là gì ?
41
h(t) = f(U*x(t) + W*h(t-1) + b)
h1 = f(U*x1 + W*(h0) + b)
h0 = f(U*x0 + b)
h2 = f(U*x2 + W*(h1) + b))
f chính là activate function
y(t) = f(W*h(t))
Ưu điểm của RNN
• Điểm nổi bật của RNN chính là ý tưởng kết nối thông tin phía trước để dự
đoán kết quả hiện tại.
• Ví dụ:
• Chú chim bay trên bầu
42
trời
Hạn chế của RNN
Ví dụ: Tôi sinh ra ở Đức nên tôi nói tiếng ...
43
Về mặt lý thuyết thì RNN có khả năng xử lý long-term dependencies
Nhưng thực tế khi khoảng t càng lớn thì RNN bắt đầu không thể nhớ và học được.
Vấn đề đạo hàm bị triệt tiêu (vanishing gradients)
Khám phá ra bởi Hochreiter (1991)
http://people.idsia.ch/~juergen/SeppHochreiter1991ThesisAdvisorSchmidhuber.pdf
Sự ra đời của LSTM(Long Short Term Memory)
• Được giới thiệu bởi Hochreiter & Schmidhuber (1997)
• Giải quyết được vấn đề của RNN
44
Simple RNN
Sự ra đời của LSTM(Long Short Term Memory)
• Được giới thiệu bởi Hochreiter & Schmidhuber (1997)
• Giải quyết được vấn đề của RNN
45
LSTM
LSTM là gì
• LSTM đưa vào mạng nơ-ron trạng thái nơ-ron (cell state ) để
lưu trữ và lan truyền các thông tin có ích (Giống như bộ nhớ)
46
LSTM là gì
47
LSTM có khả năng bỏ đi hoặc thêm vào các thông tin cần thiết cho trạng thái nơ-ron bởi các gate
Forget Gate layer
ft = 0 : Toàn bộ thông tin cũ sẽ bị bỏ đi
ft = 1 : Giữ lại toàn bộ thông tin cũ Ct-1
Ví dụ như xác định độ tuổi 1 người thì
- thông tin về chỉ số sức khoẻ là cần thiết
- giới tính thì loại bỏ cũng được
LSTM là gì
• B2: Bước này quyết định xem thông tin mới nào sẽ được lưu.
• Gồm 2 phần: input gate layer để quyết định giá trị nào ta sẽ được thêm.
tầng tanh tạo ra một vector cho giá trị mới C~t
48
LSTM là gì
• B3:Cập nhật trạng thái nơ-ron cũ (old cell state)
49
LSTM là gì
• B4: Cuối cùng tính output. Chính là cell state nhưng vẫn có
sàng lọc.
• Xác định phần nào của cell state nên xuất ra. (do lưu trữ cả
các Ct-)
50
Chốt lại LSTM là gì
• Về cơ bản LSTM không khác RNN nhiều
• Nhưng nhiều hidden layer hơn
• Mấu chốt ở bộ nhớ LSTM được gọi là Cell
• LSTM như 1 black box, nhận giá trị cell phía trước h(t-1) và input xt
• Black box sẽ quyết định thêm thông tin gì mới và loại bỏ thông tin
không cần thiết.
• Cell memory đã giải quyết được vấn đề của RNN
51
https://colah.github.io/posts/2015-08-Understanding-LSTMs/
Tuy nhiên....
52
Kỹ thuật Bidirectional LSTM (BiLSTM)
• Liệu rằng từ hiện tại chỉ liên quan đến từ phía trước.
Ví dụ: Tối qua di chơi ở Hạ Long
t(0) 1 2 3 4 5 6
Khi sửa lỗi chính tả thực chất là đoán xem từ vị trí t2 là từ gì.
Nhận thấy thông tin phía sau cũng rất quan trọng
=> Bidirectional ra đời để giải quyết vấn đề này
53
Kỹ thuật Bidirectional LSTM (BiLSTM)
54
h(t) = h(t) + h(t)
Tuy nhiên LSTM thôi chưa đủ để giải quyết bài toán sửa lỗi
chính tả ....
55
Bản chất của LSTM
• Mặc dù input của LSTM, RNN có thể là sequence nhưng output
bản chất không phải là sequence
• Chính xác là việc lặp đi lặp lại việc
dự đoán t+1
• Từ trước sai thì…
Nên cần 1 model khác ?
56
RNN
Sự ra đời của sequence-to-sequence
• RNN Encoder – Decoder/ LSTM Encoder – Decoder
57
Sequence to Sequence
Pha 1: Encoder có nhiệm vụ hiểu được thông tin đầu vào.
• Vì bản chất NLP phụ thuộc theo chuỗi (từ sau phụ thuộc từ trước nó)
• Tránh trường hợp sinh ra câu vô nghĩa (word by word)
henc(t) = f(henc(t-1), x(t))
c = henc(1:t) = conditional generation
Vector độ dài = (x1,...x(t))
Sự ra đời của sequence-to-sequence
58
Sequence to Sequence
Pha 2: Decoder sẽ sinh lần lượt từng từ cho chuỗi đầu vào theo mô hình sinh có điều kiện (conditional generation)
hdec(t) = f(hdec(t-1), y(t-1), c)
Tuy nhiên nhược điểm của sequence to sequence là ...
59
60
Nhược điểm của seq2seq
61
• Seq2Seq yêu cầu LSTM decoder sử dụng toàn bộ thông tin encoder.
• Và đương nhiên là encoder cũng phải mã hoá toàn bộ thông tin input.
Thực tế của NLP cho thấy không phải lúc nào 1 từ trong câu cũng liên quan mật thiết
với tất cả các từ trước nó. Có thể chỉ 1,2 từ trước nó.
Xuất hiện của Decoder + Attention
62
hdec(t) = f(hdec(t-1), y(t-1), c(t) )
Attention đánh lại trọng số cho từng phần tử trong c
Cụ thể là từ nào ít liên quan sẽ có giá trị nhỏ hơn.
Tiến hành áp dụng thực tế
1. Chuẩn bị data
2. Tiền xử lý
3. Tạo data noise
4. Code model
5. Tiến hành training
6. Xem kết quả
63
Tiến hành áp dụng thực tế
• Data: http://viet.jnlp.org/download-du-lieu-tu-vung-corpus
~50MB
• Sử dụng tensorflow GPU
• Python 3
• Cấu hình máy GPU: GTX 1080
• Thời gian training: 1 ngày ~
64
Kết quả thực nghiệm
65
Kết quả thực nghiệm
66
Kết quả thực nghiệm
67
Kết quả thực nghiệm
68
Kết quả thực nghiệm
69
Kết quả thực nghiệm
70
Kết quả thực nghiệm
71
Kết quả thực nghiệm
72
Với những từ mới lại detect thành từ sai chính tả.
Kết quả thực nghiệm
73
Một số vấn đề gặp phải khi nghiên cứu
• Thời gian làm sạch data, tạo noise data mất nhiều thời gian.
• Thời gian nghiên cứu ngắn
• Để áp dụng thực tế phải có nhiều data sạch
74
Phương hướng phát triển
• Nâng cao độ chính xác Model hiện tại
• Có thể thay đổi BagofWord bằng Word2Vec…
• Giải quyết bài toán xác định thực thể có tên (NER)
• Tìm hiểu bài toán chuyển từ âm thanh -> Text …(Speech
Recognition)
• Áp dụng ra thực tế, kết hợp với IOT, các dịch vụ chatbot …
75
Phần hỏi đáp
76
77

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Phương pháp tham lam giải bài toán lập lịch công việc
Phương pháp tham lam giải bài toán lập lịch công việcPhương pháp tham lam giải bài toán lập lịch công việc
Phương pháp tham lam giải bài toán lập lịch công việc
 
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựXây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
 
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPTBài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
 
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đĐề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
 
Báo Cáo Đề Tài Xây Dựng Phần Mềm Quản Lí Khách Hàng Trên Android
Báo Cáo Đề Tài Xây Dựng Phần Mềm Quản Lí Khách Hàng Trên AndroidBáo Cáo Đề Tài Xây Dựng Phần Mềm Quản Lí Khách Hàng Trên Android
Báo Cáo Đề Tài Xây Dựng Phần Mềm Quản Lí Khách Hàng Trên Android
 
Automata slide DHBKHCM [S2NUCE.blogspot.com]
Automata slide DHBKHCM  [S2NUCE.blogspot.com]Automata slide DHBKHCM  [S2NUCE.blogspot.com]
Automata slide DHBKHCM [S2NUCE.blogspot.com]
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
 
BÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNH
BÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNHBÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNH
BÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNH
 
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đĐề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệ
 
Chuong5
Chuong5Chuong5
Chuong5
 
Thuật toán K mean
Thuật toán K meanThuật toán K mean
Thuật toán K mean
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sự
 
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
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
 
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
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm
 
đồ áN cấu trúc dữ liệu và thuật toán trò chơi nim
đồ áN cấu trúc dữ liệu và thuật toán   trò chơi nim đồ áN cấu trúc dữ liệu và thuật toán   trò chơi nim
đồ áN cấu trúc dữ liệu và thuật toán trò chơi nim
 

Semelhante a Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗi chính tả trong tiếng Việt (Spell Correction)

Chuong 1. tong quan
Chuong 1. tong quanChuong 1. tong quan
Chuong 1. tong quan
Vũ Nam
 
bài giảng phân tích thiết kệ thống thông tin (hutech)
bài giảng phân tích thiết kệ thống thông tin (hutech)bài giảng phân tích thiết kệ thống thông tin (hutech)
bài giảng phân tích thiết kệ thống thông tin (hutech)
truong le hung
 
Cautrucdulieu full
Cautrucdulieu fullCautrucdulieu full
Cautrucdulieu full
. .
 
Giải bài toán trên máy tính
Giải bài toán trên máy tínhGiải bài toán trên máy tính
Giải bài toán trên máy tính
thuhoai2088
 
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trìnhHọc lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
CodeGym Đà Nẵng
 
NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...
NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...
NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...
XunThin11
 

Semelhante a Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗi chính tả trong tiếng Việt (Spell Correction) (20)

Bert for question answering on SQuAD 2.0
Bert for question answering on SQuAD 2.0Bert for question answering on SQuAD 2.0
Bert for question answering on SQuAD 2.0
 
trí tuệ nhân tạo AI.pdf
trí tuệ nhân tạo AI.pdftrí tuệ nhân tạo AI.pdf
trí tuệ nhân tạo AI.pdf
 
chương1.pdf
chương1.pdfchương1.pdf
chương1.pdf
 
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
 
Chuong2 c
Chuong2 c Chuong2 c
Chuong2 c
 
Thdc 06
Thdc 06Thdc 06
Thdc 06
 
Chuong 1. tong quan
Chuong 1. tong quanChuong 1. tong quan
Chuong 1. tong quan
 
bài giảng phân tích thiết kệ thống thông tin (hutech)
bài giảng phân tích thiết kệ thống thông tin (hutech)bài giảng phân tích thiết kệ thống thông tin (hutech)
bài giảng phân tích thiết kệ thống thông tin (hutech)
 
Cautrucdulieu full
Cautrucdulieu fullCautrucdulieu full
Cautrucdulieu full
 
Tin10_chuong01 bai_06
Tin10_chuong01 bai_06Tin10_chuong01 bai_06
Tin10_chuong01 bai_06
 
Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...
Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...
Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...
 
Design Pattern qua ví dụ thực tế
Design Pattern qua ví dụ thực tếDesign Pattern qua ví dụ thực tế
Design Pattern qua ví dụ thực tế
 
đạI học đà nẵngkhoa công nghệ thông tin và truyền thông báo cáo đồ án cơ sở 5...
đạI học đà nẵngkhoa công nghệ thông tin và truyền thông báo cáo đồ án cơ sở 5...đạI học đà nẵngkhoa công nghệ thông tin và truyền thông báo cáo đồ án cơ sở 5...
đạI học đà nẵngkhoa công nghệ thông tin và truyền thông báo cáo đồ án cơ sở 5...
 
Ltc 01
Ltc 01Ltc 01
Ltc 01
 
Giải bài toán trên máy tính
Giải bài toán trên máy tínhGiải bài toán trên máy tính
Giải bài toán trên máy tính
 
Design thinking final
Design thinking finalDesign thinking final
Design thinking final
 
Bộ đề kiểm tra - Tin 10 - Bài 6
Bộ đề kiểm tra - Tin 10 - Bài 6Bộ đề kiểm tra - Tin 10 - Bài 6
Bộ đề kiểm tra - Tin 10 - Bài 6
 
đề Thi vào viettel
đề Thi vào viettelđề Thi vào viettel
đề Thi vào viettel
 
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trìnhHọc lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
 
NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...
NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...
NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...
 

Mais de GMO-Z.com Vietnam Lab Center

Mais de GMO-Z.com Vietnam Lab Center (20)

高負荷に耐えうるWebApplication Serverの作り方
高負荷に耐えうるWebApplication Serverの作り方高負荷に耐えうるWebApplication Serverの作り方
高負荷に耐えうるWebApplication Serverの作り方
 
Phương pháp và chiến lược đối ứng tải trong Web Application Server
Phương pháp và chiến lược đối ứng tải trong Web Application ServerPhương pháp và chiến lược đối ứng tải trong Web Application Server
Phương pháp và chiến lược đối ứng tải trong Web Application Server
 
Tìm hiểu và triển khai ứng dụng Web với Kubernetes
Tìm hiểu và triển khai ứng dụng Web với KubernetesTìm hiểu và triển khai ứng dụng Web với Kubernetes
Tìm hiểu và triển khai ứng dụng Web với Kubernetes
 
Xây dựng hệ thống quản lý sân bóng sử dụng Yii Framework
Xây dựng hệ thống quản lý sân bóng sử dụng Yii FrameworkXây dựng hệ thống quản lý sân bóng sử dụng Yii Framework
Xây dựng hệ thống quản lý sân bóng sử dụng Yii Framework
 
Nhận biết giao dịch lừa đảo sử dụng học máy
Nhận biết giao dịch lừa đảo sử dụng học máyNhận biết giao dịch lừa đảo sử dụng học máy
Nhận biết giao dịch lừa đảo sử dụng học máy
 
Hệ thống giám sát nhận diện khuôn mặt
Hệ thống giám sát nhận diện khuôn mặtHệ thống giám sát nhận diện khuôn mặt
Hệ thống giám sát nhận diện khuôn mặt
 
Image Style Transfer
Image Style TransferImage Style Transfer
Image Style Transfer
 
Optimizing MySQL queries
Optimizing MySQL queriesOptimizing MySQL queries
Optimizing MySQL queries
 
Surveillance on slam technology
Surveillance on slam technologySurveillance on slam technology
Surveillance on slam technology
 
Blockchain & Smart Contract - Bắt đầu như thế nào và các ứng dụng
Blockchain & Smart Contract - Bắt đầu như thế nào và các ứng dụngBlockchain & Smart Contract - Bắt đầu như thế nào và các ứng dụng
Blockchain & Smart Contract - Bắt đầu như thế nào và các ứng dụng
 
Giới thiệu Embulk
Giới thiệu Embulk Giới thiệu Embulk
Giới thiệu Embulk
 
Giới thiệu docker và ứng dụng trong ci-cd
Giới thiệu docker và ứng dụng trong ci-cdGiới thiệu docker và ứng dụng trong ci-cd
Giới thiệu docker và ứng dụng trong ci-cd
 
Tài liệu giới thiệu công ty GMO-Z.com Vietnam Lab Center
Tài liệu giới thiệu công ty GMO-Z.com Vietnam Lab CenterTài liệu giới thiệu công ty GMO-Z.com Vietnam Lab Center
Tài liệu giới thiệu công ty GMO-Z.com Vietnam Lab Center
 
Chia se Agile
Chia se AgileChia se Agile
Chia se Agile
 
Agile retrospective
Agile retrospectiveAgile retrospective
Agile retrospective
 
Giới thiệu Agile + Scrum
Giới thiệu Agile + ScrumGiới thiệu Agile + Scrum
Giới thiệu Agile + Scrum
 
Create android app can send SMS and Email by React Natice
Create android app can send SMS and Email by React NaticeCreate android app can send SMS and Email by React Natice
Create android app can send SMS and Email by React Natice
 
Introduce React Native
Introduce React NativeIntroduce React Native
Introduce React Native
 
Spark tuning
Spark tuningSpark tuning
Spark tuning
 
Git in real product
Git in real productGit in real product
Git in real product
 

Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗi chính tả trong tiếng Việt (Spell Correction)

  • 1. 1 Báo cáo nghiên cứu Q3 Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗi chính tả trong tiếng Việt (Spell Correction) 1 ThanhTT thanhtt@vietnamlab.vn HN: 2018-09-21 https://vietnamlab.vn/ https://codetudau.com/
  • 2. Nội dung trình bày • Giới thiệu về NLP, ứng dụng của NLP • Lý do chọn đề tài • Các vấn đề cần giải quyết • Bài toán xác định ý định người dùng (Intent Detection) • Bài toán sửa lỗi chính tả (Spell Correction) • Một số khó khăn gặp phải • Phương hướng phát triển 2
  • 3. NLP là gì • Natural Language Processing • Là một nhánh của trí tuệ nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của con người. • NLP là 1 trong những phần khó nhất vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ, giao tiếp. 3
  • 4. NLP có còn đang sôi động ? 4 Các giải pháp phần mềm ứng dụng NLP sẽ giúp thị trường tăng trưởng từ $300 million (2018) đến $5.4 billion
  • 5. Ứng dụng của NLP 5 #1. Sentiment Analysis
  • 6. Ứng dụng của NLP 6 #2. Chatbots • Trò chuyện -> Biết được sở thích, tính cách của người dùng • Trợ lý ảo • Giải đáp thắc mắc, tư vấn sản phẩm, dịch vụ cho khách hàng
  • 7. Ứng dụng của NLP 7 #3. Customer Service
  • 8. Ứng dụng của NLP 8 #4. Managing the Advertisement Funnel • Sử dụng NLP để phân tích lịch sử truy cập website, thông tin cá nhân người dùng • Đưa ra những quảng cáo phù hợp với từng người • Hiển thị quảng cáo với những đối tượng phù hợp ...
  • 9. Ứng dụng của NLP 9 #5. Market Intelligence Thị trường kinh doanh luôn biến động, và bị ảnh hưởng bởi kiến thức thị trường, thông tin kinh doanh, báo cáo kinh doanh của các công ty, tổ chức. -> NLP giúp theo dõi, giám sát thông tin thị trường, trích xuất thông tin quan trọng
  • 10. Lý do chọn đề tài 10 Mục tiêu là xây dựng hệ thống chatbot, AI Assistant, smart home. Cùng với sự phát triển của NLP, các hệ thống sử dụng NLP càng thông minh hơn, càng có nhiều người quan tâm hơn Thị trường Việt Nam còn rất nhiều cơ hội.
  • 11. Các vấn đề cần giải quyết 1. Bài toán xác định ý định người dùng (Intent detection) 2. Bài toán nhận dạng thực thể (Named-entity recognition) 11
  • 12. Các vấn đề cần giải quyết 1. Bài toán xác định ý định người dùng (Intent detection) 2. Bài toán nhận dạng thực thể (Named-entity recognition) 12
  • 13. Xác định ý định người dùng (Intent detection) • Ý định(Intent) là gì ? Điều mà người dùng mong muốn chatbot, smart home, assistant thực hiện. • Intent được xác định sẽ quyết định kịch bản của đoạn hội thoại tiếp theo Xác định sai: ↪︎ Phản hồi không thích hợp → người dùng sẽ không hài lòng → 🤛 13
  • 14. Vấn đề gặp phải là gì ? (Intent detection) Ví dụ người dùng muốn hỏi thời tiết hôm nay: • Thời tiết hôm nay thế nào ? • Hôm nay mưa không em ơi ? • Thời tiết khó chịu nhỉ ? • Hôm nay không mưa à ? .... • Làm sao để có thể nhận biết được những cách diễn đạt khác nhau cho cùng 1 intent ? 14
  • 15. Vấn đề gặp phải là gì ? (Intent detection) • Xử lý vấn đề sai chính tả • Sai dấu, x,s,l,n... • Các từ viết tắt, teencode 15
  • 16. Cách giải quyết bài toán xác định Intent • Xác định số lượng intent (hữu hạn hay vô hạn) – Closed domain→ số lượng intent là hữu hạn • Xác định intent bằng cách sử dụng phương pháp phân loại văn bản(Text classification) 16 intent Câu ví dụ hoi_thoi_tiet Mai mưa không em ? hoi_thoi_tiet Thời tiết ngày mai thế nào ? chao_hoi Chào em chao_hoi Hi
  • 17. Cách giải quyết bài toán xác định Intent 17 Mô hình hệ thống phân lớp intent
  • 18. Chuẩn bị dữ liệu huấn luyện • Mỗi intent chuẩn bị từ 2-5 mẫu câu 18 intent Câu ví dụ hoi_thoi_tiet Mai mưa không em ? hoi_thoi_tiet Thời tiết ngày mai thế nào ? chao_hoi Chào em chao_hoi Hi ví dụ tập huấn luyện hệ thống chatbot
  • 19. Tiền xử lý Tách từ (Word segmentation) • Mục đích để tạo vector ngữ nghĩa của câu. Khác với tiếng anh mỗi từ có nghĩa cách nhau bởi space. Ví dụ: Tôi yêu xử lý ngôn ngữ tự nhiên Tách theo âm tiết: Tôi | yêu | xử | lý | ngôn | ngữ | tự | nhiên Tách theo từ: Tôi | yêu | xử_lý | ngôn_ngữ | tự_nhiên Sử dụng phương pháp pointwise cho tách từ tiếng Việt https://www.scribd.com/fullscreen/342411823?access_key=key-UJOfjnzF9fZfZiAgnaR8 19
  • 20. Tiền xử lý 20 Xử lý sai chính tả (Spell Correction) Sai chính tả thì chính con người còn khó hiểu huống chi là máy Rất tiếc là ở VN chưa có mã nguồn nào giải quyết vấn đề này. (T . T) -> Việc gì khó quá thì bỏ qua.
  • 21. Tiền xử lý • Xử lý các từ viết tắt user: Good night machine: Good night! I love u user: G9 machine:%#$&%#$%@ 21
  • 22. Trích xuất đặc trưng 22
  • 23. Trích xuất đặc trưng(Feature Extraction) • Biểu diễn ngôn ngữ loài người dưới dạng số sao cho có nghĩa và machine có thể hiểu được. • Word2Vec, One-hot Encoding, Bag of Words... • Hiện tại sử dụng Bag of Words(BoW) để giải quyết vấn đề này. – Lý do: Lượng data hiện tại ít, đơn giản, dễ dàng cài đặt – Nếu có nhiều dữ liệu thì Word2Vec là lựa chọn hàng đầu. 23
  • 24. Trích xuất đặc trưng(Feature Extraction) • Bag of Words hoạt động như thế nào ? • Ví dụ: – The quick brown fox jumps over the lazy dog and(*) – Never jump over the lazy dog quickly (**) 24 (*) -> [1,1,1,0,1,1,0,1,1,0,2] (**) -> [0,1,0,1,0,1,1,1,0,1,1] Bước 1:
  • 25. Trích xuất đặc trưng(Feature Extraction) • Tuy nhiên thực tế nhận thấy trong 1 câu tiếng Việt, 1 từ được lặp lại nhiều lần thường là keyword • Ngược lại từ nào mà câu nào cũng xuất hiện lại là những từ không quan trọng. => Vậy có cách nào giải quyết được vấn đề này ? 25
  • 26. Trích xuất đặc trưng(Feature Extraction) • TF-IDF – TF = 26 • f(t,d) - số lần xuất hiện từ t trong 1 câu (d) • mẫu số: tổng số từ trong 1 câu (d) • Số lần xuất hiện 1 từ trong câu càng nhiều thì TF càng (TH lần này d chính là 1 câu) • |D|: tổng số câu trong tập D • mẫu số: số câu chứa từ t • Càng nhiều câu chứ từ t thì idf càng thấp log(8/3) = 0.4259 log(8/7) = 0.0579
  • 27. Trích xuất đặc trưng(Feature Extraction) 27 The quick brown fox jumps over the lazy dog and(*) Never jump over the lazy dog quickly (**) https://codetudau.com/bag-of-words-tf-idf-xu-ly-ngon-ngu-tu-nhien/ (*) -> [1,1,1,0,1,1,0,1,1,0,2] (**) -> [0,1,0,1,0,1,1,1,0,1,1] *TF*IDF BoW
  • 28. Huấn luyện mô hình (Train Model) 28 Đưa về bài toán Text Classification intent Câu ví dụ hoi_thoi_tiet Mai mưa không em ? hoi_thoi_tiet Thời tiết ngày mai thế nào ? chao_hoi Chào em chao_hoi Hi
  • 29. Huấn luyện mô hình (Train Model) • Lựa chọn mô hình • Naive Bayes • SVM (more data) • SGDClassifier(more data) • RF... 29
  • 30. Kết quả bài toán Intent Detection 30 Feature(RAW) Target Hôm nay trời đẹp không ? hoi_thoi_tiet Hôm nay thời tiết thế nào ? hoi_thoi_tiet Hôm nay mưa không ? hoi_thoi_tiet Chào em gái chao_hoi Chào bạn chao_hoi Hello bạn chao_hoi Hi em chao_hoi Đây là toàn bộ train data Mong muốn hỏi những cách hỏi khác, máy vẫn chọn ra target đúng.
  • 31. Kết quả bài toán Intent Detection • Với những câu không có trong training data vẫn có thể xác định chính xác. • Nóng quá, liệu mưa không em ơi? 31
  • 33. Tiền xử lý 33 Xử lý sai chính tả (Spell Correction) Sai chính tả thì chính con người còn khó hiểu huống chi là máy Rất tiếc là ở VN chưa có mã nguồn nào giải quyết vấn đề này. (T . T) -> Việc gì khó quá thì bỏ qua.
  • 34. Giải quyết như thế nào ? 34
  • 35. Bài toán sửa lỗi chính tả (Spell Correction) • Phương pháp giải quyết đơn giản nhất 35 http://norvig.com/spell-correct.html
  • 36. Bài toán sửa lỗi chính tả (Spell Correction) 36 Ưu điểm Hạn chế Dễ dàng cài đặt Cần bộ từ điển tiếng Việt hoàn chỉnh(Để làm được bộ từ điển chuẩn tốn nhiều cost) Độ chính xác khá cao với những từ thường dùng Thời gian xử lý chậm chạp → delay cao Nhất và với tiếng Việt, việc sai chính tả không đơn giản như tiếng Anh Xử lý những câu dài khó khăn do vấn đề hiệu năng Với những từ ít xuất hiện score thấp nên thường sai
  • 37. Bài toán sửa lỗi chính tả (Spell Correction) • Ứng dụng Deep Learning vào giải quyết bài toán • Kỹ thuật sử dụng seq2seq (LSTM Encoder - Decoder) – Encoder + Bidirectionl – Decoder + Attention 37
  • 38. RNN là gì ? • RNN = Recurrent neural network = Mạng nơ-ron hồi quy • Là một thuật toán được chú ý rất nhiều bởi kết quả tốt thu được trong NLP. • Ứng dụng: – Machine Translation – Tự động sinh văn bản – Là bàn đạp cho LSTM ... 38
  • 39. Ý tưởng của RNN • Trong các mạng nơ-ron truyền thống tất cả các đầu vào và cả đầu ra là độc lập với nhau. • Nếu coi bài toán sửa lỗi chính tả chính là việc đoán từ tiếp theo từ những từ trước đó thì mạng nơ-ron truyền thống không dùng được. • Ví dụ: ngày mai lắng nên anh sẽ về. 39
  • 40. RNN là gì ? • Với những hạn chế của mạng nơ-ron truyền thống, RNN đã ra đời. 40 Mạng nơ-ron hồi quy A(hidden layer) Đầu ra của hidden layer : ht Đầu vào Xt Có vẻ hơi khó hiểu nhỉ??
  • 41. RNN là gì ? 41 h(t) = f(U*x(t) + W*h(t-1) + b) h1 = f(U*x1 + W*(h0) + b) h0 = f(U*x0 + b) h2 = f(U*x2 + W*(h1) + b)) f chính là activate function y(t) = f(W*h(t))
  • 42. Ưu điểm của RNN • Điểm nổi bật của RNN chính là ý tưởng kết nối thông tin phía trước để dự đoán kết quả hiện tại. • Ví dụ: • Chú chim bay trên bầu 42 trời
  • 43. Hạn chế của RNN Ví dụ: Tôi sinh ra ở Đức nên tôi nói tiếng ... 43 Về mặt lý thuyết thì RNN có khả năng xử lý long-term dependencies Nhưng thực tế khi khoảng t càng lớn thì RNN bắt đầu không thể nhớ và học được. Vấn đề đạo hàm bị triệt tiêu (vanishing gradients) Khám phá ra bởi Hochreiter (1991) http://people.idsia.ch/~juergen/SeppHochreiter1991ThesisAdvisorSchmidhuber.pdf
  • 44. Sự ra đời của LSTM(Long Short Term Memory) • Được giới thiệu bởi Hochreiter & Schmidhuber (1997) • Giải quyết được vấn đề của RNN 44 Simple RNN
  • 45. Sự ra đời của LSTM(Long Short Term Memory) • Được giới thiệu bởi Hochreiter & Schmidhuber (1997) • Giải quyết được vấn đề của RNN 45 LSTM
  • 46. LSTM là gì • LSTM đưa vào mạng nơ-ron trạng thái nơ-ron (cell state ) để lưu trữ và lan truyền các thông tin có ích (Giống như bộ nhớ) 46
  • 47. LSTM là gì 47 LSTM có khả năng bỏ đi hoặc thêm vào các thông tin cần thiết cho trạng thái nơ-ron bởi các gate Forget Gate layer ft = 0 : Toàn bộ thông tin cũ sẽ bị bỏ đi ft = 1 : Giữ lại toàn bộ thông tin cũ Ct-1 Ví dụ như xác định độ tuổi 1 người thì - thông tin về chỉ số sức khoẻ là cần thiết - giới tính thì loại bỏ cũng được
  • 48. LSTM là gì • B2: Bước này quyết định xem thông tin mới nào sẽ được lưu. • Gồm 2 phần: input gate layer để quyết định giá trị nào ta sẽ được thêm. tầng tanh tạo ra một vector cho giá trị mới C~t 48
  • 49. LSTM là gì • B3:Cập nhật trạng thái nơ-ron cũ (old cell state) 49
  • 50. LSTM là gì • B4: Cuối cùng tính output. Chính là cell state nhưng vẫn có sàng lọc. • Xác định phần nào của cell state nên xuất ra. (do lưu trữ cả các Ct-) 50
  • 51. Chốt lại LSTM là gì • Về cơ bản LSTM không khác RNN nhiều • Nhưng nhiều hidden layer hơn • Mấu chốt ở bộ nhớ LSTM được gọi là Cell • LSTM như 1 black box, nhận giá trị cell phía trước h(t-1) và input xt • Black box sẽ quyết định thêm thông tin gì mới và loại bỏ thông tin không cần thiết. • Cell memory đã giải quyết được vấn đề của RNN 51 https://colah.github.io/posts/2015-08-Understanding-LSTMs/
  • 53. Kỹ thuật Bidirectional LSTM (BiLSTM) • Liệu rằng từ hiện tại chỉ liên quan đến từ phía trước. Ví dụ: Tối qua di chơi ở Hạ Long t(0) 1 2 3 4 5 6 Khi sửa lỗi chính tả thực chất là đoán xem từ vị trí t2 là từ gì. Nhận thấy thông tin phía sau cũng rất quan trọng => Bidirectional ra đời để giải quyết vấn đề này 53
  • 54. Kỹ thuật Bidirectional LSTM (BiLSTM) 54 h(t) = h(t) + h(t)
  • 55. Tuy nhiên LSTM thôi chưa đủ để giải quyết bài toán sửa lỗi chính tả .... 55
  • 56. Bản chất của LSTM • Mặc dù input của LSTM, RNN có thể là sequence nhưng output bản chất không phải là sequence • Chính xác là việc lặp đi lặp lại việc dự đoán t+1 • Từ trước sai thì… Nên cần 1 model khác ? 56 RNN
  • 57. Sự ra đời của sequence-to-sequence • RNN Encoder – Decoder/ LSTM Encoder – Decoder 57 Sequence to Sequence Pha 1: Encoder có nhiệm vụ hiểu được thông tin đầu vào. • Vì bản chất NLP phụ thuộc theo chuỗi (từ sau phụ thuộc từ trước nó) • Tránh trường hợp sinh ra câu vô nghĩa (word by word) henc(t) = f(henc(t-1), x(t)) c = henc(1:t) = conditional generation Vector độ dài = (x1,...x(t))
  • 58. Sự ra đời của sequence-to-sequence 58 Sequence to Sequence Pha 2: Decoder sẽ sinh lần lượt từng từ cho chuỗi đầu vào theo mô hình sinh có điều kiện (conditional generation) hdec(t) = f(hdec(t-1), y(t-1), c)
  • 59. Tuy nhiên nhược điểm của sequence to sequence là ... 59
  • 60. 60
  • 61. Nhược điểm của seq2seq 61 • Seq2Seq yêu cầu LSTM decoder sử dụng toàn bộ thông tin encoder. • Và đương nhiên là encoder cũng phải mã hoá toàn bộ thông tin input. Thực tế của NLP cho thấy không phải lúc nào 1 từ trong câu cũng liên quan mật thiết với tất cả các từ trước nó. Có thể chỉ 1,2 từ trước nó.
  • 62. Xuất hiện của Decoder + Attention 62 hdec(t) = f(hdec(t-1), y(t-1), c(t) ) Attention đánh lại trọng số cho từng phần tử trong c Cụ thể là từ nào ít liên quan sẽ có giá trị nhỏ hơn.
  • 63. Tiến hành áp dụng thực tế 1. Chuẩn bị data 2. Tiền xử lý 3. Tạo data noise 4. Code model 5. Tiến hành training 6. Xem kết quả 63
  • 64. Tiến hành áp dụng thực tế • Data: http://viet.jnlp.org/download-du-lieu-tu-vung-corpus ~50MB • Sử dụng tensorflow GPU • Python 3 • Cấu hình máy GPU: GTX 1080 • Thời gian training: 1 ngày ~ 64
  • 65. Kết quả thực nghiệm 65
  • 66. Kết quả thực nghiệm 66
  • 67. Kết quả thực nghiệm 67
  • 68. Kết quả thực nghiệm 68
  • 69. Kết quả thực nghiệm 69
  • 70. Kết quả thực nghiệm 70
  • 71. Kết quả thực nghiệm 71
  • 72. Kết quả thực nghiệm 72 Với những từ mới lại detect thành từ sai chính tả.
  • 73. Kết quả thực nghiệm 73
  • 74. Một số vấn đề gặp phải khi nghiên cứu • Thời gian làm sạch data, tạo noise data mất nhiều thời gian. • Thời gian nghiên cứu ngắn • Để áp dụng thực tế phải có nhiều data sạch 74
  • 75. Phương hướng phát triển • Nâng cao độ chính xác Model hiện tại • Có thể thay đổi BagofWord bằng Word2Vec… • Giải quyết bài toán xác định thực thể có tên (NER) • Tìm hiểu bài toán chuyển từ âm thanh -> Text …(Speech Recognition) • Áp dụng ra thực tế, kết hợp với IOT, các dịch vụ chatbot … 75
  • 77. 77

Notas do Editor

  1. Để phát triển các hệ thống trên thì việc giải quyết bài toán xác định ý định người dùng là không thể thiếu.
  2. Để phát triển các hệ thống trên thì việc giải quyết bài toán xác định ý định người dùng là không thể thiếu.