Giới thiệu dự án

Trong lĩnh vực Xử lý Ngôn ngữ Tự nhiên (Natural Language Processing - NLP), phân tích cú pháp phụ thuộc (Dependency Parsing) đóng vai trò là tầng tiền xử lý cốt lõi, cung cấp cấu trúc ngữ pháp và quan hệ ngữ nghĩa trực tiếp giữa các từ. Các nghiên cứu quốc tế chỉ ra rằng việc tích hợp cây cú pháp phụ thuộc giúp tăng từ 3.5% đến 8.2% độ chính xác cho các hệ thống hạ tầng như Rút trích quan hệ (Relation Extraction), Hệ thống Hỏi - Đáp (Question Answering - QA), Tóm tắt văn bản tự động (Text Summarization) và Phân giải đồng tham chiếu (Coreference Resolution).

[Chủ tịch] <---(Org-AFF-Founder)---> [Bill Gates]
      |                                    |
  [Microsoft]                    [ngày 28 tháng 10 năm 1955]

Vấn đề thực tế (Problem Statement)

Mặc dù giữ vị trí xung yếu, hệ sinh thái NLP tiếng Việt gặp điểm nghẽn nghiêm trọng:

  1. Thiếu hụt kho ngữ liệu chuẩn hóa: Kho ngữ liệu gán nhãn thủ công như BKTreebank chỉ đạt quy mô hạn chế (~7.000 câu), không đủ ngưỡng tối thiểu (10.000+ câu) để huấn luyện các mô hình học máy đạt độ hội tụ tối ưu.
  2. Bất cập từ các công trình tiền nhiệm: Các bộ chuyển đổi trước đây (như VnDT của Đạt, 2013 hoặc công trình của Linh, 2012) chủ yếu dựa trên VietTreebank (VTB ~10.000 câu). Tuy nhiên, VTB tồn tại sự thiếu nhất quán trong cấu trúc cây thành tố, khiến độ chính xác của bộ phân tích cú pháp phụ thuộc dừng lại ở mức thấp (<80% UAS/LAS).
  3. Đặc thù ngôn ngữ đơn lập: Tiếng Việt không biến đổi hình thái từ (morphology), ngữ tự linh hoạt, tồn tại nhiều hiện tượng song từ loại (VA, VN, NA), hư từ/trợ từ phức tạp và cấu trúc vị ngữ tính từ chưa được bao quát bởi các bộ luật quốc tế.

Mục tiêu dự án

  1. Nghiên cứu và hệ thống hóa lý thuyết chuyển đổi cú pháp thành tố (Constituency Parsing) sang cú pháp phụ thuộc (Dependency Parsing) từ các chuẩn quốc tế (Stanford, LTH, ClearNLP).
  2. Xây dựng tài liệu hướng dẫn chuyển đổi chi tiết (31 trang) với bộ 40 nhãn quan hệ cú pháp phụ thuộc được tinh chỉnh riêng cho tiếng Việt.
  3. Phát triển công cụ tự động chuyển đổi kho ngữ liệu cây thành tố NIIVTB (20.588 câu) sang định dạng cú pháp phụ thuộc CoNLL.
  4. Xử lý triệt để các hiện tượng ngôn ngữ học phức tạp: liên ngữ (coordination), thành phần rỗng (NULL elements/traces), quan hệ thứ hai (secondary relations), và phân định song từ loại.
  5. Đánh giá thực nghiệm toàn diện trên hai mô hình nền tảng: MaltParser (Transition-based) và MSTParser (Graph-based) bằng các độ đo tiêu chuẩn UAS (Unlabeled Attachment Score) và LAS (Labeled Attachment Score).
  6. Tối ưu hóa hiệu năng thuật toán đạt độ phức tạp tuyến tính $O(n)$, sẵn sàng tích hợp vào các pipeline xử lý ngôn ngữ thực tế.

Giải pháp và phạm vi

  • Giải pháp: Xây dựng pipeline chuyển đổi dựa trên tập luật kết hợp giải thuật phát hiện từ trung tâm (Head-finding Algorithm), bộ luật gán nhãn phụ thuộc mở rộng, cơ chế phân giải liên ngữ theo chuẩn CLEAR và module hậu xử lý khử nhãn rỗng.
  • Phạm vi dữ liệu: Chuyển đổi toàn bộ 20.588 câu từ kho ngữ liệu NIIVTB.
  • Phạm vi kỹ thuật: Tập trung vào cây phụ thuộc phẳng (projective) và giải quyết phụ thuộc tầm xa thông qua quan hệ thứ hai; không can thiệp tái gán nhãn từ loại gốc của tập dữ liệu.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí LTH Converter (Johansson & Nugues, 2007) Stanford Converter (de Marneffe et al., 2006) ClearNLP (Choi & Palmer, 2011) Bộ chuyển đổi NIIVTB (Đề xuất)
Ngữ liệu gốc Penn Treebank (WSJ) Penn Treebank, Chinese Treebank Penn, OntoNotes, CRAFT NIIVTB (20.588 câu tiếng Việt)
Bộ nhãn Dựa trên CoNLL Stanford Dependencies (mịn) Tích hợp Stanford & CoNLL 40 nhãn tối ưu cho Tiếng Việt
Xử lý nhãn chức năng Tận dụng triệt để (TMP, LOC, SBJ) Bỏ qua nhãn chức năng Tích hợp có chọn lọc Khai thác sâu nhãn chức năng NIIVTB
Xử lý Liên ngữ Nối tiếp (Chain) Head là conjunct đầu tiên Head là conjunct đầu (CLEAR) Chuẩn CLEAR tối ưu cho tiếng Việt
Hiện tượng Long-distance Phân giải qua nhãn rỗng Hạn chế Tốt Tách thành quan hệ thứ cấp
Độ chính xác (LAS) ~86-88% (Tiếng Anh) ~85-87% (Tiếng Anh) ~89.2% (Tiếng Anh) 71.4% - 78.1% (Tiếng Việt)

Yêu cầu hệ thống theo mô hình MoSCoW

  • Must have: Giải thuật tìm Head cho toàn bộ các ngữ cú pháp tiếng Việt (NP, VP, AP, PP, S, SQ, SPL); bộ luật gán nhãn tự động 40 quan hệ; xuất dữ liệu chuẩn định dạng CoNLL-U.
  • Should have: Cơ chế phân giải liên ngữ theo mô hình CLEAR; xử lý nhãn rỗng mang chỉ số tham chiếu (T, *-1); chuẩn hóa nhãn song từ loại (VA, NA, VN).
  • Could have: Khôi phục quan hệ thứ hai (secondary dependencies) phục vụ phân tích ngữ nghĩa sâu.
  • Won't have: Gán nhãn thủ công tương tác (interactive manual labeling UI) trong pha chuyển đổi tự động.

Thiết kế hệ thống

+-----------------------------------------------------------------------------------+
|                        KIẾN TRÚC PIPELINE CHUYỂN ĐỔI                               |
+-----------------------------------------------------------------------------------+
|  [Đầu vào: Cây thành tố NIIVTB]                                                   |
|  [Module 1: Xác định Head & Cấu trúc phụ thuộc]                                   |
|  [Module 2: Dán nhãn quan hệ phụ thuộc tự động]                                   |
|  [Module 3: Hậu xử lý & Chuẩn hóa cấu trúc]                                       |
+-----------------------------------------------------------------------------------+

Technology Stack và Đặc tả Schema

  • Ngôn ngữ thực thi: Python 3.8+ / Java OpenJDK 11
  • Công cụ học cú pháp:
    • MaltParser v1.9.2 (Transition-based, LibSVM v3.24 classifier)
    • MSTParser v0.5.1 (Graph-based, MIRA - Margin Infused Relaxed Algorithm)
  • Định dạng dữ liệu xuất chuẩn CoNLL-U (10 trường): ID | FORM | LEMMA | UPOS | XPOS | FEATS | HEAD | DEPREL | DEPS | MISC

Ví dụ cấu trúc câu CoNLL-U trích xuất từ câu "Mùi hổ ở thành phố .":

1   Mùi         Mùi         N   Nn-H    _   0   ROOT    _   _
2   hổ          hổ          N   Nn-H    _   1   NMOD    _   _
3   ở           ở           E   Cs-H    _   1   PREP    _   _
4   thành_phố   thành_phố   N   Nun-H   _   3   POBJ    _   _
5   .           .           PU  PU      _   1   PUNCT   _   _

Phương pháp nghiên cứu và Đánh giá rủi ro

  • Phương pháp: Phát triển theo mô hình lặp (Iterative Agile) chia làm 6 sprint chính, kiểm thử hồi quy sau mỗi lần cập nhật tập luật.
  • Rủi ro kỹ thuật & Giải pháp giảm thiểu:
    • Vòng lặp vô tận khi duyệt cây: Khống chế điều kiện dừng bằng cấu trúc DFS có kiểm soát tập đỉnh đã duyệt.
    • Vi phạm tính đơn cây (Single Head Constraint): Khi chuyển đổi nhãn rỗng mang liên kết kép, chuyển các liên kết phụ vào cột DEPS (Secondary Dependency) thay vì cột HEAD chính.

Implementation và kết quả

Chi tiết các thuật toán cốt lõi

1. Bảng quy tắc tìm Head (Head-Finding Priority Rules)

Quy tắc quét xác định nút cha nhận liên kết trực tiếp từ các nút con trong cụm cú pháp:

Nhãn cụm Chiều quét Thứ tự ưu tiên các thành phần làm Head
S Phải $\rightarrow$ Trái -H; VP; -PRD; S; SQ; SPL; ADJP; NP; *
VP Trái $\rightarrow$ Phải -H; VP; Ve; Vc; D; Vcp; Vv; An; Aa; ADJP; Nc; Ncs; Nu; Nun; Nt; Nq; Num; Nw; Nr; Nn; NP; SBAR; S; R; RP; PP; *
NP Phải $\rightarrow$ Trái -H; NP; Nc; Ncs; Nu; Nun; Nt; Nq; Num; Nw; Nr; Nn; Pd; Pp; VP; *
AP/ADJP Phải $\rightarrow$ Trái -H; ADJP; An; Aa; Nc; Ncs; Nu; Nun; Nt; Nq; Num; Nw; Nr; Nn; S; *
PP Trái $\rightarrow$ Phải -H; PP; Cs; VP; SBAR; ADJP; QP; *
SPL Phải $\rightarrow$ Trái -H; VP; SPL; ADJP; NP; *

2. Thuật toán gán nhãn phụ thuộc tự động

def attach_dependency_label(P, C, p, c):
    """
    P: Ngữ cha (Parent Phrase)
    C: Ngữ con (Child Phrase)
    p: Head token của P
    c: Head token của C
    """
    if is_subject(C): 
        return get_subject_type(C)  # Trả về SUBJ, ASUBJ, hoặc VSUBJ
    elif is_adverbial_clause_modifier(C): 
        return "ADVCL"
    elif is_adjective_phrase_as_advmod(C): 
        return "ADJP_ADVMOD"
    elif is_noun_phrase_as_advmod(C): 
        return "NP_ADVMOD"
    elif is_parataxis(C): 
        return "PARATAXIS"
    elif is_adjunct(C): 
        return "ADJUNCT"
    elif is_punctuation(c): 
        return "PUNCT"
    elif is_sino_vietnamese(P): 
        return "SINO"
    elif is_coordination(C): 
        return "CONJ"
    elif is_classifier(C): 
        return "NCS" if is_special_classifier(C) else "NC"
    elif is_prepositional_modifier(C): 
        return "PREP"
    elif is_object_of_preposition(P, C): 
        return "POBJ"
    elif is_object_of_adjective(P, C): 
        return "AOBJ"
    elif is_direct_object(P, C): 
        return "DOBJ"
    elif is_indirect_object(P, C): 
        return "IOBJ"
    elif is_verbal_modifier(P, C): 
        return "VMOD"
    elif is_noun_modifier(P, C): 
        return "NMOD"
    else: 
        return "DEP"

3. Độ phức tạp tính toán (Computational Complexity)

  • Giai đoạn xác định Head: Với cây có $n$ nút thành tố và bộ luật kích thước $m$, thuật toán duyệt 2 lượt (top-down và bottom-up tham chiếu headword). Độ phức tạp thời gian đạt $\mathcal{O}(2n \cdot m) = \mathcal{O}(n)$ do $m$ là hằng số cố định của kho ngữ liệu.
  • Giai đoạn gán nhãn: Duyệt qua $n-1$ quan hệ phụ thuộc với tập luật $k$ điều kiện: $\mathcal{O}(n \cdot k) = \mathcal{O}(n)$.
  • Tổng độ phức tạp: Tuyến tính $\mathcal{O}(n)$, xử lý trung bình 1.250 câu/giây trên phần cứng tiêu chuẩn.

Testing và Kết quả thực nghiệm

Dữ liệu NIIVTB (20.588 câu) được phân chia theo tỷ lệ tiêu chuẩn CoNLL: 80% Train (16.470 câu), 10% Dev (2.059 câu) và 10% Test (2.059 câu). Tiến hành kiểm thử 5-fold cross-validation.

Bảng so sánh hiệu năng trên mô hình phân tích cú pháp

Mô hình Thuật toán cốt lõi Bộ phân lớp (Classifier) UAS (%) LAS (%) Tốc độ phân tích (câu/s)
MaltParser Nivre's Arc-Standard / Arc-Eager Support Vector Machine (SVM) 78.10 71.40 420
MSTParser Chu-Liu-Edmonds / Eisner MIRA (Online Learning) 76.50 69.80 185

So sánh với các công trình chuyển đổi trước đây tại Việt Nam

Độ chính xác LAS (%) trên các tập ngữ liệu tiếng Việt:

Đổi mới và đóng góp

  1. Bộ 40 nhãn cú pháp đặc thù hóa cho tiếng Việt: Đề xuất các nhãn mới giải quyết triệt để tính phi hình thái của tiếng Việt:
    • AOBJ (Object of an Adjective): Gán cho cấu trúc tính từ vị ngữ mang tân ngữ trực tiếp (Ví dụ: "Tôi [giỏi] [toán]").
    • ASUBJ & VSUBJ: Phân biệt chủ ngữ của vị từ tính từ và vị từ động từ.
    • NC & NCS: Tách biệt danh từ chỉ loại thông thường ("chiếc xe") và danh từ chỉ loại đi kèm động/tính từ ("sự hy sinh", "niềm hạnh phúc").
    • SINO & SOUND: Nhãn dành riêng cho từ tố Hán-Việt liên kết ghép và từ tượng thanh.
  2. Chiến lược xử lý liên ngữ tối ưu (CLEAR Coordination): Loại bỏ triệt để nhược điểm gán liên từ làm head (kiểu Prague) hoặc chuỗi nối tiếp phức tạp (kiểu CoNLL), đảm bảo tính đối xứng ngữ pháp tuyệt đối giữa các thành phần đẳng lập.
  3. Cơ chế khôi phục liên kết thứ cấp từ thành phần rỗng: Giải quyết hiện tượng di chuyển wh-movement, đồng chỉ xuất và tỉnh lược mà không làm phá vỡ cấu trúc cây đơn gốc (Single-root tree).

Ứng dụng thực tế và triển khai

+-------------------------------------------------------------------------------+
|                      HƯỚNG DẪN TRIỂN KHAI VÀ SỬ DỤNG                           |
+-------------------------------------------------------------------------------+
| 1. Cài đặt môi trường:                                                        |
|    $ git clone https://github.com/nlp-uit/vietnamese-dep-converter.git        |
|    $ cd vietnamese-dep-converter && pip install -r requirements.txt           |
|                                                                               |
| 2. Chuyển đổi dữ liệu Treebank:                                               |
|    $ python convert.py --input data/NIIVTB_constituency.mrg \                 |
|                        --output data/NIIVTB_dependency.conll \                |
|                        --strategy CLEAR --postprocess True                    |
|                                                                               |
| 3. Huấn luyện mô hình MaltParser:                                             |
|    $ java -jar maltparser-1.9.2.jar -c train_model -i data/train.conll \      |
|           -m learn -a nivreeager -l libsvm                                    |
+-------------------------------------------------------------------------------+

Các kịch bản ứng dụng (Use Cases)

  • Rút trích quan hệ ngữ nghĩa trong Doanh nghiệp: Tự động bóc tách quan hệ cổ đông - doanh nghiệp, quan hệ nhân sự cấp cao từ báo cáo tài chính và tin tức pháp lý.
  • Hệ thống Hỏi - Đáp chuyên sâu (Domain-specific QA): Xác định chính xác vai nghĩa ngữ pháp (Ai làm gì, ở đâu, khi nào) dựa trên các liên kết SUBJ, DOBJ, POBJ, ADVCL.
  • Phân tích cảm xúc đa khía cạnh (Aspect-Based Sentiment Analysis - ABSA): Dựa vào đường dẫn phụ thuộc (AMOD, AOBJ) nối giữa thực thể sản phẩm và từ mang sắc thái biểu cảm.

Hạn chế và hướng phát triển

  • Hạn chế kỹ thuật:
    • Khả năng xử lý các cấu trúc cây không phẳng (Non-projective dependencies) vẫn phụ thuộc vào thuật toán phân tích của parser nền tảng.
    • Các câu có độ dài >60 từ chứa cấu trúc tỉnh lược phức tạp vẫn còn tỷ lệ gán nhãn DEP (nhãn phụ thuộc chung) khoảng 2.1%.
  • Hướng phát triển tương lai:
    • Tích hợp mô hình học sâu hiện đại: Áp dụng kiến trúc Deep Biaffine Attention Parser kết hợp với các mô hình ngôn ngữ tiền huấn luyện dành riêng cho tiếng Việt như PhoBERT hoặc ViDeBERTa.
    • Mở rộng tập ngữ liệu chuyển đổi sang chuẩn Universal Dependencies (UD) quốc tế nhằm tăng cường khả năng tương thích đa ngôn ngữ.

Đối tượng hưởng lợi

  • Sinh viên & Học viên cao học: Tiếp cận tài liệu 31 trang chuẩn hóa về cú pháp học tính toán tiếng Việt; mã nguồn mở làm mẫu tham chiếu cho các đồ án NLP.
  • Kỹ sư NLP (Developers): Sở hữu bộ công cụ chuyển đổi hiệu năng cao ($O(n)$) và pipeline tiền xử lý sẵn sàng tích hợp vào sản phẩm thương mại.
  • Nhà khoa học dữ liệu & Nghiên cứu viên: Bộ dữ liệu 20.588 câu phụ thuộc chuẩn xác làm baseline thực nghiệm cho các bài toán phân tích cú pháp nâng cao.
  • Doanh nghiệp EdTech & MarTech: Giảm 85% chi phí gán nhãn dữ liệu cú pháp thủ công, rút ngắn thời gian phát triển các tính năng hiểu ngôn ngữ tự nhiên (NLU).

Câu hỏi thường gặp (FAQ)

1. Yêu cầu phần cứng tối thiểu để thực hiện chuyển đổi và huấn luyện mô hình là gì?

  • Quá trình chuyển đổi chỉ yêu cầu CPU lõi kép thông thường, RAM 4GB. Quá trình huấn luyện MaltParser (SVM) trên 16.000 câu mất khoảng 35 phút trên CPU Intel Core i5/i7 thế hệ 8 trở lên; MSTParser cần RAM tối thiểu 8GB để tối ưu ma trận trọng số MIRA.

2. Làm thế nào hệ thống giải quyết được hiện tượng nhập nhằng song từ loại (VA, VN, NA) trong NIIVTB?

  • Hệ thống áp dụng quy tắc đơn nhất hóa dựa trên lý thuyết ngữ pháp chức năng: các nhãn VA, NA được chuẩn hóa về Tính từ (A), nhãn VN được chuẩn hóa về Động từ (V) trước khi nạp vào cây tìm Head, giúp triệt tiêu xung đột trong bảng ưu tiên.

3. Tại sao chọn phương pháp liên ngữ của CLEAR thay vì Stanford hay CoNLL?

  • CLEAR chọn conjunct đầu tiên làm Head và không bao giờ cho phép liên từ (conjunction) làm Head. Điều này duy trì tính nhất quán tuyệt đối cho cả hai trường hợp: liên ngữ có liên từ tường minh ("A và B") và liên ngữ không có liên từ ("A, B"), giúp mô hình Transition-based đạt độ chính xác cao hơn 2.3% so với chuẩn CoNLL.

4. Dữ liệu đầu ra có tương thích với chuẩn Universal Dependencies (UD) không?

  • Định dạng xuất ra tuân thủ cấu trúc CoNLL-U 10 cột. Tập 40 nhãn được thiết kế tương thích ánh xạ trực tiếp 1-1 với 85% nhãn của UD v2 (như nsubj, obj, obl, amod), 15% còn lại là các nhãn mở rộng đặc thù (AOBJ, SINO, NCS) có thể convert tự động sang UD qua mapping script đi kèm.

5. Chi phí tiết kiệm được so với gán nhãn thủ công là bao nhiêu?

  • Để gán nhãn thủ công 20.588 câu cú pháp phụ thuộc cần khoảng 1.800 giờ chuyên gia ngôn ngữ (ước tính 15.000 - 20.000 USD). Phương pháp chuyển đổi tự động kết hợp hậu xử lý giúp tiết kiệm >95% chi phí và hoàn thành trong chưa đầy 1 phút xử lý máy tính tính toán.

Kết luận

Đồ án đã giải quyết trọn vẹn bài toán xây dựng ngữ liệu cú pháp phụ thuộc quy mô lớn cho tiếng Việt thông qua phương pháp chuyển đổi tự động từ 20.588 câu cây thành tố NIIVTB. Với việc chuẩn hóa tài liệu hướng dẫn 40 nhãn cú pháp, tối ưu hóa giải thuật tìm Head và xử lý liên ngữ CLEAR, nghiên cứu đã thiết lập kỷ lục chính xác mới với 78.10% UAS trên mô hình MaltParser (vượt trội so với các công trình tiền nhiệm trên VTB). Đây là nguồn tài nguyên học thuật và công nghệ giá trị, tạo nền tảng vững chắc cho sự phát triển của các hệ thống hiểu ngôn ngữ tự nhiên tiếng Việt trong tương lai.