Phân tích cú pháp

Phân tích cú pháp (tiếng Anh: parsing, syntax analysis, hoặc syntactic analysis) là một quá trình phân tích một chuỗi các biểu tượng, sử dụng trong ngôn ngữ tự nhiên, ngôn ngữ máy tính và các cấu trúc dữ liệu, tuân theo các quy tắc của ngữ pháp hình thức (formal grammar). Thuật ngữ parsing đến từ từ Latin pars (orationis), nghĩa là từ loại.

Thuật ngữ này có đôi chút khác biệt trong các chuyên ngành ngôn ngữ học và khoa học máy tính. Phân tích cú pháp một câu truyền thống thông thường được thực thi dưới dạng một phương pháp hiểu ý nghĩa chính xác của một câu hoặc từ, đôi khi với sự trợ giúp của các thiết kế chẳng hạn như các biểu đồ câu. Theo đó, tầm quan trọng của các bộ phận ngữ pháp như chủ ngữ và vị ngữ được nhấn mạnh.

Thuật ngữ cũng được dùng trong ngôn ngữ học tâm lý khi mô tả sự hiểu biết ngôn ngữ. Trong bối cảnh đó, phân tích cú pháp là cách con người phân tích một câu hay cụm từ (trong tiếng nói hay văn bản) "xét theo các nhân tố cấu thành ngữ pháp, xác định các thành phần của lời nói, các quan hệ cú pháp,..." Thuật ngữ này đặc biệt phổ biến khi thảo luận về những tín hiệu ngôn ngữ nào giúp người nói diễn dịch câu đường đi trong vườn (garden-path sentence, câu lập lờ).

Với khoa học máy tính, thuật ngữ được dùng để phân tích ngôn ngữ máy tính, nhắc đến cách phân tích cú pháp của mã đầu vào thành các phần thành phần của nó nhằm tạo điều kiện thuận lợi cho việc viết trình biên dịch và trình thông dịch. Thuật ngữ cũng dùng cho việc mô tả sự tách biệt hay phân chia.

Ví dụ 
Sử dụng thư viện spaCy để phân tích cú pháp của câu "Apple is looking at buying U.K. startup for $1 billion" bằng ngôn ngữ Python.

import spacy

nlp = spacy.load("en_core_web_sm")
doc = nlp("Apple is looking at buying U.K. startup for $1 billion")

for token in doc:
    print(token.text, token.lemma_, token.pos_, token.tag_, token.dep_,
            token.shape_, token.is_alpha, token.is_stop)

Xem thêm 

 Quay lui (khoa học máy tính)
 Chart parser
 Trình sinh bộ phân tích cú pháp
 Deterministic parsing
 String generation
 Grammar checker
 LALR parser
 Phân tích từ vựng
 Pratt parser
 Shallow parsing
 Left corner parser
 Parsing expression grammar
 ASF+SDF Meta Environment
 DMS Software Reengineering Toolkit
 Program transformation
 Source code generation

Tham khảo

Đọc thêm 

 Chapman, Nigel P., LR Parsing: Theory and Practice, Nhà xuất bản Đại học Cambridge, 1987. 
 Grune, Dick; Jacobs, Ceriel J.H., Parsing Techniques - A Practical Guide, Vrije Universiteit Amsterdam, Amsterdam, The Netherlands. Originally published by Ellis Horwood, Chichester, England, 1990;

Liên kết ngoài 

 The Lemon LALR Parser Generator
 Stanford Parser The Stanford Parser
 Turin University Parser Natural language parser for the Italian, open source, developed in Common Lisp by Leonardo Lesmo, University of Torino, Italy.
 Short history of parser construction

 
Thuật toán trên chuỗi