Là con người, chúng ta có khả năng phân tích và hiểu ngữ pháp của ngôn ngữ mẹ đẻ rất giỏi giang. Khi đối thoại, những suy nghĩ hay ho trong đầu chúng ta đột nhiên nảy lên và trào dâng với những lời hay ý đẹp, cho dù nhiều khi chúng ta chưa từng xếp đặt nó. Hiện tượng ấy của não bộ cho đến tận bây giờ khoa học cũng chưa thể hiểu được một cách tường tận dù đã có rất nhiều tiến bộ trong lĩnh vực thần kinh học.
Quả thật, con người thông hiểu nhau bởi vì họ dùng chung một ngôn ngữ, người Việt giao tiếp với nhau thì nói tiếng Việt. Còn nếu ra tầm quốc tế, chúng ta và bạn bè nước khác hiểu được nhau nhờ dùng chung Anh ngữ. Cũng vậy, để máy tính hiểu được ngôn ngữ của con người thì phải "phiên dịch" chữ viết, âm thanh, hình ảnh... sang tiếng nói của người máy.
Khi mà các mô hình xử lý ngôn ngữ tự nhiên phát triển mạnh mẽ, các kỹ sư lập trình mong muốn máy tính càng ngày càng thông minh hơn. Và để làm được điều đó, công tác phân tích cú pháp là quá trình không thể bỏ qua. Do nhu cầu đó mà nảy sinh ra nhu cầu phân tích cú pháp, chuyển đổi ngôn ngữ con người sang cấu trúc ngôn ngữ mà máy tính có thể hiểu được.
Các định dạng phổ biến của ngữ pháp tạo sinh
Phân tích cú pháp có thể được hình dung như trái tim của một mô hình xử lý ngôn ngữ tự nhiên. Nó có nhiệm vụ xác định cấu trúc của một câu, lượng hoá sự phụ thuộc giữa các từ trong câu. Nó cố gắng hiểu một câu của ngôn ngữ con người bằng cách chuyển đổi câu đó sang một mô hình toán học chính xác, gán cấu trúc phi ngữ cảnh cho một đoạn văn và làm cho máy tính hiểu được nó.
Có nhiều mô hình khác nhau được dùng để phân tích cú pháp, ví dụ như: phân tích dựa trên cấu trúc cụm từ, phân tích dựa trên quan hệ phụ thuộc.
Trong lĩnh vực phân tích ngữ pháp phi ngữ cảnh có nhiều các định dạng mô hình khác nhau như Avram Noam Chomsky (CNF), Kuroda, Hyperedge Replacement Grammars (HRG), Weak Greibach, Context Free Grammar (CFG), Probabilistic Context-Free Grammar (PCFG) và Context Sensitive Grammar. Trong đó, các mô hình CNF và CFG là tương đối dễ hiểu nên chúng ta cần tìm hiểu trước.
Các cấu trúc ngữ pháp tạo sinh đơn giản
Các thuật toán phân tích cú pháp dễ tiếp cận nhất là dựa trên lý thuyết của nhà ngôn ngữ học người Mỹ, Avram Noam Chomsky, Context Free Grammar (CFG) và mô hình khác là Griebach (GNF).
Cấu trúc CNF (chuẩn Chomsky)
Năm 1957, Chomsky công bố nghiên cứu quy tắc ngữ pháp tạo sinh, đặt nền tảng cho lý thuyết khoa học máy tính về xử lý ngôn ngữ tự nhiên. Ông cho rằng: ngôn ngữ của con người là di truyền và cấu trúc ngữ pháp mà trí não dùng để sắp đặt từ vựng thành một câu có ngữ nghĩa là khả năng thiên bẩm.
Trong cấu trúc ngữ pháp phi ngữ cảnh chúng ta cần quan tâm đến 4 biến: V (variable - non terminals), P hoặc R (production rule), T (terminal) và S (start symbol).
Công thức chuyển đổi thành cấu trúc ngữ pháp phi ngữ cảnh có dạng sau:
A → a
A → BC
S → ε
Nếu phần ngữ pháp bên phải của quy tắc là 2 biến non-terminals, hoặc một biến terminals thì đó là dạng chuẩn Chomsky. Trong đó:
V = A,B,C (Trong đó B,C không phải là biến khởi động)
T = a
S = Biến khởi động
ε = Là chuỗi rỗng
Thuật toán CYK
Cocke–Younger–Kasami (CYK) là thuật toán dùng để chứng minh lý thuyết Chomsky, được 3 nhà toán học John Cocke, Daniel Younger và Tadao Kasami phát triển vào những năm 1987. Thuật toán CYK hoạt động phân tích theo hướng BOTTOM - TOP, nó dựa trên ý tưởng lập trình động.
Bây giờ chúng ta xem xét một ví dụ sử dụng thuật toán CYK để chuyển đổi một câu sang định dạng cấu trúc phi ngữ cảnh: "The rat ate cheese".
Trước hết chúng ta xem xét tiến trình phân tích - các thuật ngữ viết tắt ở cuối bài viết:
S → NP VP
NP → DT NN
VP → VBD NP
DT → the
NN → rat
NN → cheese
VBD → ate
Chúng ta triển khai sơ đồ trên lên tam giác ma trận (n + 1) * (n + 1) như hình minh hoạ bên dưới:
Định dạng của cấu trúc CFG (Context Free Grammar)
Một cây ngữ pháp phi ngữ cảnh theo tiêu chuẩn CFG có cấu trúc như sau:
Grammar =
T (terminals): Là những từ, cụm từ, hoặc chữ cái... làm nên nội dung kết cho câu. Ví dụ: the, a, boy, see, cat, dirty
V (variable / non terminals): Biến V có vai trò như một phụ đề. Và biến V phải tuân theo cấu trúc. Các biến (variable) này chỉ có trách này nhiệm giữ chổ cho terminals và không được tạo đầu ra. Ví dụ: S, NP, VP, ART, N, V;
S (start symbol): S giống như một nút khởi động của chiếc xe máy. Nó là phần tử thuộc nhóm biến V, nó được tạo ra từ các quy tắc ngữ pháp.
P hoặc R (production rule): Là tập hợp các quy tắc dùng để chuyển đổi ngôn ngữ tự nhiên thành cấu trúc phi ngữ cảnh. Ví dụ như VP -> V NP; ART -> the|a...;
Xác định cấu trúc CFG bằng thuật toán CYK
Cả hai cấu trúc CNF (Chomsky Chomsky Normal Form) và CFG (Context-Free Grammars) đều đều thuộc về ngữ pháp phi ngữ cảnh (context-free grammars), nhưng chúng có một số điểm khác biệt cơ bản.
Các biến của CNF phải tuân theo quy tắc và ràng buộc còn CFG thì không. Do đó, để kiểm tra cấu trúc CFG thì cần phải chuyển đổi định dạng của nó về chuẩn CNF.
Ứng dụng của cấu trúc ngôn ngữ tạo sinh
Việc phân tích chuyển đổi từ ngôn ngữ tự nhiên sang định dạng cấu trúc phi ngữ cảnh được ứng dụng vào các công việc như sau:
- Phân tích cú pháp và kiểm tra xem câu đó có đạt chuẩn ngữ pháp hay không;
- Tạo sinh văn bản, giống như CHAT-GPT;
- Giúp các mô hình trí tuệ nhân tạo dịch từ ngôn ngữ này sang ngôn ngữ khác;
Các cấu trúc ngữ pháp tạo sinh đặc biệt
Các cấu trúc ngữ pháp như CNF, CFG tương đối dễ hiểu, dễ triển khai tuy nhiên điểm hạn chế của chúng là không thể xử lý được các cấu trúc câu phức tạp.
Ví dụ: Nó đá cục đá là một câu hợp ngữ pháp nhưng không thể xác minh bằng các quy tắc của CNF hay CFG. Để xử lý điểm yếu, chúng ta cần xem xét đến các cấu trúc khác như Context Sensitive Grammar (CSG), Weak Greibach...
Ghi chú một số thuật ngữ
VP (verb pharase) = Ngữ đoạn động từ
VP ngữ đoạn động từ là một cấu trúc ngữ pháp trong tiếng Việt. Nó được sử dụng để biểu thị hành động của chủ thể. VP ngữ đoạn động từ bao gồm động từ và các từ đi kèm, như trạng từ, giới từ, danh từ, đại từ, và các từ chỉ số lượng. Ví dụ: “đang ăn cơm”, “đã đi học”, “sẽ đến vào lúc 7 giờ”
CC Coordinating conjunction
CD Cardinal number
DT Determiner
EX Existential there
FW Foreign word
IN Preposition or subordinating conjunction
JJ Adjective
JJR Adjective (comparative)
JJS Adjective (superlative)
LS List item marker
MD Modal
NN Noun (singular or mass)
NNS Noun (plural)
NNP Proper noun (singular)
NNPS Proper noun (plural)
PDT Predeterminer
POS Possessive ending
PRP Personal pronoun
PRP$ Possessive pronoun
RB Adverb
RBR Adverb (comparative)
RBS Adverb (superlative)
RP Particle
SYM Symbol
TO to
VB Verb (base form)
VBD Verb (past tense)
VBG Verb (gerund or present participle)
VBN Verb (past participle)
VBP Verb (non-3rd person singular present)
VBZ Verb (3rd person singular present)
WDT Wh-determiner
WP Wh-pronoun
WP$ Possessive wh-pronoun
WRB Wh-adverb
ADJP Adjective Phrase
ADVP Adverb Phrase
CONJP Conjunction Phrase
FRAG Fragment
INTJ Interjection
LST List marker
NAC Not a Constituent
NP Noun Phrase
NX marks the head of the NP
PP Prepositional Phrase
PRN Parenthetical
PRT Particle
QP Quantifier Phrase
RRC Reduced Relative Clause
UCP Unlike Coordinated Phrase
VP Verb Phrase
WHADJP Wh-adjective Phrase
WHAVP Wh-adverb Phrase
WHNP Wh-noun Phrase
WHPP Wh-prepositional Phrase
X Unknown, uncertain, or unbracketable
S Simple declarative clause
SBAR Clause introduced by a (possibly empty) subordinating conjunction
SBARQ Direct question introduced by a wh-word or a wh-phrase
SINV Inverted declarative sentence
SQ Inverted yes/no question, or main clause of a wh-question, following the wh-phrase in SBARQ