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 cuối kỳ 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 đề.

Danh sách câu hỏi

20/60 câuCòn 40
AAutomatic Summarization
BDiscourse Analysis
CMachine Translation
DAll of the others
Lời giải
Đáp án đúng: "All of the others". Cả ba tác vụ được liệt kê đều là bài toán lớn kinh điển của xử lý ngôn ngữ tự nhiên. "Automatic Summarization" (tóm tắt tự động) tạo bản rút gọn giữ ý chính của văn bản, theo hướng trích xuất câu quan trọng hoặc sinh câu mới. "Discourse Analysis" (phân tích diễn ngôn) xét quan hệ giữa các câu trong văn bản, như giải quyết đồng tham chiếu để biết đại từ trỏ tới ai và nhận diện quan hệ nguyên nhân, tương phản giữa các đoạn. "Machine Translation" (dịch máy) chuyển văn bản từ ngôn ngữ nguồn sang ngôn ngữ đích, từ hệ dựa trên luật, thống kê tới mạng nơ-ron Transformer. Vì mỗi tác vụ đều là nhiệm vụ chính của NLP, chọn riêng một trong ba chỉ đúng một phần và bỏ sót hai tác vụ còn lại, nên chỉ phương án gộp mới đủ.
Mở trang câu hỏi này →
AAlpha: density of topics generated within documents, beta: density of terms generated within topics
BAlpha: number of topics within documents, beta: number of terms within topics
CAlpha: density of terms generated within topics, beta: density of topics generated within terms
DAlpha: number of topics within documents, beta: number of terms within topics
Lời giải
Đáp án đúng: "Alpha: density of topics generated within documents, beta: density of terms generated within topics". LDA (Latent Dirichlet Allocation) mô hình mỗi văn bản là hỗn hợp chủ đề và mỗi chủ đề là phân phối trên từ; alpha là tham số của phân phối Dirichlet tiên nghiệm cho tỉ lệ chủ đề trong văn bản, alpha lớn thì mỗi văn bản chứa nhiều chủ đề trộn đều, alpha nhỏ thì mỗi văn bản tập trung vào ít chủ đề; beta là tham số Dirichlet cho phân phối từ trong chủ đề, beta lớn thì mỗi chủ đề trải ra nhiều từ. Vì vậy chúng đo mật độ chứ không phải số lượng. Chuỗi "Alpha: number of topics within documents, beta: number of terms within topics" được in hai lần và sai vì alpha, beta là tham số nồng độ, còn số chủ đề K là một siêu tham số riêng phải chọn trước, số từ thì do từ vựng quyết định. "Alpha: density of terms generated within topics, beta: density of topics generated within terms" đảo vai hai tham số, và cụm topics generated within terms không có nghĩa trong LDA vì từ không sinh ra chủ đề.
Mở trang câu hỏi này →
AParsing
BStop-word removal
CTranslation
DPOS tagging
Lời giải
Đáp án đúng: "Stop-word removal". Trong pipeline tiền xử lý văn bản, tokenization (tách token) chia văn bản thành từ; ngay sau đó các bước làm sạch ở mức token được áp dụng, điển hình là loại bỏ stop word (từ dừng) như the, is, of vốn xuất hiện dày đặc nhưng ít mang nội dung, rồi mới tới stemming hay lemmatization. Bước này cần có token trước mới làm được và giảm nhiễu cho các bước sau. "Parsing" là phân tích cú pháp, cần câu đầy đủ nên thậm chí phải giữ stop word, và thường đến sau gán nhãn từ loại. "Translation" là ứng dụng đầu cuối, không phải một bước tiền xử lý. "POS tagging" cũng diễn ra sau tách token và trong pipeline phân tích cú pháp nó có thể đi liền sau tokenization; nhưng trong chuỗi tiền xử lý điển hình cho phân loại hay truy xuất văn bản, bước thường gặp ngay sau là loại stop word.
Mở trang câu hỏi này →
AInflectional
BDerivational
CCliticization
DAll of the others
Lời giải
Đáp án đúng: "Derivational". Hình thái học phái sinh (derivational morphology) ghép phụ tố vào gốc để tạo một từ mới, thường đổi cả từ loại và nghĩa: từ động từ compute, thêm -er được danh từ computer, thêm -ation và -al được tính từ computational; computer là danh từ còn computational là tính từ, nên cặp này minh hoạ đúng quá trình phái sinh. "Inflectional" là biến tố, chỉ thêm dấu ngữ pháp như số nhiều, thì, ngôi (computer thành computers, compute thành computed) mà không đổi từ loại hay tạo từ mới. "Cliticization" là việc gắn một từ rút gọn dính vào từ khác như I'm, we've, can't, ở đây không có thành phần nào như vậy. "All of the others" sai vì biến tố và gắn từ dính đều không mô tả được quan hệ giữa computer và computational.
Mở trang câu hỏi này →
ADiscourse
BSemantic Analysis
CLexical Analysis
DPragmatic Analysis
Lời giải
Đáp án đúng: "Discourse". Discourse integration (tích hợp diễn ngôn) là mức phân tích xét nghĩa của một câu trong mạch các câu đứng trước nó và cũng ảnh hưởng tới cách hiểu câu đứng sau, ví dụ đại từ "it" ở câu thứ hai chỉ hiểu được nhờ danh từ đã nêu ở câu thứ nhất; đó đúng là "sense of the context" theo chuỗi câu mà đề mô tả. "Semantic Analysis" (phân tích ngữ nghĩa) gán nghĩa đen cho từng câu, kiểm tra câu có nghĩa hay không, nhưng xét câu tương đối độc lập với các câu lân cận. "Lexical Analysis" (phân tích từ vựng) ở mức thấp nhất, tách văn bản thành đoạn, câu, từ và nhận diện hình vị, chưa đụng tới ngữ cảnh liên câu. "Pragmatic Analysis" (phân tích ngữ dụng) cũng dùng ngữ cảnh, nhưng là ngữ cảnh tình huống và ý định người nói, tri thức thế giới thực để diễn giải lại câu, chứ không phải sự phụ thuộc nghĩa giữa câu trước và câu sau trong cùng văn bản.
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 →
AFST
BFSA
CDAWG
DStemmer Algorithm
Lời giải
Đáp án đúng: "FSA". FSA (finite state automaton, ôtômat hữu hạn trạng thái) đọc một chuỗi và chỉ trả lời chấp nhận hay không, tức nhận diện một tập chuỗi. FST (finite state transducer, bộ chuyển đổi hữu hạn trạng thái) mở rộng FSA bằng cách gắn cặp ký hiệu vào và ra trên mỗi cung, nên nó ánh xạ giữa hai mức biểu diễn, như từ dạng bề mặt cats sang dạng từ vựng cat +N +PL. Nhờ đó FST được dùng trong hình thái học hai mức để biểu diễn từ điển (lexicon) cùng luật chính tả. "FST" không thể là đáp án vì một khái niệm không thể là phiên bản nâng cao của chính nó. "DAWG" (directed acyclic word graph) là cấu trúc nén để lưu tập từ và tra cứu nhanh, chỉ nhận diện từ chứ không chuyển đổi. "Stemmer Algorithm" như Porter cắt hậu tố bằng luật kinh nghiệm, không phải loại ôtômat mà FST được mở rộng ra.
Mở trang câu hỏi này →
AProbability of word sequence given a particular tag sequence
BOptimal transition and observation probabilities for HMM
CProbability of the best tag sequence given a word sequence
DNone of the others
Lời giải
Đáp án đúng: "Probability of the best tag sequence given a word sequence". Trong gán nhãn từ loại bằng HMM, thuật toán Viterbi dùng quy hoạch động để tìm chuỗi nhãn T có xác suất cao nhất cho chuỗi từ W đã cho, tức argmax P(T | W); nó trả về chuỗi nhãn tốt nhất đó cùng xác suất của nó (về kỹ thuật là xác suất đồng thời P(T, W), tỉ lệ thuận với P(T | W) vì P(W) cố định). "Probability of word sequence given a particular tag sequence" là P(W | T), tích các xác suất phát xạ, chỉ là một thành phần trong công thức, không phải đầu ra; còn nếu cần xác suất của chuỗi từ thì đó là việc của thuật toán forward. "Optimal transition and observation probabilities for HMM" là kết quả của bước huấn luyện tham số, bằng đếm tần suất trên ngữ liệu có nhãn hoặc thuật toán Baum-Welch, không phải của giải mã Viterbi. "None of the others" sai vì đã có một mô tả đúng đầu ra.
Mở trang câu hỏi này →
AStatistical
BSymbolical
CConnectionist Approach
DAll of above
Lời giải
Đáp án đúng: "Connectionist Approach". Connectionism (thuyết kết nối) là trường phái mô hình hoá trí tuệ bằng mạng gồm nhiều đơn vị đơn giản nối với nhau, tri thức nằm phân tán trong trọng số các kết nối và được học từ dữ liệu, chính là mạng nơ-ron; trong NLP, cách tiếp cận dùng mạng nơ-ron vì thế được gọi là connectionist approach. "Statistical" chỉ cách tiếp cận thống kê như n-gram, HMM, Naive Bayes ước lượng xác suất từ ngữ liệu; mạng nơ-ron cũng học từ dữ liệu nhưng tên gọi riêng của nó là connectionist chứ không phải statistical. "Symbolical" là cách tiếp cận biểu tượng, dùng luật, logic và biểu diễn tri thức viết tay, đối lập với connectionism. "All of above" sai vì mạng nơ-ron không được gọi là cách tiếp cận biểu tượng, nên không thể gộp cả ba.
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 →
AGradient descent smoothing
BAdd-one smoothing
CKernel smoothing
DFourier smoothing
Lời giải
Đáp án đúng: "Add-one smoothing". Mô hình n-gram ước lượng xác suất bằng số đếm, nên n-gram chưa xuất hiện trong kho huấn luyện nhận xác suất 0 và kéo cả câu về xác suất 0; làm trơn cộng một (Laplace smoothing) cộng thêm 1 vào mọi số đếm, với bigram là P(wi | wi−1) = (C(wi−1 wi) + 1) / (C(wi−1) + V) trong đó V là kích thước từ vựng, để mọi n-gram đều có xác suất dương. "Gradient descent smoothing" không phải kỹ thuật làm trơn nào; gradient descent là phương pháp tối ưu tham số bằng cách đi ngược hướng đạo hàm. "Kernel smoothing" là phương pháp ước lượng mật độ hay hồi quy cho dữ liệu liên tục bằng hàm nhân, không dùng cho số đếm n-gram. "Fourier smoothing" lọc tín hiệu trong miền tần số, thuộc xử lý tín hiệu chứ không thuộc mô hình ngôn ngữ.
Mở trang câu hỏi này →
AThe context words given a target word
BThe target word given surrounding context words
CThe most frequent word in a corpus
DWord embeddings for all possible n-grams
Lời giải
Đáp án đúng: "The target word given surrounding context words". CBOW (Continuous Bag-of-Words) là một trong hai kiến trúc của Word2Vec: nó lấy các từ ngữ cảnh trong một cửa sổ quanh vị trí cần đoán, cộng hoặc lấy trung bình vectơ của chúng (bỏ qua thứ tự, nên gọi là túi từ), rồi dự đoán từ đích ở giữa; trọng số học được chính là vectơ nhúng từ. "The context words given a target word" là cách làm ngược lại của Skip-gram, kiến trúc còn lại của Word2Vec, đoán các từ xung quanh từ một từ trung tâm. "The most frequent word in a corpus" chỉ là phép đếm tần suất, không cần mạng nơ-ron và không học được biểu diễn nghĩa. "Word embeddings for all possible n-grams" gần với ý tưởng của FastText, vốn biểu diễn từ bằng các n-gram ký tự, còn CBOW không sinh vectơ cho mọi n-gram có thể.
Mở trang câu hỏi này →
ASmoothing adjusts probabilities to prevent zero values, improving model generalization
BSmoothing increases the size of the transition matrix by adding more rows and columns
CSmoothing removes any negative probabilities from the transition matrix.
DSmoothing converts all transition probabilities to equal values
Lời giải
Đáp án đúng: "Smoothing adjusts probabilities to prevent zero values, improving model generalization". Ma trận chuyển trạng thái của HMM hay mô hình n-gram ước lượng bằng đếm, nên cặp nhãn chưa từng gặp trong ngữ liệu huấn luyện nhận xác suất 0 và làm cả chuỗi có xác suất 0. Smoothing (làm trơn) lấy bớt một phần xác suất của sự kiện đã thấy chia cho sự kiện chưa thấy; ví dụ Laplace cộng một: P(t_i|t_i-1) = (C(t_i-1, t_i) + 1) / (C(t_i-1) + V), với V là số trạng thái, nên không ô nào bằng 0 và mô hình khái quát tốt hơn trên dữ liệu mới. "Smoothing increases the size of the transition matrix by adding more rows and columns" sai vì kích thước ma trận do số trạng thái quyết định, làm trơn chỉ đổi giá trị các ô. "Smoothing removes any negative probabilities from the transition matrix." sai vì xác suất ước lượng từ đếm không bao giờ âm. "Smoothing converts all transition probabilities to equal values" sai vì làm mọi ô bằng nhau sẽ xoá sạch thông tin học được; làm trơn chỉ dời một ít xác suất.
Mở trang câu hỏi này →
ATo store words in a dictionary for fast lookup
BTo represent words as dense vectors that capture semantic and syntactic relationships.
CTo count the frequency of words in a text corpus.
DTo translate words from one language to another.
Lời giải
Đáp án đúng: "To represent words as dense vectors that capture semantic and syntactic relationships.". Word embedding (nhúng từ) ánh xạ mỗi từ thành một vector số thực ít chiều, thường vài trăm chiều, học từ ngữ cảnh xuất hiện theo giả thuyết phân bố: từ dùng trong những ngữ cảnh giống nhau thì có nghĩa gần nhau. Nhờ vậy khoảng cách và hướng giữa các vector phản ánh quan hệ ngữ nghĩa (king gần queen) lẫn quan hệ ngữ pháp (walk với walked giống quan hệ swim với swam). "To store words in a dictionary for fast lookup" mô tả một cấu trúc dữ liệu tra cứu như bảng băm, không tạo ra biểu diễn mang nghĩa. "To count the frequency of words in a text corpus." là việc của các mô hình đếm như bag-of-words, cho vector thưa và không nắm được quan hệ giữa các từ. "To translate words from one language to another." là bài toán dịch máy; embedding có thể làm đầu vào cho hệ dịch nhưng bản thân nó không dịch gì cả.
Mở trang câu hỏi này →
ANumPy
BspaCy
CPandas
DSeaborn
Lời giải
Đáp án đúng: "spaCy". spaCy là thư viện Python chuyên cho xử lý ngôn ngữ tự nhiên, cung cấp sẵn pipeline gồm tokenization, gán nhãn từ loại, lemmatization, phân tích phụ thuộc, nhận diện thực thể có tên và vector từ, với mô hình huấn luyện sẵn cho nhiều ngôn ngữ; cùng với NLTK, nó là thư viện NLP hay gặp nhất. "NumPy" là thư viện tính toán số học với mảng nhiều chiều và đại số tuyến tính, là nền cho nhiều thư viện khác nhưng không có công cụ xử lý ngôn ngữ nào. "Pandas" là thư viện thao tác dữ liệu dạng bảng qua DataFrame, hữu ích để đọc và lọc tập dữ liệu văn bản nhưng không tách từ hay phân tích cú pháp. "Seaborn" là thư viện trực quan hoá dữ liệu thống kê xây trên Matplotlib, dùng để vẽ biểu đồ, không phải thư viện NLP.
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 →
ARNN
BTransformer
CDecision Tree
DHMM
ENaive Bayes
FLSTM
Lời giải
Đáp án đúng gồm bốn ý: "RNN", "Transformer", "HMM" và "LSTM". Mô hình chuỗi (sequence model) xử lý dữ liệu có thứ tự và khai thác quan hệ giữa các phần tử theo vị trí. RNN đọc từng token và mang trạng thái ẩn sang bước sau; LSTM là RNN có ô nhớ và các cổng nên giữ được phụ thuộc xa; Transformer xử lý cả chuỗi bằng self-attention cộng mã hoá vị trí (positional encoding) để biết thứ tự; HMM mô hình hoá chuỗi trạng thái ẩn bằng xác suất chuyển trạng thái và xác suất phát ra, dùng cho gán nhãn từ loại và nhận dạng tiếng nói. "Decision Tree" không phải mô hình chuỗi vì nó phân lớp một vectơ đặc trưng cố định bằng các phép tách theo thuộc tính, không biết thứ tự giữa các phần tử. "Naive Bayes" coi văn bản là túi từ với giả định các từ độc lập, bỏ qua hoàn toàn thứ tự nên cũng không phải mô hình chuỗi.
Mở trang câu hỏi này →
ARooting
BDreaming
CSteaming
DLemmatization
Lời giải
Đáp án đúng: "Lemmatization". Lemmatization (chuẩn hoá về dạng từ điển) đưa một từ về lemma, tức dạng gốc có trong từ điển, dựa trên từ loại và hình thái: better thành good, studies thành study, was thành be. Chữ also ngụ ý đây là kỹ thuật thứ hai cùng làm việc đưa từ về gốc bên cạnh stemming, và cụm root form hợp với lemma vì nó luôn là một từ thật. Có ý kiến chọn "Steaming" vì đây là cách in sai của Stemming, kỹ thuật cũng đưa từ về gốc; nhưng stemming chỉ cắt hậu tố theo luật nên gốc thu được không bảo đảm là từ thật (studies thành studi), còn chữ Steaming đúng như in nghĩa là hấp hơi, nên Lemmatization vẫn là lựa chọn được chốt. "Rooting" không phải tên một kỹ thuật tiền xử lý trong NLP, chỉ mượn chữ root để gây nhiễu. "Dreaming" là một từ thông thường không liên quan gì tới xử lý hình thái từ.
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 →
ATensorFlow
BNLTK
COpenCV
DMatplotlib
Lời giải
Đáp án đúng: "NLTK". NLTK (Natural Language Toolkit) là thư viện Python chuyên cho xử lý ngôn ngữ tự nhiên, cung cấp sẵn các công cụ tách token, rút gọn gốc từ (PorterStemmer), lemmatization qua WordNet, gán nhãn từ loại, phân tích cú pháp, cùng nhiều kho ngữ liệu để học và thử nghiệm, nên là công cụ NLP kinh điển trong Python. "TensorFlow" là khung học sâu đa năng của Google; có thể dùng nó để xây mô hình NLP, nhưng bản thân nó là thư viện tính toán tensor và huấn luyện mạng nơ-ron cho mọi lĩnh vực, không phải bộ công cụ chuyên NLP. "OpenCV" là thư viện thị giác máy tính, xử lý ảnh và video như phát hiện cạnh, nhận dạng khuôn mặt. "Matplotlib" là thư viện vẽ biểu đồ và trực quan hoá dữ liệu, chỉ dùng để minh hoạ kết quả chứ không xử lý văn bản.
Mở trang câu hỏi này →