Danh sách câu hỏi của đề

Câu hỏi: NLP301c Xử lý ngôn ngữ tự nhiên – Bộ ôn tập thi lại số 1

60 câu trắc nghiệm kèm lời giải của môn NLP301c - Xử lý ngôn ngữ tự nhiên, xếp đúng thứ tự trong đề. Trang 2/3 — câu 21–40.

Danh sách câu hỏi

40/60 câuCòn 20
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 →
23Zipf's law tells us:4 lựa chọn
Ahead words take major portion in English vocabulary;
Bin a given corpus, if the most frequent word's frequency is 1, then the second frequent word's frequency is around 0.5;
Ccomparing to tail words, removing head words helps more to reduce the storage of documents represented by a vector space model when using a dense matrix data structure;
Dsmoothing is not necessary.
Lời giải

Đáp án đúng: "in a given corpus,

Lời giải
if the most frequent word's frequency is 1, then the second frequent word's frequency is around 0.5;

". Định luật Zipf nói tần suất của một từ tỉ lệ nghịch với thứ hạng của nó trong bảng tần suất, f(r) xấp xỉ C / r: từ hạng 1 có tần suất C, từ hạng 2 khoảng C/2, từ hạng 3 khoảng C/3; lấy tần suất từ đứng đầu làm 1 thì từ thứ hai khoảng 0.5, đúng như phát biểu được chọn. Phương án "head words take major portion in English vocabulary;" sai vì nhóm từ đầu bảng (head words) như the, of, and chỉ là một số rất ít loại từ; chúng chiếm phần lớn số lượt xuất hiện (token) chứ không chiếm phần lớn từ vựng, vốn chủ yếu là các từ hiếm ở đuôi. Phương án nói "removing head words helps more to reduce the storage" sai vì ma trận đặc (dense matrix) có kích thước số tài liệu nhân số loại từ, mỗi loại từ một cột bất kể tần suất; đuôi phân phối chứa vô số loại từ hiếm nên bỏ từ đuôi mới giảm nhiều cột, bỏ vài từ đầu bảng gần như không thay đổi kích thước. "smoothing is not necessary." sai vì chính Zipf cho thấy đa số loại từ rất hiếm và nhiều n-gram hợp lệ không hề xuất hiện trong kho ngữ liệu, nên làm trơn (smoothing) là cần thiết để tránh xác suất bằng 0.

Mở trang câu hỏi này →
ARooting
BChunking
CSteaming
DTokenization
Lời giải
Đáp án đúng: "Tokenization". Tokenization (tách token) là quá trình chia một chuỗi văn bản thành danh sách các token, thường là từ, dấu câu hoặc đơn vị dưới từ, ví dụ word_tokenize của NLTK biến một câu thành danh sách từ; nó là bước tiền xử lý đầu tiên để mọi bước sau có đơn vị làm việc. "Rooting" không phải thuật ngữ chuẩn trong NLP; việc đưa từ về gốc được gọi là stemming hay lemmatization. "Chunking" (phân đoạn nông) gom các token đã gán nhãn từ loại thành cụm như cụm danh từ, tức chạy sau tokenization chứ không tách chuỗi thành token. "Steaming" gần với stemming, là cắt hậu tố để đưa từ về dạng gốc, như "running" thành "run"; nó biến đổi từng token chứ không chia chuỗi thành danh sách token.
Mở trang câu hỏi này →
ANumber of clusters
BClass labels
CDistance metric
DNumber of centroids
Lời giải
Đáp án đúng gồm ba ý: "Number of clusters", "Distance metric" và "Number of centroids". K-means là thuật toán phân cụm không giám sát, dùng trong NLP để gom văn bản hay vector từ theo độ giống nhau. Ngoài tập điểm dữ liệu, nó cần số cụm k, mà mỗi cụm có đúng một tâm nên số cụm và số tâm là cùng một tham số nói theo hai cách; thuật toán khởi tạo k tâm, gán mỗi điểm vào tâm gần nhất theo một độ đo khoảng cách (thường là Euclid, với vector văn bản có thể dùng cosine), cập nhật tâm bằng trung bình các điểm trong cụm và lặp tới khi hội tụ, vì vậy độ đo khoảng cách cũng là đầu vào. "Class labels" không phải đầu vào vì k-means là học không giám sát, nó tự tìm nhóm từ dữ liệu chưa gán nhãn; nhãn lớp chỉ cần cho phân loại có giám sát hoặc để đánh giá kết quả phân cụm sau khi chạy.
Mở trang câu hỏi này →
26BLEU is used to evaluate:4 lựa chọn
ATranslation
BSpeech
CClassification
DParsing
Lời giải
Đáp án đúng: "Translation". BLEU (Bilingual Evaluation Understudy) là độ đo tự động cho dịch máy: nó tính tỷ lệ n-gram (thường từ 1 đến 4) của câu máy dịch trùng với một hay nhiều bản dịch tham chiếu do người viết, lấy trung bình nhân các độ chính xác này rồi nhân hệ số phạt độ ngắn (brevity penalty) để câu dịch quá ngắn không được điểm cao giả. "Speech" sai vì nhận dạng tiếng nói thường đo bằng WER (word error rate, tỷ lệ lỗi từ) dựa trên khoảng cách chỉnh sửa. "Classification" đo bằng accuracy, precision, recall, F1 trên nhãn dự đoán, không có khái niệm n-gram trùng khớp. "Parsing" đánh giá bằng độ chính xác cấu trúc cây, như PARSEVAL cho cú pháp thành phần hay UAS và LAS cho cú pháp phụ thuộc. BLEU về sau còn được mượn cho các bài toán sinh văn bản khác, nhưng mục đích gốc của nó là đánh giá bản dịch.
Mở trang câu hỏi này →
AFuzzy Logic
BWord Sense Disambiguation
CShallow Semantic Analysis
DAll of the others
Lời giải
Đáp án đúng: "Word Sense Disambiguation". WSD (khử nhập nhằng nghĩa từ) là bài toán chọn nghĩa đúng của một từ đa nghĩa trong ngữ cảnh cụ thể, ví dụ bass là cá vược hay âm trầm, bank là ngân hàng hay bờ sông. Các cách giải gồm thuật toán Lesk so độ trùng giữa ngữ cảnh và định nghĩa trong WordNet, bộ phân loại có giám sát dùng đặc trưng từ lân cận, hoặc embedding ngữ cảnh. "Fuzzy Logic" là logic mờ cho phép giá trị chân lý nằm giữa 0 và 1 để suy luận với khái niệm không rõ ranh giới như nóng, cao; nó không chọn nghĩa từ. "Shallow Semantic Analysis" như gán vai nghĩa (semantic role labeling) xác định ai làm gì với ai trong câu, có liên quan đến nghĩa nhưng không nhắm vào việc chọn nghĩa của từng từ đa nghĩa. "All of the others" sai vì chỉ WSD giải đúng vấn đề được mô tả.
Mở trang câu hỏi này →
ATerm frequency
BWord frequency
CInverse document frequency
DBi-gram frequency
Lời giải
Đáp án đúng: "Inverse document frequency". IDF của thuật ngữ t bằng log(N / df(t)), với N là tổng số tài liệu và df(t) là số tài liệu chứa t; thuật ngữ càng hiếm thì df càng nhỏ và IDF càng lớn, nên khi nhân vào TF nó nâng trọng số của từ hiếm, giàu thông tin, và kéo những từ có mặt khắp nơi như the, is về gần 0. Ví dụ với 1.000 tài liệu, từ có mặt trong 10 tài liệu có IDF = log(100), còn từ có mặt trong cả 1.000 tài liệu có IDF = log(1) = 0. "Term frequency" đếm số lần từ xuất hiện trong một tài liệu, nên từ càng phổ biến càng được trọng số cao, ngược với yêu cầu. "Word frequency" cũng chỉ là số đếm tần suất từ, ưu tiên từ thường gặp. "Bi-gram frequency" đếm cặp hai từ liền nhau, vẫn là số đếm thô, không có cơ chế phạt từ phổ biến.
Mở trang câu hỏi này →
AHill-climbing search
BHidden markov model
CDepth-first search
DBreadth-first search
Lời giải
Đáp án đúng: "Hidden markov model". Suy luận xác suất theo thời gian (temporal probabilistic reasoning) là việc ước lượng trạng thái thế giới thay đổi qua các bước thời gian dựa trên chuỗi quan sát nhiễu, gồm các tác vụ lọc (filtering), dự báo (prediction), làm trơn (smoothing) và tìm chuỗi giải thích hợp lý nhất. Mô hình Markov ẩn biểu diễn đúng điều này bằng trạng thái ẩn, xác suất chuyển trạng thái và xác suất quan sát, với các thuật toán forward–backward và Viterbi. "Hill-climbing search" là tìm kiếm cục bộ để tối ưu một hàm mục tiêu, luôn đi tới trạng thái lân cận tốt hơn, không có mô hình xác suất hay trục thời gian. "Depth-first search" là tìm kiếm mù duyệt sâu trên không gian trạng thái xác định. "Breadth-first search" duyệt theo từng mức độ sâu, cũng là tìm kiếm mù trên đồ thị xác định, không xử lý sự bất định của quan sát.
Mở trang câu hỏi này →
30What is outcome thinking?4 lựa chọn
AKnowing what you want rather than what you don’t want.
BKnow about others
CKnow about the society None
Dlanguage
Lời giải
Đáp án đúng: "Knowing what you want rather than what you don’t want.". Câu này thuộc Neuro-Linguistic Programming (lập trình ngôn ngữ tư duy), cũng viết tắt NLP nhưng là một trường phái tâm lý ứng dụng và giao tiếp, nằm ngoài Natural Language Processing. Trong đó outcome thinking (tư duy theo kết quả) là thói quen đặt mục tiêu dưới dạng điều mình muốn đạt được, cụ thể và tích cực, thay vì xoay quanh vấn đề hay điều mình muốn tránh, ví dụ nói tôi muốn khoẻ mạnh thay vì tôi không muốn ốm. "Know about others" là hiểu người khác, gần với khái niệm tạo sự đồng cảm trong giao tiếp, không phải xác định kết quả mình mong muốn. "Know about the society None" nói về hiểu biết xã hội, cũng không liên quan đến việc định hướng mục tiêu cá nhân. "language" chỉ là ngôn ngữ nói chung, không mô tả một cách tư duy nào.
Mở trang câu hỏi này →
ANP → Verb VP
BVP → Verb PP
CVP → Verb NP
DVP → Verb NP PP
Lời giải
Đáp án đúng: "VP → Verb NP". Trong văn phạm phi ngữ cảnh (context-free grammar), cụm eat a pizza là một cụm động từ VP gồm động từ eat và một cụm danh từ NP là a pizza (mạo từ cộng danh từ) làm tân ngữ, nên luật sinh tương ứng là động từ theo sau bởi cụm danh từ. "NP → Verb VP" sai vì vế trái là cụm danh từ, mà cụm danh từ không mở đầu bằng động từ rồi theo sau là một cụm động từ. "VP → Verb PP" mô tả động từ đi kèm cụm giới từ như go to school, nhưng a pizza không có giới từ nào. "VP → Verb NP PP" cần thêm một cụm giới từ sau tân ngữ như eat a pizza with a fork; cụm đang xét dừng ở a pizza nên luật này thừa một thành phần.
Mở trang câu hỏi này →
AReLU
BSigmoid
CTanh
DSoftmax
Lời giải
Đáp án đúng: "Tanh". Trong RNN cơ bản (vanilla hay Elman RNN), trạng thái ẩn được cập nhật theo h(t) = tanh(W·h(t−1) + U·x(t) + b): hàm tanh nén giá trị về khoảng (−1, 1), đối xứng quanh 0 nên trạng thái ẩn giữ được cả tín hiệu dương lẫn âm và ổn định hơn khi lặp qua nhiều bước, đạo hàm lớn nhất bằng 1 nên gradient suy giảm chậm hơn so với sigmoid. "ReLU" không bị chặn trên, khi nhân lặp qua các bước dễ làm trạng thái ẩn và gradient bùng nổ, nên chỉ được dùng trong vài biến thể về sau với cách khởi tạo đặc biệt. "Sigmoid" từng xuất hiện ở các mạng hồi quy đời đầu, nhưng trong công thức RNN chuẩn nó được dành cho các cổng của LSTM và GRU, nơi cần giá trị từ 0 tới 1 để đóng mở luồng thông tin. "Softmax" dùng ở tầng đầu ra để biến điểm số thành phân phối xác suất trên từ vựng, không dùng cho trạng thái ẩn.
Mở trang câu hỏi này →
AText planning
BSentence planning
CText Realization
DText Summarization
Lời giải
Đáp án đúng: "Text Realization". Trong sinh ngôn ngữ tự nhiên (Natural Language Generation), quy trình kinh điển gồm ba giai đoạn: lập kế hoạch văn bản, lập kế hoạch câu, rồi hiện thực hoá. Text realization (hiện thực hoá văn bản) nhận kế hoạch câu và ánh xạ nó thành cấu trúc câu thật đúng ngữ pháp, chọn trật tự từ, chia động từ, thêm mạo từ và dấu câu. "Text planning" (lập kế hoạch văn bản) đứng đầu quy trình, chọn nội dung cần nói và sắp xếp thứ tự các ý, chưa đụng tới câu chữ. "Sentence planning" (lập kế hoạch câu) chọn từ, gộp ý vào câu và quyết định cách gọi tên đối tượng, tức chính là bước tạo ra kế hoạch câu, chứ không chuyển kế hoạch đó thành câu hoàn chỉnh. "Text Summarization" (tóm tắt văn bản) là một bài toán ứng dụng riêng, rút gọn văn bản có sẵn, không phải một giai đoạn trong quy trình sinh câu.
Mở trang câu hỏi này →
AIt depicts analyzing, identifying and description of the structure of words. It includes dividing a text into paragraphs, words and the sentences.
BThis component transfers linear sequences of words into structures.
CThis only abstracts the dictionary meaning or the real meaning from the given context.
DAll of the others
Lời giải
Đáp án đúng: "It depicts analyzing, identifying and description of the structure of words. It includes dividing a text into paragraphs, words and the sentences.". Morphological and lexical analysis (phân tích hình thái và từ vựng) là mức đầu tiên của NLP: nhận biết và mô tả cấu trúc của từ qua các hình vị, đồng thời chia văn bản thành đoạn, câu và từ, tức bao gồm tokenization và tách câu. "This component transfers linear sequences of words into structures." là định nghĩa của phân tích cú pháp: nhận chuỗi từ tuyến tính và dựng cấu trúc cây cho thấy quan hệ giữa các từ, mức này làm việc trên kết quả của phân tích từ vựng. "This only abstracts the dictionary meaning or the real meaning from the given context." là định nghĩa của phân tích ngữ nghĩa, rút ra nghĩa của từ và câu. "All of the others" sai vì hai mô tả vừa bác thuộc hai mức phân tích khác, chỉ một mô tả đúng với phân tích hình thái và từ vựng.
Mở trang câu hỏi này →
AFinding topics
BAnalyzing sentence structure
CTranslating text
DExtracting keywords
Lời giải
Đáp án đúng: "Analyzing sentence structure". Parsing (phân tích cú pháp) xác định cấu trúc ngữ pháp của câu: cây thành phần (constituency) cho biết các từ gom thành cụm danh từ, cụm động từ ra sao theo một văn phạm, còn cây phụ thuộc (dependency) cho biết từ nào bổ nghĩa cho từ nào, như chủ ngữ, tân ngữ của động từ chính. Kết quả này phục vụ các bước sau như phân tích ngữ nghĩa hay trích xuất quan hệ. "Finding topics" là mô hình chủ đề (topic modeling) như LDA, làm việc trên tần suất từ ở mức tài liệu, không quan tâm cấu trúc câu. "Translating text" là dịch máy, một ứng dụng có thể dùng kết quả parsing nhưng không phải mục đích của parsing. "Extracting keywords" là trích từ khoá bằng TF-IDF hay TextRank, chọn từ quan trọng chứ không phân tích quan hệ cú pháp.
Mở trang câu hỏi này →
AInput gate
BForget gate
CHidden gate
DOutput gate
Lời giải
Đáp án đúng: "Hidden gate". Câu hỏi phủ định, cần tìm thứ không phải cổng của LSTM. Một LSTM chuẩn có ba cổng, đều là lớp sigmoid cho giá trị từ 0 tới 1 để điều tiết luồng thông tin qua trạng thái ô nhớ (cell state); trạng thái ẩn (hidden state) là đầu ra của ô tại mỗi bước chứ không phải một cổng, nên "Hidden gate" không tồn tại. "Input gate" là cổng thật, quyết định bao nhiêu thông tin ứng viên mới được ghi vào ô nhớ. "Forget gate" cũng là cổng thật, quyết định phần nào của ô nhớ cũ bị xoá đi, nhờ nó LSTM giữ được phụ thuộc xa mà vẫn bỏ được thông tin đã hết giá trị. "Output gate" là cổng thứ ba, quyết định phần nào của ô nhớ sau khi qua tanh được đưa ra làm trạng thái ẩn. Vì ba cổng này đều có trong LSTM nên chúng không phải đáp án.
Mở trang câu hỏi này →
AMachine translation
BImage caption generation
CCharacter generation
DSentiment classification
Lời giải
Đáp án đúng: "Sentiment classification". Kiến trúc RNN nhiều–một (many-to-one) đọc cả một chuỗi đầu vào qua nhiều bước thời gian rồi chỉ xuất một kết quả ở bước cuối. Phân loại cảm xúc đúng kiểu này: mạng đọc lần lượt các từ của câu đánh giá, trạng thái ẩn cuối tóm tắt cả câu và được đưa qua lớp softmax để ra một nhãn duy nhất như tích cực hay tiêu cực. "Machine translation" (dịch máy) nhận một chuỗi và sinh ra một chuỗi khác có độ dài có thể khác, nên dùng kiến trúc nhiều–nhiều dạng encoder–decoder (seq2seq). "Image caption generation" (sinh chú thích ảnh) nhận một đầu vào là ảnh và sinh ra chuỗi từ, tức kiểu một–nhiều (one-to-many). "Character generation" (sinh ký tự) xuất ra liên tiếp nhiều ký tự, mỗi bước một ký tự, nên là kiểu một–nhiều hoặc nhiều–nhiều chứ không dừng ở một đầu ra.
Mở trang câu hỏi này →
AAntonym
BSynonym
CPolysemy
DHomonym
Lời giải
Đáp án đúng: "Synonym". Synonym (từ đồng nghĩa) là hai từ khác hình thức nhưng có nghĩa giống hoặc rất gần nhau và thay thế được cho nhau trong nhiều ngữ cảnh; conceal và cover đều có nghĩa che giấu, như conceal the truth gần với cover up the truth, nên là cặp đồng nghĩa. Trong WordNet, các từ đồng nghĩa được gom chung một synset. "Antonym" (từ trái nghĩa) là cặp có nghĩa đối lập; trái nghĩa của conceal là reveal, không phải cover. "Polysemy" (đa nghĩa) là hiện tượng một từ có nhiều nghĩa liên quan nhau, như head là cái đầu và người đứng đầu, tức nói về một từ chứ không về quan hệ giữa hai từ khác nhau. "Homonym" (từ đồng âm) là các từ trùng hình thức nhưng nghĩa không liên quan, như bank là ngân hàng và bank là bờ sông, ngược với cặp ở đây vốn khác hình thức mà cùng nghĩa.
Mở trang câu hỏi này →
AProcessing a batch of tweets stored in a database
BPredicting the next stock price based on a live price feed
CPerforming offline text summarization
DTranslating a stored paragraph from English to French
Lời giải
Đáp án đúng: "Predicting the next stock price based on a live price feed". Bi-RNN (mạng hồi quy hai chiều) chạy một RNN từ đầu đến cuối chuỗi và một RNN từ cuối về đầu rồi ghép trạng thái ẩn, nên dự đoán tại mỗi vị trí dùng cả quá khứ lẫn tương lai. Điều đó đòi hỏi có sẵn toàn bộ chuỗi trước khi xử lý. Với dòng giá đến liên tục theo thời gian thực, lúc dự đoán giá kế tiếp ta chưa có các giá tương lai nên nhánh chạy ngược không có dữ liệu; muốn dùng phải sửa, chẳng hạn chỉ giữ RNN một chiều. "Processing a batch of tweets stored in a database" có toàn bộ văn bản sẵn nên Bi-RNN dùng tốt. "Performing offline text summarization" xử lý ngoại tuyến, đọc trọn văn bản trước khi tóm tắt. "Translating a stored paragraph from English to French" cũng có đủ câu nguồn từ đầu, và bộ mã hoá hai chiều chính là lựa chọn phổ biến trong dịch máy.
Mở trang câu hỏi này →
AIt simplifies the model architecture by reducing the need for complex recurrent layers
BIt improves the interpretability of the model by highlighting which parts of the input contribute to the output
CIt helps with the information bottleneck issue
DIt allows model to focus on the parts that matter more.
Lời giải
Đáp án đúng gồm ba ý: "It improves the interpretability of the model by highlighting which parts of the input contribute to the output", "It helps with the information bottleneck issue" và "It allows model to focus on the parts that matter more.". Trong mô hình encoder–decoder RNN thuần, cả câu nguồn bị nén vào một vectơ ngữ cảnh cố định, gây nút thắt thông tin (information bottleneck) khiến câu dài bị dịch kém; attention cho decoder ở mỗi bước tính trọng số trên mọi trạng thái ẩn của encoder rồi lấy tổng có trọng số, nên mô hình tập trung vào phần đầu vào liên quan nhất, và chính các trọng số đó vẽ được thành bản đồ căn chỉnh (alignment) cho thấy phần đầu vào nào góp vào đầu ra, giúp diễn giải mô hình. Chỗ dễ tranh cãi là phương án "It simplifies the model architecture by reducing the need for complex recurrent layers": việc bỏ hẳn tầng hồi quy là lợi ích của kiến trúc Transformer, vốn xây toàn bộ trên self-attention, chứ không phải lợi ích của attention nói chung; attention nguyên thuỷ được gắn thêm vào RNN, khiến kiến trúc phức tạp hơn chứ không đơn giản đi, nên phương án này không được chọn. Có người chỉ coi nút thắt thông tin và việc tập trung vào phần quan trọng là lợi ích cốt lõi, nhưng khả năng diễn giải qua trọng số attention cũng là lợi ích được thừa nhận rộng rãi nên vẫn được tính.
Mở trang câu hỏi này →