Tuesday, May 20, 2008

Giới thiệu về xử lý ngôn ngữ tự nhiên

(lược dịch từ Getting Started on Natural Language Processing with Python)

Những khái niệm cơ bản

Token: trước khi xử lý, dữ liệu text đầu vào cần được phân đoạn thành các đơn vị ngôn ngữ như là từ, dấu chấm câu, số và chữ số. Các đơn vị ngôn ngữ đó được gọi chung là tokens.

Sentence: Một chuỗi có thứ tự các tokens

Tokenization: quá trình phân chia một sent thành các tokens. Với segmented language như tiếng Anh, có thể tokenize dễ dàng với dấu cách (whitespace). Tuy nhiên, với những ngôn ngữ như tiếng Việt, tiếng Trung hay tiếng Ả Rập, tokenization khó hơn nhiều vì không có biên giới rõ rành giữa các từ như tiếng Anh. Hơn thế nữa mọi ký tự trong ngôn ngữ tượng hình như tiếng Trung, tiếng Ả Rập đều có thể tồn tại như một từ đơn ký tự hoặc cũng có thể kết hợp với nhau để tạo thành từ đa ký tự.

Corpus: a body of text, thường chứa rất nhiều sent.

Part-of-speech (POS) tag: một từ có thể được phân loại vào một hay nhiều tập từ vựng (lexical) hoặc lớp từ loại như là danh từ, động từ, tính từ, và giới từ .. Một POS tag là một biểu tượng tượng trưng cho một lớp từ vựng - NN(Noun), VB(Verb), JJ(Adjective), AT(Article). Một trong những tập tags lâu đời và phổ biến nhất là Brow Corpus tag set.

Parse Tree: với mỗi một sent có một tree tương ứng biểu diễn cấu trúc cú pháp của sent đó. Cấu trúc cú pháp được định nghĩa bởi một ngôn ngữ hình thức (formal language).

Những bài toán phổ thông

POS Tagging: cho một câu và một tập POS tags, hãy gán nhãn cho từng từ trong câu. Ví dụ, cho câu “The ball is red”, POS tagger sẽ cho output là “The/AT ball/NN is/VB red/JJ”. POS taggers hiện thời có thể đạt tới độ chính xác 96% (Stanford POS Tagger đạt tới độ chính các trên 97% trong thử nghiệm ở đây). Gán nhãn từ rất hữu dụng cho những bài toán NLP phức tạp hơn như là parsing và machine translation.

Computational Morphology (hình thái học): Ngôn ngữ tự nhiên bao gồm rất nhiều word được xây dựng từ morphemes hay stems (thân từ) - đơn vị ngôn ngữ nhỏ nhất mà còn mang ý nghĩa. Computational Morphology sử dụng máy tính để phát hiện và phân tích cấu trúc bên trong của các words.

Parsing: trong bài toán phân tích câu, một parser sẽ tạo ra một parse tree với đầu vào là một sent. Một vài parsers giả sử có sự tồn tại của một tập luật cú pháp (grammar rules) để dựa trên đó mà phân tích. Các parsers gần đây đã đủ thông minh để suy diễn (deduce) parse trees trực tiếp từ các dữ liệu sử dụng các mô hình thống kê phức tạp. Hầu hết parses đều hoạt động có giám sát (operate in supervised setting) và yêu cầu sent phải được gán nhãn từ loại trước khi phân tích ngữ pháp (parse).

Machine Translation (MT): mục đích của MT là dùng máy tính để dịch một đoạn text từ một ngôn ngữ tự nhiên này sang một ngôn ngữ tự nhiên khác mà không cần sự tham gia của con người. Đây là một trong những bài toán khó nhất của NLP và đã được giải theo nhiều hướng khác nhau trong nhiều năm liền. Hầu hết các cách tiếp cận đều sử dụng POS taggingparsing như là các bước cơ bản.

Viết tắt:
doc => document
sent => sentence
pos => part-of-speech (từ loại như là danh từ, động từ, tính từ .. )

No comments: