Professional Documents
Culture Documents
Nghiencuuq3thanhtt 180925025426
Nghiencuuq3thanhtt 180925025426
Ứ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)
ThanhTT
thanhtt@vietnamlab.vn
HN: 2018-09-21
https://vietnamlab.vn/
https://codetudau.com/
1
1
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 ?
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
4
Ứng dụng của NLP
5
Ứng dụng của NLP
#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
6
Ứng dụng của NLP
7
Ứng dụng của NLP
• 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 ...
8
Ứng dụng của NLP
9
Lý do chọn đề tài
11
Các vấn đề cần giải quyết
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.
13
Vấn đề gặp phải là gì ? (Intent detection)
14
Vấn đề gặp phải là gì ? (Intent detection)
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)
intent Câu ví dụ
chao_hoi Chào em
chao_hoi Hi
16
Cách giải quyết bài toán xác định Intent
17
Chuẩn bị dữ liệu huấn luyện
• Mỗi intent chuẩn bị từ 2-5 mẫu câu
intent Câu ví dụ
chao_hoi Chào em
chao_hoi Hi
18
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.
19
Tiền xử lý
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
20
Tiền xử lý
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.
24
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.
25
Trích xuất đặc trưng(Feature Extraction)
• TF-IDF
• 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
– TF = (TH lần này d chính là 1 câu)
log(8/3) = 0.4259
log(8/7) = 0.0579
26
Trích xuất đặc trưng(Feature Extraction)
The quick brown fox jumps over the lazy dog
and(*)
Never jump over the lazy dog quickly (**)
BoW
*TF*IDF
https://codetudau.com/bag-of-words-tf-idf-xu-ly-ngon-ngu-tu-nhien/
27
Huấn luyện mô hình (Train Model)
intent Câu ví dụ
chao_hoi Chào em
chao_hoi Hi
28
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
Đây là toàn bộ train data
Feature(RAW) Target
Mong muốn hỏi những cách hỏi khác, máy vẫn chọn ra target đúng.
30
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.
31
Nhưng ....
32
Tiền xử lý
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
33
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
http://norvig.com/spell-correct.html
35
Bài toán sửa lỗi chính tả (Spell Correction)
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
36
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.
Đầu vào Xt
42
Hạn chế của RNN
Ví dụ: Tôi sinh ra ở Đức nên tôi nói tiếng ...
Simple RNN
44
Sự ra đời của LSTM(Long Short Term Memory)
45
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ì
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
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
https://colah.github.io/posts/2015-08-Understanding-LSTMs/ 51
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
53
Kỹ thuật Bidirectional LSTM (BiLSTM)
54
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 RNN
dự đoán t+1
• Từ trước sai thì…
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)
59
60
Nhược điểm của seq2seq
• 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ó.
61
Xuất hiện của Decoder + Attention
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
Với những từ mới lại detect thành từ sai chính tả.
72
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