Ứng dụng xử lý ngôn ngữ tự nhiên trong hệ tìm kiếm thông tin trênvăn bản tiếng Việt Giới Thiệu: Trong các hệ thống tìm kiếm thông tin văn bản Text Information Retrieval System, tiến trìn
Trang 1Ứng dụng xử lý ngôn ngữ tự nhiên trong hệ tìm kiếm thông tin trên
văn bản tiếng Việt
Giới Thiệu:
Trong các hệ thống tìm kiếm thông tin văn bản (Text Information Retrieval System), tiến trình quan trọng nhất là tiến trình phân tích nội dung văn bản để xác định tập chỉ mục (Index) biểu diễn tốt nhất nội dung của văn bản (tiến trình lập chỉ mục - indexing) Để có thể phân tích và rút trích được các chỉ mục (index term / term) tốt người ta thường ứng dụng các kết quả của lĩnh vực xử lý ngôn ngữ tự nhiên vào tiến trình này
Chỉ mục có thể là từ (word) hay là một cấu trúc phức tạp hơn như cụm danh từ (noun phrase), khái niệm (concept) Vấn đề xác định chỉ mục cho văn bản tiếng Việt phức tạp hơn đối với ngôn ngữ châu Âu do việc xác định giới hạn của một từ (word segmentation) trong tiếng Việt không đơn giản là chỉ dựa vào các khoảng trắng giữa chúng Hơn nữa ngữ pháp tiếng Việt vẫn còn nhiều vấn đề tranh luận giữa các nhà ngôn ngữ học nên cũng còn nhiều khó khăn trong việc tự động hóa việc phân tích tiếng Việt
Trong tiểu luận bài báo cáo này chúng tôi trình bày việc ứng dụng xử lý ngôn ngữ tự nhiên vào hệ thống tìm kiếm thông tin nói chung, tiếp theo chúng tôi trình bày một
số đặc trưng của tiếng Việt dưới góc nhìn của lĩnh vực tìm kiếm thông tin Cuối
Trang 2cùng chúng tôi trình bày một số kết quả mà chúng tôi đã đạt được trong việc xác
định chỉ mục cho văn bản tiếng Việt Bài báo cáo chia làm bốn phần, phần I "Giới
thiệu tổng quát về việc ứng dụng xử lý ngôn ngữ tự nhiên vào lĩnh vực tìm kiếm thông tin" Phần II "Trình bày một số đặc trưng của tiếng Việt dưới góc nhìn của lĩnh vực tìm kiếm thông tin" Phần III "Một số kêt quả đã đạt được trong việc lập chỉ mục cho văn bản tiếng Việt dựa trên uni-gram, bi-gram, cụm danh từ" và cuối cùng là "Phần kết luận".
I Ứng dụng xử lý ngôn ngữ tự nhiên vào tìm kiếm thông tin
1.1 Giới thiệu tổng quan
Tìm kiếm thông tin (Information retrieval) là lĩnh vực nghiên cứu nhằm tìm ra các giải pháp giúp người sử dụng có thể tìm thấy các thông tin mình cần trong một khối lượng lớn dữ liệu Nhiệm vụ của một hệ thống tìm kiếm thông tin tương tự như nhiệm vụ tổ chức phân loại tài liệu và phục vụ việc tra cứu của một thư viện Một hệ thống tìm kiếm thông tin có hai chức năng chính : lập chỉ mục (indexing) và tra cứu (interrogation) Lập chỉ mục là giai đoạn phân tích tài liệu (document) để xác định các chỉ mục (term / index term) biểu diễn nội dung của tài liệu Việc lập chỉ mục có thể dựa vào một cấu trúc phân lớp có sẵn (control vocabulary) như cách làm của các nhân viên thư viện, phân loại tài liệu theo một bộ phân loại cho trước Các chỉ mục trong cách làm này là tồn tại trước và độc lập với tài liệu Cách thứ hai để lập chỉ mục là rút trích các chỉ mục từ chính nội dung của tài liệu (free text) Trong bài này chúng tôi chỉ đề cập đến cách thứ hai này Cuối giai đoạn lập chỉ mục nội dung của các tài liệu có trong kho tài liệu (corpus) được biểu diễn bên trong bằng tập các chỉ mục
Trong giai đoạn tra cứu, nhu cầu thông tin của người sử dụng được đưa vào hệ thống dưới dạng một câu hỏi (query) bằng ngôn ngữ tự nhiên hay một dạng thức qui ước nào đó, cũng sẽ được phân tích và biểu diễn thành một dạng biểu diễn trong Hệ thống sẽ sử dụng một hàm so khớp (matching function) để so khớp biểu diễn của
Trang 3câu hỏi với các biểu diễn của các tài liệu để tìm ra các tài liệu có liên quan (relevance) Một hệ thống tìm kiếm thông tin có thể được biểu diễn như trong hình
vẽ sau:
Để đánh giá hiệu năng của một hệ thống tìm kiếm thông tin người ta dựa vào hai độ
đo chính là độ chính xác (presicion) và độ bao phủ (recall) Giả sử với một câu hỏi
cho trước q, P là tập các tài liệu mà hệ thống tìm được, R là tập các tài liệu thật sự liên quan đến câu hỏi q Độ chính xác là tỉ số giữa số tài liệu liên quan đến câu hỏi được tìm thầy trên toàn số tài liệu được tìm thấy ((P∩ R) /P) Độ bao phủ là tỉ số giữa số tài liệu liên quan đến câu hỏi được tìm thấy trên tổng số các tài liệu liên quan ((P∩R)/R)
Mặc dù lĩnh vực tìm kiếm thông tin đã được nghiên cứu từ mấy chục năm nay nhưng những kỹ thuật mới vẫn chưa được áp dụng vào các hệ thống thương mại vì nhiều lý do khác nhau Đa số các hệ thống tìm kiếm thông tin văn bản vẫn dựa trên các kỹ thuật đơn giản dẫn đến các kết quả chưa đáp ứng được mong đợi của người
sử dụng Như chúng ta vẫn thường gặp khi sử dụng các công cụ tìm kiếm (search
Trang 4engine) trên Internet Phần lớn các hệ thống tìm kiếm đều vẫn đang dựa trên giả
định nếu một câu hỏi và một tài liệu có chứa một số từ (từ khoá) chung, thì tài liệu
là liên quan đến câu hỏi, và dĩ nhiên là nếu số từ chung càng nhiều thì độ liên quan càng được cho là cao [1] Để đánh giá độ liên quan giữa tài liệu và câu hỏi tốt hơn
là chỉ dựa vào số lượng từ chung, người ta đánh trọng số (weight) cho các từ để biểu diễn mức độ quan trọng của từ trong tài liệu Với giả định như vậy hệ thống không thể cho một kết quả chính xác do chúng ta xem như đã biểu diễn tài liệu và câu hỏi dưới dạng các tập hợp từ khoá độc lập nhau (được gọi là túi các từ khoá) và việc so khớp là tiến hành so khớp cái ‘túi’ từ khóa này
Cách biểu diễn đơn giản này không thể cho kết quả cao vì nếu nhìn dưới góc nhìn của ngôn ngữ học nó đã không xử lý các biến thể về mặt ngôn ngữ học (linguistic
variation) của các từ như biến thể về hình thái học (morphological variation), biến
thể về từ vựng học (lexical variation), biến thể về ngữ nghĩa học (semantical
variation) và biến thể về cú pháp học (syntax variation).
1.2 Các biến thể ngôn ngữ học
Biến thể về hình thái học là các dạng khác nhau về mặt cấu trúc (nôm na là hình dáng) của một từ như vẫn hay thấy trong các ngôn ngữ châu Âu Ví dụ trong tiếng Anh các từ computer, computerize, computers là các biến thể về hình thái học của từ computer Hệ thống sẽ cho kết quả không chính xác nếu đối xử với các biến thể này như các từ độc lập nhau
Biến thể về từ vựng học là các từ khác nhau mang cùng một nghĩa Ví dụ như trong tiếng Anh các từ: car, auto Hệ thống sẽ không trả về các tài liệu có chứa từ auto mà không chứa từ car khi câu hỏi chỉ chứa từ car
Biến thể về ngữ nghĩa học là vấn đề một từ đa nghĩa tùy vào ngữ cảnh Vi dụ như khi chúng ta tìm từ ‘bands’ có thể chúng ta sẽ nhận được các tài liệu nói về ‘radio frequency bands’ Biến thể về cú pháp học là các các kết hợp khác nhau về mặt cú pháp của cùng một nhóm từ sẽ mang các ý nghĩa khác nhau Do đó nếu hệ thống
Trang 5không xử lý cấu trúc ngữ pháp của nhóm từ sẽ dẫn đến việc giảm độ chính xác
Ví dụ một tài liệu chứa câu ‘near to the river, air pollution is a major problem’ thì không liên quan gì đến ‘river pollution’ cả mặc dù cả hai từ đều có xuất hiện trong tài liệu
Do vậy để nâng cao hiệu quả của các hệ tìm kiếm thông tin, người ta phải có các giải thuật để xử lý các biến thiên ngôn ngữ học như đã nêu
1.3 Các thuật toán xử lý ngôn ngữ tự nhiên
Đối với các biến thiên về hình thái học người ta có hai cách để xử lý: cách thứ nhất
là mở rộng câu hỏi (query expansion) bằng cách thêm vào câu hỏi tất cả các biến thể hình thái học của tất cả các từ có trong câu hỏi, cách thứ hai là chuẩn hoá các biến thể hình thái học (stemming) của một từ về một chuẩn chung (stem) Ví dụ như các
từ computer, computed, computes, computerize sẽ được chuẩn hoá thành một stem
là compute Hai thuật toán stemming được biết đến nhiều cho tiếng Anh là Lovins
và Porter
Để xử lý các biến thể về từ vựng học người ta hoặc là mở rộng câu hỏi bằng cách thêm vào câu hỏi tất cả các từ đồng nghĩa có thể có của tất cả các từ trong câu hỏi hoặc là xử lý ở giai đoạn so khớp bằng cách đưa ra các độ đo khoảng cách của các khái niệm (conceptual distance measures) Đối với cách thứ nhất chúng ta cần có một từ điển đồng nghĩa, đối với cách thứ hai chúng ta phải xây dựng một tự điển từ vựng (thesaurus) trong đó có định nghĩa khoảng cách giữa các từ như mạng ngữ nghĩa WORDNET
Biến thể về ngữ nghĩa thường kết hợp chặt chẽ với biến thể về từ vựng học Để xử
lý các biến thể này chúng ta cần một công đoạn xử lý sự đa nghĩa của từ (word sense disambiguiation), hiệu năng của hệ thống tìm kiếm sẽ phụ thuộc vào kết quả của giai đoạn xử lý này
Các kỹ thuật xử lý các biến thể về cú pháp học hay nói cụ thể hơn là xử lý cấu trúc của một cụm từ (phrase) có thể được chia làm hai loại: kỹ thuật lập chỉ mục dựa vào
Trang 6các cụm từ (phase based indexing) và kỹ thuật lập chỉ mục là các cấu trúc cây phân tích được từ các mệnh đề Các kỹ thuật lập chỉ mục dựa trên cụm từ nhằm tăng độ chính xác của hệ thống Với giả định rằng khi dùng các cụm từ như các chỉ mục thay cho các từ đơn thì độ chính xác sẽ tăng do cụm từ biểu diễn chính xác hơn nội dung của tài liệu Các hệ thống tìm kiếm dựa trên chỉ mục là các cụm từ ngày càng thu hút nhiều nhóm nghiên cứu và vấn đề làm thế nào để rút trích được các cụm từ một cách tự động từ tài liệu trở thành vấn đề chính trong các hệ này Các giải pháp rút trích cụm từ thường dựa vào hai cách tiếp cận: tiếp cận dùng thông tin thống kê tần suất đồng xuất hiện (co-occurrence) hay cách tiếp cận dựa vào tri thức về ngôn ngữ học Cách tiếp cận thứ hai đòi hỏi phải áp dụng nhiều kỹ thuật của lĩnh vực xử
lý ngôn ngữ tự nhiên
Kỹ thuật lập chỉ mục cấu trúc dựa vào các cấu trúc cây có được từ việc phân tích các mệnh đề trong câu của tài liệu và quá trình so khớp là so khớp các cấu trúc của câu hỏi với các cấu trúc của tài liệu Cách tiếp cận này không thu hút nhiều nhóm nghiên cứu do độ phức tạp của việc phân tích mệnh đề để xây dựng cách cấu trúc cao nhưng lại không tăng được hiệu năng của hệ thống tìm kiếm
1.4 Hệ thống tra cứu thông tin ứng dụng xữ lý ngôn ngữ tự nhiên
Theo [1], quá trình lập chỉ mục của một hệ thống tìm kiếm thông tin có ứng dụng các kỹ thuật xử lý ngôn ngữ tự nhiên phải bao gồm các chức năng như sau:
1 Xác định từ (tokenization/ word segmentation)
2 Xác định từ loại cho từ (Part-of-speech tagging)
3 Chuẩn hoá các biến thể về hình thái học của từ
4 Xác định các từ ghép
5 Chuẩn hoá các biến thể về từ vựng học và ngữ nghĩa học
6 Phân tích cú pháp
7 Chuẩn hoá các biến thể về cú pháp học
8 Đánh trọng số cho các biểu thức chỉ mục
Trang 7Bước xác định từ thực hiện việc xác định các câu trong tài liệu và xác định các từ trong câu Đối với các ngôn ngữ châu Âu bước này có thể được cài đặt dựa vào các luật về viết hoa, khoảng trắng và các ký tự phân cách khác Đối với tiếng Việt đây là một bước khá phức tạp bởi vì các từ tiếng Việt không thể xác định chỉ dựa theo cách này
Sau khi đă xác định được các từ, hệ thống tiến hành gán từ loại (category) cho từng
từ phụ thuộc vào ngữ cảnh của từ Đây cũng là một công đoạn rất phức tạp do một
từ có thể mang nhiều từ loại khác nhau tùy thuộc vào ngữ cảnh xuất hiện của từ Việc xác định từ loại cho từ nhằm phục vụ cho giai đoạn tiếp theo của tiến trình đó
là xác định từ ghép, các cụm danh từ có trong câu
Bước tiếp theo của hệ thống là xác định các từ ghép (compound noun) ví dụ như từ
‘hot dog’ để xử lý chúng như một đơn vị duy nhất thay vì xử lý riêng rẽ các từ hot
và dog trong trường hợp này Việc xác định các từ ghép thường dùng phương pháp thống kê tần suất đồng xuất hiện của các từ trong tài liệu hoặc dùng các mẫu (patern) tổ hợp các từ loại, ví dụ như danh từ - tính từ, danh từ - danh từ …
Tiếp theo là quá trình chuẩn hoá các biến thể và từ vựng học và ngữ nghĩa để xây dựng phân nhóm các chỉ mục theo các nhóm ngữ nghĩa (semantical clustering) Phân tích cú pháp là giai đoạn nhằm xác định các liên hệ về mặt cú pháp giữa các từ trong cụm từ Khi chúng ta đã xác định được các cụm từ và các liên hệ cú pháp giữa các từ trong cụm từ, chúng ta tiến hành chuẩn hóa các cụm từ về một chuẩn chung
và cuối cùng tiến hành đánh trọng số cho các cụm từ chỉ mục
Phần trên chúng tôi đã trình bày một kiến trúc của một hệ thống tìm kiếm thông tin
có ứng dụng các xử lý ngôn ngữ tự nhiên Tuy nhiên ví các bước xử lý ngôn ngữ tự nhiên là rất phức tạp với thời gian xử lý nhiều nên việc triển khai các hệ thống như vậy trong thực tế vẫn còn nhiều hạn chế
II Một số đặc trưng của tiếng Việt
2.1 Từ tiếng Việt
Trang 8Một vấn đề khó khăn đầu tiên trong xử lý tự động tiếng Việt là việc định nghĩa từ trong tiếng Việt vẫn còn nhiều tranh luận Để thuận tiện cho việc trình bày về sau chúng tôi theo quan điểm của Đinh Điền [2] sau: một câu tiếng Việt bao gồm nhiều
từ, mỗi từ bao gồm một hay nhiều ‘tiếng’, mỗi ‘tiếng’ là mỗi chuỗi ký tự liền nhau phân biệt với các tiếng khác bằng một hay nhiều khoảng trắng Ví dụ :
từ ‘học’ là một từ gồm một tiếng
từ ‘học sinh’ là một từ gồm hai tiếng
cụm từ ‘khoa học tự nhiên’ gồm 2 từ hay 4 tiếng
Chúng tôi đã sử dụng phương pháp học dựa vào các luật biến đổi (transformation based learning) [3] để thực hiện công việc này và đạt được độ chính xác khoảng 80-85% Trong các hệ thống tìm kiếm thông tin văn bản trên các tiếng Châu âu, người
ta có thể đơn giản lấy xác định các từ nhờ vào các khoảng trắng phân cách từ và chọn các từ đặc trưng cho nội dung văn bản (dựa vào tần suất xuất hiện của từ) làm chỉ mục mà hiệu quả tìm kiếm vẫn chấp nhận được Đối với tiếng Việt chúng ta không thể làm tương tự bởi nếu chúng ta xác định từ chỉ dựa các khoảng trắng phân cách thì chúng ta có thể chỉ nhận được các ‘tiếng’ vô nghĩa và do đó độ chính xác của hệ thống sẽ rất thấp Theo các nhà ngôn ngữ học thì tiếng Việt có đến 80% là các từ 2 ‘tiếng’ [6] Chúng tôi sẽ trình bày các kết quả thực nghiệm chứng minh điều này ở phần sau
Một đặc điểm của tiếng Việt là từ tiếng Việt không có biến thể về hình thái học do
đó công đoạn chuẩn hóa về hình thái học là không hiệu quả đối với tiếng Việt Dĩ nhiên tiếng Việt cũng có một số hình thức biến thể về hình thái học như trường hợp thêm tiếng ‘sự’ trước một động từ để biến nó thành danh từ tương đương ví dụ như: động từ ‘lựa chọn’ và danh từ ‘sự lựa chọn’ hay việc thêm tiếng ‘hóa’ sau một danh
từ để biến nó thành động từ tương đương như : danh từ ‘tin học’ và động từ ‘tin học hóa’
2.2 Từ loại
Trang 9Vấn đề xác định từ loại cho từ trong tiếng Việt phức tạp hơn các tiếng châu Âu do chúng ta không thể dựa vào các đặc tính đặc biệt về hình thái học của từ để xác định loại từ như ví dụ trong tiếng anh chúng ta có thể xác định ngay một từ là tính từ nếu
nó có phần cuối là ‘able’ Đối với tiếng Việt từ loại chỉ có thể xác định được tùy vào ngữ cảnh Vi dụ, chúng ta xem xét các câu sau:
1 Thành công của dự án đã tạo tiếng vang lớn
2 Anh ấy rất thành công trong nghiên cứu khoa học
3 Buổi biểu diễn đã thành công
Trong câu (1) từ ‘thành công’ là một danh từ, trong câu (2) từ ‘thành công’ là một động từ và trong câu (3) từ ‘thành công’ lại là một tính từ
3 Cụm danh từ
Cấu trúc của cụm danh từ cũng là một vấn đề còn nhiều tranh luận giữa các nhà ngôn ngữ học Chúng tôi trình bày theo quan điểm phù hợp với việc tin học hoá (theo quan điểm chủ quan của chúng tôi) như sau
Một cụm danh từ tiếng Việt gồm ba phần: phần chính mang ý nghĩa chính của cụm danh từ, phần phụ trước gồm các chỉ định từ và phần phụ sau gồm các từ bổ nghĩa cho phần chính Ví dụ: chúng ta có cụm từ
‘Tất cả các cuốn sách tin học’ trong cụm từ này
phần phụ trước: Tất cả các
phần chính: cuốn sách
phần phụ sau: tin học
Phần chính là một danh từ, phần phụ trước thường là các chỉ định từ, phần phụ sau thì rất phức tạp về từ loại, nó có thể là danh từ, tính từ, động từ…
Chúng tôi đã sử dụng phương pháp học dựa trên các luật biến đổi để xây dựng tập luật biến đổi theo ngữ cảnh phục vụ cho việc xác định cụm danh từ Kết quả chúng tôi đạt được chính xác khoảng 80% [5]
III Một số kết quả thực nghiêm trên tiếng Việt
Trang 10Chúng tôi đã tiến hành thử nghiệm để xác định xem loại chỉ mục như thế nào thì phụ hợp cho việc lập chỉ mục văn bản tiếng Việt Chúng tôi đã thử nghiệm trên 4 loại chỉ mục: uni-gram, bi- gram, bi-gram kết hợp với một bộ từ vựng và cụm danh từ
3.1 Tập dữ liệu kiểm tra (test collection)
Để đánh giá hiệu năng của một hệ thống tìm kiếm thông tin người ta sử dụng hai độ đo: độ chính xác và độ bao phủ của hệ thống trên một tập dữ liệu kiểm tra Tập dữ liệu kiểm tra bao gồm ba phần: tập các tài liệu, tập các câu hỏi dưới dạng các chủ đề (topic) và tập các đánh giá sự liên quan giữa các tài liệu và các câu hỏi Các tập dữ liệu kiểm tra này thường được các tổ chức chuyên về các hệ thống tìm kiếm thông tin như xây dựng (như TREC : Text REtrieval Conference), nhưng đối với tiếng Việt hiện chưa có một tập dữ liệu kiểm tra như vậy Do đó chúng tôi phải tự xây dựng tập kiểm tra cho tiếng Việt Tập dữ liệu kiểm tra của chúng tôi gồm một tập hợp 10.750 tài liệu (document) là các bài báo trích từ các báo Việt nam năm 2000, kích thước 23Mbyte Tập câu hỏi bao gồm 14 câu hỏi Nhóm chúng tôi đã tiến hành xây dựng tập dữ liệu đánh giá sự liên quan giữa các tài liệu và các câu hỏi theo cách bán thủ công Bước một chúng tôi sử dụng hệ tìm kiếm thông tin SMART (một hệ thống nổi tiếng do Đại học Cornell phát triển ) để lập chỉ mục tập dữ liệu trên, tiếp theo chúng tôi dùng SMART để tìm các tài liệu liên quan đến 14 câu hỏi đã chọn, với mỗi câu hỏi chúng tôi chọn 20 tài liệu được hệ SMART trả về như là các tài liệu
có liên quan nhất đến câu hỏi Bước hai chúng tôi tiến hành đánh giá lại một lần nữa bằng thủ công trên 20 tài liệu này ứng với một câu hỏi để có một bảng đánh giá cuối cùng Như vậy tập dữ liệu kiểm tra mà chúng tôi sử dụng chưa phải là một tập kiểm tra tốt nhưng chấp nhận được trong thời điểm hiện tại
3.2 Các loại chỉ mục tiến hành thử nghiệm
Chúng tôi đã tiên hành thử nghiệm với chỉ mục là Uni-gram Uni-gram là đơn vị ngôn ngữ như ‘tiếng’ mà chúng tôi đã trình bày ở phần trên Như chúng tôi cũng đã