Xử lí ngôn ngữ

Xác định ĐƠN VỊ TỪ VỰNG MỚI xuất hiện trong văn bản tiếng Việt
     

VŨ XUÂN LƯƠNG – Vietlex

SUMMARY
According to the author, to separate syllabic combinations from the text is a significant task in the course of finding new words and expressions. Vocabulary is an ever-changing part. Therefore, so as to deal with colossal data to define new vocabulary entries, information technology needs to be employed under proper methods and procedures, including: (1) divising phrases into syllabic combinations, and (2) applying algorithms for finding new words, etc.

 

1. Đặt vấn đề

Từ vựng là một trong ba bộ phận cơ bản cấu thành một ngôn ngữ: từ vựng, ngữ âmngữ pháp. Dựa vào vốn từ vựng, chúng ta có thể hình dung ra được diện mạo của một ngôn ngữ cụ thể. Từ vựng là toàn bộ các từcụm từ (tức ngữ cố định) có sẵn của một ngôn ngữ, tồn tại dưới dạng tiềm tàng, chúng trực tiếp gọi tên các sự vật, hiện tượng của thực tế khách quan, được giác quan của con người nhận biết thông qua ngữ âm và được hiện thực hoá trong hoạt động ngôn ngữ qua các cấu trúc ngữ pháp.

Vốn từ vựng của một ngôn ngữ là rất lớn, được tập hợp và hệ thống hoá trong các từ điển theo từng quan niệm nhất định. Nội dung của từ điển phản ánh kết quả nghiên cứu của ngành ngôn ngữ học nói chung và ngành từ điển học nói riêng, quy mô của từ điển phản ánh sự phát triển của từ vựng ở một ngôn ngữ nhất định. Nhìn chung, các từ điển đều thu thập các từ và ngữ, và phản ánh chúng ở cả trạng thái tĩnh và trạng thái động. Tuy nhiên, quá trình thu thập những từ ngữ mới [1] xuất hiện (quá trình thực hành ngôn ngôn) đưa vào từ điển bao giờ cũng chậm hơn so với đời sống ngôn ngữ. Xét về mặt cấu tạo, có từ đơn tiết và từ đa tiết. Việc xác định ranh giới giữa từ đa tiết với ngữ cố định, cũng như ranh giới giữa ngữ cố định và ngữ không cố định trong tiếng Việt là hết sức khó khăn.

Việc phân xuất các tổ hợp âm tiết ra khỏi văn bản là việc làm có ý nghĩa trong quá trình tìm kiếm những từ ngữ mới. Trong thực tế, vốn từ vựng luôn có sự biến động, việc xác định được sự biến động đó là một yêu cầu trong lĩnh vực từ vựng học nói chung và từ điển học nói riêng. Muốn có được một danh sách các tổ hợp âm tiết có đủ “tư cách” là đơn vị từ vựng thì phải căn cứ vào một số lượng tài liệu hết sức đồ sộ, thuộc nhiều lĩnh vực khác nhau. Trước số lượng tài liệu như vậy, nếu không áp dụng công nghệ tin học vào xử lí thì sức người e khó có thể làm nổi trong một sớm một chiều. Vấn đề còn lại là phải xây dựng được những quy tắc có tính hệ thống để máy tính biết cách xử lí giúp con người.

2. Phân xuất ngữ đoạn thành những tổ hợp âm tiết

Âm tiết trong tiếng Việt, xét về mặt tuyến tính thì bao giờ cũng đứng độc lập, nó tách rời khỏi các âm tiết khác và phân biệt với nhau bằng khoảng trống (space). Khả năng tổ hợp của một âm tiết với các âm tiết khác để tạo nên những đơn vị mới trong tiếng Việt là rất lớn. Chính đặc điểm này của âm tiết tiếng Việt đã gây khó khăn không nhỏ cho việc nhận diện những đơn vị từ vựng được cấu thành từ 2 âm tiết trở lên. Trên bình diện văn bản, máy tính không thể phân biệt được đâu là đơn vị từ vựng đâu không phải là đơn vị từ vựng. Chẳng hạn giữa xã, xã hội, chủ tịch xã thì máy tính sẽ hiểu 6 âm tiết (= 3, hội = 1, chủ = 1, tịch = 1) cùng một cấp độ như nhau, có vai trò độc lập như nhau, trong khi yêu cầu của chúng ta là cần có sự phân biệt giữa chúng. Nếu chỉ đơn thuần chỉ cho máy tính phân xuất các âm tiết trong ngữ đoạn theo quy tắc tổ hợp (xem ở phần 2.1.) thì kết quả là chúng ta có một số lượng các tổ hợp âm tiết rất lớn, trong đó tỉ lệ các tổ hợp âm tiết có khả năng trở thành đơn vị từ vựng là không nhiều. Việc phân xuất âm tiết và tổ hợp âm tiết được bắt đầu từ vị trí đầu tiên của ngữ đoạn đến vị trí cuối cùng của ngữ đoạn. Vị trí đầu tiên được nhận diện khi có các dấu hiệu sau: đầu một ngữ đoạn (paragraph); sau các dấu câu: dấu chấm (.), dấu chấm than (!), dấu phẩy (,), dấu chấm phẩy (;), dấu hỏi (?), dấu chấm lửng (...), dấu gạch ngang (-). Vị trí cuối cùng được nhận diện khi có các dấu hiệu sau: cuối một ngữ đoạn; trước các dấu câu: dấu chấm (.), dấu chấm than (!), dấu phẩy (,), dấu chấm phẩy (;), dấu hỏi (?), dấu chấm lửng (...), dấu gạch ngang (-). Lí do vì trong tiếng Việt đại bộ phận các trường hợp trở thành đơn vị từ vựng không kèm theo các dấu câu, trừ một số đơn vị thành ngữ, tục ngữ có kèm theo dấu phẩy (,) như bán mặt cho đất, bán lưng cho trời; ông ăn chả, bà ăn nem; ông nói gà, bà nói vịt, v.v. Nếu ta muốn phân xuất ngữ đoạn ra thành 4 loại (loại 1 âm tiết, loại 2 âm tiết, loại 3 âm tiết, loại 4 âm tiết), thì ngữ đoạn tối thiểu để cho máy tính xử lí phải bằng hoặc lớn hơn 4 âm tiết. Bởi vì nếu số lượng âm tiết trong ngữ đoạn mà nhỏ hơn 4 thì loại tổ hợp 4 âm tiết không bao giờ xảy ra. Tương tự, nếu muốn phân xuất ra làm 5 loại (thêm loại tổ hợp 5 âm tiết) thì số lượng âm tiết tối thiểu phải bằng hoặc lớn hơn 5, v.v.

2.1. Thí dụ: ta có một ngữ đoạn gồm 4 âm tiết (a, b, c, d), quy tắc tổ hợp của chúng sẽ như bảng sau (1):

Nếu gọi số âm tiết có trong ngữ đoạn là n thì ta sẽ có bảng công thức tính sau (2):

a) Kiểm tra tính đúng đắn: Giả sử ta có 5 âm tiết (a, b, c, d, e) trong ngữ đoạn (n = 5), theo các công thức nêu ở (2), sẽ sinh ra được các tổ hợp âm tiết (ât) như sau:

- loại 1 ât = n = 5 tổ hợp

- loại 2 ât = n-1 ⇒ 5-1 = 4 tổ hợp

- loại 3 ât = n-2 ⇒ 5-2 = 3 tổ hợp

- loại 4 ât = n-3 ⇒ 5-3 = 2 tổ hợp

- số tổ hợp sinh = 4n-6 ⇒ 4x5-6 = 14

- số ât sinh = 10n-20 ⇒10x5-20 = 30

Bảng tổ hợp của 5 âm tiết (a, b, c, d, e) trong ngữ đoạn (3):

b) Đối chiếu giữa bảng công thức tính (2) với bảng tổ hợp của 5 âm tiết (3) ta thấy kết quả của 2 bảng là giống nhau. Vì vậy công thức tính đưa ra ở (2) là chân thực.

2.2. Theo bảng (1) thì có 2 âm tiết có mặt trong cả 4 tổ hợp [âm tiết đầu ‘a’ và âm tiết cuối ‘d’ của ngữ đoạn: a, ab, abc, abcd, d, cd, bcd]; 2 âm tiết có mặt trong cả 6 tổ hợp [hai âm tiết giữa ‘b, c’: b, ab, bc, abc, bcd, abcd, c, cd]. Về nguyên tắc thì không bao giờ toàn bộ 4n-6 trường hợp đều có khả năng trở thành đơn vị từ vựng. Bởi vì trong cùng một ngữ đoạn, một âm tiết không thể vừa là thành phần của đơn vị từ vựng này, lại vừa là thành phần của đơn vị từ vựng kia. Chằng hạn: trong ngữ đoạn “khả năng nổ ra chiến tranh là có thể...”, nếu xác định “khả năng” là từ thì tổ hợp “năng nổ” không phải là từ; còn nếu xác định “năng nổ” là từ thì “khả năng” sẽ không được xác định là từ. Vì vậy, theo cách tổ hợp nêu trên, chúng ta có một số lượng các trường hợp không chân thực xảy ra. Khảo sát ngữ đoạn có n = 4 âm tiết (a, b, c, d), lấy đến đơn vị 4 âm tiết, ta có bảng các khả năng sẽ xảy ra (4):

a) Nhận xét:

- Có 8 khả năng và 4 mức độ khác nhau xảy ra khi phân xuất ngữ đoạn:

+ mức độ 1: loại 4 tổ hợp (khả năng 1)

+ mức độ 2: loại 3 tổ hợp (khả năng 2, 3, 4)

+ mức độ 3: loại 2 tổ hợp (khả năng 5, 6, 7)

+ mức độ 4: loại có 1 tổ hợp (khả năng 8)

- Số trường hợp ở mức độ 1 bằng chính tổng số âm tiết trong ngữ đoạn (4, hay n).

- Số trường hợp ở mức độ 2 bằng tổng số âm tiết trong ngữ đoạn trừ đi 1 (4-1, hay n-1).

- Số trường hợp ở mức độ 3 bằng tổng số âm tiết trong ngữ đoạn trừ đi 2 (4-2, hay n-2).

- Số trường hợp ở mức độ 4 bằng tổng số âm tiết trong ngữ đoạn trừ đi 3 (4-3, hay n-3).

b) Kết luận:

Không thể cùng lúc xảy ra đồng thời cả 8 khả năng, chỉ xảy ra 1 khả năng duy nhất mà thôi. Đồng thời 1 khả năng cũng không thể cùng lúc diễn ra theo nhiều mức độ khác nhau, mà chỉ diễn ra theo một mức độ. Do vậy, chỉ xác định được số lượng trung bình chứ không xác định được số lượng tối đa các trường hợp chân thực xảy ra khi phân xuất ngữ đoạn. Ta có công thức tính sau (5):

Ngữ đoạn có n = 4 âm tiết (a, b, c, d) nêu trên sẽ có số lượng các tổ hợp chân thực xảy ra là:

Như vậy, nếu đem so sánh giữa công thức ở bảng (2) (số lượng = 4n-6) với công thức (5) thì thấy rằng: nếu phân xuất theo kiểu tổ hợp nêu ở bảng (2) thì số lượng tổ hợp sinh ra sẽ gấp 4 lần so với cách tính ở (5). Trong đó chỉ có 1/4 là chân thực, còn lại 3/4 là không chân thực.

2.3. Theo công thức ở bảng (2), khi có n âm tiết, nếu chúng ta lấy đến tổ hợp 4 âm tiết thì chương trình xử lí đã sinh ra một số lượng tổ hợp là “4n-6” và một số lượng âm tiết là “10n-20”; nếu lấy đến tổ hợp 3 âm tiết thì chương trình sinh ra một số lượng tổ hợp là “3n-3” và một số lượng âm tiết là “6n-8”; nếu lấy đến tổ hợp 2 âm tiết thì chương trình sinh ra một số lượng tổ hợp là “2n-1” và một số lượng âm tiết là “3n-2”.

Giả sử ta có ngữ đoạn n = 100, thì:

a) lấy đến tổ hợp 2 âm tiết:

- số tổ hợp = 2n-1 = 2x100-1 = 199

- số âm tiết = 3n-2 = 3x100-2 = 298

b) lấy đến tổ hợp 3 âm tiết:

- số tổ hợp = 3n-3 = 3x100-3 = 297

- số âm tiết = 6n-8 = 6x100-8 = 592

c) lấy đến tổ hợp 4 âm tiết:

- số tổ hợp = 4n-6 = 4x100-3 = 384

- số âm tiết = 10n-20 = 10x100-20 = 980

So sánh:

○ Tổ hợp loại 2 âm tiết so với tổ hợp loại 3 âm tiết

- số tổ hợp loại 3 âm tiết nhiều gấp 1,49 lần số tổ hợp loại 2 âm tiết;

- số âm tiết loại 3 âm tiết nhiều gấp 1,98 lần số âm tiết loại 2 âm tiết;

○ Tổ hợp loại 2 âm tiết so với tổ hợp loại 4 âm tiết

- số tổ hợp loại 4 âm tiết nhiều gấp 1,92 lần số tổ hợp loại 2 âm tiết;

- số âm tiết loại 4 âm tiết nhiều gấp 3,28 lần số âm tiết loại 2 âm tiết;

Mặt khác, trong 4 loại tổ hợp âm tiết (1, 2, 3, 4 âm tiết) thì loại 2 âm tiết có “cơ hội” trở thành đơn vị từ vựng cao nhất, còn loại 3 và 4 âm tiết ít có “cơ hội” hơn. Trong ngữ đoạn, loại tổ hợp 2 âm tiết có tỉ lệ kết hợp ngẫu nhiên thấp hơn rất nhiều so với loại 3 và 4 âm tiết. Bởi vì, dưới áp lực của kết cấu cú pháp, các âm tiết đứng cạnh nhau ít nhiều là có lí do và mức độ liên kết luôn có xu hướng chặt hơn, vì vậy chúng có nhiều cơ hội kết hợp với nhau hơn để tạo nên đơn vị từ vựng mới. Các âm tiết càng đứng xa nhau bao nhiêu thì mức độ liên kết càng lỏng lẻo bấy nhiêu, và nhu cầu để chúng kết hợp chân thực với nhau là ít có lí do hơn, do vậy chúng sẽ ít có cơ hội để trở thành đơn vị từ vựng mới hơn.

Nhìn nhận lại thì thấy rõ rằng, loại tổ hợp 3 và 4 âm tiết vừa có số lượng tổ hợp và số lượng âm tiết cao hơn loại 2 âm tiết, lại vừa có ít cơ hội để trở thành đơn vị từ vựng, cho nên mọi kì vọng vào máy vi tính hầu nhờ nó phân xuất ra các tổ hợp 3 và 4 âm tiết là không khả thi. Kết quả đem lại là quá ít ỏi, nếu như không nói là “mong manh”, trong khi phải phân xuất và xử lí một số lượng tổ hợp âm tiết không phải là nhỏ. Chính từ những lí do đó, trước mắt, chỉ nên đặt ra việc phân xuất ngữ đoạn theo tổ hợp 2 âm tiết là hợp lí hơn cả (từ đây trở đi chúng tôi gọi những đơn vị từ vựng mới gồm 2 âm tiết là từ mới).

3. Thuật toán tìm từ mới

3.1. Chữ Việt thuộc loại chữ ghi âm, mỗi chữ được biểu thị bằng một đơn vị (âm tiết) viết rời. Khoảng cách (space) giữa các âm tiết về mặt hình thức là như nhau, nhưng giá trị của chúng lại hoàn toàn khác nhau. Nó có thể là khoảng cách giữa hai từ, có thể là khoảng cách giữa hai thành tố của một từ, có thể là khoảng cách giữa một từ và một cụm từ, và cũng có thể là khoảng cách giữa hai âm tiết ngẫu nhiên đứng cạnh nhau. Từ tiếng Việt gồm có từ đơn tiết và từ đa tiết. Từ đơn tiết có thể có ý nghĩa từ vựng, tức là nghĩa thực từ (ví dụ: bàn, ghế, cày, cuốc ...), có thể có ý nghĩa ngữ pháp, tức nghĩa hư từ (ví dụ: đã, sẽ, đang, rất ...). Từ đa tiết là từ được cấu tạo theo phương thức láy và ghép từ hai hoặc trên hai từ đơn tiết. Trong số những từ đa tiết thì số lượng từ hai âm tiết vay mượn của tiếng Hán chiếm tỉ lệ cao nhất và hiện nay xu hướng này vẫn đang được “phát huy” trong việc tạo từ mới. Do tính không tường minh về mặt ranh giới của từ như đã nói ở trên, cho nên việc nghiên cứu cấu tạo từ của tiếng Việt để chỉ ra cách thức cho máy tính thực hiện trong quá trình tìm từ mới là rất cần thiết. Thực chất của vấn đề là càng thu hẹp số lượng âm tiết cần khảo sát bao nhiêu thì càng có ý nghĩa bấy nhiêu. Muốn như vậy thì phải cô lập được càng nhiều số lượng các âm tiết không cần phải khảo sát trước khi thực hiện công việc tìm kiếm từ mới. Ở phạm vi của chương trình, chúng tôi chỉ quan tâm đến việc tìm kiếm những từ mới gồm hai âm tiết, các đơn vị gồm trên hai âm tiết không được nhắc đến ở đây.

Xét về mặt hình thức, một văn bản được tạo nên từ nhiều đoạn văn bản. Ở dạng sách, mỗi một đoạn văn bản được nhận diện bởi hai dấu chấm xuống dòng. Ở dạng lưu trữ trong máy tính, đoạn văn bản được hiểu là một paragraph. Đoạn văn bản có độ dài ngắn khác nhau tuỳ thuộc vào số lượng câu và số lượng âm tiết trong một câu. Câu được nhận diện bởi hai dấu chấm trong một đoạn văn bản, dấu chấm đứng đầu (hoặc dấu hỏi, dấu chấm than, dấu ba chấm và điểm bắt đầu một paragraph) và dấu chấm đứng cuối (hoặc dấu hỏi, dấu chấm than, dấu ba chấm và điểm kết thúc một paragraph). Trong câu thường có một hoặc nhiều phần văn bản được phân tách với nhau bằng các dấu như: dấu phẩy (,), dấu chấm phẩy (;), dấu ba chấm (...), dấu hai chấm (:), dấu gạch ngang (-), dấu ngoặc đơn (( )), dấu ngoặc kép (“ ”), dấu ngoặc vuông ([ ]), dấu ngoặc nhọn (< >), v.v. Xét về mặt cấu tạo từ, các dấu này không có vai trò gì, và như vậy chúng ta có thể tách câu ra thành những phần nhỏ hơn, tạm gọi là ngữ đoạn, có một hoặc hơn một âm tiết hiện diện, được phân biệt bằng những kí dấu này. Ngữ đoạn mà chúng tôi nói đến ở đây được hiểu “là một chỉnh thể ngữ âm biểu thị một chỉnh thế nghĩa duy nhất.” [2]. Như vậy, ngữ đoạn có thể gồm một từ, một hoặc trên một cụm từ, một câu hoàn chỉnh. Chẳng hạn trong đoạn văn bản sau (1), có thể phân tách thành những ngữ đoạn (phân biệt bằng kí hiệu φ):

Đơn vị của ngữ đoạn có thể là từ hoặc cụm từ. Từ trong ngữ đoạn có thể là thực từ hoặc hư từ, thực từ có thể là từ đơn tiết hoặc từ đa tiết. Cụm từ trong ngữ đoạn có thể là cụm từ cố định hoặc cụm từ tự do. Cụm từ tự do trong ngữ đoạn có thể do các từ đơn tiết kết hợp với từ đơn tiết, hoặc do từ đơn tiết kết hợp với từ đa tiết tạo thành. Chính ở cụm từ tự do biểu hiện đầy đủ nhất sự hình thành của những đơn vị ngôn ngữ mới. Khả năng kết hợp của các từ là tiềm tàng. Các từ đa tiết hoặc cụm từ cố định thường có tính cố hữu, ngược lại các từ đơn tiết luôn luôn có xu hướng kết hợp với các từ đơn tiết còn lại trong ngữ đoạn để tạo ra những đơn vị ngôn ngữ mới. Đơn vị ngôn ngữ mới này có thể là từ, có thể là cụm từ cố định, và có thể là cụm từ tự do. Trong thực tế, từ đơn tiết, đa tiết và cụm từ cố định hiện diện trong ngữ đoạn phần lớn đã được các từ điển tiếng Việt thu thập. Vì vậy có thể vạch ra được ranh giới hình thức giữa chúng, nhưng lại rất khó khăn trong việc chỉ ra được ranh giới của những đơn vị từ vựng đã được xác định và những đơn vị từ vựng mới nảy sinh. Nếu chúng ta cô lập được các từ đa tiết và cụm từ cố định đã được xác định thì phần còn lại trong ngữ đoạn sẽ là cơ sở cho công việc tìm kiếm từ mới. Khi khảo sát ngữ đoạn, chúng ta thấy, ngoài các từ và cụm từ, ngữ đoạn còn chứa những tập hợp là các kí hiệu ghi ngày - tháng - năm (thí dụ: 15/7, 1/7/2010), mà những kí hiệu này thì thường không kết hợp với các âm tiết khác để tạo nên từ.

Căn cứ vào những điều nêu trên, có thể phân chia ngữ đoạn ra thành các phần nhỏ hơn nữa (tạm gọi là tiểu ngữ đoạn). Cách phân chia như sau:

1) Tạo một bảng chứa các tổ hợp ghi ngày - tháng - năm, các tổ hợp dạng số, chữ viết tắt, kí hiệu đo lường, v.v. Chỉ cho máy tính đánh dấu (markup) tất cả các tập hợp kí hiệu này trong từng ngữ đoạn.

2) Tạo một bảng từ vựng gồm các đơn vị có hai hoặc hai âm tiết trở lên (gồm cả cụm từ cố định), có kèm theo thông tin về từ loại tương ứng. Chỉ cho máy tính đánh dấu các đơn vị trong bảng từ vựng có xuất hiện ở ngữ đoạn của văn bản đưa ra khảo sát (áp dụng thuật toán tách từ tự động) [3]. Khi các tổ hợp kí hiệu và các đơn vị từ vựng trên hai âm tiết đã được đánh dấu thì chúng được thay thế bằng kí hiệu φ, làm cơ sở cho việc phân chia ngữ đoạn ra thành các tiểu ngữ đoạn.

Từ đoạn văn bản (1), nếu tổ hợp âm tiết nào có mặt trong bảng từ vựng hoặc là những kí hiệu thì sẽ được đánh dấu (thể hiện bằng chữ gạch chân), ta có đoạn văn bản (2):

Sau khi đã cô lập được hai loại trên, phần còn lại là những tiểu ngữ đoạn định vị giữa hai kí hiệu f(không được gạch chân), chúng gồm nhiều âm tiết, cũng có khi chỉ là một âm tiết. Ở những tiểu ngữ đoạn này, có thể có các tổ hợp âm tiết có khả năng là từ mới xuất hiện, cũng có thể có những tổ hợp chỉ là cụm từ tự do, và cũng có thể có những tổ hợp hoàn toàn là do các âm tiết ngẫu nhiên đứng cạnh nhau, chúng không biểu hiện bất cứ mối quan hệ ý nghĩa nào. Đến đây, nhiệm vụ tiếp theo là phải vạch ra được ranh giới giữa chúng để chỉ cho máy tính phân biệt thì công việc thu được mới có kết quả cao. Từ đoạn văn bản (2), sau khi lược bỏ những đơn vị từ vựng 2 âm tiết đã có trong bảng từ vựng và những kí số đứng giữa hai kí hiệu φ...φ ta sẽ được mảng (array) kết quả sau (3):

Từ mảng kết quả (3), ta có danh sách các tổ hợp hai âm tiết sinh ra (4):

Các đơn vị một âm tiết nằm giữa hai kí hiệu φ...φ (như: φ từ φ, φ Việc φ, φ cho φ theo φ) sẽ bị bỏ qua trong quá trình sinh tổ hợp, do chúng không thoả mãn điều kiện là tiểu ngữ đoạn phải có ít nhất hai âm tiết trở lên. Trong danh sách (4) có thể chia thành ba loại sau:

(a) Loại gồm các tổ hợp hai âm tiết có thể là từ mới: Hà Nội, Văn Điển, hung táng;

(b) Loại gồm các tổ hợp hai âm tiết là cụm từ tự do: đến hết, hết ngày, thay cho, như trước, trước đây;

(c) Loại gồm các tổ hợp hai âm tiết không có sự kết hợp chân chính, vì chúng không phản ánh bất cứ ý nghĩa thực tế nào, sự hiện diện của chúng là do hai âm tiết ngẫu nhiên đứng cạnh nhau: Nội vừa, Điển để, để hung, táng đến, này nhằm, nhằm tạo.

Loại đơn vị mà chúng ta quan tâm thuộc danh sách (a), thường có số lượng ít nhất. Ở danh sách (b) và (c) là loại cần bỏ qua, thường có số lượng nhiều hơn cả. Như vậy, nếu tìm ra quy luật để máy tính cô lập loại tổ hợp ở (b) và (c) thì kết quả đạt được sẽ có ý nghĩa hơn rất nhiều.

3.2. Trong tiếng Việt, về đại thể, mỗi một từ đơn tiết đều có khả năng tồn tại độc lập, mang ý nghĩa thực, và chúng luôn tiềm tàng trong mình khả năng kết hợp với các từ đơn tiết khác để tạo nên những đơn vị từ vựng mới (chưa được thu thập trong các từ điển). Nhưng cũng có những từ đơn tiết, mà trong những kiểu kết hợp cụ thể không bao giờ tạo nên đơn vị từ vựng mới, thí dụ: từ đơn tiết mang ý nghĩa từ loại danh từ hoặc đại từ kết hợp với từ đơn tiết mang ý nghĩa từ loại động từ hoặc tính từ (kiểu như: tôi đi, anh nói, bà buồn, hắn khóc, đánh nó, cho nó...). Ngoài ra, cũng có những từ đơn tiết không có ý nghĩa thực, chỉ mang ý nghĩa quan hệ ngữ pháp, là những phụ từ, kết từ và trợ từ. Các loại từ này thường đi kèm với các từ đơn tiết khác (thường là từ đơn tiết mang ý nghĩa từ loại danh từ, đại từ, động từ và tính từ) để biểu thị ý nghĩa ngữ pháp nói chung (phổ biến ở danh sách b). Do vậy, những tổ hợp có sự hiện diện của loại từ này cũng không có khả năng là đơn vị từ vựng mới. Có thể dẫn ra đây theo các phân loại tạm thời sau:

- loại biểu thị ý nghĩa thời gian: đã, đang, sẽ, vẫn, mới, sắp, vừa,...

- loại biểu thị ý nghĩa không gian: trong, ngoài, trên, dưới, trước, sau, ra, vào, lên, xuống, tới, sang, qua, về, lại,...

- loại biểu thị ý nghĩa nguyên nhân: bởi, do, tại, vì,...

- loại biểu thị ý nghĩa mức độ: hơi, rất, quá, khá, lắm, sạch, nhẵn, thật...

- loại biểu thị ý nghĩa khẳng định: ắt, bèn, cũng, vẫn, cứ, càng, có, tất,...

- loại biểu thị ý nghĩa phủ định: không, đừng, chả, chẳng, chớ, chưa,...

- loại biểu thị ý nghĩa số lượng: các, những, mọi, mỗi,...

- loại biểu thị ý nghĩa quan hệ: là, và, với, nhưng, song, tuy, nếu, hay, hoặc, của, cùng, đều, còn, bằng, nên, luôn, bị, được, thường, từng, dần,...

- loại biểu thị ý nghĩa tình cảm: a, à, ối, ái, ô, ê, ồ, ôi, chao, ha, hả, ơi, vâng, ừ,...

- loại biểu thị ý nghĩa chỉ mục đích: cơ, chứ, đi, mà, nào, nhỉ, nhé,...

- loại biểu thị ý nghĩa chỉ cá thể: con, cây, cục, cái, chiếc, mảnh, tấm,...

- loại biểu thị ý nghĩa chỉ định: ấy, kia, này, nọ, đó,...

Từ những đặc điểm nêu trên, có thể rút ra một số nhận xét sau:

○ Tổ hợp hai âm tiết gồm một từ đơn tiết có ý nghĩa từ loại danh từ hoặc đại từ đứng trước một số từ đơn tiết có ý nghĩa từ loại động từ hoặc tính từ thì không có khả năng là đơn vị từ vựng;

○ Tổ hợp hai âm tiết gồm một từ đơn tiết có ý nghĩa từ loại phụ từ, kết từ, trợ từ đứng trước hoặc đứng sau một từ đơn tiết có ý nghĩa từ loại danh từ hoặc đại từ hoặc động từ hoặc tính từ thì không có khả năng là đơn vị từ vựng.

Đến đây, chúng tôi đưa ra giải pháp sau:

Giả sử ta có văn bản “a b c d k, c d a e. g h e b a z; ... n”;

- Gọi VB là văn bản.

- BT = bảng từ vựng.

- ĐVTV = đơn vị từ vựng đa tiết.

- a, b, c, d... là những từ đơn tiết.

- a&b, b&c, c&d... là tổ hợp 2 âm tiết.

- A là âm tiết thứ nhất của một tổ hợp hai âm tiết.

- B là âm tiết thứ hai của một tổ hợp hai âm tiết.

- Readwords→ = đọc tổ hợp 2 âm tiết.

- Checkword→ = kiểm tra 1 âm tiết.

- // = kết luận vấn đề (phát biểu để người hiểu).

- 1 là âm tiết có ý nghĩa từ loại danh từ, hoặc đại từ.

- 2 là âm tiết có ý nghĩa từ loại động từ, hoặc tính từ.

- 3 là âm tiết có ý nghĩa từ loại phụ từ, kết từ, trợ từ.

- Sub NewWord() = tên chương trình tìm từ mới.

- End Sub = kết thúc chương trình.

Phát biểu

Bắt đầu hành động

1) Cô lập các câu trong đoạn văn bản.

2) Cô lập các ngữ đoạn trong câu.

3) Cô lập các tiểu ngữ đoạn trong ngữ đoạn bằng việc kiểm tra ĐVTV thuộc BT xem có xuất hiện trong VB hay không. Nếu ĐVTV có mặt trong VB thì đánh dấu, ngược lại thì bỏ qua.

4) Đọc tổ hợp âm tiết a&b theo chiều tuyến tính (a&b xuất hiện ở vị trí thứ nhất và thứ hai của cụm âm tiết đầu tiên). Tiểu ngữ đoạn được chương trình duyệt phải thoả mãn điều kiện là có ít nhất hai âm tiết trở lên. Nếu tiểu ngữ đoạn nào chỉ gồm một âm tiết thì chương trình bỏ qua.

5) Kiểm tra A, kiểm tra B

- Nếu A hoặcB là “3” [4] thì a&b không là từ, ngắt sau a [5], đọc tiếpb&c.

- Nếu A B cùng thuộc loại “1” hoặc cùng thuộc loại “2” thì a&b có thể là từ, ngắt sau a, tạo tổ hợp a&b, đọc b&c.

- Nếu A B không thuộc loại “1”, hoặc A B không thuộc loại “2”, hoặc A B không thuộc loại “3” thì a&b có thể là từ, ngắt sau a, tạo tổ hợp a&b, đọc b&c.

- Nếu A thuộc loại “1” mà B thuộc loại “2”, hoặc A thuộc loại “2” mà B thuộc loại “1” thì a&b không là từ, ngắt sau a, đọc tiếp b&c.

- Nếu A thuộc loại “1”, hoặc A thuộc loại “2” mà B không thuộc loại “1”, hoặc B không thuộc loại “2” thì a&b có thể là từ, ngắt sau a, tạo tổ hợp a&b, đọc b&c.

- Nếu A không thuộc loại “1”, hoặc A không thuộc loại “2” mà B thuộc loại “1”, hoặc B thuộc loại “2” thì a&b có thể là từ, ngắt sau a, tạo tổ hợp a&b, đọc b&c.

Kết thúc công việc.

Thuật toán

Sub NewWord()

Readwords→a&b

Checkword→A

Checkword→B

If A or B is “3” Then

// a&b không là từ, ngắt sau a

Readwords→b&c

A b               ' b đóng vai trò như A

B c                ' c đóng vai trò như B

Checkword→A

Checkword→B

End if

If A and B is “1”or is “2” Then

// a&b có thể là từ, ngắt sau a

Create a&b

Readwords→b&c

A b

B c

Checkword→A

Checkword→B

End if

If A and B not is “1” or “2” or “3” Then

// a&b có thể là từ, ngắt sau a

Create a&b

Readwords→b&c

A b

B c

Checkword→A

Checkword®B

End if

If A is “1” and B is “2” or a is “2” and b is “1” Then

// a&b không là từ, ngắt sau a

Readwords→b&c

A b

B c

Checkword→A

Checkword→B

End if

If A is “1” or “2” and B not is “1” or “2” Then

// a&b có thể là từ, ngắt sau a

Create a&b

Readwords→b&c

A b

B c

Checkword→A

Checkword→B

End if

If A not is “1” or “2” and B is “1” or “2” Then

// a&b có thể là từ, ngắt sau a

Create a&b

Readwords→b&c

A b

B c

Checkword→A

Checkword→B

 End if

End Sub

3.3. Việc xác định một tổ hợp âm tiết là đơn vị từ mới đòi hỏi phải dựa vào khả năng biểu hiện ý nghĩa của nó trong đoạn văn bản mà nó xuất hiện, đồng thời cũng cần căn cứ vào tần số xuất hiện của tổ hợp âm tiết đó trong toàn bộ dữ liệu mà chương trình đã khảo sát. Ở bước này đòi hỏi phải qua khâu xử lí của con người. Khi người xử lí phát hiện trong danh sách tổ hợp âm tiết (đã được chương trình tạo ra) những đơn vị có khả năng là từ mới, nếu cần phải tham khảo ngữ cảnh mà những đơn vị này xuất hiện thì chương trình sẽ chỉ ra. Với thí dụ nêu ở phần 3.1., thực tế ta đã tìm được 3 từ mới: Hà Nội, Văn Điển, hung táng.

Khi đã xác định là từ mới thì 3 đơn vị ‘Hà Nội, Văn Điển, hung táng’ sẽ được bổ sung (insert) vào bảng từ vựng và kèm theo thuộc tính “từ mới”, cùng những thông tin khác như người chọn, ngày chọn, v.v. Những tổ hợp được cho không có khả năng là từ như ‘đến hết, hết ngày, thay cho, như trước, trước đây, Nội vừa, Điển để, để hung, táng đến, này nhằm, nhằm tạo’ thì được bổ sung vào bảng tổ hợp âm tiết không có khả năng là từ (tạm gọi là bảng tổ hợp phi từ).

Sau khi chỉ ra tất cả những yêu cầu cho máy tính xử lí và có sự can thiệp của tri thức chuyên gia ngôn ngữ trong việc xác định đơn vị từ vựng như đã trình bày, chúng ta có một bảng từ vựng tiếng Việt đầy đủ và một bảng tổ hợp phi từ. Khi có thêm dữ liệu, chương trình lại tiếp tục xử lí, bảng từ vựng mới được cập nhật này lại đóng vai trò là bảng từ đối chiếu, bảng tổ hợp phi từ được dùng lại để loại bỏ bớt các tổ hợp không có khả năng là từ trong văn bản đem khảo sát. Cứ sau một lần xử lí dữ liệu, bảng từ vựngbảng tổ hợp phi từ sẽ được làm giàu thêm. Từ những kết quả đạt được, khi có điều kiện, chúng ta có thể áp dụng bài toán trên cho việc tìm kiếm những đơn vị từ vựng mới có 3 âm tiết trở lên.

TÀI LIỆU THAM KHẢO

[1] Nancy Ide and Jean Véronis(1995). Text Encoding Initiative, Kluwer Academic Publishers (Reprinted from Computer & the Humanities, volume 29, Nos. 1,2 & 3) (Bản dịch tiếng Việt của Ngô Trung Việt).

[2] Nguyễn Quốc Cường, Hoàng Đức Hải (1996). Cấu trúc dữ liệu + giải thuật = chương trình, NXB Giáo dục, Hà Nội.

[3] Nguyễn Thị Minh Huyền, Lê Hồng Phương, Vũ Xuân Lương (2003). Sử dụng bộ gán nhãn từ loại xác suất QTAG cho văn bản tiếng Việt. Hội thảo khoa học ICT.rda'03, Hà Nội.

[4] Thanh Bon Nguyen, Thi Minh Huyen Nguyen, Laurent Romary, Xuan Luong Vu (2004). Lexical descriptions for Vietnamese language processing. Proceedings of the Asian Language Resources Workshop (to appear), IJC-NLP 2004, Hainan, CN.

[5] Hoàng Phê (2003). Logic-Ngôn ngữ học, NXB Đà Nẵng – Tung tâm Từ điển học.

[6] Uỷ ban khoa học xã hội Việt Nam (1983). Ngữ pháp tiếng Việt, NXB Khoa học Xã hội, Hà nội.

[7] Nguyễn Tài Cẩn (1998). Ngữ pháp tiếng Việt, NXB Đại học Quốc gia, Hà Nội.

[8] Nguyễn Kim Thản (1997). Nghiên cứu ngữ pháp tiếng Việt, NXB Giáo dục, Hà Nội.

[9] Diệp Quang Ban (2005). Ngữ pháp tiếng Việt, Nhà xuất bản Giáo dục, Hà Nội.

[10] Hoàng Phê (2008). Tuyển tập ngôn ngữ học, NXB Đà Nẵng – Tung tâm Từ điển học.

Nguồn: Tạp chí Từ điển học & Bách khoa thư, số 5 (7)/2010.



[1] Từ ngữ mới ở đây được quan niệm là từ ngữ chưa được thu thập trong một cuốn từ điển cụ thể.

[2] Nguyễn Như Ý (chủ biên), Từ điển giải thích thuật ngữ ngôn ngữ học, NXB Giáo dục, Hà Nội, 1996.

[3] Nhóm tác giả của công cụ tách từ tiếng Việt (vnTokenizer) có thể cung cấp mã nguồn cho những ai có ý định sử dụng. Thông tin chi tiết xem tại: www.loria.fr/~lehong/tools/vnTokenizer.php.

[4] Bất cứ tổ hợp hai âm tiết nào, nếu có xuất hiện ít nhất một âm tiết thuộc loại “3” (có từ loại phụ từ / kết từ / trợ từ), âm tiết còn lại không cần biết thuộc loại nào, thì nhất thiết tổ hợp âm tiết đó không là đơn vị từ vựng.

[4] Bất cứ tổ hợp hai âm tiết nào, nếu có xuất hiện ít nhất một âm tiết thuộc loại “3” (có từ loại phụ từ / kết từ / trợ từ), âm tiết còn lại không cần biết thuộc loại nào, thì nhất thiết tổ hợp âm tiết đó không là đơn vị từ vựng.

[5] Dừng việc đọc ở ngay sau âm tiết “a”, dấu hiệu cho chương trình biết là đã kiểm tra xong “a” và tiếp theo kiểm tra từ “b” trở đi.

 

 

Bài đăng trước:

  • Ngôn ngữ học máy tính và việc xây dựng từ điển
  • Về xử lý tiếng Việt trong công nghệ thông tin
  • Automated Extraction of Tree Adjoining Grammars from a Treebank for Vietnamese
  • Building a Large Syntactically-Annotated Corpus of Vietnamese
  • A Lexicon for Vietnamese Language Processing