Cập nhật lần cuối:
Từ ngắn nhất và dài nhất thế giới - Thế giới cực đoan của số ký tự qua các ngôn ngữ
Tên hóa học của protein "titin" dài 189.819 ký tự. Chỉ riêng việc đọc to đã mất khoảng 3 giờ 30 phút, và nó không xuất hiện trong bất kỳ từ điển tiếng Anh nào. Trong khi đó, có những ngôn ngữ tồn tại từ chỉ gồm 1 ký tự. Nhìn các ngôn ngữ trên thế giới qua lăng kính số ký tự, ta thấy con người đã nén và mở rộng ý nghĩa bằng những cách đa dạng đến kinh ngạc. Bài viết này giới thiệu các từ ngắn nhất và dài nhất trong từng ngôn ngữ với số ký tự cụ thể.
Những từ ngắn nhất thế giới
"Từ có ý nghĩa chỉ với 1 ký tự" tồn tại trong nhiều ngôn ngữ hơn bạn nghĩ. Tiếng Anh có "I" (tôi) và "a" (một) là ví dụ ai cũng biết, nhưng tiếng Nhật còn cực đoan hơn. Các chữ Hán như 目 (mắt), 手 (tay), 歯 (răng), 火 (lửa), 木 (cây) là những từ hoàn chỉnh chỉ với một ký tự.
Tiếng Trung còn đi xa hơn - hầu như mọi chữ Hán đều hoạt động như một từ độc lập có nghĩa hoàn chỉnh. Các ký tự như 人 (người), 大 (lớn), 水 (nước), 山 (núi) gói gọn cả khái niệm trong một ký tự. Thiết kế ngôn ngữ hoàn thành ý nghĩa trong một ký tự là đặc điểm thú vị khi xem xét mối quan hệ giữa ký tự và byte.
| Ngôn ngữ | Ví dụ từ ngắn nhất | Số ký tự | Nghĩa | Ghi chú |
|---|---|---|---|---|
| Tiếng Anh | I, a | 1 ký tự | tôi / một | I viết hoa là 1 byte |
| Tiếng Nhật (Hán tự) | 目, 手, 火 | 1 ký tự | mắt, tay, lửa | 3 byte trong UTF-8 |
| Tiếng Trung | 人, 大, 水 | 1 ký tự | người, lớn, nước | Gần như mọi chữ Hán đều là từ 1 ký tự |
| Tiếng Hàn | 나 (na) | 1 ký tự | tôi | 1 ký tự Hangul = 3 byte UTF-8 |
| Tiếng Việt | ở | 1 ký tự | sống, ở | 1 ký tự có dấu thanh |
Điểm đáng chú ý là mật độ thông tin của "1 ký tự" khác nhau rất lớn giữa các ngôn ngữ. Tiếng Anh "a" là 1 byte, nhưng tiếng Nhật "目" là 3 byte trong UTF-8. Cùng "1 ký tự" nhưng lượng dữ liệu máy tính xử lý chênh lệch 3 lần. Đây là cùng cấu trúc với cách sự khác biệt toàn chiều rộng và nửa chiều rộng ảnh hưởng đến đếm ký tự.
Từ dài trong ngôn ngữ châu Âu - Văn hóa từ ghép của tiếng Đức
Tiếng Đức được gọi là "vua từ ghép". Danh từ có thể nối vô hạn để tạo từ mới, về lý thuyết có thể tạo ra từ dài vô tận.
| Từ | Số ký tự | Nghĩa | Bối cảnh |
|---|---|---|---|
| Donaudampfschifffahrtselektrizitätenhauptbetriebswerkbauunterbeamtengesellschaft | 80 ký tự | Hiệp hội quan chức cấp dưới của trụ sở quản lý dịch vụ điện tàu hơi nước sông Danube | Sách Kỷ lục Guinness bản 1972 đăng đây là từ tiếng Đức dài nhất từng được in (khi đăng viết 79 ký tự theo chính tả cũ) |
| Rindfleischetikettierungsüberwachungsaufgabenübertragungsgesetz | 63 ký tự | Luật ủy quyền giám sát ghi nhãn thịt bò | Tên luật của bang Mecklenburg-Vorpommern, ban hành năm 1999 và bãi bỏ năm 2013 |
| Kraftfahrzeughaftpflichtversicherung | 36 ký tự | Bảo hiểm trách nhiệm xe cơ giới | Từ ghép thường dùng |
Năm 2013, bang Mecklenburg-Vorpommern của Đức bãi bỏ tên luật 63 ký tự. Đây là luật về bệnh bò điên trở nên không cần thiết do thay đổi quy định EU. Việc bãi bỏ trở thành tin tức với tiêu đề "từ dài nhất tiếng Đức đã biến mất".
Tên địa danh dài nhất thế giới
| Tên địa danh | Số ký tự | Vị trí | Ngôn ngữ |
|---|---|---|---|
| Taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu | 85 ký tự | New Zealand | Tiếng Maori |
| Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch | 58 ký tự | Wales (Anh) | Tiếng Wales |
| กรุงเทพมหานคร... (tên chính thức Bangkok) | 168 ký tự (chuyển tự Latin) | Thái Lan | Tiếng Thái |
| Chargoggagoggmanchauggagoggchaubunagungamaugg | 45 ký tự | Massachusetts (Mỹ) | Gốc Algonquin |
Tên ngọn đồi New Zealand có nghĩa "nơi Tamatea, người đàn ông có đầu gối lớn, trượt, leo và nuốt núi, thổi sáo cho người yêu". Văn hóa Maori đặt tên địa danh bằng cách mô tả sự kiện xảy ra tại đó, tạo ra những tên cực dài.
Ngược lại, tên địa danh cũng lệch về phía rất ngắn. Trong tiếng Na Uy, tiếng Đan Mạch và tiếng Thụy Điển, "å" là một từ có nghĩa "dòng suối nhỏ" và xuất hiện nguyên dạng như một thành phần của tên địa danh. Tên địa danh cực ngắn gây ra loại vấn đề khác: gõ vào hộp tìm kiếm cũng không lọc được ứng viên, hoặc bị chặn bởi ràng buộc số ký tự tối thiểu của cơ sở dữ liệu - làm khó nhà phát triển theo hướng ngược lại với giới hạn ký tự URL.
Tên hóa chất - Đỉnh cao của số ký tự
Câu hỏi "từ dài nhất thế giới" không có một câu trả lời duy nhất, bởi kết quả thay đổi theo việc ta chấp nhận cái gì là một từ. Chỉ tính mục từ có trong từ điển? Có tính cả tên địa danh và tên luật? Có đếm cả tên hóa học được sinh ra một cách máy móc theo quy tắc đặt tên? Mỗi tiêu chí lập nên một kỷ lục khác nhau. Trong hóa học, danh pháp IUPAC biến cấu trúc phân tử thành tên gọi, nên phân tử càng lớn thì tên càng dài.
| Tên chất | Số ký tự | Loại | Có trong từ điển |
|---|---|---|---|
| Tên hóa học của titin | 189.819 ký tự | Protein | Không |
| Pneumonoultramicroscopicsilicovolcanoconiosis | 45 ký tự | Bệnh phổi (cùng một bệnh với bụi phổi silic) | Có (từ điển tiếng Anh) |
| Supercalifragilisticexpialidocious | 34 ký tự | Từ tạo trong phim | Một số từ điển |
Từ dài nhất có mặt trong các từ điển tiếng Anh lớn là "Pneumonoultramicroscopicsilicovolcanoconiosis" (45 ký tự), chỉ bệnh phổi do hít phải những hạt silic cực mịn có nguồn gốc núi lửa. Tuy nhiên về mặt y học, từ này chỉ cùng một bệnh với "bụi phổi silic" (silicosis) đã có tên sẵn, và bản thân nó được tạo ra một cách có chủ ý nhằm "đặt ra từ dài nhất trong tiếng Anh". Nếu bỏ các thuật ngữ chuyên ngành ra thì từ dài nhất là "floccinaucinihilipilification" (29 ký tự, hành vi đánh giá một thứ là vô giá trị), với những ví dụ sử dụng được ghi nhận từ tận năm 1741.
Giới hạn độ dài định danh trong ngôn ngữ lập trình
| Ngôn ngữ | Độ dài định danh tối đa | Khuyến nghị thực tế | Ghi chú |
|---|---|---|---|
| C (C99) | 63 ký tự (có hiệu lực) | 20-30 ký tự | Vượt 63 không gây lỗi cú pháp |
| Java | Không có giới hạn trong đặc tả ngôn ngữ | 20-40 ký tự | Định dạng tệp class có giới hạn độ dài riêng |
| Python | Không giới hạn | 20-30 ký tự | PEP 8 khuyến nghị ngắn gọn |
| JavaScript | Không giới hạn | 15-30 ký tự | Được rút ngắn khi minify |
| SQL (chuẩn) | 128 ký tự | Dưới 30 ký tự | Khác nhau theo RDBMS |
| COBOL | 31 ký tự | 31 ký tự | Độ dài tối đa của từ do người dùng định nghĩa |
Từ do người dùng định nghĩa trong COBOL dài tối đa 31 ký tự, có thể chứa chữ, số, dấu gạch nối và dấu gạch dưới. Điểm khác biệt lớn so với các ngôn ngữ hiện đại là giới hạn này được ghi rõ ngay trong đặc tả ngôn ngữ. Ngôn ngữ hiện đại hầu như không có giới hạn, nhưng độ dài khuyến nghị cho tên biến và hàm là 20-30 ký tự, phản ánh giới hạn khả năng đọc của con người.
Mật độ thông tin mỗi ký tự - Chỉ tính được giới hạn trên
Dựa trên các từ ngắn nhất và dài nhất đã xem ở trên, hãy thử nghĩ về "mật độ thông tin của một ký tự". Từ góc nhìn lý thuyết thông tin, lượng thông tin mà một ký tự truyền tải được chênh nhau rất xa tùy theo hệ thống chữ viết.
Điều tính được ở đây là "giới hạn trên". Nếu một hệ thống chữ viết có N ký tự và ta giả định mọi ký tự xuất hiện với xác suất bằng nhau, thì lượng thông tin một ký tự mang được là log2 N bit. Bảng chữ cái 26 chữ cho khoảng 4,7 bit; 11.172 âm tiết Hangul cho khoảng 13,4 bit; chữ Hán dùng hằng ngày dù chỉ tính vài nghìn chữ cũng cho khoảng 11 bit. Lý lẽ rất đơn giản: càng nhiều loại ký tự thì một ký tự càng phân biệt được nhiều nghĩa.
So các giới hạn trên với nhau, một chữ Hán mang được hơn hai lần lượng thông tin của một chữ cái (11,2 ÷ 4,7 ≈ 2,4). Nhưng trong văn bản thực tế, tần suất xuất hiện của các ký tự lệch rất mạnh (tiếng Anh thì e và t nổi trội, tiếng Nhật thì の và い), nên lượng thông tin trung bình mỗi ký tự nhỏ hơn giới hạn trên này. Cần nhớ rằng tỷ lệ giữa các giới hạn trên không đồng nghĩa với tỷ lệ khả năng biểu đạt thực tế.
Xét về khối lượng dữ liệu, chỉ nhìn số ký tự cũng dễ lệch khỏi thực tế. Trong UTF-8, chữ Hán, hiragana và Hangul chiếm 3 byte mỗi ký tự còn chữ cái Latin chỉ 1 byte, nên chênh lệch gấp đôi về số ký tự vẫn có thể đảo ngược khi tính theo byte. Thêm nữa, khi đi qua các thuật toán nén như gzip, văn bản càng nhiều phần lặp lại thì càng co nhỏ, nên kích thước sau khi nén phụ thuộc vào cách viết hơn là vào ngôn ngữ.
Giới hạn ký tự và sự công bằng ngôn ngữ
Khi X (Twitter) mở rộng giới hạn tiếng Anh lên 280 ký tự năm 2017 trong khi giữ tiếng Nhật, Trung, Hàn ở 140, đó là quyết định tính đến khoảng cách mật độ thông tin này. Việc xem 280 ký tự tiếng Anh và 140 ký tự tiếng Nhật là mang lượng thông tin tương đương chỉ là một cách ước lượng, tức một sự đơn giản hóa có chủ ý trong thiết kế.
Sự khác biệt giữa các ngôn ngữ cũng quan trọng khi thiết kế độ dài VARCHAR cơ sở dữ liệu. Trường đủ 100 ký tự cho tiếng Anh có thể lưu thông tin tương đương trong 50 ký tự tiếng Nhật.
Số ký tự cực đoan dạy chúng ta điều gì
Đặt từ ngắn nhất và dài nhất thế giới cạnh nhau, sự khác biệt cơ bản trong thiết kế ngôn ngữ hiện ra. Chữ Hán tiếng Trung và Nhật tiến hóa theo hướng "nén ý nghĩa vào một ký tự", trong khi tiếng Đức và Phần Lan tiến hóa theo hướng "nối từ để biểu đạt khái niệm mới".
Hiểu cơ bản Unicode sẽ thấy định nghĩa "1 ký tự" bản thân nó đã phức tạp về mặt kỹ thuật. Đằng sau công việc tưởng chừng đơn giản là đếm ký tự, ẩn chứa thế giới sâu sắc của ngôn ngữ và công nghệ.
Thử với công cụ đếm ký tự
Đo các từ được giới thiệu trong bài viết này bằng công cụ đếm ký tự thực tế sẽ mang lại những phát hiện thú vị. Từ ghép 80 ký tự tiếng Đức là bao nhiêu byte trong UTF-8? Tên địa danh 85 ký tự New Zealand mở rộng thành bao nhiêu ký tự khi mã hóa URL? Hãy tự tay trải nghiệm cách định nghĩa "1 ký tự" thay đổi theo ngữ cảnh.