OCR văn bản Fraktur: Giữ nguyên bản gốc trước khi hiện đại hóa
Áp dụng một thử nghiệm OCR Fraktur nhỏ, có thể tái lập để phân biệt lỗi nhận dạng với việc chuẩn hóa chữ s dài trước khi tìm kiếm hoặc dịch một cuốn sách cổ.

Để OCR chữ Fraktur in, hãy chọn một mô hình hỗ trợ kiểu chữ này, thử nghiệm một đoạn ngắn dựa trên trang gốc và quyết định xem bản chép lại của bạn nên giữ nguyên chữ s dài, ſ, hay chuẩn hóa nó thành s. Hãy tách biệt bản chép nguồn đã qua đối soát với mọi bản hiện đại hóa hoặc bản dịch. Một từ trông quen mắt hơn chưa chắc đã là cách đọc trung thực hơn so với bản in.
Chúng tôi đã thử nghiệm hai đoạn văn bản tiếng Đức ngắn tự biên soạn bằng phông chữ Fraktur cùng một bản đối chứng bằng phông chữ hiện đại. Ngay cả trên những hình ảnh rõ nét này, mô hình Fraktur vẫn biến iſt thành ift ở một đoạn và thành if ở một đoạn khác. Kết quả hữu ích thu được không phải là bảng xếp hạng công cụ chiến thắng: mà đó là minh chứng cho thấy nhận diện ký tự, lựa chọn quy ước chép văn bản và hiện đại hóa ngôn ngữ là ba công việc hoàn toàn khác nhau.
Hướng dẫn này dành cho các trang in. Tài liệu không xây dựng quy trình làm việc cho chữ viết tay Kurrent hoặc Sütterlin, các bản thảo hư hại, hay toàn bộ một bộ sưu tập lịch sử.
Quyết định thế nào là chính xác trước khi chạy OCR
Hãy viết ra một câu quy tắc chép lại trước khi so sánh các công cụ. Ví dụ: “Giữ nguyên chính tả gốc và chữ s dài; đánh dấu những từ không thể xác minh.” Nếu không, bạn có thể đánh giá nhầm một trường hợp chuẩn hóa có chủ đích là lỗi—hoặc chấp nhận một chỉnh sửa ngoài ý muốn chỉ vì nó trông trôi chảy.
OCR-D mang đến một ví dụ cụ thể cho sự phân biệt này. Hướng dẫn Cấp độ 1 của dự án thể hiện cả chữ s dài lẫn chữ s tròn là s; Cấp độ 2 và 3 phân biệt rõ giữa chúng. Đây là những quy ước chép bản thảo, chứ không phải chỉ dẫn biến mọi cách viết cổ thành dạng tương đương hiện đại. Hãy xem quy định chính thức về quy tắc chữ s Cấp độ 1 và quy tắc chữ s Cấp độ 2/3.
Đối với một dự án đọc cá nhân, hãy tách biệt các kết quả đầu ra này:
| Đầu ra | Ví dụ từ văn bản mẫu do chúng tôi tự soạn | Mục đích sử dụng |
|---|---|---|
| Bản ghi bám sát nguồn | Die rothe Blume ſteht hier. | Đối chiếu các ký tự nhận dạng được với hình ảnh |
| Bản phái sinh chuẩn hóa s dài | Die rothe Blume steht hier. | Tìm kiếm hoặc đọc mà không phân biệt s dài |
| Bản phái sinh hiện đại hóa | Die rote Blume steht hier. | Một phiên bản biên tập riêng biệt có thay đổi chính tả |
Hàng thứ hai chỉ đổi ſ thành s; phiên bản này không triển khai toàn bộ các quy tắc OCR-D Cấp độ 1. Hàng thứ ba cũng thay đổi cả chính tả gốc. Không một bản phái sinh nào được phép âm thầm thay thế bản ghi bám sát nguồn.
Đặc biệt, không thay thế hàng loạt chữ cái f bằng s. Kết quả OCR bị lỗi của chúng tôi có chứa ift, nhưng chữ f chuẩn cũng có thể xuất hiện trong văn bản gốc. Hãy sửa từ dựa trên hình ảnh đối chiếu, chứ không dựa trên quy tắc thay thế áp đặt hàng loạt.
Điều gì đã xảy ra trong thử nghiệm tám lượt gọi của chúng tôi
Vào ngày 11 tháng 9 năm 2026, chúng tôi đã kết xuất hai đoạn văn giảng dạy gốc dài ba dòng bằng phông chữ UnifrakturMaguntia và Noto Sans. Mỗi hình ảnh được nhận dạng bằng hai mô hình Tesseract cố định: mô hình chữ viết Fraktur tessdata_best và mô hình tiếng Anh của nó. Cấu hình tiếng Anh đóng vai trò đối chiếu, chứ không phải là đường cơ sở tiếng Đức hiện đại.
Cả tám lần gọi đều sử dụng Tesseract 5.5.3, chế độ LSTM (--oem 1), một khối văn bản đơn (--psm 6) và độ phân giải 300 dpi. Chúng tôi không thay đổi cài đặt, không loại trừ kết quả và không thử nhận dạng lại trong thử nghiệm gốc. Quá trình chạy lại gói thử nghiệm vào ngày 12 tháng 9 với cùng tám hình ảnh đó đã tái hiện chính xác từng byte đầu ra đã lưu.
Các hình ảnh được định hình chữ chân thực bằng Apple CoreText cùng tính năng nối chữ (ligature) được bật, thay vì vẽ dưới dạng các hộp ký tự rời rạc. Chúng sử dụng văn bản kích thước 64 pixel trên khung vẽ màu trắng 2200 × 460. Hình ảnh, kiểm tra số lượng glyph, giấy phép phông chữ, mã băm mô hình và đầu ra thô đều có sẵn trong hướng dẫn gói thử nghiệm.

Mô hình chuyên dụng vẫn cần chỉnh sửa
Dòng nguồn đầu tiên là:
Das Waſſer iſt klar.
Trên hình ảnh phông chữ Fraktur, mô hình Fraktur trả về:
Das Waſſer ift klar.
Phần lớn dòng văn bản vẫn nguyên vẹn, nhưng ſ trong iſt đã biến thành f. Ở đoạn văn thứ hai, Das Thal iſt weit. đã trở thành Das Thal if weit.: quá trình nhận dạng đã thay đổi một ký tự và bỏ sót một ký tự khác. Việc đọc kết quả đầu ra thấy có vẻ giống tiếng Đức chuẩn không thể thay thế cho việc đối chiếu với bản gốc.
Đã có một lỗi khác xảy ra ở mẫu đối chứng dùng phông chữ hiện đại. Mô hình Fraktur vẫn giữ nguyên các từ trong đoạn văn đầu tiên nhưng lại đổi hai dấu chấm phẩy trong Buch 12; Seite 27; Nummer 105. thành dấu hai chấm. Nếu chỉ kiểm tra chữ s dài thì sẽ bỏ sót những thay đổi về dấu câu này.
Mục tiêu đối chiếu làm thay đổi điểm số
Chúng tôi chấm điểm từng kết quả đầu ra thô dựa trên hai mục tiêu được ấn định trước khi nhận dạng: văn bản nguồn chính xác tuyệt đối, và văn bản nguồn với duy nhất ſ → s. Cả hai phép so sánh đều chuẩn hóa Unicode sang NFC và thu gọn khoảng trắng; chúng vẫn giữ nguyên chữ hoa/thường và dấu câu. Chúng tôi không chuẩn hóa làm mất chữ hoa/thường của đầu ra thô trước khi chấm điểm.
Các số liệu dưới đây là khoảng cách chỉnh sửa ký tự (character-edit distance)—bao gồm thao tác chèn, xóa và thay thế—chứ không phải phần trăm độ chính xác.
| Đoạn văn | Phông chữ kết xuất | Mô hình OCR | Chỉnh sửa so với nguồn chính xác | Chỉnh sửa so với bản đích chỉ chuẩn hóa chữ s dài |
|---|---|---|---|---|
| Chữ s dài và chữ số | Fraktur | Fraktur | 1 | 6 |
| Chữ s dài và chữ số | Fraktur | Tiếng Anh | 8 | 8 |
| Chữ s dài và chữ số | Noto Sans | Fraktur | 2 | 8 |
| Chữ s dài và chữ số | Noto Sans | Tiếng Anh | 7 | 7 |
| Chính tả mang phong cách lịch sử | Fraktur | Fraktur | 2 | 4 |
| Chính tả mang phong cách lịch sử | Fraktur | Tiếng Anh | 7 | 7 |
| Chính tả mang phong cách lịch sử | Noto Sans | Fraktur | 0 | 3 |
| Chính tả mang phong cách lịch sử | Noto Sans | Tiếng Anh | 4 | 4 |
Số 0 ở một hàng biểu thị sự trùng khớp chính xác đối với đoạn văn bản đầu vào ngắn đó. Nó không nói lên điều gì về trang tiếp theo của một cuốn sách thực tế. Ngược lại, một mô hình giữ lại chính xác ſ sẽ nhận thêm các điểm khác biệt khi so sánh với văn bản mục tiêu yêu cầu s. Những điểm khác biệt đó thể hiện sự không khớp về quy tắc chuẩn hóa, chứ không hẳn là nhận dạng sai.
Hãy xem qua toàn bộ kết quả đầu ra và điểm số gốc, các văn bản nguồn cố định cùng quy tắc tính điểm, hoặc tập lệnh xác thực. Gói dữ liệu ghi lại mã băm SHA-256 để có thể đối chiếu chính xác mô hình, hình ảnh và kết quả đầu ra tương ứng.
Những điều thử nghiệm này không thể phản ánh
Đây chỉ là hai đoạn văn bản nhân tạo, phông chữ lớn và rõ nét—không phải bản quét của một ấn bản cổ. Chúng tôi không thử nghiệm với mực mờ, chữ in nhỏ, rãnh gáy sách, bố cục chia cột, giấy hỏng, chữ viết tay hay bản chép tay độc lập của con người. Chúng tôi cũng không thử nghiệm mô hình tiếng Đức hiện đại, các công cụ OCR thương mại, hay kết quả OCR và bản dịch của BookTranslator.
Hãy xem các ví dụ này như lý do để bạn tự kiểm tra tài liệu của chính mình, chứ không phải ước tính về tỷ lệ lỗi của toàn bộ cuốn sách. Chúng tôi sẽ không dựa vào bảng này để chọn một dịch vụ OCR cho cả bộ sưu tập lịch sử.
Thực hiện thử nghiệm có giới hạn trên chính các trang bạn cần
Nếu sử dụng Tesseract cục bộ, hãy ghi lại phiên bản công cụ và tệp mô hình chính xác trước khi so sánh kết quả đầu ra. Chỉ riêng tên mô hình là chưa đủ để định danh tệp đã tải về. Hồ sơ nguồn gốc của chúng tôi dẫn liên kết đến các nguồn phông chữ và mô hình công khai đã được ghim cố định; các tệp mô hình dung lượng lớn không được đóng gói kèm theo bài viết.
Đối với hình ảnh mẫu một khối văn bảncủa chúng tôi, với mô hình chữ Fraktur được lưu cục bộ dưới dạng models/Fraktur.traineddata, lệnh thực thi là:
tesseract samples/long-s-fraktur.png stdout --tessdata-dir ./models -l Fraktur --oem 1 --psm 6 --dpi 300
Phần tài liệu hướng dẫn dòng lệnh của Tesseract giải thích chế độ LSTM và giả định khối văn bản đồng nhất đơn lẻ của PSM 6. Giả định đó phù hợp với hình ảnh ba dòng của chúng ta. Đây không phải là khuyến nghị xử lý mọi trang sách nhiều cột bằng PSM 6.
Đối với cuốn sách của bạn, hãy bắt đầu bằng một đoạn văn bạn có thể tự tin chép lại và một trang khó hơn mang tính đại diện cho tài liệu cần xử lý. Hãy đưa vào một tên riêng hoặc thuật ngữ lạ, một con số và bất kỳ kiểu chữ nào có sự thay đổi. Nếu cuốn sách xen kẽ nhiều kiểu chữ hoặc ngôn ngữ, hãy sử dụng hướng dẫn OCR PDF đa ngôn ngữ riêng biệt thay vì mặc định rằng một đoạn văn Fraktur chuẩn chỉnh sẽ áp dụng cho toàn bộ tài liệu.
Hãy giữ nguyên bản quét gốc. Lưu kết quả OCR thô tách biệt với các bản sửa lỗi, đồng thời ghi lại số trang hoặc mã định danh hình ảnh cho từng đoạn đã kiểm tra. Nếu kết quả không đọc được, hãy xem lại hình ảnh trang và phần phân đoạn trước khi mở rộng tác vụ lên hàng trăm trang.
Hiệu đính bản ghi mà không tự ý suy diễn từ ngữ bị thiếu
Sử dụng một nhật ký sửa lỗi nhỏ gồm bốn cột: vị trí nguồn, OCR thô, bản đọc đã kiểm tra và lý do. Cột lý do cần phân biệt rõ giữa lỗi ký tự trực quan và chỉnh sửa biên tập.
| Quan sát | Hành động hữu ích | Hành động nên tránh |
|---|---|---|
Hình ảnh thể hiện rõ iſt; OCR lại nhận dạng thành ift | Sửa đúng vị trí xuất hiện này dựa trên hình ảnh | Thay thế tất cả f trong tài liệu |
OCR giữ nguyên rothe, nhưng bạn muốn đổi thành rote để dễ đọc | Giữ lại dạng gốc và tạo một bản phái sinh hiện đại hóa có gắn nhãn | Coi việc hiện đại hóa chữ viết là một bản sửa lỗi OCR |
| Một chữ số hoặc dấu câu có sự sai lệch | Kiểm tra kỹ vị trí đó ngay cả khi câu văn xung quanh đọc rất trôi chảy | Chỉ rà soát các hình dạng chữ cái bất thường |
| Hình ảnh thực sự không thể đọc được | Đánh dấu điểm chưa chắc chắn trong bản gõ thô đang xử lý và giữ lại tham chiếu hình ảnh | Chấp nhận một từ được tạo ra có vẻ hợp lý như bằng chứng đã được khôi phục |
Nếu tệp PDF tải về đã cho phép chọn văn bản, hãy so sánh văn bản dán ra với hình ảnh trước khi bắt đầu lại từ đầu. Bài viết chẩn đoán lỗi sao chép-dán PDF giải thích lý do tại sao một trang nhìn bề ngoài có vẻ đúng nhưng văn bản ẩn hoặc ánh xạ bên dưới lại sai. Đó là một vấn đề khác hẳn so với việc lựa chọn mô hình nhận dạng chữ Fraktur.
Hãy dừng lại sau khi đã tạo ra văn bản nguồn đáng tin cậy nếu mục đích trọn vẹn của bạn chỉ là tìm kiếm, đối chiếu trích dẫn hoặc đọc tiếng Đức. Dịch thuật không phải là bước dọn dẹp bắt buộc.
Chỉ dịch khi rào cản ngôn ngữ vẫn còn tồn tại
Đối với những độc giả cần ngôn ngữ khác, văn bản nguồn đã được kiểm tra chính là điểm bắt đầu hữu ích cho việc dịch thuật. Hãy tách biệt rõ ràng bản quét, bản gõ đã rà soát và bản dịch để bạn có thể xác định một đoạn văn gây tranh cãi bắt nguồn từ khâu nhận dạng hay khâu dịch thuật. Hướng dẫn về quy trình dịch PDF dạng quét sẽ cung cấp bức tranh chuyển giao tổng thể hơn.
Nếu bạn chọn công cụ dịch PDF của BookTranslator, hãy đánh giá thử một phần tiêu biểu trong tài liệu của bạn trước khi tin cậy hoàn toàn vào toàn bộ kết quả. Thử nghiệm của chúng tôi không kiểm chứng khả năng xử lý chữ Fraktur lịch sử của BookTranslator. Chế độ OCR của công cụ này sẽ tái tạo lại một tài liệu mới tinh và có thể làm thay đổi bố cục trang gốc, phông chữ và kích thước chữ; đừng xem kết quả đó là bản sao nguyên gốc hoặc mặc định rằng các tham chiếu số trang gốc vẫn được giữ nguyên vẹn.
Trình tự thực tế rất đơn giản: xác định chính xác cách đọc bản nguồn, ghi chú rõ mọi chuẩn hóa, sau đó mới dịch nếu cần. Sự trôi chảy thuộc về khâu cuối cùng của quy trình đó—chứ không thể thay thế cho bằng chứng xác thực ngay từ bước đầu.
Bài viết liên quan





