Câu hỏi: NLP301c Xử lý ngôn ngữ tự nhiên – Bộ ôn tập cuối kỳ số 2
59 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/59 câuCòn 39
AEvaluation problem
BLikelihood estimation problem
CDecoding problem
DLearning problem
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Decoding problem". HMM (Hidden Markov Model, mô hình Markov ẩn) có ba bài toán cơ bản theo cách trình bày kinh điển của Rabiner: tính xác suất chuỗi quan sát, tìm chuỗi trạng thái ẩn tốt nhất, và học tham số. Bài toán giải mã (decoding) chính là tìm chuỗi trạng thái có xác suất cao nhất đã sinh ra chuỗi quan sát, giải hiệu quả bằng thuật toán Viterbi dùng quy hoạch động với độ phức tạp O(N²T) thay vì duyệt cả N^T chuỗi khả dĩ. "Evaluation problem" là bài toán tính P(O|λ), xác suất mô hình sinh ra chuỗi quan sát, giải bằng thuật toán forward, chỉ trả về một con số chứ không trả về chuỗi trạng thái. "Likelihood estimation problem" là tên gọi khác của chính bài toán đánh giá đó (tính likelihood, độ hợp lý của quan sát), nên cũng không cho ra chuỗi trạng thái. "Learning problem" là ước lượng ma trận chuyển trạng thái và ma trận phát xạ từ dữ liệu, thường bằng thuật toán Baum-Welch (forward-backward), tức điều chỉnh mô hình chứ không giải mã một chuỗi quan sát cụ thể.
AViterbi Algorithm
BPorter Algorithm
CDecision Algorithm
DStemmer Algorithm
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Porter Algorithm". Stemming (cắt gốc từ) là kỹ thuật tiền xử lý cắt bỏ hậu tố để đưa các biến thể như connected, connecting, connection về cùng một gốc connect; thuật toán Porter do Martin Porter công bố năm 1980 áp dụng tuần tự các bộ luật viết lại hậu tố có điều kiện, đơn giản, nhanh và có sẵn trong NLTK dưới tên PorterStemmer, nên trở thành stemmer được dùng rộng rãi nhất cho tiếng Anh. "Viterbi Algorithm" là thuật toán quy hoạch động tìm chuỗi trạng thái ẩn khả dĩ nhất trong HMM, dùng cho gán nhãn từ loại hay nhận dạng tiếng nói, không cắt hậu tố. "Decision Algorithm" không phải tên một thuật toán stemming nào; nó chỉ gợi tới cây quyết định, một mô hình phân lớp. "Stemmer Algorithm" chỉ lặp lại tên loại bài toán, không chỉ ra thuật toán cụ thể nào nên không trả lời được câu hỏi thuật toán nào phổ biến nhất.
ASummarize blocks of text
BAutomatically generate keyword tags
CIdentify the type of entity extracted
DAll of the others
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "All of the others". Xử lý ngôn ngữ tự nhiên (Natural Language Processing) là lĩnh vực giúp máy đọc, hiểu và sinh ngôn ngữ người, nên nó phục vụ cùng lúc nhiều bài toán ứng dụng khác nhau, và cả ba ứng dụng được nêu đều là việc NLP làm hằng ngày. "Summarize blocks of text" là tóm tắt văn bản tự động (automatic summarization), rút ý chính của một đoạn dài thành bản ngắn. "Automatically generate keyword tags" là trích xuất từ khoá (keyword extraction), dùng thống kê như TF-IDF hay mô hình học máy để gắn nhãn chủ đề cho tài liệu. "Identify the type of entity extracted" là nhận dạng thực thể có tên (Named Entity Recognition – NER), xác định một cụm từ là tên người, tổ chức, địa điểm hay ngày tháng. Vì mỗi phát biểu riêng lẻ đều đúng, chọn một trong ba là bỏ sót hai ứng dụng hợp lệ kia, nên chỉ phương án gộp tất cả mới trả lời trọn câu hỏi.
AAmbiguity of sentences
BTokenization
CPOS tagging
DAll of the mentioned
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Ambiguity of sentences". Ambiguity (tính nhập nhằng) nghĩa là một chuỗi ngôn ngữ có thể hiểu theo nhiều cách, và nó xuất hiện ở mọi tầng: một từ có nhiều nghĩa (nhập nhằng từ vựng), một câu có nhiều cây cú pháp như "I saw the man with the telescope" (nhập nhằng cấu trúc), một đại từ có thể chỉ nhiều đối tượng (nhập nhằng đồng sở chỉ). Vì thế gần như mọi bước xử lý đều phải chọn một cách hiểu giữa nhiều khả năng, đó là thách thức gốc của NLP. "Tokenization" (tách từ) là một bước tiền xử lý cụ thể, bản thân nó khó chính vì nhập nhằng ranh giới từ, nên nó là nơi thách thức biểu hiện chứ không phải thách thức xuyên suốt. "POS tagging" (gán nhãn từ loại) cũng là một tác vụ, khó vì một từ như "book" có thể là danh từ hoặc động từ, tức lại quy về nhập nhằng. "All of the mentioned" sai vì hai bước xử lý trên không phải là thách thức chung làm mọi tầng trở nên khó.
5Which of the following are valid ways to represent words in natural language processing tasks?4 lựa chọn
AIntegers (e.g., assigning each word a unique number)
BOne-hot vectors (e.g., binary vectors with a single 1)
CWord embeddings (e.g., dense vectors capturing semantic meaning)
DEncoding each word based on the number of syllables it contains
Lời giải
Mở trang câu hỏi này →Đáp án đúng gồm ba ý: "Integers (e.g., assigning each word a unique number)", "One-hot vectors (e.g., binary vectors with a single 1)" và "Word embeddings (e.g., dense vectors capturing semantic meaning)". Mô hình học máy không xử lý trực tiếp chuỗi ký tự nên mỗi từ phải được ánh xạ sang dạng số. Cách đơn giản nhất là gán cho mỗi từ trong từ vựng một chỉ số nguyên (index), vốn chính là đầu vào của lớp embedding trong mạng nơ-ron. One-hot vector là vector nhị phân dài bằng kích thước từ vựng, chỉ một vị trí bằng 1; nó không mang thông tin ngữ nghĩa nhưng là biểu diễn hợp lệ và là nền của bag-of-words. Word embedding là vector đặc (dense) ít chiều học từ ngữ cảnh, khiến các từ gần nghĩa nằm gần nhau, như Word2Vec hay GloVe. "Encoding each word based on the number of syllables it contains" không phải cách biểu diễn hợp lệ vì số âm tiết là một đặc trưng ngữ âm rất thô: vô số từ khác nghĩa có cùng số âm tiết (cat, dog, run đều một âm tiết), nên ánh xạ này không phân biệt được các từ với nhau và không giữ được nghĩa, đánh mất tính một-một mà mọi phép biểu diễn từ cần có.
6Modern NLP algorithms are based on machine learning, especially statistical machine learning.2 lựa chọn
ATrue
BFalse
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "True". Từ cuối thập niên 1980, NLP chuyển từ các hệ luật viết tay sang học từ dữ liệu: mô hình n-gram, HMM, Naive Bayes, CRF học tham số xác suất từ kho ngữ liệu (corpus), và các mạng nơ-ron ngày nay như LSTM, Transformer vẫn là học máy thống kê vì chúng tối ưu một hàm mất mát trên dữ liệu mẫu và đưa ra dự đoán dưới dạng phân phối xác suất. Cách tiếp cận này chịu được nhập nhằng và biến thể của ngôn ngữ thật tốt hơn luật cứng, nên phát biểu mô tả đúng nền tảng của NLP hiện đại. Phương án "False" sai vì nó ngầm cho rằng NLP hiện đại vẫn chủ yếu dựa trên luật hoặc tri thức viết tay; luật vẫn còn được dùng cho vài bước như tách câu hay chuẩn hoá chuỗi, nhưng không còn là nền tảng của các thuật toán chính.
ADiscourse
BSemantic Analysis
CLexical Analysis
DPragmatic Analysis
Lời giải
Mở trang câu hỏi này →Đá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.
APOS tagging
BNamed Entity Recognition
CSpeech recognition
DAll of the others
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "All of the others". Sequential labeling (gán nhãn chuỗi) là bài toán nhận vào một chuỗi đơn vị và gán cho mỗi đơn vị một nhãn, trong đó nhãn của phần tử này phụ thuộc vào ngữ cảnh và nhãn lân cận; các mô hình điển hình là HMM, CRF và RNN/LSTM. "POS tagging" gán cho từng token một nhãn từ loại như NN, VB, JJ, là ví dụ kinh điển của gán nhãn chuỗi. "Named Entity Recognition" gán cho từng token nhãn dạng BIO như B-PER, I-PER, O để khoanh vùng thực thể, cũng là gán nhãn chuỗi. "Speech recognition" theo cách tiếp cận cổ điển dùng HMM để gán cho chuỗi khung âm thanh một chuỗi trạng thái âm vị rồi giải mã bằng Viterbi, nên cũng thuộc cùng họ kỹ thuật. Mỗi tác vụ này đứng riêng đều đúng nhưng chỉ là một phần, nên phương án bao gồm cả ba mới là câu trả lời đầy đủ.
AInflectional, derivational
BDerivational, inflectional
CDirect, Indirect
DNone of the others
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Derivational, inflectional". Hình thái học (morphology) chia phụ tố thành hai loại: phụ tố biến tố (inflectional) chỉ đánh dấu đặc điểm ngữ pháp như số, thì, cấp so sánh mà không đổi từ loại hay nghĩa gốc, còn phụ tố phái sinh (derivational) tạo ra từ mới, thường đổi nghĩa hoặc đổi từ loại. Tiếng Anh chỉ có khoảng tám hậu tố biến tố (-s số nhiều, -'s sở hữu, -s ngôi thứ ba, -ed, -ing, -en, -er và -est), trong khi phụ tố phái sinh rất nhiều như un-, re-, pre-, -ness, -ment, -able, -ize, -ful, -tion. Vì thế hình thái phái sinh dùng nhiều phụ tố hơn hẳn hình thái biến tố. "Inflectional, derivational" đảo ngược đúng quan hệ trên nên sai. "Direct, Indirect" không phải cặp phân loại trong hình thái học; trực tiếp và gián tiếp là khái niệm của lời dẫn hay tân ngữ trong ngữ pháp, không dùng để phân loại phụ tố. "None of the others" sai vì đã có một phương án mô tả đúng quan hệ giữa hai loại hình thái.
AInflectional
BDerivational
CCliticization
DAll of the others
Lời giải
Mở trang câu hỏi này →Đá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.
AZero
BInfinity
CAny Non-Zero Value
DInefficient
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Infinity". Perplexity (độ hỗn loạn) của mô hình ngôn ngữ trên tập kiểm thử W gồm N từ được tính bằng PP(W) = P(w1…wN) mũ (−1/N), tức nghịch đảo xác suất chuẩn hoá theo độ dài. Mô hình không làm trơn (unsmoothed) ước lượng xác suất bằng tần suất tối đa (maximum likelihood), nên một từ chưa từng gặp trong tập huấn luyện nhận xác suất 0; tích xác suất của cả câu khi đó bằng 0 và PP = 1 chia cho 0 tiến tới vô cực. Đây chính là lý do phải dùng làm trơn Laplace, Kneser-Ney hay token UNK. "Zero" sai vì perplexity luôn lớn hơn hoặc bằng 1, càng nhỏ mô hình càng tốt, và chỉ có thể giảm chứ không thể về 0. "Any Non-Zero Value" quá mơ hồ và hàm ý một số hữu hạn, trong khi ở đây giá trị không xác định hữu hạn. "Inefficient" là một tính từ đánh giá, không phải giá trị số mà công thức perplexity trả về.
AMeasure the shortest path between two words on WordNet
BCount the number of shared parent nodes
CMeasure the difference between their depths in WordNet
DMeasure the difference between the size of child nodes they have
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Measure the shortest path between two words on WordNet". WordNet là mạng từ vựng trong đó các synset (tập đồng nghĩa) nối với nhau bằng quan hệ hypernym/hyponym thành một phân cấp; độ liên quan ngữ nghĩa dựa trên đường đi đo khoảng cách ngắn nhất giữa hai synset trên phân cấp này, đường càng ngắn thì hai từ càng gần nghĩa, ví dụ path similarity trong NLTK bằng 1/(độ dài đường + 1), và Leacock-Chodorow cũng dựa trên độ dài đường ngắn nhất. "Count the number of shared parent nodes" không phải độ đo chuẩn: hầu như mọi danh từ đều chung các tổ tiên ở gần gốc như entity, nên chỉ đếm số cha chung không phân biệt được cặp gần và cặp xa. "Measure the difference between their depths in WordNet" sai vì hai từ ở cùng độ sâu nhưng thuộc hai nhánh xa nhau sẽ bị coi là giống hệt. "Measure the difference between the size of child nodes they have" chỉ cho biết từ nào khái quát hơn (nhiều hyponym hơn), không nói gì về việc hai từ có liên quan nhau hay không.
13Which of the following best describes the purpose of word embeddings in Natural Language Processing?4 lựa chọn
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
Mở trang câu hỏi này →Đá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ả.
ANeural Network
BDecision Tree
CK-means Clustering
DAssociation Rule Mining/Market Basket Analysis
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Association Rule Mining/Market Basket Analysis". Câu hỏi đếm xem chocolate cup cake được mua bao nhiêu lần khi brownie và strawberry muffin cùng nằm trong giỏ, tức luật kết hợp dạng {brownie, strawberry muffin} suy ra {chocolate cup cake}; đây là bài toán khai phá dữ liệu giao dịch, nằm ngoài NLP, giải bằng khai phá luật kết hợp hay phân tích giỏ hàng với các thuật toán như Apriori, FP-Growth, đếm support (tỷ lệ giao dịch chứa cả ba món) và confidence (tỷ lệ giao dịch có hai món đầu mà cũng có món thứ ba). "Neural Network" và "Decision Tree" là mô hình học có giám sát, cần một nhãn đích để dự đoán, không sinh ra luật đồng xuất hiện giữa các món hàng. "K-means Clustering" gom khách hàng hoặc giao dịch thành cụm theo khoảng cách, cho biết nhóm nào giống nhau chứ không đếm được tần suất một món đi kèm một tổ hợp món khác.
15Word2Vec is used for:4 lựa chọn
AText Classification
BSpeech Recognition
CWord Embedding
DParsing
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Word Embedding". Word2Vec là họ mô hình mạng nơ-ron nông do nhóm của Mikolov tại Google công bố, học vectơ dày (dense vector) cho mỗi từ sao cho các từ xuất hiện trong ngữ cảnh giống nhau có vectơ gần nhau; nó có hai kiến trúc là CBOW (đoán từ đích từ ngữ cảnh) và Skip-gram (đoán ngữ cảnh từ từ đích). Kết quả của nó chính là biểu diễn từ dạng nhúng (word embedding). "Text Classification" (phân loại văn bản) là bài toán hạ nguồn có thể dùng vectơ Word2Vec làm đặc trưng đầu vào, nhưng Word2Vec bản thân không gán nhãn cho văn bản. "Speech Recognition" (nhận dạng tiếng nói) chuyển tín hiệu âm thanh thành chữ, dựa trên mô hình âm học, không phải mục đích của Word2Vec. "Parsing" (phân tích cú pháp) dựng cây cấu trúc ngữ pháp của câu bằng văn phạm hoặc bộ phân tích phụ thuộc, khác hẳn việc học vectơ nghĩa của từ.
Aprobability model.
Ba pre-defined list of sentiment-laden words.
CCRF
DHMM
Lời giải
Mở trang câu hỏi này →Đá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.
ATrue
BFalse
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "True". Mạng nơ-ron chỉ thực hiện phép nhân ma trận, phép cộng và hàm kích hoạt trên số, nên mọi token (đơn vị văn bản sau khi tách, có thể là từ, từ con hay ký tự) phải được đổi thành số trước khi đưa vào. Quy trình thường là xây từ vựng, gán mỗi token một chỉ số nguyên (ID), rồi lớp embedding tra chỉ số đó để lấy vector số thực; hoặc dùng one-hot, TF-IDF làm đầu vào. Ngay cả mô hình lớn như BERT cũng nhận input_ids là dãy số nguyên do tokenizer sinh ra. Vì vậy "False" sai: không có mạng nơ-ron nào nhận trực tiếp chuỗi chữ; những mô hình trông như đọc thẳng ký tự thực chất vẫn mã hoá từng ký tự hay byte thành số trước khi tính toán.
18How Many Different Lexemes Are There In The Following List? Man, Men, Girls , Girl , Mouse4 lựa chọn
A2
B3
C1
D4
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "3". Lexeme (từ vị) là đơn vị từ vựng trừu tượng gom mọi dạng biến tố của cùng một từ, thường được đại diện bằng lemma (dạng từ điển); vì vậy Man và Men là dạng số ít và số nhiều của cùng lexeme MAN, Girls và Girl là hai dạng của lexeme GIRL, còn Mouse là lexeme MOUSE, tổng cộng năm dạng từ (word form) nhưng chỉ có ba lexeme. "2" sai vì bỏ sót một nhóm, chẳng hạn gộp Mouse vào nhóm khác dù nó không có quan hệ biến tố với từ nào trong danh sách. "1" sai vì gộp cả danh sách thành một từ vị, trong khi man, girl và mouse có nghĩa từ vựng khác nhau. "4" sai vì tách Man và Men thành hai lexeme, nhầm dạng số nhiều bất quy tắc với một từ khác; Men chỉ là số nhiều của Man cũng như Girls là số nhiều của Girl.
19The act of converting a text document into a set of individual words is referred as _________.4 lựa chọn
ATokenization
BStemming
CLemmatization
DAll of the others
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Tokenization". Tokenization (tách token) là bước tiền xử lý đầu tiên, cắt một chuỗi văn bản thành các đơn vị riêng lẻ gọi là token, thường là từ và dấu câu, ví dụ câu "I love NLP." thành bốn token I, love, NLP và dấu chấm; đó đúng là việc biến tài liệu thành tập các từ riêng lẻ. "Stemming" (rút gọn gốc từ) cắt hậu tố theo luật để đưa từ về dạng gốc thô, như "running" thành "run", và chỉ chạy được khi đã có token sẵn. "Lemmatization" (chuẩn hoá về dạng từ điển) dùng từ điển và thông tin từ loại để đưa từ về lemma, như "better" thành "good", cũng là bước xử lý trên từng token đã tách chứ không phải bước tách. "All of the others" sai vì stemming và lemmatization chuẩn hoá hình thái của từ, không làm nhiệm vụ chia tài liệu thành từ, nên không thể gộp chung với tokenization.
20Which is NOT a conjunction?4 lựa chọn
Abut
Band
Cor
Dthat
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "that". Conjunction (liên từ) ở đây là liên từ đẳng lập (coordinating conjunction), loại từ nối hai thành phần ngang hàng như hai từ, hai cụm hay hai mệnh đề; trong bộ nhãn Penn Treebank chúng mang nhãn CC. "that" chủ yếu đóng vai từ hạn định hay đại từ chỉ định (that book, nhãn DT), đại từ quan hệ (the book that I read, nhãn WDT); khi đứng đầu mệnh đề bổ ngữ như I think that he left thì nó là từ dẫn mệnh đề phụ thuộc, không nối hai vế ngang hàng, nên nó không thuộc nhóm liên từ đẳng lập mà câu hỏi nhắm tới. "but" là liên từ đẳng lập biểu thị sự đối lập, như cheap but good. "and" là liên từ đẳng lập biểu thị sự cộng gộp, như cats and dogs. "or" là liên từ đẳng lập biểu thị sự lựa chọn, như tea or coffee. Cả ba đều là liên từ thật nên không được chọn.