Nghiên cứu và đề xuất một kiến trúc khung cho xử lý tài liệu tiếng Việt
Trước hết xin được xác đinh rõ nghĩa của thuật ngữ xử lý tài liệu (Text processing) trong ngữ
cảnh của bài này là các xử lý liên quan đến việc phân tích nội dung tài liệu (content analyse)
chứ không đề cập đến việc soạn thảo, hiệu đính và thể hiện tài liệu. Các ứng dụng liên quan
đến phân tích nội dung tài liệu như : xác định ranh giới các đối tượng trong tài liệu như : từ,
ngữ, đoạn, câu.đến việc gán nhãn ngữ pháp (từ gốc, từ loại) hay nhãn ngữ nghĩa cho các đối
tượng và rút trich thông tin từ nội dung tài liệu để phục vụ cho một lớp các ứng dụng khác
nhau như : lập chỉ mục, tìm kiếm, phân lớp . Các ứng dụng này thao tác trên một tài liệu
hay một tập các tài liệu, được gọi là kho tài liệu (corpus) và có thể sử dụng một số tài nguyên
ngôn ngữ học như các các danh sách cho trước (Gazetteers), danh mục từ (lexicons), hay các
ontologies.
Nếu các ứng dụng này được phát triển một cách rời rạc, thao tác trên những kho tài liệu với
định dạng khác nhau thì sẽ dẫn đến một hệ quả là không thể tích hợp trao đổi kết quả với
nhau, mà đây là yêu cầu không thể thiếu được trong xử lý tài liệu : kết quả của một ứng dụng
này có thể là đầu vào cho một ứng dụng khác để hình thành một ứng dụng hoàn chỉnh. Ví dụ
: chúng ta cần có một ứng dụng rút trích các thực thể được định danh (bài toán NER : Named
Entity Recognition), chúng ta sẽ phải thực hiện việc : xác định ranh giới từ (Word
Segmentation), gán nhãn từ loại cho từ (POS Tagging), rút trích cụm từ (chunking).
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Tóm tắt nội dung tài liệu: Nghiên cứu và đề xuất một kiến trúc khung cho xử lý tài liệu tiếng Việt
Nghiên cứu và đề xuất một kiến trúc khung cho xử lý tài liệu tiếng Việt Hồ Bảo Quốc, Hồ Tú Bảo, Đinh Điền Tóm tắt : Trong bài báo này chúng tôi muốn trình bày một quan điểm tổng thể về các đối tượng liên quan đến hệ thống xử lý tài liệu, một kiến trúc phần mềm khung cho việc xử lý tài liệu từ đó đề nghị một giải pháp xây dựng một hệ thống xử lý văn bản tiếng Việt. 1. Giới thiệu Trước hết xin được xác đinh rõ nghĩa của thuật ngữ xử lý tài liệu (Text processing) trong ngữ cảnh của bài này là các xử lý liên quan đến việc phân tích nội dung tài liệu (content analyse) chứ không đề cập đến việc soạn thảo, hiệu đính và thể hiện tài liệu. Các ứng dụng liên quan đến phân tích nội dung tài liệu như : xác định ranh giới các đối tượng trong tài liệu như : từ, ngữ, đoạn, câu...đến việc gán nhãn ngữ pháp (từ gốc, từ loại) hay nhãn ngữ nghĩa cho các đối tượng và rút trich thông tin từ nội dung tài liệu để phục vụ cho một lớp các ứng dụng khác nhau như : lập chỉ mục, tìm kiếm, phân lớp .... Các ứng dụng này thao tác trên một tài liệu hay một tập các tài liệu, được gọi là kho tài liệu (corpus) và có thể sử dụng một số tài nguyên ngôn ngữ học như các các danh sách cho trước (Gazetteers), danh mục từ (lexicons), hay các ontologies. Nếu các ứng dụng này được phát triển một cách rời rạc, thao tác trên những kho tài liệu với định dạng khác nhau thì sẽ dẫn đến một hệ quả là không thể tích hợp trao đổi kết quả với nhau, mà đây là yêu cầu không thể thiếu được trong xử lý tài liệu : kết quả của một ứng dụng này có thể là đầu vào cho một ứng dụng khác để hình thành một ứng dụng hoàn chỉnh. Ví dụ : chúng ta cần có một ứng dụng rút trích các thực thể được định danh (bài toán NER : Named Entity Recognition), chúng ta sẽ phải thực hiện việc : xác định ranh giới từ (Word Segmentation), gán nhãn từ loại cho từ (POS Tagging), rút trích cụm từ (chunking). Nếu các bài toán (con) này được cài đặt theo cách khác nhau, thao tác trên những định dạng tài liệu khác nhau thì rất khó để có thể kết nối chúng lại với nhau. Chính vì lý do đó nếu chúng ta nhìn bài toán xử lý tài liệu ở mức độ tổng quát hơn, xác định rõ các đối tượng dữ liệu cũng như xử lý tham gia vào bài toán này từ đó đưa ra một khung phần mềm (Software Framework/Software Architecture) thống nhất để tích hợp chúng lại với nhau trong một thể hoàn chỉnh thì sẽ dễ dàng cho việc phát triển, tích hợp cũng như tiến hóa của cả hệ thống xử lý tài liệu. Trong bài báo này chúng tôi cố gắng trình bày lại một cách tổng quát các đối tượng của bài toán xử lý tài liệu, nghiên cứu một khung phần mềm cho xử lý tài liệu đã được phát triển và sử dụng hơn 10 năm nay trên thế giới từ đó đề xuất một khung phần mềm cho xử lý tài liệu tiếng Việt phù hợp với yêu cầu đặt ra cho phần xử lý tài liệu của đề tài KC01 mã số KC.01.01.04/06-10 mà chúng tôi đang thực hiện. 2. Các đối tượng (tài nguyên) trong bài toán xử lý tài liệu Theo quan điểm của nhóm phát triển GATE [1], mà chúng tôi nhận thấy khá hợp lý, các đối tượng liên quan đến xử lý tài liệu được chia thành 3 loại như sau : các đối tượng dữ liệu, các đối tượng xử lý và các đối tượng thể hiện. - Các đối tượng dữ liệu : là các tài liệu cần xử lý, chúng có thể chỉ là một tài liệu đơn lẻ hay là một tập tài liệu, chúng có thể có các loại định dạng khác nhau. Các tài nguyên ngôn ngữ như : các danh sách (Gazetteers), các bộ từ vựng (lexicons). hay các tài nguyên có cấu trúc phức tạp như các ontologies - Các đối tượng xử lý : là các đơn thể chương trình cài đặt của các thuật toán trong xử lý tài liệu như : xác định ranh giới từ (Word Segmentation), gán nhãn từ loại(POS Tagger), xác định cụm từ (Chunker), bộ phân tích (Parser) ... - Các đối tượng thể hiện: là các giao diện (Interface) để thể hiện các tương tác, các kết quả của việc thực hiện một đối tượng xử lý nào đó trên một đối tượng dữ liệu nào đó. Ví dụ: giao diện thể hiện bài toán phân đoạn từ gồm việc tương tác để xác định các tham số, thể hiện kết quả ... Các ứng dụng (application) sẽ là tổ hợp của 3 đối tượng này với nhau theo nghĩa : các đối tượng xử lý nào sẽ thao tác trên các đối tượng dữ liệu theo một cấu trúc điều khiển xác định trước và tương tác hay thể hiện thông qua đối tượng thể hiện Sau đây chúng ta sẽ đi chi tiết vào thuộc tính của từng loại đối tượng nêu trên 2.1 Đối tượng dữ liệu Như đã trình bày ở trên, các đối tượng dữ liệu có thể là kho tài liệu (corpus) hay các tài nguyên ngôn ngữ như : danh sách (Gazeteers), bộ từ vựng (lexicons) hay một cấu trúc phức tạp như ontology. Mỗi đối tượng dữ liệu có thể bao gồm tối thiểu các thuộc tính như sau : - Tên : Tên của đối tượng - Vị trí lưu trữ trên đĩa : đường dẫn vật lý đến tập tin hay thư mục - Định dạng : text, doc, pdf, xml ... - Tính chất : xử lý tạm thời trong bộ nhớ hay xử lý và lưu trữ thường trực trên thiết bị lưu trữ - Loại : kho nhữ liệu, danh mục từ, ontologies - Bộ nhãn (Annotation Set) : Các thành phần trong đối tượng dữ liệu như từ (word), cụm từ (chunk), đoạn (paragraph), câu (sentence) sẽ được gán nhãn theo một bộ nhãn nào đó. Mỗi nhãn (Annotation) trong bộ nhãn sẽ có các đặc tính (feature) và mỗi đặc tính sẽ có một giá trị tương ứng. Ví dụ : giả sử chúng ta xét nhãn “từ” , thì nhãn này có thể có các đặc tính như : vị trí (tương đối trong tài liệu mà từ xuất hiện), từ gốc, bản thân từ, từ loại của từ 2.2 Đối tượng xử lý Mỗi đối tượng xử lý là một đơn thể chương trình cài đặt thuật toán nào đó theo một tiêu chí chung để có thể dễ dàng gắn thêm (plugin) vào hệ thống. Thường chúng có các tính chất như: - Các thông số môi trường - Các tham biến của chương trình - Các thông số chương trình thực thi (tên chương trình, đường dẫn) Các đối tượng xử lý sẽ thao tác trên đối tượng dữ liệu, cụ thể là với các nhãn của một bộ nhãn nào đó và các đặc tính của nhãn đó. Vi dụ với vài toán xác định ranh giới từ thì chỉ là việc gán nhãn “từ” cho từng từ trong câu, gán giá trị cho đặc tính vị trí cuản nhãn “từ” của từng từ. Sau đó bài toán gán nhãn từ loại chính và gán thêm giá trị cho đặc tính “từ loại” của các từ đã được xác định ranh giới ở bước trước 2.3 Đối tượng thể hiện Là các giao diện cài đặt sẳn phù hợp cho từng bài toán cụ thể, các giao diện này thao tác với các bộ nhãn (Annotation Set), với các nhãn và các đặc tính của nhãn để thể hiện các kết quả trên một giao diện thân thiện với người dung. Hay nói cách khác chúng phân tích tài liệu đã được gán nhãn để thể hiện lên giao diện. Tóm lại, có thể nhìn một các tổng quát như sau : Các đối tượng kho tài liệu sẽ bao gồm một hay nhiều tài liệu, mỗi tài liệu sẽ có một nội dung và nội dung đó sẽ được phân tích và gán nhãn (annotate) theo một hay nhiều bộ nhãn (annotation set) khác nhau. Mỗi nhãn (annotation) trong một bộ nhãn sẽ gồm các đặc trưng(feature), mỗi đặc trưng sẽ được gán một giá trị (value). Các đối tượng xữ lý thao tác trên các bộ nhãn (Annotation Set) của các thành phần trong đối tượng dữ liệu để gán các giá trị cho các đặc trưng của các nhãn trong bộ nhãn đó. Do đó có thể tổng quát hóa các bài toán xử lý tài liệu là các bài toán gán nhãn (Annotate) trên các thành phần trong đối tượng dữ liệu. Các đối tượng thể hiện dựa vào các dữ liệu đã được gán nhãn để thể hiện lên giao diện thân thiện với người dùng. Ngay khi đã có được một góc nhìn mang tính tổng quát như trên thì việc thiết kế một khung phần mềm để tích hợp các đối tượng này lại với nhau thì chúng ta cũng cần phải xem xét đến các thành phần như : - Các bộ phân tích loại tài liệu khác nhau để có thể làm việc với nhiều loại tài liệu khác nhau - Quản lý lưu trữ các tài liệu trong bộ nhớ và trên đía trong quá trình thao tác - Quản lý các bộ nhãn, nhãn và các đặc trưng của nhãn - Quản lý việc tích họp các đối tượng xử lý - Quản lý thể hiện Tât cả các công việc trên đòi hỏi đầu tư công sức và kinh phí khá lớn nếu chúng ta xuất phát từ con số không. Do đó chúng ta không nên xuất phát từ số không mà nên tận dụng các khung phần mềm có sẳn, đây cũng chính là đề nghị của chúng tôi. Trong phần sau chúng tôi sẽ trình bày chi tiết hơn về một khung phần mềm mã nguồn mở GATE của đại học Sheffield, Anh Quốc mà chúng tôi hy vọng có thể tận dụng để đề xuất cho hệ thống xử lý tài liệu tiếng Việt của đề tài chúng tôi. 3. Kiến trúc tổng quát cho công nghệ ngôn ngữ GATE (General Architecture for Text Enginering) 3.1 Giới thiệu về GATE GATE là một kiến trúc phần mềm tổng quát cho công nghệ tài liệu do nhóm của giáo sư Cunninggham tại đại học Sheffield Anh quốc phát triển từ năm 1997 [1]. GATE dựa trên quan điểm về các đối tượng liên quan đến xử lý tài liệu như đã nêu trong phần trên. GATE cung cấp một khung cơ bản và đầy đủ các công cụ như : quản lý các đối tượng dữ liệu (trong GATE được gọi là Language Resources), các đối tượng xử lý (trong GATE được gọi là các Process Resources) và các đối tượng thể hiện (Visual Resources). GATE cho pháp làm việc với các loại tài liệu khác nhau như : text, pdf, xml Các đối tượng xử lý được thiết kế và các đặc dưới dạng các công cụ gắn vào (plugin) cho phép dễ phát triển thêm và tích hợp vào các công cụ cho sẳn. GATE cũng cho phép kết nối với các công cụ khác như : máy học (machine learning), truy tìm thông tin (information retrieval)GATE cũng cung cấp một giao diện đồ họa (GUI) cho phép người dung tương tác với hệ thống. Các thư viện của GATE cung cấp một khả năng lập trình API khá linh hoạt cho việc phát triển các tài nguyên xử lý cũng như các ứng dụng. GATE được phát triển bắng ngôn ngữ lập trình Java. 3.2 Kiến trúc chung của GATE Kiến trúc chung của GATE có thể được mô tả bằng sơ đồ sau Hình 1. Kiến trúc tổng quát của GATE GATE gồm các lớp (Layer) như sau : 1. Lớp quản lý các loại tài liệu (Document Format Layer) 2. Lớp quản lý lưu trữ (DataStore Layer) 3. Lớp quản lý kho tài liệu (Corpus Layer): Kho tài liệu được qaurn lý ở nhiều mức khác nhau : a. Kho tài liệu -Æ tài liệu : một kho tài liệu bao gồm một hay nhiều tài liệu b. Nội dung tài liệu -Æ bộ nhãn: nội dung của một tài liệu liên kết với một hay nhiều bộ nhãn c. Nhãn -Æ các đặc trưng của nhãn : một nhãn có một hay nhiều đặc trưng. Đặc trưng Æ giá trị : một đặc trưng sẽ được gán một giá trị cụ thể nào đó 4. Lớp quản lý các đối tượng dữ liệu đặc biệt (Language Resources Layer) như : a. Ontology b. Ontology được tổ chức theo Protégé c. WordNet d. Các danh sách (Gazetteers) 5. Lớp các đối tượng xử lý căn bản như (Processing Resource Layer) : a. Gán nhãn từ loại (POS) b. Nhận dạng thực thể được định danh (NE) 6. Lớp giao diện (IDE GUI Layer) : giao diện cho phép người dung thao tác trực tiếp 7. Lớp ứng dụng (Application Layer) : là các ứng dụng mà nhóm phát triển đã xây dựng gồm úng dụng (ANNIE và OBIE) Trên kiến trúc chung của GATE như trên, nhóm làm xử lý tài liệu tiếng Việt hoàn toàn có thể phát triển các đói tượng xử lý cho tiếng Việt như : Xác định ranh giói từ, gán nhãn từ loại, xác định cụm tuwd, bộ phân tích cú pháp cho tiếng Việt để gắn thêm vào lớp các đối tượng xử lý căn bản của GATE. Tiếp theo hoàn toàn có thể xây dựng các ứng dụng cho tìm kiếm, phân loại tài liệu theo kiểu các ứng dụng ANNIE va OBIE của GATE [2]. Dĩ nhiên GATE cũng còn các hạn chế của nó như về giao diện thể hiện chưa ổn định, các định dạng kết xuất có thể còn khá phức tạp (do phải phục vụ cho nhiều mục tiêu khác nhau), quản lý lưu trữ có thể chưa tốt.. 3.3 Một ví dụ minh họa Trong ví dụ minh họa này chúng tôi sử dụng GATE để tiến hành các công việc sau: xác định ranh giới câu, xác định ranh giới từ, xác định từ gốc (stemming) và gán nhãn từ loại cho từ trên một kho tài liệu chỉ gồm một văn bản thông qua tương tác với giao diện đồ họa của GATE. Cửa sổ bên trái của GATE là phần chứa các tài nguyên và ứng dụng của GATE, cửa sổ ở giữa là nội dung văn bản đã được phân tích và gán nhãn và cửa sổ bên phải và các bộ nhãn. 1. Trong cửa sổ bên trái, chúng ta có thể thấy 4 mục : a. Language Resources : kho tài liệu chúng ta cần phân tích, trong ví dụ này là một corpus có tên “tét” chỉ gồm một tài liệu có tên “GATE document .” b. Processing Resources : là các công cụ (chương trình) chúng ta cần nạp vào bộ nhớ để thực thi, trong thí dụ này gồm bốn chương trình i. Phân đoạn câu (ANNIE Sentence Splitter) ii. Phân đoạn từ (ANNIE English Tokenisez) iii. Xác định gốc từ (Stemmer) : đây là một công cụ gắn vào do một nhóm khác phát triển (Snowball) theo dạng plugin và gắn vào dễ dàng với khung của GATE iv. Gán nhãn từ loại (ANNIE POS Tagger) c. Application : cho phép chúng ta xây dựng một ứng dụng kiêu ống dẫn (PipeLine) từ các công cụ đã load vào bộ nhớ. Nói cách khác xác định một cấu trúc điều khiển việc thực hiện các công cụ trên để đạt được kết quả mong muốn 2. Trong cửa sổ bên trái là các bộ nhãn (Annotation Set) sử dụng trong ứng dụng này 3. Ở cửa sổ giữa là kết quả của tài liệu sau khi phân tích và đã chọn một nhãn (annotation) là token cho từ “congestive” để thấy các đặc trưng và giá trị tương ứng đã được gán cho chúng (trong cửa sổ nhỏ màu xanh nước biển). a. Vị trí của từ đă được xác đinh (thông qua vệt sáng tô từ đó – highlighted) b. Từ loại (categogy) là : JJ – tính từ c. Loại từ (kind) là từ (word) (chứ không phải số (number),,,) d. Lối viết (Orthograph) là chữ in thường (lowercase) e. Từ gốc (stem) là “congest” f. Chuổi khí tự của từ (string) là “congestive” Hình 2. Giao diện đồ họa của GATE Đây là một ví dụ minh họa qua giao diện đồ họa để dễ trình bày, tất cả các công việc này đều có thể lập trình thành một chương trình rất dễ dàng dựa vào các thư viện của GATE. 4. Một đề nghị cho hệ phần mềm xử lý tài liệu tiếng Việt Chúng ta không nên bắt đầu từ con số không để có được một khung phần mềm cho xử lý tài liệu tiếng Việt tương tự như GATE. Quan điểm của chúng tôi là thừa kế tất cả những gì có thể thừa kế được từ GATE hoặc một khung phần mềm tổng quát nào đó tương tự để phát triển hệ thống phần mềm xử lý tiếng Việt. Làm như vậy chúng ta sẽ đở tốn công sức cho việc tạo khung quản lý chung như các lớp quản lý dạng tài liệu, quản lý lưu trữ, quản lý các thành phần khá phức tạp của kho ngữ liệu, nội dung tài liệu, các bộ nhãn và các đặc trưng của nhãn. Cụ thể, theo quan điểm của chúng tôi, chúng ta có thể thừa kế các lớp từ 1 – 4 của GATE, phát triển các tài nguyên xử lý cho tiếng Việt dưới dạng các plugin vào GATE để bổ sung vào lớp thứ 5 của GATE. Chúng ta có thể tận dụng hoặc viết mới lớp thứ 6 để có một giao diện tiếng Việt hợp lý và phát triển các ứng dụng ở lớp thứ 7 như: phân loại văn bản tiếng Việt, tìm kiếm thong tin trên văn bản tiếng Việt... Để làm được điều đó, chúng ta có thể tiến hành các bước như sau: 1. Nghiên cứu và nắm bắt chi tiết kỹ thuật của GATE 2. Phát triển các công cụ theo dạng plugin thêm vào GATE như : a. Công cụ phân đoạn từ b. Công cụ gán nhãn từ loại c. Công cụ trích cụm từ d. Công cụ phân tích câu 3. Phát triển một giao diện riêng cho hệ thống xử lý văn barnt iếng Việt 4. Thay đổi hay viết mới các thành phần mà GATE chưa đáp ứng nhu cầu của chúng ta như các dạng kết xuất, các giao tiếp với các ứng dụng khác. Dĩ nhiên chúng ta có thể không hoàn toàn sử dụng GATE như một hộp đen, mà chúng ta phải hiểu rõ GATE để khai thác, thừa kế các điểm mạnh và khắc phục các điểm yếu hoặc chưa phù hợp với mong muốn của chúng ta. 5. Kết luận Qua phần trình bày trên chúng tôi mong muốn trình bày một cách nhìn tổng thể, thống nhất về các đối tượng của bài toán xử lý tài liệu, nêu lên sự cần thiết nên có một khung phần mềm tổng quát cho bài toán đó. Chúng tôi cũng trình bày một khung phần mềm xử lý tài liệu được nhiều nhóm nghiên cứu trên thế giới sử dụng như một minh họa, từ đó đề xuất một giải pháp tận dụng các hệ phần mềm khung này cho việc phát triển một hệ phần mềm xử lý văn bản tiếng Việt, với mong muốn chúng ta có một chuẩn và một công cụ chung cho việc xử lý văn bản tiếng Việt và chuẩn đó cũng phù hợp với cái mà cộng đồng nghiên cứu thế giới đang thực hiện. Tài liệu tham khảo [1] H. Cunningham, D. Maynard, K. Bontcheva, V. Tablan. GATE: A Framework and Graphical Development Environment for Robust NLP Tools and Applications. Proceedings of the 40th Anniversary Meeting of the Association for Computational Linguistics (ACL'02). Philadelphia, July 2002. [2] Y. Li, K. Bontcheva, and H. Cunningham. SVM Based Learning System For Information Extraction. J. Winkler, M. Niranjan and N. Lawerence (Eds.): Deterministic and Statistical Methods in Machine Learning, LNAI 3635, Springer Verlag, pp. 319-339. 2005
File đính kèm:
- nghien_cuu_va_de_xuat_mot_kien_truc_khung_cho_xu_ly_tai_lieu.pdf