Sửa lỗi chính tả

Trong các loại phần mềm, kiểm tra chính tả (hoặc kiểm tra đánh vần hoặc kiểm tra lỗi chính tả) là một tính năng phần mềm giúp kiểm tra lỗi chính tả trong một văn bản. Các tính năng kiểm tra chính tả thường được tích hợp trong phần mềm hoặc dịch vụ, chẳng hạn như trình soạn thảo văn bản, ứng dụng email, từ điển điện tử, hoặc công cụ tìm kiếm.

==Lịch sử==
===Thời kỳ tiền PC===
Năm 1961, Les Earnest, người đứng đầu nghiên cứu về công nghệ mới nảy mầm này, cho rằng cần thiết phải đưa ra kiểm tra chính tả đầu tiên truy cập vào danh sách 10.000 từ chấp nhận được. Ralph Gorin, một sinh viên sau đại học dưới sự hướng dẫn của Earnest vào thời điểm đó, đã tạo ra chương trình kiểm tra chính tả đầu tiên được viết dưới dạng chương trình ứng dụng (thay vì nghiên cứu) cho văn bản tiếng Anh chung: SPELL cho DEC PDP-10 tại Phòng thí nghiệm Trí thông minh Nhân tạo của Đại học Stanford, vào tháng 2 năm 1971. Gorin viết SPELL bằng hợp ngữ, để hoạt động nhanh hơn; ông đã tạo ra bộ sửa chính tả đầu tiên bằng cách tìm kiếm danh sách từ cho các chính tả đúng khả thi chỉ khác nhau một chữ cái hoặc hoán đổi chữ cái liền kề và giới thiệu chúng cho người dùng. Gorin đã đưa SPELL vào sử dụng công cộng, giống như đã làm với hầu hết các chương trình SAIL (Stanford Artificial Intelligence Laboratory) và nó đã nhanh chóng lan truyền khắp thế giới qua ARPAnet mới, khoảng mười năm trước khi máy tính cá nhân được sử dụng rộng rãi. SPELL, các thuật toán và cấu trúc dữ liệu của nó đã truyền cảm hứng cho chương trình "ispell" của Unix.

Các phần mềm kiểm tra chính tả đầu tiên rộng rãi trên máy chủ chủ đạo vào cuối thập niên 1970. Một nhóm gồm sáu nhà ngôn ngữ học từ Đại học Georgetown đã phát triển hệ thống kiểm tra chính tả đầu tiên cho công ty IBM.

Henry Kučera phát minh một phần mềm kiểm tra chính tả cho máy VAX của Digital Equipment Corp vào năm 1981.

===Unix===
Chương trình Ispell|International Ispell thông dụng trong Unix dựa trên SPELL của R. E. Gorin. Nó được chuyển đổi thành ngôn ngữ lập trình C do Pace Willisson tại MIT.

Dự án GNU có trình kiểm tra chính tả của riêng mình là GNU Aspell. Ưu điểm chính của Aspell là nó có thể đề xuất các từ đúng một cách chính xác hơn cho các từ tiếng Anh viết sai.

Do khả năng của các trình kiểm tra chính tả truyền thống không kiểm tra được các từ trong các ngôn ngữ được chia từ phức tạp, người Hungary László Németh đã phát triển Hunspell, một trình kiểm tra chính tả hỗ trợ các ngôn ngữ chắp dính và các từ ghép phức tạp. Hunspell cũng sử dụng mã Unicode trong từ điển của mình.
Hunspell đã thay thế MySpell trước đó trong OpenOffice.org ở phiên bản 2.0.2.

Enchant là một trình kiểm tra chính tả tổng thể khác, được xuất phát từ AbiWord. Mục tiêu của nó là kết hợp các chương trình hỗ trợ các ngôn ngữ khác nhau như Aspell, Hunspell, Nuspell, Hspell (tiếng Do Thái), Voikko (tiếng Phần Lan), Zemberek (tiếng Thổ Nhĩ Kỳ) và AppleSpell trong một giao diện.

===Máy tính cá nhân===
Các trình kiểm tra chính tả đầu tiên cho máy tính cá nhân xuất hiện vào năm 1980, chẳng hạn như "WordCheck" cho các hệ thống Commodore được phát hành vào cuối năm 1980 kịp để quảng cáo được in vào tháng 1 năm 1981. Các nhà phát triển như Maria Mariani và Random House đã đẩy nhanh các gói OEM hoặc sản phẩm người dùng cuối vào thị trường phần mềm đang mở rộng nhanh chóng. Trên các PC tiền-Windows, các trình kiểm tra chính tả này là các chương trình độc lập, nhiều trong số đó có thể chạy trong chế độ terminate-and-stay-resident từ các gói xử lý văn bản trên các máy tính cá nhân có bộ nhớ đủ.

Tuy nhiên, thị trường đối với các gói độc lập chỉ ngắn ngủi, vì vào giữa thập niên 1980, các nhà phát triển của các gói xử lý văn bản phổ biến như WordStar và WordPerfect đã tích hợp các trình kiểm tra chính tả vào các gói của họ, chủ yếu được cấp phép từ các công ty trên, những công ty này nhanh chóng mở rộng hỗ trợ từ chỉ tiếng Anh sang nhiều ngôn ngữ châu Âu và cuối cùng ngay cả các ngôn ngữ châu Á. Tuy nhiên, điều này yêu cầu các phần mềm tăng tính tinh vi về thể thức cú pháp, đặc biệt là với các ngôn ngữ chắp dính nặng như tiếng Hungary và tiếng Phần Lan. Mặc dù quy mô thị trường xử lý văn bản ở một quốc gia như Iceland có thể không đủ biện minh cho khoản đầu tư thực hiện một trình kiểm tra chính tả, các công ty như WordPerfect vẫn nỗ lực địa phương hóa phần mềm của họ cho càng nhiều thị trường quốc gia càng có thể trong chiến lược tiếp thị toàn cầu của họ.

Khi Apple phát triển "trình kiểm tra chính tả toàn hệ thống" cho Mac OS X để "hệ điều hành thực hiện việc sửa chữa chính tả," đó là cái đầu tiên: bạn "không phải duy trì một trình kiểm tra chính tả riêng biệt cho mỗi chương trình." Độ phủ kiểm tra chính tả của Mac OS X bao gồm hầu như tất cả các ứng dụng được gói kèm và bên thứ ba.

"Visual Tools"' "VT Speller", được giới thiệu vào năm 1994, được "thiết kế cho các nhà phát triển các ứng dụng hỗ trợ Windows." Nó đi kèm với một từ điển nhưng có khả năng xây dựng và sử dụng từ điển phụ.

===Trình duyệt===
Các trình duyệt web như Firefox và Google Chrome cung cấp hỗ trợ kiểm tra chính tả, sử dụng Hunspell. Trước khi sử dụng Hunspell, Firefox và Chrome Chrome đã sử dụng MySpell và GNU Aspell, tương ứng.

===Chuyên ngành===
Một số trình kiểm tra chính tả có hỗ trợ riêng cho từ điển y học để giúp ngăn ngừa lỗi y khoa.

== Chức năng ==
Các chương trình kiểm tra chính tả đầu tiên là "trình xác minh" thay vì "trình sửa lỗi". Chúng không đưa ra đề xuất cho các từ đánh vần không chính xác. Điều này hữu ích cho lỗi đánh máy nhưng không hữu hiệu đối với các lỗi logic hoặc âm vị học. Thách thức mà các nhà phát triển đối mặt là sự khó khăn trong việc đưa ra đề xuất hữu ích cho các từ đánh vần sai. Điều này đòi hỏi việc đơn giản hóa các từ về một hình dạng cơ bản và áp dụng các thuật toán khớp mẫu.

Nhiều quan điểm cho rằng từ điển kiểm lỗi "càng lớn càng tốt", điều đó giúp cho từ đúng không bị đánh dấu nhầm là không đúng. Trên thực tế, tuy nhiên, kích thước tối ưu cho tiếng Anh vào khoảng 90.000 mục. Nếu nhiều hơn, các từ đánh vần sai có thể bị bỏ qua vì chúng bị nhầm lẫn với những từ khác. Ví dụ, khi dựa trên một tập ngữ liệu, từ "baht" có thể được xác định là một lỗi chính tả của từ "bath" hoặc "bat" hơn là một chỉ dẫn về đồng tiền Thái Lan.

Các trình kiểm tra chính tả MS-DOS đầu tiên chủ yếu được sử dụng trong chế độ kiểm tra từ trong các gói xử lý văn bản. Sau khi chuẩn bị một tài liệu, người dùng quét văn bản để tìm kiếm lỗi chính tả. Tuy nhiên, sau đó, xử lý theo lô được cung cấp trong các gói như CoAuthor từ Oracle chỉ tồn tại trong thời gian ngắn và cho phép người dùng xem kết quả sau khi tài liệu được xử lý và chỉ sửa được các từ mà chúng biết chắc là không đúng. 

Các trình kiểm tra chính tả ngày càng trở nên tinh vi; giờ đây chúng có khả năng nhận ra các lỗi ngữ pháp. Tuy nhiên, ngay cả khi chúng hoạt động tốt nhất, chúng thường không phát hiện được tất cả các lỗi trong một văn bản (ví dụ như lỗi từ đồng âm trong tiếng Anh) và sẽ đánh dấu các từ mới và từ nước ngoài là sai.