MỤC LỤC
LỜI NÓI ĐẦU .1
CHƯƠNG I. TỔNG QUAN VỀ NGÔN NGỮ TIẾNG VIỆT .3
1.1. Lý thuyết về ngôn ngữ học 3
1.1.1. Âm tiết(còn gọi là “tiếng”) .3
1.1.2. Từ .4
CHƯƠNG II. MỘT SỐ VẤN ĐỀ THÊM DẤU VÀO VĂN BẢN TIẾNG VIỆT KHÔNG DẤU .7
2.1. Phát biểu bài toán .7
2.2. Đặc điểm .7
2.3. Các hướng tiếp cận trong tách từ tiếng Việt .8
2.4. Một số phương pháp tách từ tiếng Việt .8
CHƯƠNG III. THIẾT KÊ MÔ HÌNH CHƯƠNG TRÌNH THÊM DẤU .11
3.1. Lựa chọn công cụ và ngôn ngữ .Net 11
3.2. Mô hình thêm dấu vào văn bản tiếng Việt không dấu .13
3.3. Tách đoạn, câu .13
3.4. Tiền xử lý 14
3.5. Tách từ bằng phương pháp LRMM .14
3.6. Chọn từ thích hợp 16
CHƯƠNG IV. CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM . .17
4.1. Môi trường thử nghiệm . 17
4.2. Kết quả và đánh giá chương trình . . .17
4.3. Giao diện chương trình .18
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .19
TÀI LIỆU THAM KHẢO .21
22 trang |
Chia sẻ: lynhelie | Lượt xem: 2921 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Đồ án Thêm dấu vào văn bản tiếng Việt không dấu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hướng tới.
Chữ viết tiếng Việt của chúng ta có một đặc điểm rất hay là có sự xuất hiện của các dấu thanh cũng như dấu của các ký tự. Điều này giúp cho tiếng Việt thêm thanh thêm điệu. Tuy nhiên, cũng chính việc thêm thanh, điệu này làm cho việc gõ tiếng Việt mất nhiều thời gian hơn. Thêm nữa, khi sử dụng Internet trở nên thông dụng, một tiện ích được mọi người ưa chuộng là dịch vụ Email. Nhưng cho đến nay, hầu hết các mail server vẫn chưa hỗ trợ tốt tiếng Việt nên tình trạng các lá Email trên mạng hầu như không có dấu. Việc phát triển một công cụ giúp thêm dấu vào văn bản tiếng Việt không dấu là việc rất cần thiết và thú vị.
Đề tài này hướng đến việc gải quyết bài toán thêm dấu tiếng Việt theo một hướng mới, do đó chương trình không chú trọng chuyên sâu vào lĩnh vực nào.Viêc thêm một số chức năng khác không ảnh hưởng nhiều đến cấu trúc của mô hình mà chương trình áp dụng.
Đồ án gồm các phần sau:
Chương 1. Trình bày một cách khái quát về tiếng Việt, các đặc trưng ngôn ngữ, đặc điểm về từ cũng như các vấn đề riêng có ảnh hướng đến bài toán.
Chương 2. Trình bày về bài toán thêm dấu vào văn bản tiếng Việt không dấu, bao gồm mô tả bài toán, đặc điểm, các phương pháp tách từ có thể áp dụng cho bài toán.
Chương 3. Trình bày việc lựa chọn công cụ thiết kế và xây dựng chương trình thêm dấu vào văn bản tiếng Việt không dấu, dựa trên một phương pháp trong các phương pháp đã nêu ở chương hai.
Chương 4. Trình bày kết quả thực nghiệm của chương trình và việc kiểm thử và đánh giá thuật toán.
Sau đó là phần kết luận và các hướng phát triển sắp tới của đề tài này.
Cuối cùng là phần tài liệu tham khảo.
CHƯƠNG I. TỔNG QUAN VỀ NGÔN NGỮ TIẾNG VIỆT
1.1. Lý thuyết về ngôn ngữ học
1.1.1. Âm tiết(còn gọi là “tiếng”)
a. Định nghĩa và đặc điểm âm tiết tiếng Việt
“Tiếng” là “đơn vị cơ bản” trong tiếng Việt [1]. Một “tiếng” trong tiếng Việt được nói lên là một đơn vị ngữ âm, và cũng là một đơn vị ngữ pháp. Một “tiếng” là một đơn vị pháp ngôn, và là một đơn vị của lời nói để tạo ra những kết cấu lời nói trong hoạt động nói năng giao tiếp. Đặc tính này của tiếng chính là một tính cách loại hình của tiếng Việt, trong đó mỗi đơn vị phát âm trùng khít với đơn vị ngữ pháp(hình vị và từ). Khi xét trên bình diện ngữ âm, tiếng là một đơn vị của ngữ âm, tức là một âm tiết [3].
Còn trong chữ viết (mặt chính tả), mỗi tiếng bao giờ cũng được viết thành từng chữ (ngăn cách bằng khảng trắng hay các dấu ngắt).Đơn vị “tiếng” đối với người Việt là một đơn vị tự nhiên, khái niệm “tiếng “đã có từ lâu và được người bản ngữ sử dụng nó trước khi hiểu và sử dụng khái niệm “từ”.
Ví dụ: Câu “Mình tên là Trang.” có 4 tiếng.
b. Thanh là thành phần của âm tiết tiếng Việt
Khi phát âm tiếng Việt, chúng ta phát âm từng đơn vị lời nói cắt rời nhau, gọi là âm tiết. Khi phát âm chậm một âm tiết, có thể nhận thấy khá rõ là mỗi âm tiết đều có thể kết hợp nhiều nhất là ba đơn vị phát âm: âm đầu + âm chính + âm cuối. Ba thành phần trên gồm những âm vị xuất hiện tương đối theo thứ tự trước sau, nên gọi là những âm vị tuyến tính.
Ngoài ra, mỗi âm tiết được định một bậc cao thấp, gọi là thanh điệu. Trong lời nói, mỗi âm tiết tiếng Việt đều mang một thanh. Thanh này xuất hiện lập tức khi âm tiết được phát ra, cho nên có thể nói rằng thanh là một thành phần bất khả phân của âm tiết. Có sáu thanh làm tiêu chuẩn định bậc cao thấp khác nhau, thuờng gọi là ngang, hỏi, sắc, huyền, ngã, nặng.
Như vậy thì mỗi âm tiết tiếng Việt đầy đủ có tối đa bốn đơn vị cấu thành, còn tối thiểu thì mỗi âm tiết cũng phải có hai thành phần: âm chính + thanh.
c. Tại sao phải dùng dấu thanh?
Các ngôn ngữ dùng bảng chữ cái Latin không dùng thêm ký hiệu chỉ thanh, mà chỉ ghi lại các âm vị tuyến tính bằng các đơn vị là con chữ. Hệ thống chữ viết khối vuông như chữ Hán và chữ Nôm cũng không có ký hiệu chỉ thanh. Nhưng trường hợp chữ Quốc ngữ có khác. Khi dùng bảng chữ cái Latin, các đồ vị con chữ chưa đủ để phân biệt ý nghĩa một từ được viết ra, vì có đến sáu thanh phải phân biệt. Đã đành thanh chỉ là yếu tố ngữ âm không thuộc về thành phần âm vị tuyến tính, nhưng thanh tiếng Việt không hẳn chỉ là một yếu tố ngôn điệu mang tính cách hoa mỹ cho âm tiết, mà là một thành phần không thể thiếu được khi phát âm một âm tiết. Nói cách khác, âm tiết tiếng Việt chưa hoàn chỉnh khi chưa được định thanh. Và đây cũng là đặc điểm nổi bật của tiếng Việt.
1.1.2. Từ
a. Các quan niệm về từ
Có một số định nghĩa điển hình về từ như sau [1]:
Theo L.Bloomfield, thì từ là “một hình thái tự do nhỏ nhất”.
Theo Solncev thì “Từ là đơn vị ngôn ngữ có tính hai mặt: âm và nghĩa. Từ có khả năng độc lập về cú pháp khi sử sụng trong lời”.
Theo B.Golovin, thì từ là “đơn vị nhỏ nhất có nghĩa của ngôn ngữ, được vận dụng độc lập, tái hiên tự do trong lời nói đẻ xây dựng nên câu”. Đây cũng chính là định nghĩa mà trong ngôn ngữ học đại cương hay sử dụng.
Trong nội dung đề tài này, ta quan tâm tới ba thuật ngữ trong ngôn ngữ đại cương để nhận diện từ:
1. Từ ngữ âm: đó là những đơn vị được thống nhất với hiện tượng ngữ âm nào đó. Đối với tiếng Việt, đó chính là những âm tiết, hay còn gọi là tiếng.
2. Từ chính tả: đó là những khoảng cách giữa hai chỗ trên văn tự, tức là những đơn vị được viết liền thành khối, đối với tiếng Việt, đó chính là chữ.
3. Từ từ điển học: đó là đơn vị mà căn cứ vào đặc điểm ý nghĩa của nó phải xếp riêng trong từ điển.
b. Phương thức cấu tạo từ
Đơn vị cơ sở của cấu tạo từ Việt là tiếng. Tiếng có thể có nghĩa đủ rõ, tiếng có thể mang nghĩa phai mờ và tiếng có thể tự mình không có nghĩa. Từ tiếng Việt được cấu tạo bằng cách dùng một tiếng, hoặc là tổ hợp các tiếng lại theo một cách nào đó.
Từ đơn: Phương thức dùng một tiếng làm một từ cho ta từ đơn.
Ví dụ: cây, nhà, đi, chạy,
Từ ghép: Phưong thức tổ hợp (ghép) các tiếng lại cho ta từ ghép. Dựa vào tính chất của mối quan hệ về ngữ nghĩa các thành tố cấu tạo, có thể phân loại từ ghép tiếng Việt như sau:
Từ ghép đẳng lập: là những từ ghép mà thành tố cấu tạo có quan hệ bình đẳng với nhau về nghĩa. Ví dụ: ăn ở, cá mú, xe cộ,
Từ ghép chính phụ: là những từ ghép có thành tố cấu tạo này phụ thuộc vào thành tố cấu tạo kia. Ví dụ: tầu hỏa, lão hóa, đỏ rực,
Từ láy: Phương thức tổ hợp các tiếng trên cơ sơ hòa phối ngữ âm cho ta từ láy. Mỗi từ láy gồm hai phần:
Phần gốc: làm cở sở cho sự láy.
Phần láy: là phần lặp lại của phần gốc.
Ví dụ: đo đỏ, khe khẽ, xào xạc
Số lượng từ láy trong tiếng Việt rất lớn, khoảng 4.000 từ.
c. Tiêu chí nhận diện từ tiếng Việt
Từ rất nhiều quan niệm cũng như các định nghĩa về “từ tiếng Việt”, ta có thể rút ra tiêu chuẩn mà các nhà Việt ngữ học đã dựa vào đó khi nhận diện từ tiếng Việt [3]. Các tiêu chuẩn này ta có thể phân thành: các tiêu chuẩn về hình thức và các tiêu chẩn về nội dung.
c1. Các tiêu chuẩn về hình thức
Tính cố định: là tính vững chắc về cấu tạo, không thể chêm – xen được.
Tính độc lập: các nhà Việt ngữ học hay dùng tiêu chuẩn này để phân biệt từ (đơn vị có nghĩa và độc lập) với hình vị (đơn vị có nghĩa và không độc lập). Tính độc lập còn được gọi là khả năng kết hợp (tự do – hạn chế).
Tính từ loại và quan hệ cú pháp: trong câu, từ đảm nhận những chức năng cú pháp nhất định, nên mọi từ phải mang một từ loại nào đó, còn hình vị thì không có tính chất từ loại. Quan hệ giữa các từ là quan hệ cú pháp, còn quan hệ giữa các hình vị của từ không phải là quan hệ cú pháp.
c2. Các tiêu chuẩn về nội dung
Chức năng định danh: chức năng này được dùng để xác định tư cách của từ (từ thực), coi đó là đặc trưng phân biệt giữa “từ” và “hình vị”.
Biểu thị khái niệm: vì từ với khái niệm không phải là một: có những khái niệm cần biểu thị bằng nhiều từ, và có những từ không biểu thị khái niệm.
Ý nghĩa biểu niệm: vì ý nghĩa của từ và khái niệm không trùng nhau, vì vậy người ta cần phân biệt ý nghĩa từ vựng và ý nghĩa ngữ pháp.
Hoàn chỉnh về nghĩa: đây là tiêu chuẩn quan trọng, được đa số các nhà Việt ngữ học chấp nhận trong việc xác định tư cách của từ. Tiêu chuẩn này liên quan đến tính thành ngữ và tính võ đoán.
CHƯƠNG II. MỘT SỐ VẤN ĐỀ
THÊM DẤU VÀO VĂN BẢN TIẾNG VIỆT KHÔNG DẤU
2.1. Phát biểu bài toán
Bài toán có thể được phát biểu như sau: Cho một văn bản tiếng Việt không dấu. Chuyển văn bản không dấu đó thành văn bản có dấu với độ chính xác cao.
Chỉ sử dụng từ điển từ và kho ngữ liệu thô làm đầu vào.
Khái niện từ ở đây là “từ từ điển” – tức là từ đơn, từ ghép va cụm từ được lưu trong từ điển.
2.2. Đặc điểm
Chữ viết tiếng Việt có một đặc điểm rất hay là sự xuất hiện của các dấu thanh cũng như dấu của các ký tự. Việc có dấu thanh và dấu ký tự này làm phong phú thêm cho ngôn ngữ tiếng Việt, và cũng góp phần tăng độ biểu cảm của tiếng Việt.
Khi loại bỏ dấu thanh và dấu của các ký tự, việc hiểu nghĩa của từ, gồm một hay nhiều âm tiết kết hợp với nhau, trở nên khó khăn và dễ gây hiểu lầm.
Để thêm dấu, trước tiên ta cần phải xác định ranh giới từ. Đối với các thứ tiếng Châu Âu, ta có thể dễ dàng nhận ra một từ, do các từ được phân cách bởi khoảng trắng. Điều này lại không đúng với tiếng Việt. Trong tiếng Việt, các tiếng (hay gọi là âm tiết) được phân cách bởi khoảng trắng chứ không phải là từ.
Sau khi đã nhận diện được ranh giới từ, ta cần phải xác định cho đúng từ có dấu nào tương ứng có thể hiện không dấu như vậy. Việc xác định này cũng gây nhiều khó khăn, khi một từ không dấu có thể có nhiều từ có dấu tương ứng với nó.
Ví dụ: Từ không dấu là: “trang” có các từ có dấu tương ứng là “tráng”, “trăng”, “trắng”, “tràng”.
Do đó sau khi giải quyết xong bài toán tách từ tiếng Việt không dấu, ta cần phải giải quyết thêm bài toán xác định từ có dấu thích hợp với từ không dấu đó. Đây chính là hai bài toán cần giải quyết chính của đề tài.
2.3. Các hướng tiếp cận trong tách từ tiếng Việt
2.3.1. Các hướng tiếp cận dựa trên từ (Word-based)
Dựa trên thống kê (satatistics-based),
Dựa trên từ điển(dictionary-based)
Hydrid (kết hợp nhiều phương pháp)
2.3.2. Các hướng tiếp cận dựa trên ký tự (Character-based)
Unigram (một tiếng)
N-Gram (nhiều tiếng)
2.4. Một số phương pháp tách từ tiếng Việt
Bài toán tách từ cho ngôn ngữ đơn lập đã được đặt ra từ lâu, chủ yếu để giải quyết cho tiếng Trung Quốc, tiếng Nhật, tiếng Hàn Quốc. Các thuật toán có thể tách từ :
Phương pháp tham ăn (Greedy Searching)
Là phương pháp dựa trên hai loại thống kê đơn giản là tần số xuất hiện và độ dài từ.
Tách từ dựa vào tần số xuất hiện: Từ điển được sắp xếp theo thứ tự giảm dần của số lần xuất hiện.Duyệt từ điển từ trên xuống dưới, nếu trong dữ liệu còn có từ xuất hiện trong từ điển mà chưa được tách thì sẽ thực hiện tách với từ đó.
Tách từ dựa vào độ dài từ: Từ điển được sắp xếp theo thứ tự giảm dần của độ dài từ. Duyệt từ điển từ trên xuống dưới, nếu trong dữ liệu còn có từ xuất hiện trong từ điển mà chưa được tách thì sẽ thực hiện tách với từ đó.
Thuật toán so khớp tối đa ( Maximum Matching )
Duyệt một ngữ hoặc câu từ trái sang phải và chọn từ có nhiều âm tiết nhất có mặt trong từ điển và cứ thực hiện lặp lại như vậy cho đến hết câu.
Dạng đơn giản: dùng để giải quyết nhập nhằng từ đơn. Giả xử có chuỗi ký tự C1, C2,, Cn. Đầu tiên xem C1 có phải là từ không, sau đó xem C1C2 có phải là từ không (so khớp với từ điển). Tiếp tục tìm cho đến khi tìm được từ dài nhất. Chọn từ đó, sau đó tìm kiếm như trên những từ còn lại cho đến hết chuỗi.
Dạng phức tạp: Quy tắc của dạng này là phân đoạn từ Thuật toán bắt đầu như dạng đơn giản. Nếu phát hiện ra những cách tách từ gây nhập nhằng (ví dụ, C1 là từ và C1C2 cùng là từ). Ví dụ ta được:
C1 C2 C3C4
C1C2 C3C4 C5
C1C2 C3C4 C5C6
Chuỗi dài nhất sẽ là chuỗi thứ ba. Từ đầu tiên của chuỗi thứ ba (C1C2) sẽ được chọn. Thực hiện lại các bước cho đến khi được chuỗi từ hoàn chỉnh.
Mô hình WFST và mạng Neural
WFST- Mô hình mạng chuyển dịch trạng thái hữu hạn có trọng số.
WFST với trọng số là xác suất xuất hiện của mỗi từ trong kho ngữ liệu. Dùng WFST để duyệt qua các câu cần xét , khi đó từ có trọng số lớn nhất là từ được chọn để tách. và tầng mạng Neural dùng để khử nhập nhằng về ngữ nghĩa sau khi đã tách từ (nếu có).
Mô hình n-gram
Trong mô hình này có diễn ra quá trình học máy từ tập dữ liệu mẫu.
Mô hình n-gram dùng một cửa sổ độ rộng n trượt trên toàn văn bản để lưu lại các “khung cảnh”-là trạng thái của các cụm âm tiết xuất hiện trong văn bản , đồng thời thống kê số lần xuất hiện của các cụm âm tiết đặc biệt, tạo ra các luật cho việc tách từ.
Khi tách từ, n-gram cũng dùng một cửa sổ độ rộng n trượt trên toàn văn bản, dựa vào các luật thống kê ở trước mà quyết định ranh giới giữa từ chứa âm tiết đó với các từ xung quanh.
Mô hình TBL
Là cách tiếp cận dựa trên ngữ liệu đã đánh dấu. Theo cách tiếp cận này, để huấn luyện cho máy tính biết cách nhận diện ranh giới từ tiếng Việt, ta có thể cho máy học trên ngữ liệu hàng vạn câu tiếng Việt đã được đánh dấu ranh giới từ đúng. Sau khi học xong, máy sẽ xác định được các tham số (các xác suất) cần thiết cho mô hình nhận diện từ.
Phương pháp quy hoạch động (dynamic programming)
Phương pháp quy hoạch động chỉ sử dụng tập ngữ liệu thô để lấy thông tin về tần số thống kê của từ. Việc tính toán bắt đầu với những đơn vị chắc chắn như câu, các ngữ được phân cách bởi các dấu câu (như dấu phẩy, gạch nối, chấm phẩy).
Ý tưởng của cách tách từ này cho một ngữ cần tách, ta phải tìm ra các tổ hợp từ tạo nên ngữ đó sao cho tổ hợp đó đạt được xác suất tối đa.
Phương pháp tách từ tiếng Việt dựa trên thống kê từ Internet và thuật toán di truyền IGATEC
Không cần dùng đến một từ điển hay tập ngữ liệu học nào
Kết hợp giữa thuật toán di truyền với dữ liệu thống kê được lấy từ Internet . Hệ thống tách từ gồm các thành phần:
Online Extractor
GA Engine for Text Segmentation
Text Categorization
CHƯƠNG III. THIẾT KÊ MÔ HÌNH CHƯƠNG TRÌNH
THÊM DẤU
3.1. Lựa chọn công cụ và ngôn ngữ .Net
Microsoft.NET gồm hai phần chính: Framework và Intergrated Development Environment(IDE). Framework cung cấp những gì cần thiết và căn bản. Còn IDE thì cung cấp một môi trường giúp chúng ta triển khai dễ dàng, và nhanh chóng các ứng dụng trên nền tảng .NET. Nếu không có IDE ta có thể dùng một trình soạn thảo ví như Notepad hay bất cứ trình soạn thảo văn bản nào và sử dụng commad line để biên dịch và thực thi, tuy nhiên việc này mất rất nhiều thời gian. Tôt nhất là chúng ta dùng IDE để phát triển các ứng dụng và cũng là cách dễ sử dụng nhất.
3.1.1. .NET Framework
Thành phần Framework là quan trọng nhất .NET là cốt lõi và là tinh hoa của môi trường. .NET Framework là một platform mới làm đơn giản việc phát triển ứng dụng trong môi trường phân tán của Internet.
.NET Framework có hai thàh phần chính: Common Language Runtime (CLR) và thư viện lớp .NET Framework. CLR là nền tảng của .NET Framework.
3.1.2. Visual Studio 2005
Visual Studio .NET là môi trường tích hợp phát triển phần mềm (Integrated Development Environment (IDE) ) của Microsoft ,là công cụ cho phép bạn viết mã, gỡ rối và biên dịch chương trình trong nhiều ngôn ngữ lập trình .NET khác nhau.
Cũng giống như các phiên bản Visual Studio .Net trước đây, phiên bản Visual Studio 2005 cũng hỗ trợ các ngôn ngữ lập trình hướng đối tượng mới như: C# , VB.Net, J# và ngôn ngữ lập trình "siêu mạnh" là C++.Net, đều có những cải tiến đáng kể. Visual Studio 2005 là bộ công cụ phát triển phần mềm tích hợp mạnh mẽ với những tính năng hấp dẫn:
Thiết kế giao diện, hỗ trợ viết mã (coding)
Xây dựng ứng dụng Web nhanh hơn
Hỗ trợ phát triển ứng dụng cho thiết bị di động
Đóng gói và triển khai ứng dụng
Hỗ trợ ứng dụng 64 bit
Đa dạng sản phẩm
3.1.3. Ngôn ngữ C#
Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu dữ liệu được xây dựng sẵn. Và C# hội đủ những điều kiện như vậy, hơn nữa nó xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java.
Ngôn ngữ C# thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn.
C# hỗ trợ tất cả những đặc diểm chính của ngôn ngữ hướng đối tượng (Object-oriented language) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình (polymorphism).
C# được sử dụng cho nhiều dự án khác nhau như tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bảng tính, hay thậm chí những trình biên dịch cho các ngôn ngữ khác.
Mã nguồn C# có thể được viết trong những phần được gọi là những lớp, những lớp này chức các phương thực thành viên của nó. Những lớp và phương thức có thể dùng lại trong các chương trình khác hay ứng dụng khác.
3.2. Mô hình thêm dấu vào văn bản tiếng Việt không dấu
Căn cứ vào cơ sở lý thuyến đã trình bày trong những chương ở trên, tôi xin đề xuất mô hình thêm dấu vào văn bản tiếng Việt không dấu như sau:
Bắt đầu
Tách đoạn, câu
Tiền xử lý
Tách từ
Tập các từ không dấu
Chọn từ thich hợp
Từ điển thuật ngữ
Từ điển chuyển đổi
Xuất ra màn hình
3.3. Tách đoạn, câu
Tách đoạn, câu là công việc phân tách một văn bản thành những đoạn và câu. Bài toán này không phân biệt ngôn ngữ vì hầu hết các ngôn ngữ thường phân tách câu dựa trên các dấu hiệu là các dấu ngắt câu như dấu chấm, chấm hỏi, chấm than Tuy vậy, nếu văn bản đưa vào không chuẩn thì kết quả cũng không thể đạt 100%. Ví dụ: lỗi sau các dấu chấm câu không viết hoa sẽ dẫn đến việc hiểu nhầm thành dấu ba chấm. Ngoài ra, một số phần trăm sai sót khác còn do hiện tượng những dấu chấm câu được dùng như là ký hiệu thực hiện chức năng khác gây ra.
Ví dụ : dấu chấm được dùng để phân tách phần nguyên và phần thập phân của một con số hoặc trong địa chỉ email, website
Như là : 3.14 , dinpled_cheeks@yahoo.com...
Mục đích của tách câu là tách thành từng đơn vị “câu” để thuận tiện cho việc xử lí tách từ. Việc xác định đơn vị câu rất quan trọng trong các ứng dụng xử lí ngôn ngữ tự nhiên. Tuy nhiên ở đây chỉ cần xác định câu cho tách từ, do vậy “câu” được hiểu là những chuỗi từ nằm giữa các token tách câu.
Các token tách câu bao gồm:
Các dấu kết thúc câu: . ? !
Các dấu mở ngoặc, đóng ngoặc: {} [ ] () ‘’
Các dấu phân tách câu khác: ; : ,
3.4. Tiền xử lý
Xóa các khoảng trắng thừa. Thực hiện các công việc chuẩn hóa dữ liệu nhập vào... Thay thế các ký tự tương tự.
Theo các thống kê về tâm lý, nhận thấy khi người sử dụng đánh chữ Việt không dấu vẫn đánh được các ký tự viết hoa như các danh từ riêng. Do đó, các từ viết hoa sẽ không “ thường hóa” (lowercase) và các từ viết hoa này sẽ được căn cứ để nhận dạng danh từ riêng.
3.5. Tách từ bằng phương pháp LRMM
Phương pháp khớp tối đa (Maximum Matching ) còn được gọi là Left Right Maximum Matching (LRMM). Phương pháp này dựa trên một từ điển tiếng Việt, nói chính xác hơn là một danh sách các từ, cụm từ (term) tiếng Việt không dấu. Thuật toán so khớp tối đa hoạt động như tên của chính nó. Thuật toán giải quyết bài toán tách từ bằng cách chọn cách tách từ nào có nhiều từ nhất.
Tư tưởng của thuật toán LRMM:
Để tách từ cho một câu tiếng Việt không dấu, giả xử câu s.
Ta xét xem câu đó có trong từ điển không ?
Nếu có: ta thu được kết quả s là một từ.
Ngược lại, ta loại bỏ âm tiết cuối của câu s và lại xét xem từ đó có trong từ điển không ?
Sau khi tách được một từ, ta tiếp tục tiến hành so sách và tách các từ còn lại trong câu.
Ví dụ: Xét câu sau
Hom nay troi mua.
Đầu tiên ta kiểm tra xem trong từ điển có hom nay troi mua không? Kết quả là không có. Ta tách bớt âm tiết cuối ra, và kiểm tra hom nay troi có trong từ điển không? Kết quả cũng không có. Ta lại bỏ bớt một tiếng nữa ra, kiểm tra từ điển có term hom nay không? Kết quả là có, và hom nay được coi là một từ tìm thấy.
Ta kiểm tra tiếp phần còn lại của câu, còn lại troi mua, kiểm tra xem có từ này không . Kết quả là không có, ta lại bỏ tiếng mua đi và xét xem có từ troi không? Kết quả là có, và ta thu được từ tiếp theo là: troi
Xét mua xem có hay không? Kết quả là có, và ta thu được từ mua.
Kết quả tách từ là : hom_nay troi mua.
Với phương pháp tách này, khi ta tiến hành tách các câu tương đối dài thì sẽ nảy sinh ra một vấn đề, đó là ta phải so khớp với từ điển rất nhiều lần để có thể tìm ra được một từ.
Giả xử trong từ điển của chúng ta từ dài nhất có 6 âm tiết.
Như vậy, sẽ mất rất nhiều thời gian, bởi vì từ dài nhất cũng chỉ 6 tiếng thôi Ta sẽ cải tiến thuật toán:
Ta chia câu cần tách thành các đoạn, mỗi đoạn có số âm tiết bằng số âm tiết của từ có nhiều âm tiết nhất trong từ điển (trong trường hợp này là 6 âm tiết).
Áp dụng thuật toán tách từ để tách từ cho từng nhóm.
Sau mỗi lần tách được 1 từ ta phải phân nhóm lại. Vì nếu không sẽ xảy ra trường hợp ví dụ như từ: hom nay nếu bị chia cắt thành 2 từ riêng biệt hom và nay -> tách từ sẽ bị sai.
Như vậy để tìm được một từ ta chỉ cần tiến hành so khớp với từ điển tối đa 5 lần.
3.6. Chọn từ thích hợp
Với từ điển chuyển đổi, ta có ánh xạ 1-1 để chuyển một từ không dấu thành có dấu.
CHƯƠNG IV. CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM
4.1. Môi trường thử nghiệm
Phần cứng:
Một máy tính pentiumIV
Bộ nhớ: 512 MB
HDD: 80GB
Phần mềm:
Chương trình được em xây dựng trên môi trường .NET bằng ngôn ngữ C# trong bộ Visual Studio 2005.
Tập dữ liện là những văn bản (.txt).
4.2. Kết quả và đánh giá chương trình
Với bộ dữ liệu thử là các văn bản ngẫu nhiên lấy từ các trang web như dantri.com.vn, hoahoctro.vn, www.tuoitre.com.vn, ta thu được kết qua như sau:
Với văn bản thông thường, phổ biến
Số mẫu thử : 4204 từ
Hiệu suất đạt : 90%
Với văn bản đặc biệt
Số mẫu thử : 1556 từ
Hiệu suất đạt : 75%
Đây là trình soạn thảo văn bản đơn giản, với các chức năng tương tự như Notepad của Window,nhưng nó có thêm chức năng Thêm dấu và Xóa dấu. Việc thêm dấu bằng chương trình cũng cho ta kết quả khả quan và chấp nhận được.
4.3. Giao diện chương trình
Hình 4.1: Giao diện chương trình thực nghiệm khi gõ tiếng Việt không dấu
Hình 4.2: Giao diện chương trình thực nghiệm khi thêm dấu tiếng Việt vào
văn bản
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Các bài toán xử lý văn bản tiếng Việt luôn là các bài toán khó nhưng hay và hữu ích, đang được quan tâm và nghiên cứu nhiều ở nước ta hiện nay. Trong đồ án này, em đã trình bày về những vấn đề cơ bản, những khó khăn thách thức, bối cảnh của bài toán thêm dấu vào văn bản tiếng Việt không dấu. Đây là một bài toán hay trong lĩnh vực Xử lý ngôn ngữ tự nhiên.
Các kết quả đạt được của đồ án :
Hiểu được những vấn đề tổng quan của Xử lý ngôn ngữ tự nhiên. Tìm hiểu những đặc trưng ngôn ngữ cơ bản của tiếng Việt, đặc biệt là những đặc điểm của từ tiếng Việt, từ đó làm tiền đề cho những nghiên cứu định hướng về bài toán tách từ tiếng Việt.
Tìm hiểu khá cụ thể về bài toán thêm dấu vào văn bản tiếng Việt không dấu, nắm được các khó khăn của việc nhận dạng từ tiếng Việt, bối cảnh của bài toán thêm dấu. Tìm hiểu được một số phương pháp tách từ tiếng Việt để có thể áp dụng vào bài toán Thêm dấu vào văn bản tiếng Việt không dấu.
Xây dựng thành công ứng dụng Thêm dấu cho văn bản tiếng Việt không dấu.
Hướng phát triển sắp tới của đề tài :
Bổ sung thêm từ tiếng Việt vào từ điển, để dần hoàn thiện từ điển, giúp tăng độ chính xác cho thuật toán.
Cải tiến các thuật toán đối sánh, tìm kiếm để giảm thời gian xử lý.
Cải tiến phương pháp tách từ Maximum Matching, bằng cách xử lý nhập nhằng, nhằm tăng tính chính xác cho bài toán thêm dấu.
Thêm chức năng sửa lỗi khi chương trình điền dấu không đúng
Cải tiến để chương trình có thể tự học sau mỗi lần điền dấu không đúng và được sửa đúng lại.
Trong suốt quá trình làm đồ án, em đã được sự giúp đỡ, hỗ trợ và đông viên rất lớn từ các thầy cô và bạn bè. Tuy nhiên do những hạn chế về mặt kinh nghiệm và thời gian, đồ án chắc chắn còn tồn tại khiếm khuyết. Qua đây em cũng mong muốn nhận được những góp ý nhằm phát triển tốt hơn đề tài này trong tương lai.
Một lần nữa em xin gửi lời cám ơn chân thành và sâu sắc tới Ths. Trần Ngọc Thái. Thầy là người định hướng cho em, cũng là người tận tình hướng dẫn, chỉ bảo, động viên em giúp em hoàn thành tốt đồ án. Em cũng xin gửi lời cảm ơn tới các thầy cô trong Bộ môn, tới gia đình và bạn bè, những người đã tạo điều kiện và giúp đỡ em rất nhiều, truyền thụ cho em những kiến thức bổ ích, cần thiết trong quá trình học tập tại trường cũng như việc hoàn thành tốt nghiệp.
TÀI LIỆU THAM KHẢO
[1]. Tiến sĩ Đinh Điền. Giáo trình Xử lý ngôn ngữ tự nhiên, Khoa Công nghệ thông tin, Đại học Khoa học tự nhiên thành phố Hồ Chí Minh, tháng 12-2004.
[2]. Đoàn Xuân Kiên. “Bàn về chuyện đánh dấu thanh trong tiếng Việt”, đăng tại trang
[3]. Đoàn Xuân Kiên. “Xem lại một số vấn đề ngữ âm tiếng Việt: cấu trúc âm tiết”, đăng tại trang
[4].Văn Chí Nam, luận văn cử nhân tin học khóa 1999-2003, “Xử lý ngữ nghĩa trong hệ dịch tự động Anh - Việt cho các tài liệu tin học”.
[5]. Nguyễn Hồng Quân, Phân tích văn bản tổng hợp tiếng nói tiếng Việt, luận văn tốt nghiệp, 2005.
[6]. Le An Ha, A method for word segmentation in Vietnamese, 2004
[7]. Nguyễn Trân Thiên Thanh, Trân Khái Hoàng, Tìm hiểu các hướng tiếp cận bài toán phân loại văn bản và xây dựng phần mềm phân loại tin tức báo điện tử, đồ án tốt nghiệp ĐHKHTN, 2005.
[8]. Đánh giá một số phương pháp phân đoạn từ tiếng Việt, Công trình dự thi giải thưởng “ sinh viên nghiên cứu khoa học”, 2005.
[9]. Hoàng Văn Hành – Đinh Điền (1999). “Từ tiếng Việt: Khái niệm – nhận diện – ran
Các file đính kèm theo tài liệu này:
- Baocaotomtat.doc
- Baocao_Trang1.ppt