Bài viết của tôi

Các bài viết về công nghệ, coder,... từ kinh nghiệm thực tế.
  • Tất cả
  • android (1)
  • blogspot (22)
  • code (30)
  • download (8)
  • Error (1)
  • Javascript (2)
  • kiến thức (2)
  • phần cứng (3)
  • phần mềm (5)
  • seo (13)
  • tài liệu (1)
  • thủ thuật (12)
  • tiện ích (1)
Source Code Kiểm tra chính tả dựa theo cấu trúc âm tiết trên C#

Source Code Kiểm tra chính tả dựa theo cấu trúc âm tiết trên C#

Sau khi mình xây dựng thuật toán thì mình thấy cách này kiểm tra chính tả rất nhanh, nhưng có 1 nhược điểm mà thuật toán này mang lại là kết quả sẽ không chính xác đối với các từ ghép. Ví dụ: từ trong cây khi kiểm tra chính tả từng từ thì sẽ đúng, nhưng chính xác thì phải là trồng cây. Lý do là thuật toán này chỉ kiểm tra từng âm tiết một nên khi ghép từ lại thì sẽ sai, vì vậy thuật toán này sẽ không tối ưu so với thuật toán kiểm tra tiếng việt với từ điển dựng sẵn với các bộ từ đơn, từ đôi, từ ba.

Như tiêu đề thì bài viết này sẽ diễn tả THUẬT TOÁN KIỂM TRA ÂM TIẾT TIẾNG VIỆT DỰA TRÊN LUẬT CẤU TẠO ÂM TIẾT trên ngôn ngữ C#.

THUẬT TOÁN KIỂM TRA ÂM TIẾT TIẾNG VIỆT DỰA TRÊN LUẬT CẤU TẠO ÂM TIẾT

Sau đây mình sẽ chia sẻ code của THUẬT TOÁN KIỂM TRA ÂM TIẾT TIẾNG VIỆT DỰA TRÊN LUẬT CẤU TẠO ÂM TIẾT. Mình sẽ không nói nhiều về thuật toán này, các bạn có thể thêm xem chi tiết thuật toán này tại đây.

Sau khi mình xây dựng thuật toán thì mình thấy cách này kiểm tra chính tả rất nhanh, nhưng có 1 nhược điểm mà thuật toán này mang lại là kết quả sẽ không chính xác đối với các từ ghép. Ví dụ: từ trong cây khi kiểm tra chính tả từng từ thì sẽ đúng, nhưng chính xác thì phải là trồng cây. Lý do là thuật toán này chỉ kiểm tra từng âm tiết một nên khi ghép từ lại thì sẽ sai, vì vậy thuật toán này sẽ không tối ưu so với thuật toán kiểm tra tiếng việt với từ điển dựng sẵn với các bộ từ đơn, từ đôi, từ ba,...

Giới thiệu sơ về code:

- Định nghĩa các mảng Âm đầu, Âm Giữa, Âm cuối:

public string[] am_dau = new string[] { "b", "c", "ch", "d", "đ", "g", "gh", "h", "k", "kh", "l", "m", "n", "ng", "ngh", "nh", "p", "ph", "q", "r", "s", "t", "th", "tr", "v", "x", "none" };
        public string[] am_cuoi = new string[] { "c", "ch", "m", "n", "ng", "nh", "p", "t", "none" };
        public string[] am_giua = new string[] { "a", "á", "ai", "au", "ay", "e", "eo", "i", "ia", "iai", "iày", "iá", "iáo", "uyễ" };
Ở đây, mảng am_giua chưa đầy đủ, các bạn có thể bổ sung thêm trong quá trình học từ mới.

- Hàm tìm chuỗi trong mộng mảng chuỗi bằng phương pháp tìm kiếm nhị phân:

public int SearchString1(string key, List<string> arr)
        {
            int first = 0;
            int last = arr.Count;

            while (first < last)
            {
                int mid = (first + last) / 2;
                if (key.CompareTo(arr[mid]) < 0)
                {
                    last = mid;
                }
                else if (key.CompareTo(arr[mid]) > 0)
                {
                    first = mid + 1;
                }
                else
                {
                    return mid;
                }
            }
            return -(first + 1);
        }
Sau đây mời bạn download source code về cùng tham khảo. Nếu có gì cần đặt câu hỏi, vui lòng để lại nhận xét bên dưới. Thanks !

Link download : Kiem Tra Chinh Ta

1 nhận xét:

Đọc nhiều nhất

Bài viết mới hơn