Giải quyết các vấn đề hiển thị của tiếng Việt (vấn đề chính tả)

Một phần của tài liệu Tìm hiểu về Search Engine và xây dựng ứng dụng minh hoạ cho Search Engine tiếng Việt (Trang 42 - 45)

3. Lập chỉ mục cho tài liệu tiếng Việt ([III.1], [II.1], [II.2], [II.3], [II.4], [IV.11],

3.3Giải quyết các vấn đề hiển thị của tiếng Việt (vấn đề chính tả)

tả)

3.3.1Vấn đề bảng mã

Sự tồn tại của nhiều bảng mã ( TCVN3, VNI ...) dẫn đến việc phải chuyển nội dung các tài liệu được viết trên các bảng mã khác về bảng mã chuẩn cho hệ thống tìm kiếm thông tin xử lý (lập chỉ mục), việc chuyển đổi này là đơn giản trong trường hợp ta biết bảng mã của tài liệu, nhưng vấn đề khó khăn là làm sao cho hệ thống tìm kiếm thông tin nhận ra một tài liệu đang sử dụng bảng mã nào?

Khi phân tích một trang tài liệu HTML, dựa vào thông tin <charset> thì có thể biết được bảng mã nào đang được sử dụng, ví dụ: charset = UTF-8 thì đó là bảng mã Unicode

Tuy nhiên, trong một tài liệu có thể sử dụng nhiều bảng mã khác nhau nên không thể xác định bảng mã của tài liệu theo cách trên. Ta có thể áp dụng phương pháp phân tích từ khoá để xác định bảng mã như sau: dựa trên sự thống kê số lần xuất hiện của các ký tự đặc biệt theo từng bảng mã, bảng mã nào có tần số sử dụng nhiều nhất thì xem như trang đó sử dụng bảng mã đó.

Thật ra, không cần phải xác định bảng mã vẫn có thể lập chỉ mục cho hệ thống bằng cách chuyển mã tài liệu sang một kiểu định dạng, theo bảng mã quy định của hệ thống tìm kiếm. Trong thực tế, các bảng mã đều có một phần chung và một phần các ký tự đặc biệt là khác nhau. Do đó, nhằm hạn chế thời gian và chi phí xử lý, ta sẽ chuyển những ký tự khác nhau về bảng mã quy định. Các bước thực hiện như sau: Đọc một từ, nếu là từ mang dấu tổ hợp nguyên âm hay dấu thanh thì thực hiện so sánh với tất cả các bảng mã chuẩn để xác định bảng mã của từ đó. Nếu bảng mã đó không trùng với bảng mã quy định của hệ thống thì thực hiện chuyển từ bảng mã đó sang bảng mã quy định. Cứ vậy, tiếp tục cho đến hết văn bản và dừng.

Có thể dùng một bảng mã thông dụng nào đó để làm bảng mã quy định cho hệ thống, chẳng hạn Unicode vì hiện nay theo xu hướng chung thì số lượng các trang web, tài liệu dùng Unicode rất lớn và đang tăng nhanh, nên sẽ hạn chế được số lượng các trang web cần chuyển đổi.

3.3.2Vấn đề dấu thanh

Do cách bỏ dấu tiếng Việt chưa thống nhất nên có khi cùng một từ lại có nhiều các bỏ dấu khác nhau, ví dụ "thuý" và "thúy", rõ ràng hệ thống tìm kiếm thông tin cần nhận ra hai từ này là một. Phương pháp giải quyết dựa trên đặc điểm một từ đơn tiếng Việt chỉ có một dấu nên ta sẽ chuyển dấu từ ra sau cùng, ví dụ:

quý -> thuy1 qúy -> thuy1

Khi đó tất cả các từ giống nhau cho dù bỏ dấu khác nhau thì qua quá trình xử lý đều cho chuỗi kí tự giống nhau thuận tiện cho việc so sánh từ.

3.3.3Vấn đề dấu tổ hợp nguyên âm

Một tài liệu hay một câu truy vấn không thể tránh khỏi trường hợp bỏ thiếu dấu tổ hợp nguyên âm. Ví dụ: nuớc(nước), trừong(trường),…Như vậy, ta cần phải xây dựng một module xác định và sửa lỗi cho từ. Giải pháp đề nghị ở đây là chuyển các từ về một định dạng riêng, gồm hai phần: phần đầu là các ký tự không dấu, phần sau là dấu tổ hợp nguyên âm và dấu thanh. Giai đoạn chuyển mã sẽ thực hiện chuyển các dấu tổ hợp nguyên âm và dấu thanh ra cuối của từ.

Ví dụ: hường  truong772 hừơng  truong772 hừong  truong772 huờng  truong772

Như vậy, dù dấu thanh có bỏ ở vị trí nào thì cũng cho chuỗi ký tự giống nhau sau khi xử lý. Ngoài ra, nó còn có khả năng phát hiện ra những từ mà người dùng gõ thiếu dấu tổ hợp nguyên âm. Ví dụ: huờng  huong72, chương trình sẽ tìm kiếm trong cơ sở dữ liệu và sẽ thấy đúng được phần đầu, còn về dấu thanh thì sẽ chọn một trong các tổ hợp gần nhất có thể có trong từ điển như:

hương  huong77 hướng  huong771 hường  huong772 hưởng  huong773 hượng  huong775

Trong tự điển tiếng Việt, không thể có các từ như trưong hay truơng. Nên người dùng chắc chắn đã gõ thiếu và do đó phải là từ truong772 (trường).

Một phần của tài liệu Tìm hiểu về Search Engine và xây dựng ứng dụng minh hoạ cho Search Engine tiếng Việt (Trang 42 - 45)