{"slug":"vi-sao-pattern-khong-the-bo-qua-semantic-khi-phan-tich-ngu-phap","title":"Vì sao Pattern không thể bỏ qua Semantic khi phân tích ngữ pháp?","summary":"Trong phân tích ngữ pháp, một Pattern (mẫu cấu trúc) có thể giúp nhận ra những cấu trúc có khả năng xuất hiện. Tuy nhiên, sự tương đồng về hình thức không đủ để chứng minh rằng hai biểu thức có cùng cấu trúc cú pháp. Một Pattern trước hết chỉ cung cấp một Candidate Parse (cách phân tích ứng viên).","excerpt":"Trong phân tích ngữ pháp, một Pattern (mẫu cấu trúc) có thể giúp nhận ra những cấu trúc có khả năng xuất hiện. Tuy nhiên, sự tương đồng về hình thức không đủ để chứng minh rằng hai biểu thức có cùng cấu trúc cú pháp. Một Pattern trước hết chỉ cung cấp một Candidate Parse (cách phân tích ứng viên).","markdown":"# Vì sao Pattern không thể bỏ qua Semantic khi phân tích ngữ pháp?\n\nTrong phân tích ngữ pháp, một **Pattern (mẫu cấu trúc)** có thể giúp nhận ra những cấu trúc có khả năng xuất hiện. Tuy nhiên, sự tương đồng về hình thức không đủ để chứng minh rằng hai biểu thức có cùng cấu trúc cú pháp.\n\nMột Pattern trước hết chỉ cung cấp một **Candidate Parse (cách phân tích ứng viên)**.\n\nVí dụ, từ chuỗi:\n\nA + B + C\n\n\ncó thể đề xuất:\n\nA + [B + C]\n\n\nNhưng cách phân tầng này đặt ra những câu hỏi tiếp theo:\n\nB và C có thực sự tạo thành một constituent?\n\nB và C có quan hệ cú pháp gì?\n\nQuan hệ ngữ nghĩa giữa chúng là gì?\n\nC đang predicated về B hay về một thành phần khác?\n\n\nNếu những câu hỏi này chưa được giải quyết, `[B + C]` vẫn chỉ là một cấu trúc ứng viên.\n\nĐây là điểm mà **Semantic Analysis (phân tích ngữ nghĩa)** trở thành một phần quan trọng của quá trình phân tích.\n\n\n\n## 1. Pattern nhận diện hình thức, không tự chứng minh cấu trúc\n\nGiả sử đã biết một cấu trúc:\n\nA + [B + C]\n\n\nvà gặp một biểu thức mới có cùng hình thức tuyến tính:\n\nX + Y + Z\n\n\nKhông thể chỉ từ sự tương đồng đó suy ra:\n\nX + [Y + Z]\n\n\nhay:\n\nRelation(Y, Z)\n=\nRelation(B, C)\n\n\nHai biểu thức có thể giống nhau ở bề mặt nhưng khác nhau về:\n\n**Constituency (quan hệ thành tố)**;\n**Syntactic Relations (quan hệ cú pháp)**;\n**Semantic Roles (vai nghĩa)**;\n**Semantic Relations (quan hệ ngữ nghĩa)**.\n\nDo đó:\n\nSame Surface Pattern\n≠\nSame Structure\n\n\nPattern có giá trị như một phương tiện phát hiện khả năng phân tích, không phải bằng chứng cuối cùng cho cấu trúc.\n\n\n\n## 2. Góc nhìn Compiler: Parser chấp nhận chưa có nghĩa chương trình hợp lệ\n\nTrong **Compiler (trình biên dịch)**, sự khác biệt giữa cấu trúc và ngữ nghĩa thể hiện rất rõ.\n\nXét biểu thức giả định:\n\n\"hello\" - 5\n\n\nNếu Grammar (ngữ pháp hình thức) cho phép phép trừ nhận hai biểu thức ở hai phía:\n\nExpression\n→ Expression \"-\" Expression\n\n\nthì **Parser (bộ phân tích cú pháp)** vẫn có thể xây dựng một **Abstract Syntax Tree – AST (cây cú pháp trừu tượng)**:\n\nSubtract\n├── String(\"hello\")\n└── Integer(5)\n\n\nỞ tầng cú pháp, cấu trúc đã được xác định:\n\nOperator: -\nLeft:  String(\"hello\")\nRight: Integer(5)\n\n\nNhưng quá trình phân tích chưa kết thúc.\n\n**Semantic Analysis (phân tích ngữ nghĩa)** và **Type Checking (kiểm tra kiểu)** tiếp tục kiểm tra liệu các thành phần có đáp ứng những ràng buộc của phép toán hay không.\n\nNếu toán tử `-` chỉ được định nghĩa cho các kiểu số:\n\nSubtract(Number, Number) → Number\n\n\nthì:\n\nSubtract(String, Integer)\n\n\nkhông đáp ứng điều kiện đó.\n\nParser có thể dựng được cây.\n\nNhưng cây cú pháp đó không tạo thành một biểu thức hợp lệ theo hệ thống kiểu của ngôn ngữ.\n\nCó thể tóm tắt:\n\nTokens\n↓\nParser\n↓\nAST\n↓\nSemantic Analysis\n↓\nType Checking\n↓\nValid / Invalid\n\n\nDo đó:\n\nSyntactically Constructible\n≠\nSemantically Valid\n\n\n\n\n## 3. Tại sao phép đối chiếu này hữu ích với ngôn ngữ tự nhiên?\n\nNgôn ngữ tự nhiên không phải ngôn ngữ lập trình và không vận hành bằng một Type System (hệ thống kiểu) được đặc tả chính thức.\n\nTuy nhiên, hai lĩnh vực có chung một vấn đề phương pháp:\n\nTừ một chuỗi tuyến tính, cần xác định những thành phần nào kết hợp với nhau và các thành phần đó có quan hệ gì.\n\nMột câu tự nhiên có thể cho phép nhiều **Candidate Parses (cách phân tích ứng viên)**:\n\nInput\n│\n├── Parse A\n│\n├── Parse B\n│\n└── Parse C\n\n\nViệc một Parse phù hợp với một Pattern đã biết chỉ chứng minh:\n\nCó lý do để xem xét cách phân tích này.\n\nNó chưa chứng minh:\n\nĐây là cấu trúc của câu.\n\nCần tiếp tục kiểm tra:\n\nConstituency\n↓\nSyntactic Relations\n↓\nSemantic Relations\n\n\nĐặc biệt, nếu một cách phân tầng làm mất hoặc thay đổi những quan hệ ngữ nghĩa cơ bản của câu, đó là dấu hiệu cần xem xét lại cách phân tích.\n\n\n\n## 4. Một ví dụ: 我送他回国\n\nXét câu:\n\n我送他回国。\nTôi tiễn anh ấy về nước.\n\n\nTrên bề mặt, có thể nhận ra chuỗi:\n\n他 + 回国\n\n\nvà `他回国` tự thân có thể tạo thành một cấu trúc chủ-vị:\n\n他回国。\nAnh ấy về nước.\n\n\nNếu chỉ dựa vào Pattern, một cách phân tích có thể được đề xuất:\n\n我 + 送 + [他回国]\n\n\ntức:\n\nSubject\n├── 我\n└── Predicate\n├── Verb: 送\n└── Object: 他回国\n\n\nVề mặt hình thức, cách phân tích này có vẻ khả thi.\n\nNhưng Semantic Relations của câu cho thấy một vấn đề.\n\n\n\n## 5. Ai được 送? Ai 回国?\n\nCó thể kiểm tra bằng hai quan hệ đơn giản.\n\n### 送谁？\n\n送谁？\nTiễn ai?\n\n→ 他\n\n\nQuan hệ thứ nhất:\n\n送(我, 他)\n\n\nTrong đó:\n\n我 = 施事\n他 = 受事 / đối tượng của 送\n\n\n### 谁回国？\n\n谁回国？\nAi về nước?\n\n→ 他\n\n\nQuan hệ thứ hai:\n\n回国(他)\n\n\n`他` đồng thời là thành phần mang quan hệ chủ thể ngữ nghĩa với `回国`.\n\nNhư vậy, cấu trúc ngữ nghĩa không đơn giản là:\n\n送(我, 他回国)\n\n\nmà tồn tại hai dependency:\n\n送\n├── 我\n└── 他\n│\n└── 回国\n\n\nHay biểu diễn bằng quan hệ:\n\n送(我, 他)\n回国(他)\n\n\n`他` đồng thời tham gia vào hai quan hệ.\n\n\n\n## 6. 兼语: khi một thành phần tham gia hai quan hệ\n\nTrong cách phân tích truyền thống của ngữ pháp tiếng Hán, hiện tượng trên liên quan đến **兼语 (kiêm ngữ; pivot)**.\n\nCó thể biểu diễn:\n\n我送他回国\n│ │  │ │\n│ │  │ └── Predicate\n│ │  └──── 兼语\n│ └─────── Verb\n└───────── Subject\n\n\nQuan trọng nhất là vị trí của `他`:\n\n他\n/  \\\n/    \\\nObjectOf  SubjectOf\n↓         ↓\n送        回国\n\n\nHay:\n\nSentence\n├── Subject: 我\n└── Predicate\n├── Verb: 送\n├── 兼语: 他\n│   ├── ObjectOf → 送\n│   └── SubjectOf → 回国\n└── Predicate: 回国\n\n\nTên gọi `兼语` phản ánh chính đặc điểm này: một thành phần đồng thời tham gia vào hai quan hệ cú pháp-ngữ nghĩa trong cấu trúc.\n\nĐiểm quan trọng ở đây không phải việc phải sử dụng chính thuật ngữ `兼语`.\n\nĐiểm quan trọng là:\n\nMột cách phân tích phải bảo toàn và giải thích được những quan hệ thực sự tồn tại giữa các thành phần.\n\n\n\n## 7. Vì sao `[他回国]` chưa đủ để giải thích câu?\n\n`他回国` hoàn toàn có thể là một cấu trúc chủ-vị trong:\n\n他回国。\n\n\nĐiều đó không có nghĩa mọi lần chuỗi:\n\n他 + 回国\n\n\nxuất hiện liên tiếp đều phải được đóng thành cùng một constituent:\n\n[他回国]\n\n\nTrong:\n\n我送他回国。\n\n\n`他` còn có quan hệ trực tiếp với `送`.\n\nNếu chỉ dựng:\n\n我 + 送 + [他回国]\n\n\nvà coi toàn bộ `[他回国]` đơn giản là tân ngữ của `送`, phân tích đó có nguy cơ che khuất quan hệ:\n\n送谁？\n→ 他\n\n\nĐây là một ví dụ rõ của nguyên tắc:\n\nPossible Constituent\n≠\nCorrect Constituent in Every Context\n\n\nMột chuỗi có thể tạo thành constituent trong môi trường A nhưng không vì vậy mà tự động có cùng cấu trúc trong môi trường B.\n\n\n\n## 8. Semantic Relations có thể ràng buộc Candidate Parse\n\nCó thể xem quá trình phân tích như một chuỗi kiểm tra:\n\nInput\n↓\nPattern Recognition\n↓\nCandidate Parse\n↓\nConstituency\n↓\nSyntactic Relations\n↓\nSemantic Relations\n↓\nInterpretation\n\n\nGiả sử Candidate Parse đưa ra:\n\n[A + B]\n\n\nnhưng Semantic Analysis cho thấy:\n\nRelation(A, C)\nRelation(B, D)\n\n\nhoặc một thành phần bên trong `[A + B]` còn phụ thuộc trực tiếp vào thành phần nằm ngoài constituent được đề xuất.\n\nKhi đó cần kiểm tra lại:\n\nboundary của constituent;\nloại cấu trúc;\ndependency;\nhoặc chính mô hình phân tích đang sử dụng.\n\nSemantic không thay thế Syntax.\n\nSemantic **ràng buộc việc lựa chọn giữa các phân tích cú pháp có khả năng cạnh tranh**.\n\n\n\n## 9. Semantic Constraints và Type Constraints\n\nỞ đây có thể sử dụng thêm một phép đối chiếu với khoa học máy tính.\n\nTrong một ngôn ngữ lập trình có kiểu:\n\nFunction : InputType → OutputType\n\n\nmột hàm có thể đặt điều kiện lên loại đối số mà nó nhận.\n\nVí dụ giả định:\n\nsqrt(Number) → Number\n\n\nthì:\n\nsqrt(25)\n\n\nphù hợp với constraint.\n\nTrong khi:\n\nsqrt(\"hello\")\n\n\nkhông phù hợp.\n\nNgôn ngữ tự nhiên cũng có những **Semantic Constraints (ràng buộc ngữ nghĩa)**, dù chúng không tạo thành một Type System cứng như trong programming language.\n\nVí dụ ở mức khái quát:\n\n重要(Event / Proposition) ✓\nimportant(event / proposition)\n\n好听(Auditory Entity) ✓\npleasant-to-hear(auditory entity)\n\n\nMột predicate không kết hợp hoàn toàn tùy ý với mọi loại semantic argument.\n\nVì vậy, khi một phân tích đề xuất:\n\nPredicate(X)\n\n\nta có thể hỏi:\n\nX có phải loại thực thể mà Predicate này thông thường có thể predicated about hay không?\n\nĐây là **Selectional Restriction / Selectional Preference (hạn chế hoặc khuynh hướng lựa chọn ngữ nghĩa)**.\n\nNó cung cấp thêm bằng chứng để đánh giá một Candidate Parse.\n\n\n\n## 10. Nhưng ngôn ngữ tự nhiên không phải một Type System cứng\n\nPhép đối chiếu với compiler có giới hạn.\n\nTrong programming language, nếu đặc tả quy định:\n\nNumber - Number\n\n\nthì:\n\nString - Number\n\n\ncó thể bị từ chối một cách tuyệt đối.\n\nNgôn ngữ tự nhiên linh hoạt hơn nhiều.\n\nCon người có thể sử dụng:\n\n**Metaphor (ẩn dụ)**;\n**Metonymy (hoán dụ)**;\n**Semantic Coercion (cưỡng ép/chuyển đổi cách diễn giải ngữ nghĩa)**;\n**Ellipsis (tỉnh lược)**;\nngữ cảnh;\ntri thức thế giới;\nngữ điệu.\n\nVí dụ một Predicate vốn thường áp dụng cho một loại thực thể vẫn có thể được sử dụng với một biểu thức thuộc loại khác nếu người nghe có thể suy ra một interpretation thích hợp.\n\nDo đó:\n\nSemantic Mismatch\n\n\ntrong natural language không nhất thiết dẫn tới:\n\nINVALID\n\n\nnhư compiler.\n\nNó có thể dẫn tới:\n\nSemantic Mismatch\n↓\nContext / Coercion / Metonymy\n↓\nAlternative Interpretation\n\n\nĐây là giới hạn quan trọng của phép đối chiếu.\n\n\n\n## 11. Semantic không thay thế Syntax\n\nNếu Pattern không đủ, điều đó cũng không có nghĩa có thể bỏ Syntax và chỉ dựa vào nghĩa.\n\nMột câu “có vẻ hiểu được” không chứng minh bất kỳ cách phân tầng nào cũng đúng.\n\nVí dụ, từ một interpretation:\n\nMeaning M\n\n\nkhông thể tùy ý suy ngược:\n\nMeaning M\n→\nStructure X\n\n\nnếu không có bằng chứng cấu trúc.\n\nPhân tích cần đồng thời thỏa mãn:\n\nSurface Evidence\n+\nStructural Evidence\n+\nSyntactic Relations\n+\nSemantic Relations\n\n\nDo đó, quan hệ đúng hơn là:\n\nSyntax ↔ Semantics\n\n\nchứ không phải:\n\nSyntax → Semantics only\n\n\nhay:\n\nSemantics → Syntax only\n\n\nHai tầng cung cấp những loại bằng chứng khác nhau cho cùng một phân tích.\n\n\n\n## 12. Một Parse tốt phải bảo toàn các quan hệ\n\nCó thể đặt một tiêu chí thực dụng:\n\nNếu thay đổi cách phân tầng, những quan hệ cú pháp và ngữ nghĩa quan trọng của câu có còn được giải thích hay không?\n\nVới:\n\n我送他回国。\n\n\nta biết ít nhất:\n\n送(我, 他)\n回国(他)\n\n\nMột phân tích tốt phải giải thích được cả hai.\n\nNếu một Parse chỉ giải thích:\n\n回国(他)\n\n\nnhưng làm mất:\n\n送(我, 他)\n\n\nthì Parse đó chưa giải thích đầy đủ câu.\n\nNgược lại, nếu chỉ nhận ra:\n\n送(我, 他)\n\n\nmà không giải thích tại sao `他` lại liên hệ với `回国`, phân tích cũng chưa hoàn chỉnh.\n\nCó thể hình thức hóa yêu cầu:\n\nCandidate Parse\n↓\nPreserve Syntactic Relations?\n↓\nPreserve Semantic Relations?\n↓\nExplain the Interpretation?\n\n\n\n\n## 13. Pattern vẫn rất quan trọng\n\nViệc Pattern không đủ không có nghĩa Pattern vô ích.\n\nPattern giúp:\n\nnhận diện cấu trúc có khả năng xuất hiện;\ntìm các câu tương tự;\nhình thành Candidate Parse;\nxây dựng quy tắc;\nphát hiện bất thường;\nso sánh phân bố trong corpus.\n\nTrong compiler, Grammar Rule cũng cực kỳ quan trọng.\n\nKhông có Grammar, Parser thậm chí không biết phải dựng cây nào.\n\nNhưng:\n\nGrammar\n↓\nParse\n\n\nkhông phải toàn bộ pipeline.\n\nTương tự, trong phân tích ngôn ngữ tự nhiên:\n\nPattern\n↓\nCandidate Structure\n\n\nchỉ là một phần của quá trình.\n\nSai lầm xảy ra khi:\n\nPattern\n=\nProof\n\n\nthay vì:\n\nPattern\n=\nEvidence for a Candidate Analysis\n\n\n\n\n## 14. Từ Pattern Matching đến Grammatical Analysis\n\nCó thể tổng hợp quá trình thành một pipeline:\n\nLinguistic Data\n↓\nPattern Recognition\n↓\nCandidate Structures\n↓\nHierarchical Analysis\n↓\nSyntactic Relations\n↓\nSemantic Relations\n↓\nContext / Prosody\n↓\nGrammatical Analysis\n\n\nKhông phải mọi trường hợp đều cần thực hiện tuần tự từng bước theo đúng thứ tự này.\n\nĐây là một **mô hình phương pháp luận**, không phải một thuật toán chính thức của ngôn ngữ tự nhiên.\n\nGiá trị của nó nằm ở việc ngăn một bước suy luận quá nhanh:\n\nTôi đã thấy Pattern này trước đây\n↓\nTôi biết cấu trúc của câu\n\n\nThay vào đó:\n\nTôi đã thấy Pattern này trước đây\n↓\nTôi có một Candidate Parse\n↓\nBây giờ cần kiểm tra nó\n\n\n\n\n## 15. Ba mệnh đề cần phân biệt\n\nCó thể rút gọn toàn bộ vấn đề thành ba mệnh đề:\n\nPattern ≠ Structure\n\n\nMột mẫu bề mặt không tự xác định cấu trúc tầng bậc.\n\nStructure ≠ Semantic Validity\n\n\nMột cấu trúc có thể dựng được không có nghĩa mọi quan hệ ngữ nghĩa mà nó tạo ra đều phù hợp.\n\nPossible Parse ≠ Established Analysis\n\n\nMột cách phân tích khả thi không tự động trở thành cách phân tích đã được chứng minh.\n\nBa distinction này đặc biệt quan trọng khi một câu có nhiều cách phân tầng cạnh tranh.\n\n\n\n## 16. Từ Compiler trở lại ngữ pháp tự nhiên\n\nCompiler cung cấp một phép đối chiếu hữu ích vì nó buộc các tầng phân tích phải được biểu diễn rõ ràng:\n\nSource\n↓\nLexer\n↓\nTokens\n↓\nParser\n↓\nAST\n↓\nSemantic Analysis\n↓\nType Checking\n\n\nTrong nghiên cứu ngôn ngữ tự nhiên, không tồn tại một pipeline cứng hoàn toàn tương đương.\n\nTuy nhiên, cách tư duy phân tầng vẫn hữu ích:\n\nUtterance\n↓\nUnits\n↓\nPatterns\n↓\nCandidate Structures\n↓\nSyntactic Relations\n↓\nSemantic Relations\n↓\nInterpretation\n\n\nĐiểm chung không phải là:\n\nNatural language hoạt động giống programming language.\n\nMà là:\n\n**Một cấu trúc hình thức cần được kiểm tra bằng các quan hệ mà nó tạo ra.**\n\nCompiler khiến nguyên tắc này dễ nhìn thấy hơn vì nếu AST đúng hình thức nhưng operand sai type, hệ thống có thể báo lỗi ngay.\n\nNatural language không đơn giản như vậy, nhưng câu hỏi phương pháp vẫn còn nguyên:\n\nCây này dựng được.\n\nNhưng các quan hệ bên trong cây\ncó thực sự giải thích câu hay không?\n\n\n\n\n## 17. Kết luận\n\nPattern là một công cụ quan trọng trong phân tích ngữ pháp. Nó giúp nhận diện những cấu trúc có khả năng tồn tại và tạo ra các Candidate Parses để kiểm tra.\n\nNhưng Pattern không tự chứng minh Structure.\n\nStructure cũng không thể được đánh giá hoàn toàn độc lập với Semantic Relations.\n\nVí dụ:\n\n我送他回国。\n\n\ncho thấy vì sao điều này quan trọng.\n\nChỉ nhận ra:\n\n他 + 回国\n\n\nlà một Pattern chủ-vị có thể khiến ta đề xuất:\n\n[他回国]\n\n\nnhư một constituent.\n\nNhưng quan hệ:\n\n送(我, 他)\n回国(他)\n\n\ncho thấy `他` đồng thời liên hệ với cả `送` và `回国`. Chính quan hệ này là cơ sở để hiểu cấu trúc 兼语 và cho thấy tại sao Pattern bề mặt không thể thay thế phân tích quan hệ.\n\nQuy trình hợp lý hơn là:\n\nPattern\n↓\nCandidate Structure\n↓\nHierarchical Structure\n↓\nSyntactic Relations\n↓\nSemantic Relations\n↓\nInterpretation\n\n\nVì vậy:\n\nPattern ≠ Structure\n\nStructure ≠ Semantic Validity\n\nPossible Parse ≠ Established Analysis\n\n\nBài tiếp theo sẽ áp dụng trực tiếp phương pháp này vào `他学习很好` và `他唱歌很好听`: hai biểu thức có bề mặt tưởng như tương tự, nhưng `学习` và `唱歌` có thực sự có cùng tính chất cú pháp hay không, `很好` và `很好听` đang predicated về thành phần nào, và liệu một Pattern giống nhau có đủ để đưa cả hai vào cùng một phân tích ngữ pháp hay không.","html":"<h1>Vì sao Pattern không thể bỏ qua Semantic khi phân tích ngữ pháp?</h1><p>Trong phân tích ngữ pháp, một <strong>Pattern (mẫu cấu trúc)</strong> có thể giúp nhận ra những cấu trúc có khả năng xuất hiện. Tuy nhiên, sự tương đồng về hình thức không đủ để chứng minh rằng hai biểu thức có cùng cấu trúc cú pháp.</p><p>Một Pattern trước hết chỉ cung cấp một <strong>Candidate Parse (cách phân tích ứng viên)</strong>.</p><p>Ví dụ, từ chuỗi:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">A + B + C</div><div class=\"wiki-text-stack-line\">A + [B + C]</div><div class=\"wiki-text-stack-line\">B và C có thực sự tạo thành một constituent?</div><div class=\"wiki-text-stack-line\">B và C có quan hệ cú pháp gì?</div><div class=\"wiki-text-stack-line\">Quan hệ ngữ nghĩa giữa chúng là gì?</div><div class=\"wiki-text-stack-line\">C đang predicated về B hay về một thành phần khác?</div></div><p>Nếu những câu hỏi này chưa được giải quyết, <code>[B + C]</code> vẫn chỉ là một cấu trúc ứng viên.</p><p>Đây là điểm mà <strong>Semantic Analysis (phân tích ngữ nghĩa)</strong> trở thành một phần quan trọng của quá trình phân tích.</p><h2>1. Pattern nhận diện hình thức, không tự chứng minh cấu trúc</h2><p>Giả sử đã biết một cấu trúc:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">A + [B + C]</div><div class=\"wiki-text-stack-line\">X + Y + Z</div><div class=\"wiki-text-stack-line\">X + [Y + Z]</div><div class=\"wiki-text-stack-line\">Relation(Y, Z)</div><div class=\"wiki-text-stack-line\">=</div><div class=\"wiki-text-stack-line\">Relation(B, C)</div></div><p>Hai biểu thức có thể giống nhau ở bề mặt nhưng khác nhau về:</p><p><strong>Constituency (quan hệ thành tố)</strong>;</p><p><strong>Syntactic Relations (quan hệ cú pháp)</strong>;</p><p><strong>Semantic Roles (vai nghĩa)</strong>;</p><ul><li><strong>Semantic Relations (quan hệ ngữ nghĩa)</strong>.</li></ul><p>Do đó:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Same Surface Pattern</div><div class=\"wiki-text-stack-line is-arrow\">≠</div><div class=\"wiki-text-stack-line\">Same Structure</div></div><p>Pattern có giá trị như một phương tiện phát hiện khả năng phân tích, không phải bằng chứng cuối cùng cho cấu trúc.</p><h2>2. Góc nhìn Compiler: Parser chấp nhận chưa có nghĩa chương trình hợp lệ</h2><p>Trong <strong>Compiler (trình biên dịch)</strong>, sự khác biệt giữa cấu trúc và ngữ nghĩa thể hiện rất rõ.</p><p>Xét biểu thức giả định:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">&quot;hello&quot; - 5</div><div class=\"wiki-text-stack-line\">Expression</div><div class=\"wiki-text-stack-line\">→ Expression &quot;-&quot; Expression</div></div><p>thì <strong>Parser (bộ phân tích cú pháp)</strong> vẫn có thể xây dựng một <strong>Abstract Syntax Tree – AST (cây cú pháp trừu tượng)</strong>:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Subtract</div><div class=\"wiki-text-stack-line\">├── String(&quot;hello&quot;)</div><div class=\"wiki-text-stack-line\">└── Integer(5)</div></div><p>Ở tầng cú pháp, cấu trúc đã được xác định:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Operator: -</div><div class=\"wiki-text-stack-line\">Left:  String(&quot;hello&quot;)</div><div class=\"wiki-text-stack-line\">Right: Integer(5)</div></div><p>Nhưng quá trình phân tích chưa kết thúc.</p><p><strong>Semantic Analysis (phân tích ngữ nghĩa)</strong> và <strong>Type Checking (kiểm tra kiểu)</strong> tiếp tục kiểm tra liệu các thành phần có đáp ứng những ràng buộc của phép toán hay không.</p><p>Nếu toán tử <code>-</code> chỉ được định nghĩa cho các kiểu số:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Subtract(Number, Number) → Number</div><div class=\"wiki-text-stack-line\">Subtract(String, Integer)</div><div class=\"wiki-text-stack-line\">Tokens</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Parser</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">AST</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Semantic Analysis</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Type Checking</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Valid / Invalid</div></div><p>Do đó:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Syntactically Constructible</div><div class=\"wiki-text-stack-line is-arrow\">≠</div><div class=\"wiki-text-stack-line\">Semantically Valid</div></div><h2>3. Tại sao phép đối chiếu này hữu ích với ngôn ngữ tự nhiên?</h2><p>Ngôn ngữ tự nhiên không phải ngôn ngữ lập trình và không vận hành bằng một Type System (hệ thống kiểu) được đặc tả chính thức.</p><p>Tuy nhiên, hai lĩnh vực có chung một vấn đề phương pháp:</p><blockquote>Từ một chuỗi tuyến tính, cần xác định những thành phần nào kết hợp với nhau và các thành phần đó có quan hệ gì.</blockquote><p>Một câu tự nhiên có thể cho phép nhiều <strong>Candidate Parses (cách phân tích ứng viên)</strong>:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Input</div><div class=\"wiki-text-stack-line\">│</div><div class=\"wiki-text-stack-line\">├── Parse A</div><div class=\"wiki-text-stack-line\">│</div><div class=\"wiki-text-stack-line\">├── Parse B</div><div class=\"wiki-text-stack-line\">│</div><div class=\"wiki-text-stack-line\">└── Parse C</div></div><p>Việc một Parse phù hợp với một Pattern đã biết chỉ chứng minh:</p><blockquote>Có lý do để xem xét cách phân tích này.</blockquote><p>Nó chưa chứng minh:</p><blockquote>Đây là cấu trúc của câu.</blockquote><p>Cần tiếp tục kiểm tra:</p><div class=\"wiki-flow-diagram\" role=\"figure\"><div class=\"wiki-flow-step\">Constituency</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Syntactic Relations</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Semantic Relations</div></div><p>Đặc biệt, nếu một cách phân tầng làm mất hoặc thay đổi những quan hệ ngữ nghĩa cơ bản của câu, đó là dấu hiệu cần xem xét lại cách phân tích.</p><h2>4. Một ví dụ: 我送他回国</h2><p>Xét câu:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">我送他回国。</div><div class=\"wiki-text-stack-line\">Tôi tiễn anh ấy về nước.</div></div><p>Trên bề mặt, có thể nhận ra chuỗi:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">他 + 回国</div><div class=\"wiki-text-stack-line\">他回国。</div><div class=\"wiki-text-stack-line\">Anh ấy về nước.</div></div><p>Nếu chỉ dựa vào Pattern, một cách phân tích có thể được đề xuất:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">我 + 送 + [他回国]</div><div class=\"wiki-text-stack-line\">Subject</div><div class=\"wiki-text-stack-line\">├── 我</div><div class=\"wiki-text-stack-line\">└── Predicate</div><div class=\"wiki-text-stack-line\">├── Verb: 送</div><div class=\"wiki-text-stack-line\">└── Object: 他回国</div></div><p>Về mặt hình thức, cách phân tích này có vẻ khả thi.</p><p>Nhưng Semantic Relations của câu cho thấy một vấn đề.</p><h2>5. Ai được 送? Ai 回国?</h2><p>Có thể kiểm tra bằng hai quan hệ đơn giản.</p><h3>送谁？</h3><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">送谁？</div><div class=\"wiki-text-stack-line\">Tiễn ai?</div><div class=\"wiki-text-stack-line\">→ 他</div></div><p>Quan hệ thứ nhất:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">送(我, 他)</div><div class=\"wiki-text-stack-line\">我 = 施事</div><div class=\"wiki-text-stack-line\">他 = 受事 / đối tượng của 送</div></div><h3>谁回国？</h3><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">谁回国？</div><div class=\"wiki-text-stack-line\">Ai về nước?</div><div class=\"wiki-text-stack-line\">→ 他</div></div><p>Quan hệ thứ hai:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">回国(他)</div><div class=\"wiki-text-stack-line\">送(我, 他回国)</div><div class=\"wiki-text-stack-line\">送</div><div class=\"wiki-text-stack-line\">├── 我</div><div class=\"wiki-text-stack-line\">└── 他</div><div class=\"wiki-text-stack-line\">│</div><div class=\"wiki-text-stack-line\">└── 回国</div></div><p>Hay biểu diễn bằng quan hệ:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">送(我, 他)</div><div class=\"wiki-text-stack-line\">回国(他)</div></div><p><code>他</code> đồng thời tham gia vào hai quan hệ.</p><h2>6. 兼语: khi một thành phần tham gia hai quan hệ</h2><p>Trong cách phân tích truyền thống của ngữ pháp tiếng Hán, hiện tượng trên liên quan đến <strong>兼语 (kiêm ngữ; pivot)</strong>.</p><p>Có thể biểu diễn:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">我送他回国</div><div class=\"wiki-text-stack-line\">│ │  │ │</div><div class=\"wiki-text-stack-line\">│ │  │ └── Predicate</div><div class=\"wiki-text-stack-line\">│ │  └──── 兼语</div><div class=\"wiki-text-stack-line\">│ └─────── Verb</div><div class=\"wiki-text-stack-line\">└───────── Subject</div></div><p>Quan trọng nhất là vị trí của <code>他</code>:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">他</div><div class=\"wiki-text-stack-line\">/  \\</div><div class=\"wiki-text-stack-line\">/    \\</div><div class=\"wiki-text-stack-line\">ObjectOf  SubjectOf</div><div class=\"wiki-text-stack-line\">↓         ↓</div><div class=\"wiki-text-stack-line\">送        回国</div></div><p>Hay:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Sentence</div><div class=\"wiki-text-stack-line\">├── Subject: 我</div><div class=\"wiki-text-stack-line\">└── Predicate</div><div class=\"wiki-text-stack-line\">├── Verb: 送</div><div class=\"wiki-text-stack-line\">├── 兼语: 他</div><div class=\"wiki-text-stack-line\">│   ├── ObjectOf → 送</div><div class=\"wiki-text-stack-line\">│   └── SubjectOf → 回国</div><div class=\"wiki-text-stack-line\">└── Predicate: 回国</div></div><p>Tên gọi <code>兼语</code> phản ánh chính đặc điểm này: một thành phần đồng thời tham gia vào hai quan hệ cú pháp-ngữ nghĩa trong cấu trúc.</p><p>Điểm quan trọng ở đây không phải việc phải sử dụng chính thuật ngữ <code>兼语</code>.</p><p>Điểm quan trọng là:</p><blockquote>Một cách phân tích phải bảo toàn và giải thích được những quan hệ thực sự tồn tại giữa các thành phần.</blockquote><h2>7. Vì sao <code>[他回国]</code> chưa đủ để giải thích câu?</h2><p><code>他回国</code> hoàn toàn có thể là một cấu trúc chủ-vị trong:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">他回国。</div><div class=\"wiki-text-stack-line\">他 + 回国</div><div class=\"wiki-text-stack-line\">[他回国]</div><div class=\"wiki-text-stack-line\">我送他回国。</div><div class=\"wiki-text-stack-line\">我 + 送 + [他回国]</div><div class=\"wiki-text-stack-line\">送谁？</div><div class=\"wiki-text-stack-line\">→ 他</div></div><p>Đây là một ví dụ rõ của nguyên tắc:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Possible Constituent</div><div class=\"wiki-text-stack-line is-arrow\">≠</div><div class=\"wiki-text-stack-line\">Correct Constituent in Every Context</div></div><p>Một chuỗi có thể tạo thành constituent trong môi trường A nhưng không vì vậy mà tự động có cùng cấu trúc trong môi trường B.</p><h2>8. Semantic Relations có thể ràng buộc Candidate Parse</h2><p>Có thể xem quá trình phân tích như một chuỗi kiểm tra:</p><div class=\"wiki-flow-diagram\" role=\"figure\"><div class=\"wiki-flow-step\">Input</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Pattern Recognition</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Candidate Parse</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Constituency</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Syntactic Relations</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Semantic Relations</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Interpretation</div></div><p>Giả sử Candidate Parse đưa ra:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">[A + B]</div><div class=\"wiki-text-stack-line\">Relation(A, C)</div><div class=\"wiki-text-stack-line\">Relation(B, D)</div></div><p>hoặc một thành phần bên trong <code>[A + B]</code> còn phụ thuộc trực tiếp vào thành phần nằm ngoài constituent được đề xuất.</p><p>Khi đó cần kiểm tra lại:</p><ul><li>boundary của constituent;</li><li>loại cấu trúc;</li><li>dependency;</li><li>hoặc chính mô hình phân tích đang sử dụng.</li></ul><p>Semantic không thay thế Syntax.</p><p>Semantic <strong>ràng buộc việc lựa chọn giữa các phân tích cú pháp có khả năng cạnh tranh</strong>.</p><h2>9. Semantic Constraints và Type Constraints</h2><p>Ở đây có thể sử dụng thêm một phép đối chiếu với khoa học máy tính.</p><p>Trong một ngôn ngữ lập trình có kiểu:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Function : InputType → OutputType</div><div class=\"wiki-text-stack-line\">sqrtNumber → Number</div><div class=\"wiki-text-stack-line\">sqrt(25)</div><div class=\"wiki-text-stack-line\">sqrt(&quot;hello&quot;)</div><div class=\"wiki-text-stack-line\">重要(Event / Proposition) ✓</div><div class=\"wiki-text-stack-line\">important(event / proposition)</div><div class=\"wiki-text-stack-line\">好听(Auditory Entity) ✓</div><div class=\"wiki-text-stack-line\">pleasant-to-hear(auditory entity)</div></div><p>Một predicate không kết hợp hoàn toàn tùy ý với mọi loại semantic argument.</p><p>Vì vậy, khi một phân tích đề xuất:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">PredicateX</div><div class=\"wiki-text-stack-line\">Number - Number</div><div class=\"wiki-text-stack-line\">String - Number</div><div class=\"wiki-text-stack-line\">Semantic Mismatch</div><div class=\"wiki-text-stack-line\">INVALID</div><div class=\"wiki-text-stack-line\">Semantic Mismatch</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Context / Coercion / Metonymy</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Alternative Interpretation</div></div><p>Đây là giới hạn quan trọng của phép đối chiếu.</p><h2>11. Semantic không thay thế Syntax</h2><p>Nếu Pattern không đủ, điều đó cũng không có nghĩa có thể bỏ Syntax và chỉ dựa vào nghĩa.</p><p>Một câu “có vẻ hiểu được” không chứng minh bất kỳ cách phân tầng nào cũng đúng.</p><p>Ví dụ, từ một interpretation:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Meaning M</div><div class=\"wiki-text-stack-line\">Meaning M</div><div class=\"wiki-text-stack-line is-arrow\">→</div><div class=\"wiki-text-stack-line\">Structure X</div></div><p>nếu không có bằng chứng cấu trúc.</p><p>Phân tích cần đồng thời thỏa mãn:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Surface Evidence</div><div class=\"wiki-text-stack-line\">+</div><div class=\"wiki-text-stack-line\">Structural Evidence</div><div class=\"wiki-text-stack-line\">+</div><div class=\"wiki-text-stack-line\">Syntactic Relations</div><div class=\"wiki-text-stack-line\">+</div><div class=\"wiki-text-stack-line\">Semantic Relations</div></div><p>Do đó, quan hệ đúng hơn là:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Syntax ↔ Semantics</div><div class=\"wiki-text-stack-line\">Syntax → Semantics only</div><div class=\"wiki-text-stack-line\">Semantics → Syntax only</div><div class=\"wiki-text-stack-line\">我送他回国。</div><div class=\"wiki-text-stack-line\">送(我, 他)</div><div class=\"wiki-text-stack-line\">回国(他)</div></div><p>Một phân tích tốt phải giải thích được cả hai.</p><p>Nếu một Parse chỉ giải thích:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">回国(他)</div><div class=\"wiki-text-stack-line\">送(我, 他)</div><div class=\"wiki-text-stack-line\">送(我, 他)</div><div class=\"wiki-text-stack-line\">Candidate Parse</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Preserve Syntactic Relations?</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Preserve Semantic Relations?</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Explain the Interpretation?</div></div><h2>13. Pattern vẫn rất quan trọng</h2><p>Việc Pattern không đủ không có nghĩa Pattern vô ích.</p><p>Pattern giúp:</p><ul><li>nhận diện cấu trúc có khả năng xuất hiện;</li><li>tìm các câu tương tự;</li><li>hình thành Candidate Parse;</li><li>xây dựng quy tắc;</li><li>phát hiện bất thường;</li><li>so sánh phân bố trong corpus.</li></ul><p>Trong compiler, Grammar Rule cũng cực kỳ quan trọng.</p><p>Không có Grammar, Parser thậm chí không biết phải dựng cây nào.</p><p>Nhưng:</p><div class=\"wiki-flow-diagram\" role=\"figure\"><div class=\"wiki-flow-step\">Grammar</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Parse</div></div><p>không phải toàn bộ pipeline.</p><p>Tương tự, trong phân tích ngôn ngữ tự nhiên:</p><div class=\"wiki-flow-diagram\" role=\"figure\"><div class=\"wiki-flow-step\">Pattern</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Candidate Structure</div></div><p>chỉ là một phần của quá trình.</p><p>Sai lầm xảy ra khi:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Pattern</div><div class=\"wiki-text-stack-line\">=</div><div class=\"wiki-text-stack-line\">Proof</div></div><p>thay vì:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Pattern</div><div class=\"wiki-text-stack-line\">=</div><div class=\"wiki-text-stack-line\">Evidence for a Candidate Analysis</div></div><h2>14. Từ Pattern Matching đến Grammatical Analysis</h2><p>Có thể tổng hợp quá trình thành một pipeline:</p><div class=\"wiki-flow-diagram\" role=\"figure\"><div class=\"wiki-flow-step\">Linguistic Data</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Pattern Recognition</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Candidate Structures</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Hierarchical Analysis</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Syntactic Relations</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Semantic Relations</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Context / Prosody</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Grammatical Analysis</div></div><p>Không phải mọi trường hợp đều cần thực hiện tuần tự từng bước theo đúng thứ tự này.</p><p>Đây là một <strong>mô hình phương pháp luận</strong>, không phải một thuật toán chính thức của ngôn ngữ tự nhiên.</p><p>Giá trị của nó nằm ở việc ngăn một bước suy luận quá nhanh:</p><div class=\"wiki-flow-diagram\" role=\"figure\"><div class=\"wiki-flow-step\">Tôi đã thấy Pattern này trước đây</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Tôi biết cấu trúc của câu</div></div><p>Thay vào đó:</p><div class=\"wiki-flow-diagram\" role=\"figure\"><div class=\"wiki-flow-step\">Tôi đã thấy Pattern này trước đây</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Tôi có một Candidate Parse</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Bây giờ cần kiểm tra nó</div></div><h2>15. Ba mệnh đề cần phân biệt</h2><p>Có thể rút gọn toàn bộ vấn đề thành ba mệnh đề:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Pattern ≠ Structure</div><div class=\"wiki-text-stack-line\">Structure ≠ Semantic Validity</div><div class=\"wiki-text-stack-line\">Possible Parse ≠ Established Analysis</div><div class=\"wiki-text-stack-line\">Source</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Lexer</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Tokens</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Parser</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">AST</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Semantic Analysis</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Type Checking</div></div><p>Trong nghiên cứu ngôn ngữ tự nhiên, không tồn tại một pipeline cứng hoàn toàn tương đương.</p><p>Tuy nhiên, cách tư duy phân tầng vẫn hữu ích:</p><div class=\"wiki-flow-diagram\" role=\"figure\"><div class=\"wiki-flow-step\">Utterance</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Units</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Patterns</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Candidate Structures</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Syntactic Relations</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Semantic Relations</div><div class=\"wiki-flow-arrow\" aria-hidden=\"true\">↓</div><div class=\"wiki-flow-step\">Interpretation</div></div><p>Điểm chung không phải là:</p><blockquote>Natural language hoạt động giống programming language.</blockquote><p>Mà là:</p><blockquote><strong>Một cấu trúc hình thức cần được kiểm tra bằng các quan hệ mà nó tạo ra.</strong></blockquote><p>Compiler khiến nguyên tắc này dễ nhìn thấy hơn vì nếu AST đúng hình thức nhưng operand sai type, hệ thống có thể báo lỗi ngay.</p><p>Natural language không đơn giản như vậy, nhưng câu hỏi phương pháp vẫn còn nguyên:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Cây này dựng được.</div><div class=\"wiki-text-stack-line\">Nhưng các quan hệ bên trong cây</div><div class=\"wiki-text-stack-line\">có thực sự giải thích câu hay không?</div></div><h2>17. Kết luận</h2><p>Pattern là một công cụ quan trọng trong phân tích ngữ pháp. Nó giúp nhận diện những cấu trúc có khả năng tồn tại và tạo ra các Candidate Parses để kiểm tra.</p><p>Nhưng Pattern không tự chứng minh Structure.</p><p>Structure cũng không thể được đánh giá hoàn toàn độc lập với Semantic Relations.</p><p>Ví dụ:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">我送他回国。</div><div class=\"wiki-text-stack-line\">他 + 回国</div><div class=\"wiki-text-stack-line\">[他回国]</div><div class=\"wiki-text-stack-line\">送(我, 他)</div><div class=\"wiki-text-stack-line\">回国(他)</div></div><p>cho thấy <code>他</code> đồng thời liên hệ với cả <code>送</code> và <code>回国</code>. Chính quan hệ này là cơ sở để hiểu cấu trúc 兼语 và cho thấy tại sao Pattern bề mặt không thể thay thế phân tích quan hệ.</p><p>Quy trình hợp lý hơn là:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Pattern</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Candidate Structure</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Hierarchical Structure</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Syntactic Relations</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Semantic Relations</div><div class=\"wiki-text-stack-line is-arrow\">↓</div><div class=\"wiki-text-stack-line\">Interpretation</div></div><p>Vì vậy:</p><div class=\"wiki-text-stack\" role=\"figure\"><div class=\"wiki-text-stack-line\">Pattern ≠ Structure</div><div class=\"wiki-text-stack-line\">Structure ≠ Semantic Validity</div><div class=\"wiki-text-stack-line\">Possible Parse ≠ Established Analysis</div></div><p>Bài tiếp theo sẽ áp dụng trực tiếp phương pháp này vào <code>他学习很好</code> và <code>他唱歌很好听</code>: hai biểu thức có bề mặt tưởng như tương tự, nhưng <code>学习</code> và <code>唱歌</code> có thực sự có cùng tính chất cú pháp hay không, <code>很好</code> và <code>很好听</code> đang predicated về thành phần nào, và liệu một Pattern giống nhau có đủ để đưa cả hai vào cùng một phân tích ngữ pháp hay không.</p>","tags":["Giáo dục","Khoa học","Ngôn ngữ"],"author":"virgoricomp_102605","publishedAt":"2026-09-27T22:12:45.298Z","updatedAt":"2026-09-27T23:27:07.343Z","published_at":"2026-09-27T22:12:45.298Z","updated_at":"2026-09-27T23:27:07.343Z","view_count":108,"canonical":"https://wiki.quizzman.com/wiki/vi-sao-pattern-khong-the-bo-qua-semantic-khi-phan-tich-ngu-phap","url":"https://wiki.quizzman.com/wiki/vi-sao-pattern-khong-the-bo-qua-semantic-khi-phan-tich-ngu-phap","markdownUrl":"https://wiki.quizzman.com/api/articles/vi-sao-pattern-khong-the-bo-qua-semantic-khi-phan-tich-ngu-phap.md","apiUrl":"https://wiki.quizzman.com/api/articles/vi-sao-pattern-khong-the-bo-qua-semantic-khi-phan-tich-ngu-phap"}