Chủ đề của NLP301c - Xử lý ngôn ngữ tự nhiên

NLP301c - Phần 4: Phân loại cảm xúc với hồi quy logistic và Naive Bayes

Phân loại cảm xúc trả lời câu hỏi một đoạn văn ngắn mang sắc thái tích cực hay tiêu cực. Naive Bayes giả định các từ độc lập với nhau khi đã biết lớp, nhân xác suất có điều kiện của từng từ và dùng làm trơn Laplace để một từ chưa gặp trong một lớp không kéo cả tích của lớp đó về 0; lấy logarit giúp tránh tràn số dưới khi nhân nhiều xác suất nhỏ. Hồi quy logistic học một hệ số cho từng đặc trưng, đưa tổ hợp tuyến tính của chúng qua hàm sigmoid và tối ưu hàm mất mát cross-entropy bằng gradient descent, với bước học quá lớn có thể làm mất mát tăng thay vì giảm. Văn bản cần được làm sạch trước khi đếm, gồm bỏ từ dừng, dấu câu và đưa từ về gốc. Kết quả được đánh giá bằng accuracy, precision và recall. Cách biểu diễn từ thành vector để so sánh được bàn ở Phần 5.

Xem danh sách câu hỏi15 câu hỏi100% có giải thích

Bắt đầu bằng Chế độ học nếu bạn muốn đáp án và giải thích hiện ngay sau mỗi câu — không bấm giờ, dừng lúc nào cũng được. Chọn Thi thử khi muốn biết mình đang ở đâu: có bấm giờ, chấm điểm ở cuối, và giải thích chỉ mở sau khi nộp.

Học ngân hàng câu hỏi của chủ đề

Luyện tập theo chủ đề này

15Câu hỏi hiện có

Câu hỏi của chủ đề

15/15 câuHết danh sách
Aprobability model.
Ba pre-defined list of sentiment-laden words.
CCRF
DHMM
Lời giải
Đáp án đúng: "a pre-defined list of sentiment-laden words.". Phân tích cảm xúc dựa trên từ điển (dictionary-based hay lexicon-based sentiment analysis) dùng một danh sách định sẵn các từ mang sắc thái như good, excellent, terrible, mỗi từ gắn điểm hoặc cực tính; hệ thống dò các từ đó trong văn bản, cộng điểm (có xử lý phủ định, từ tăng cường) rồi kết luận văn bản tích cực hay tiêu cực, không cần dữ liệu huấn luyện có nhãn. "probability model." là đặc trưng của cách tiếp cận thống kê hay học máy, ví dụ Naive Bayes học xác suất từ ngữ liệu gán nhãn, khác hẳn với việc tra từ điển. "CRF" (Conditional Random Field) là mô hình phân biệt dùng cho gán nhãn chuỗi như NER, phải huấn luyện từ dữ liệu. "HMM" (Hidden Markov Model) là mô hình sinh xác suất cho chuỗi trạng thái ẩn, dùng trong gán nhãn từ loại, cũng không phải một danh sách từ định sẵn.
Mở trang câu hỏi này →
A1,2,5,3,4
B1,2,3,4,5
C1,3,4,2,5
D1,3,4,5,2
Lời giải
Đáp án đúng: "1,2,5,3,4". Quy trình dựng bộ phân loại văn bản đi theo luồng dữ liệu: trước hết làm sạch văn bản (bỏ ký tự rác, chuẩn hoá chữ hoa thường, bỏ stop words), sau đó gán nhãn lớp cho từng văn bản để có dữ liệu huấn luyện, tiếp đến biến văn bản thành biến dự báo dạng số (bag of words, TF-IDF hoặc embedding), rồi mới huấn luyện bằng gradient descent, cuối cùng tinh chỉnh siêu tham số như tốc độ học hay mức điều chuẩn. "1,2,3,4,5" sai vì chạy gradient descent và tinh chỉnh trước khi có đặc trưng số, mà thuật toán tối ưu không làm việc trực tiếp trên chuỗi ký tự. "1,3,4,2,5" sai vì huấn luyện xong mới gán nhãn, trong khi học có giám sát cần nhãn để tính hàm mất mát. "1,3,4,5,2" sai vì để gán nhãn ở bước cuối, tức huấn luyện và tinh chỉnh mà không có nhãn lẫn đặc trưng đúng thứ tự.
Mở trang câu hỏi này →
AFrequency count of terms
BVector Notation of sentence
CPart of Speech Tag
DDependency Grammar
EAll of the others
Lời giải
Đáp án đúng: "All of the others". Bộ phân lớp văn bản chỉ tốt bằng đặc trưng đầu vào, và cả bốn loại được nêu đều là đặc trưng thường dùng để tăng độ chính xác. "Frequency count of terms" là đếm tần suất từ theo mô hình túi từ (bag-of-words) hay trọng số TF-IDF, cho biết văn bản nói nhiều về điều gì. "Vector Notation of sentence" là biểu diễn câu bằng vectơ, như trung bình word embedding hoặc vectơ câu từ mô hình ngôn ngữ, mang thông tin ngữ nghĩa mà đếm từ bỏ sót. "Part of Speech Tag" bổ sung nhãn từ loại, giúp phân biệt book danh từ với book động từ hay nhận ra tính từ mang cảm xúc. "Dependency Grammar" cho quan hệ phụ thuộc giữa các từ, ví dụ not bổ nghĩa cho good, giúp bắt được phủ định và ai làm gì với ai. Vì từng loại đều đúng nên mỗi phương án đơn lẻ chỉ là một phần, chọn phương án gộp mới đầy đủ.
Mở trang câu hỏi này →
A[1, 7, 5]
B[1, 9, 7]
C[1, 2, 1, 1, 2, 1, 1, 1, 2, 0, 1, 2, 0, 1, 1]
D[1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 0, 1, 2, 0, 1, 1]
Lời giải
Đáp án đúng: "[1, 7, 5]". Phương pháp trích đặc trưng bằng tần suất biểu diễn một câu bằng vector ba chiều gồm bias 1, tổng tần suất dương và tổng tần suất âm, với tổng lấy trên các từ khác nhau có mặt trong câu. Câu i love cat i also like dog có các từ khác nhau i, love, cat, also, like, dog. Cột pos: 2 + 1 + 1 + 1 + 1 + 1 = 7. Cột neg: 2 + 0 + 1 + 0 + 1 + 1 = 5. Thêm bias được [1, 7, 5]. "[1, 9, 7]" là kết quả khi cộng từ i hai lần vì nó xuất hiện hai lần trong câu, mỗi cột thêm 2; cộng theo từng lần xuất hiện có trong một số bản cài đặt, nhưng định nghĩa đặc trưng tần suất cộng mỗi từ của từ vựng có mặt trong câu đúng một lần. "[1, 2, 1, 1, 2, 1, 1, 1, 2, 0, 1, 2, 0, 1, 1]" và "[1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 0, 1, 2, 0, 1, 1]" liệt kê tần suất từng từ thành vector dài, không phải dạng ba chiều mà phương pháp này tạo ra; mục đích của nó chính là nén cả câu về hai con số pos và neg.
Mở trang câu hỏi này →
ASupport Vector Machines
BMaximum Entropy Model
CK Nearest Neighbor
DNaive Bayes
Lời giải
Đáp án đúng: "Naive Bayes". Maximum likelihood estimation (ước lượng hợp lý cực đại) chọn tham số làm xác suất của dữ liệu quan sát lớn nhất; với Naive Bayes nghiệm có dạng đóng chỉ bằng đếm tần suất: P(c) bằng số văn bản lớp c chia tổng số văn bản, P(w|c) bằng số lần từ w xuất hiện trong lớp c chia tổng số từ của lớp c. Cần nói thẳng chỗ tranh cãi: "Maximum Entropy Model" cũng được huấn luyện bằng hợp lý cực đại, cụ thể là cực đại hoá log-likelihood có điều kiện bằng tối ưu lặp vì không có nghiệm dạng đóng, nên về lý thuyết nó cũng thoả câu hỏi; vì chỉ được chọn một, Naive Bayes được giữ do là ví dụ kinh điển của MLE ở dạng đóng. "Support Vector Machines" tìm siêu phẳng có lề lớn nhất bằng hàm mất mát hinge, không xây trên hàm hợp lý xác suất. "K Nearest Neighbor" là phương pháp phi tham số dựa trên khoảng cách, không có tham số nào để ước lượng, chỉ lưu dữ liệu và bỏ phiếu theo láng giềng.
Mở trang câu hỏi này →
A12345
B13425
C12534
D13452
Lời giải
Đáp án đúng: "12534". Một pipeline phân loại văn bản đi theo dòng dữ liệu: trước hết làm sạch văn bản (Text cleaning: bỏ ký tự thừa, chuẩn hoá chữ, bỏ stop word), rồi gán nhãn (Text annotation) để có dữ liệu huấn luyện có giám sát, tiếp theo biến văn bản thành đặc trưng số (Text to predictors, như bag-of-words, TF-IDF hay embedding), sau đó huấn luyện mô hình bằng thuật toán tối ưu như Gradient descent, cuối cùng tinh chỉnh siêu tham số (Model tuning) dựa trên kết quả kiểm định. Thứ tự đó là 1, 2, 5, 3, 4. "12345" đặt gradient descent trước bước chuyển văn bản thành số, trong khi thuật toán tối ưu không thể chạy trên chữ. "13425" huấn luyện và tinh chỉnh trước cả khi gán nhãn và tạo đặc trưng. "13452" cũng chạy gradient descent ngay sau làm sạch khi chưa có nhãn hay đặc trưng, và đẩy việc gán nhãn xuống cuối cùng.
Mở trang câu hỏi này →
AAuthor
BLength
CContent
DFont
Lời giải
Đáp án đúng: "Content". Phân loại văn bản (text classification) gán mỗi tài liệu vào một hay nhiều lớp định sẵn dựa trên nội dung của nó, tức các từ, cụm từ và đặc trưng ngữ nghĩa trích ra từ văn bản, ví dụ lọc thư rác, phân loại chủ đề tin tức hay phân loại cảm xúc; mô hình học từ đặc trưng như túi từ, TF-IDF hay embedding. "Author" là tiêu chí của bài toán riêng gọi là xác định tác giả (authorship attribution), và ngay bài toán đó cũng phải dựa vào văn phong trong nội dung chứ không có sẵn nhãn tác giả. "Length" là độ dài tài liệu, một thuộc tính bề mặt; có thể dùng như đặc trưng phụ nhưng không phải tiêu chí nhóm văn bản. "Font" là phông chữ hiển thị, thuộc định dạng trình bày, thậm chí không tồn tại trong văn bản thô mà mô hình xử lý.
Mở trang câu hỏi này →
ANone of the above
BNaive Bayes
CSVM
DNaive Bayes and SVM
Lời giải
Đáp án đúng: "Naive Bayes and SVM". Phân loại cảm xúc tweet là bài toán phân lớp văn bản có giám sát: mỗi tweet được biểu diễn bằng túi từ hoặc TF-IDF, rồi một bộ phân lớp học cách gán nhãn tích cực hay tiêu cực. Naive Bayes tính xác suất nhãn khi biết các từ theo định lý Bayes với giả định các từ độc lập, huấn luyện nhanh và chạy tốt trên văn bản ngắn nhiều chiều; SVM tìm siêu phẳng có lề lớn nhất giữa hai lớp và xử lý tốt vectơ thưa nhiều chiều như TF-IDF. Cả hai đều là lựa chọn kinh điển cho bài toán này nên phương án gộp cả hai mới đầy đủ. "Naive Bayes" đúng nhưng chưa đủ vì bỏ sót SVM. "SVM" cũng đúng nhưng thiếu Naive Bayes. "None of the above" sai vì cả hai mô hình đều phù hợp với bài toán.
Mở trang câu hỏi này →
AL = −∑(j=1..c) y_j log(ŷ_j)
BJ = −(1/m) ∑(i=1..m) ∑(j=1..c) y_j^(i) log(ŷ_j^(i)) where m, c, y_j^(i), ŷ_j^(i) denote number of examples, number of classes, ground-truth label, and predicted probability, respectively.
Cŷ = σ(wᵀx + b), where σ(z) = 1/(1 + e^(−z))
DL = ∑(j=1..c) y_j log(ŷ_j)
Lời giải
Đáp án đúng: "J = −(1/m) ∑(i=1..m) ∑(j=1..c) y_j^(i) log(ŷ_j^(i)) where m, c, y_j^(i), ŷ_j^(i) denote number of examples, number of classes, ground-truth label, and predicted probability, respectively.". Hàm mất mát log (log loss, cross-entropy) của một mẫu là tổng y_j log ŷ_j lấy dấu âm, thực chất chỉ phạt xác suất dự đoán cho lớp đúng; hàm chi phí (cost function) J của cả tập huấn luyện là trung bình của nó trên m mẫu, nên có hệ số 1/m và tổng theo i. Đây là dạng tổng quát cho c lớp (softmax regression); với hai lớp nó thu về −[y log ŷ + (1−y) log(1−ŷ)]. Dấu trừ cần thiết vì log của xác suất nhỏ hơn 1 là số âm, nhờ đó J không âm và giảm khi mô hình dự đoán đúng hơn. "L = −∑(j=1..c) y_j log(ŷ_j)" là loss của riêng một mẫu, đúng về dạng nhưng chưa phải hàm chi phí trên toàn tập. "ŷ = σ(wᵀx + b), where σ(z) = 1/(1 + e^(−z))" là công thức dự đoán của hồi quy logistic qua hàm sigmoid, không phải hàm chi phí. "L = ∑(j=1..c) y_j log(ŷ_j)" thiếu dấu trừ nên cho giá trị âm và tăng dần khi dự đoán tốt hơn; cực tiểu hoá nó sẽ đẩy mô hình về phía dự đoán sai.
Mở trang câu hỏi này →
AWhat is 1-hot encoding?
BWhat is a Bag of Word?
CWhat is feature extraction?
DWhat is feature detection in images?
Lời giải
Đáp án đúng: "What is feature extraction?". Câu này viết theo kiểu thẻ ghi nhớ: vế mô tả là tập phương pháp biến dữ liệu thô thành đặc trưng số cho học máy, và câu trả lời là khái niệm feature extraction (trích xuất đặc trưng). Trong NLP, trích xuất đặc trưng gồm nhiều kỹ thuật như one-hot, bag-of-words, TF-IDF, n-gram hay embedding, đều nhằm biến văn bản thành vector để mô hình tính toán. "What is 1-hot encoding?" chỉ là một kỹ thuật cụ thể trong tập đó, biểu diễn mỗi giá trị bằng vector có đúng một vị trí bằng 1, không phải cả tập phương pháp. "What is a Bag of Word?" cũng là một phương pháp riêng lẻ, đếm số lần xuất hiện của từ và bỏ qua thứ tự. "What is feature detection in images?" thuộc thị giác máy tính, chỉ việc phát hiện điểm đặc trưng như góc, cạnh trong ảnh, không phải định nghĩa tổng quát áp cho mọi loại dữ liệu thô.
Mở trang câu hỏi này →
AAccuracy
BBLEU Score
CPrecision
DRecall
EF1-Score
FROUGE
Lời giải
Đáp án đúng gồm bốn ý: "Accuracy", "Precision", "Recall" và "F1-Score". Phân loại văn bản (text classification) gán nhãn lớp cho tài liệu, nên được đánh giá bằng ma trận nhầm lẫn với các ô TP, FP, FN, TN. "Accuracy" là tỉ lệ dự đoán đúng trên tổng số mẫu, (TP + TN) / tổng. "Precision" là TP / (TP + FP), đo trong số tài liệu được gán vào lớp thì bao nhiêu thật sự thuộc lớp đó. "Recall" là TP / (TP + FN), đo mô hình tìm lại được bao nhiêu tài liệu thật của lớp. "F1-Score" là trung bình điều hoà 2PR / (P + R), cân bằng hai đại lượng trên, đặc biệt hữu ích khi các lớp mất cân bằng. "BLEU Score" là độ đo cho dịch máy, so độ trùng n-gram giữa câu dịch máy và bản dịch tham chiếu kèm hình phạt độ ngắn, không áp dụng cho nhãn lớp. "ROUGE" là độ đo cho tóm tắt văn bản, đo độ phủ n-gram của bản tóm tắt so với bản tham chiếu, cũng dành cho đầu ra dạng văn bản sinh ra chứ không cho bài toán phân loại.
Mở trang câu hỏi này →
Atopic modeling
Bstemming
Cterm by document matrix
Dpositive and negative words dictionaries
Lời giải
Đáp án đúng: "positive and negative words dictionaries". Phân tích cảm xúc dựa trên từ điển (lexicon-based) gán cực tính cho từng thuật ngữ bằng cách tra nó trong danh sách từ tích cực và từ tiêu cực đã xây sẵn, như good, excellent mang dấu dương còn bad, terrible mang dấu âm; cộng điểm các từ cho ra cảm xúc của cả câu, và các bộ từ điển như VADER còn gán cường độ cho từng từ. "topic modeling" tìm các nhóm từ hay đi cùng nhau để rút chủ đề của tập tài liệu, không nói từ nào tích cực hay tiêu cực. "stemming" chỉ cắt hậu tố đưa từ về gốc, là bước tiền xử lý giúp tra từ điển dễ hơn chứ không tự gán cực tính. "term by document matrix" là ma trận đếm thuật ngữ theo tài liệu, một cách biểu diễn dữ liệu chưa mang thông tin cảm xúc nào.
Mở trang câu hỏi này →
ARegularization is too low and model is overfitting
BRegularization is too high and model is underfitting
CStep size is too large
DStep size is too small
Lời giải
Đáp án đúng: "Step size is too large". Khi huấn luyện bằng gradient descent, bước học (step size, learning rate) quá lớn làm mỗi lần cập nhật nhảy vượt qua điểm cực tiểu sang sườn bên kia, có khi cao hơn chỗ cũ; lặp lại nhiều lần thì tham số dao động ngày càng xa và loss trên chính tập huấn luyện tăng dần theo số epoch, thậm chí phân kỳ. "Regularization is too low and model is overfitting" sai vì quá khớp biểu hiện là loss huấn luyện vẫn giảm đều trong khi loss kiểm định tăng, không phải loss huấn luyện tăng. "Regularization is too high and model is underfitting" khiến loss huấn luyện dừng ở mức cao, giảm chậm rồi đi ngang, nhưng không tăng lên theo epoch. "Step size is too small" làm loss giảm rất chậm, cần nhiều epoch mới hội tụ, nhưng mỗi bước vẫn đi xuống dốc nên loss không tăng.
Mở trang câu hỏi này →
ABecause it strongly penalizes wrong high-probability predictions, gives useful gradients for learning, and avoids tiny numbers when handling sequence prediction.
BBecause the log makes the loss always equal to zero when the prediction is wrong.
CBecause the log guarantees that the predicted probabilities always sum to one.
DBecause the log makes the loss independent of the probability assigned to the true class.
Lời giải
Đáp án đúng: "Because it strongly penalizes wrong high-probability predictions, gives useful gradients for learning, and avoids tiny numbers when handling sequence prediction.". Hàm mất mát cross-entropy cho một mẫu là −log(p), với p là xác suất mô hình gán cho lớp đúng. Khi p tiến về 0, tức mô hình tự tin đặt xác suất cao vào lớp sai, −log(p) tăng vọt về vô cực, trong khi 1 − p chỉ tối đa bằng 1, nên lỗi tự tin bị phạt nặng hơn nhiều. Kết hợp với softmax, gradient theo logit có dạng gọn p − y, không bị bão hoà khi mô hình sai nặng, nên học nhanh hơn. Với chuỗi, xác suất cả câu là tích nhiều số nhỏ dễ tràn dưới (underflow), còn log biến tích thành tổng các log ổn định về số học. Phát biểu "always equal to zero when the prediction is wrong" sai vì ngược lại: dự đoán sai cho loss lớn, loss chỉ về 0 khi p = 1. Phát biểu "guarantees that the predicted probabilities always sum to one" sai vì việc chuẩn hoá tổng bằng một là do lớp softmax, phép log không làm điều đó. Phát biểu "independent of the probability assigned to the true class" sai vì cross-entropy phụ thuộc trực tiếp và chỉ phụ thuộc vào chính xác suất của lớp đúng.
Mở trang câu hỏi này →
A4/13
B19/52
C1/36
D5/12
Lời giải
Đáp án đúng: "19/52". Bộ bài 52 lá có 4 lá Q (queen), 4 lá K (king) và 13 lá cơ (heart). Dùng quy tắc cộng cho biến cố hợp có phần giao: số lá thoả mãn = 4 + 4 + 13 trừ phần đếm trùng. Lá Q cơ và lá K cơ vừa là Q hoặc K vừa là cơ nên đã bị đếm hai lần, phải trừ đi 2; Q và K không giao nhau. Kết quả 4 + 4 + 13 − 2 = 19 lá, nên xác suất là 19/52. "4/13" bằng 16/52, tức chỉ 16 lá, ít hơn 3 lá so với số lá thật sự thoả điều kiện, ứng với cách đếm bỏ sót. "1/36" là mẫu số đặc trưng của phép tung hai con xúc xắc (36 kết quả), không liên quan bộ bài, và nếu quy về 52 lá thì 52/36 không phải số nguyên lá. "5/12" quy về 52 lá được 260/12 ≈ 21,67 lá, không phải số nguyên nên không thể là xác suất rút một lá trong bộ bài 52 lá.
Mở trang câu hỏi này →

Đề có câu hỏi của chủ đề này

3 đề chứa ít nhất một câu thuộc chủ đề — mở đề để làm cả bộ, không chỉ từng câu.