PDF қарауға болады, бірақ көшірілмейді, ол сканерлеу болмауы мүмкін: алдымен мәтін қабатын және таңбаларды салыстыруды тексеріңіз
Егер мәтін жоқ болса, оны «мәтін қабаты қалыпты» деп тікелей бағалауға болмайды немесе сканерленген көшірме ретінде тікелей бағалауға болмайды. Мәтін, балама таңбалар және бет суретіне сілтемелер төменде сәйкесінше жазылады және қаралатын күй шығарылады; сурет сілтемелері кескіннің бүкіл бетті қамтитынын немесе мәтіннің сәйкестендірілетінін дәлелдемейді.
PDF форматындағы мәтінді көре алсаңыз, бірақ оны көшіре алмасаңыз, ол сканерленген көшірме болмауы мүмкін немесе таңбаларды салыстыруда ақаулық болуы мүмкін. Бұл мақала PDF мазмұнын шығару, аудару немесе құрылымдау қажет әзірлеушілер мен құжат өңдеушілерге арналған. Оқып болғаннан кейін сіз алдымен мәтін деңгейіндегі мәселелер мен кескін мазмұнын қалай ажыратуға болатынын білесіз және одан әрі не істеу керектігін анықтау үшін бірыңғай сигналдарды пайдаланасыз.
Мұндағы код пен мысалдар оқшауланған ортада үлгі тексерулерінен өткен синтетикалық үлгілерді пайдаланады және барлық нақты файлдарға немесе өнім өнімділігіне кепілдік бермейді. Маңызды құжаттарды өңдеуден бұрын түпнұсқаларды сақтап, мәтіндегі шекаралар мен қабылдау элементтеріне сәйкес қарап шығыңыз.
PDF файлын көруге болады, бірақ көшіруге болмайды. Бұл сканерленген көшірме ме? Бір сөйлемнен қорытынды
Тікелей үкім шығаруға болмайды. Алдымен мәтін қабатын және таңбаларды салыстыруды тексеріңіз, содан кейін бет кескінін қараңыз және соңында оның сканерлеу немесе салыстыру сәтсіздігі екенін анықтаңыз.
| сіздің жағдайыңыз | Ұсынылатын тәжірибелер | себебі |
|---|---|---|
| Мәтінді көре алады, бұзылған таңбаларды немесе бос орындарды көшіре алады | ToUnicode салыстыруын және қаріп кодтауын тексеріңіз | Көрнекі көрініс қалыпты, бірақ мәтін қабаты негізінен жоқ немесе қате салыстыру салдарынан бұзылған. |
| Көшірілген таңбалар орынды көрінеді, бірақ семантикасы дұрыс емес | Шығару нәтижелерін көрнекі мазмұнмен салыстырыңыз | Эвристикалық салыстыру қате таңбаларды шығаруы және бос емес тексеруден өтуі мүмкін |
| Мәтін жоқ, бірақ бетте суреттер бар | Кескінде мәтін бар-жоғын тексеріңіз, содан кейін OCR қажет екенін анықтаңыз | Кескін дәйексөздері толық бетті сканерлеуге тең келмейді және мәтіннің оқылатынын дәлелдемейді |
| Мәтін де, суреттер де тексерілмейді | Бет сызбасының мазмұнын қарау | Парақ бос деп қорытынды жасауға ешқандай мүмкіндік жоқ |
Неліктен көшірілген код бұзылған?
Пайдаланушылар мәтінді әдетте браузерде немесе оқырманда көре алады, бірақ көшірілген мәтін бұрмаланған, бос немесе қатысы жоқ таңбалар. Бұл әдетте зақымдалған файл емес және міндетті түрде сканерленген көшірме де емес. Түпкі себеп - PDF ішіндегі Юникодты салыстыру кестесіне (ToUnicode CMap) глиф (Глиф) жоқ немесе дұрыс емес.
Рендеринг механизмдері көрнекі мазмұнды салу үшін глиф индекстеріне сүйенеді, ал алмасу буфері мен мәтінді шығару құралдары семантикалық таңбаларды қалпына келтіру үшін салыстыру кестелеріне сүйенеді. Екеуі бұзылған кезде нашар мәтіннің «көрнекі қалыпты, машина оқымайтын» қабаты пайда болады.
Құжатты аударуды немесе құрылымдық алуды орындамас бұрын, алдымен мәселенің картада болуын немесе беттің өзі кескін екенін растау керек. Әйтпесе, кейінгі OCR немесе NLP процестері қате негізге негізделеді.
Глиф индексі мен Юникодты салыстыру арасындағы бұзу механизмі
PDF спецификациясы қаріптерге тек глиф контуры мен ен туралы ақпаратты ендіруге мүмкіндік береді, бірақ таңбаларды кодтауды салыстыруға болмайды. Келесі жағдайлар бұзылуды тудыруы мүмкін:
- PDF файлын жасайтын бағдарламалық құрал ToUnicode кестесін дұрыс жазбайды
- Теңшелетін кодтау пайдаланылады, бірақ декодтау ережелері берілмейді
Бұл кезде экстрактор тек бастапқы глиф идентификаторын (CID) ала алады. Бұл идентификаторлар рендерер үшін маңызды, бірақ мәтінді өңдеуге ешқандай мән бермейді.
Кейбір құралдар салыстыруды болжау үшін эвристиканы пайдаланады және нәтиже ақылға қонымды болып көрінетін, бірақ шын мәнінде дұрыс емес таңбалар болуы мүмкін, мысалы, қытай тыныс белгілерін латын әріптеріне түрлендіру немесе сандарды басқару таңбаларымен ауыстыру. Мұндай «жалған мәтін» таза бос орынға қарағанда нәзік, өйткені ол нөлдік емес тексеруден өте алады, бірақ ол төменгі ағындық сілтемелердегі дыбыссыз деректерді ластайды.
Мұндай мәселелерді бағалаудың кілті мәтінді таңдауға болатындығын көру емес, алынған жолдың көрнекі мазмұнға семантикалық сәйкестігін тексеру болып табылады.
Жад синтезі диагностикасы үшін PyMuPDF пайдаланыңыз
Келесі код жадтағы кірісті құрастырады және диагностикалық логиканы тексереді:
from io import BytesIO
from PIL import Image
import pymupdf
def inspect(page):
text = page.get_text().strip()
images = page.get_images()
if "\ufffd" in text:
state = "review_replacement_characters"
elif text:
state = "text_present_needs_semantic_review"
elif images:
state = "image_without_extracted_text"
else:
state = "empty_text_needs_review"
return {"state": state, "characters": len(text), "image_refs": len(images)}
with pymupdf.open() as doc:
doc.new_page().insert_text((50, 50), "Text sample")
doc.new_page()
picture = BytesIO()
Image.new("RGB", (16, 16), "red").save(picture, format="PNG")
doc.new_page().insert_image(pymupdf.Rect(10, 10, 100, 100), stream=picture.getvalue())
assert inspect(doc[0])["state"] == "text_present_needs_semantic_review"
assert inspect(doc[1])["state"] == "empty_text_needs_review"
assert inspect(doc[2])["state"] == "image_without_extracted_text"
assert inspect(doc[2])["characters"] == 0
Жоғарыдағы кодта diagnose_text_layer функциясы get_text("text") арқылы түпнұсқа мәтінді алады, басқару таңбалары мен бос орын таңбаларын сүзу үшін unicodedata.category пайдаланады және тиімді мазмұнның үлесін есептейді. Сонымен бірге ол get_text("blocks") арқылы кескін блоктарының болуын анықтайды.
Екі бекіту екі жағдайды тексереді: басып шығару жылдамдығы 0,9-дан жоғары қалыпты құжат және таңбалар саны нөлге тең сканерленген құжат. Бұл негізгі тармақталу логикасын қамтиды.
Бұл диагноз тек статистикалық сипаттамаларға негізделгенін ескеру маңызды. Шифрланған қаріптер немесе арнайы кодтаулар үшін әлі де қолмен тексеру қажет.
📊 Негізгі салыстыру
Төмендегі кестеде әртүрлі сигналдарға сәйкес келетін тексеру бағыттары және шығарылмайтын қорытындылар келтірілген:
| Сигнал | Келесі қадам — тексеру | Қорытынды жасауға болмайтын |
|---|---|---|
| Басып шығаруға арналған мәтін бар | Семантика, тәртіп және дереккөздерді тексеріңіз | Егер оны шығара алсаң, демек дұрыс |
| Балама кейіпкерлер бар | Кодтау және қаріп картасын қарау | Барлық кейіпкерлер жоғалып кетті |
| Суреттер бар, бірақ мәтін жоқ | Суретте мәтін бар ма, тексеріңіз | Бұл толық бет сканерлеу болуы керек |
| Мәтін де, суреттер де анықталмады | Бет сызбаларын қарау | Бұл бос парақ болуы керек |
🎯 Қай әдіс саған ыңғайлы?
Егер мәтінді көре алсаң, бірақ көшіре алмасаң
ToUnicode сәйкестендірулерін және қаріп кодтауларын тексеруге басымдық беріңіз, олар әдетте карта үзілістерінен туындайды.
Егер көшірілген мәтін қалыпты көрінсе, бірақ қателер болса,
Нәтижелерді абзац бойынша салыстыру және шығару үшін визуалды контентті қолданыңыз; тек нөлдік емес пе, жоқ па, қарамаңыз.
Егер бетте тек суреттер болса, мәтін болмаса
Суретте мәтін бар-жоғын тексеріп, OCR қажет пе, жоқ па, анықтаңыз. Бүкіл бетті сканерлеу деп ойламаңыз.
Егер сіз құжат аудармасын жасауға дайындалып жатсаңыз
Алдымен мәтіннің тұтастығын тексеруді аяқтаңыз, содан кейін сезімтал емес үлгіні аударма процесіне тапсырыңыз.
Құжат аудармасы үшін осы тексеру тізімін қолданыңыз
Алдымен бет тәртібін, дереккөз орнын және мәтіннің тұтастығын мұқият тексеріңіз, содан кейін сол десенсибилизация үлгісін аударма процесіне жіберіңіз. Аударудан кейін атау, негізгі мәтін және жазулардың дұрыс сәйкестігін тексеру қажет; тек мәтіннің тегістігіне қарап бағалау жеткіліксіз.
OmniDoc (Өнім жазбасы) көп форматты құжат аударма порталын ұсынады, ал ресми сайтта OCR, сөздіктер және екі тілде анықтамалық мүмкіндіктер бар. Егер файлдан тікелей бастағыңыз келсе, бұл жолды нақты үлгілермен бағалай аласыз.
Жүктеуге құқығыңыз бар Anxious файлын пайдаланып, осы мақаладағы тексеру тізімінің нәтижелерін тексеріңіз. Бұл OmniDoc мақалада аталған ашық бастапқы кодты кітапханалар немесе ішкі алгоритмдерді қолданады дегенді білдірмейді, сондай-ақ өнім өнімділігін тексеруді мысалдармен алмастырмайды.
❓ Жиі қойылатын сұрақтар (FAQ)
1. Егер мәтінді шығара алсаңыз, бұл мәтін қабаты дұрыс деген сөз бе?
Жоқ. Шығарылған мазмұнның семантика, тәртібі және дереккөз бойынша тексерілуі қажет, егер сәйкестендіру дұрыс болмаса, ол ақылға қонымды таңбалар шығаруы мүмкін.
2. Егер бетте суреттер болса, бұл сканерлеу деген сөз бе?
Міндетті емес. Суретке сілтемелер суреттің бүкіл бетті қамтығанын дәлелдемейді, сондай-ақ мәтінді тануға болатынын дәлелдемейді; суретте мәтін бар-жоғын тексеру керек.
3. Егер мәтін де, суреттер де анықталмаса, бұл бет бос деген сөз бе?
Осы негізде қорытынды жасауға болмайды. Шешім қабылдамас бұрын беттің бейнесін тексергенің дұрыс.
4. Бұл диагностикалық скрипт барлық PDF файлдары үшін қолданыла ма?
Жоқ. Ол тек статистикалық ерекшеліктерге негізделген; шифрланған қаріптер немесе арнайы кодтаулар әлі де қолмен тексеруді талап етеді.
📝 Қысқаша мазмұны
PDF-терді оқуға болады, бірақ көшірмеуге болады; алдымен мәтін қабаттары мен таңба сәйкестігін тексеріңіз, содан кейін сурет мазмұнын қараңыз, соңында оның сканерленген көшірмесі екенін анықтаңыз. Өңдеу алдында түпнұсқа құжаттарды сақтаңыз және әр затты тексеру материалдарымен бірге қараңыз.
Қазір тәжірибе алыңыз: Құжатыңызды жүктеп, түпнұсқа форматтауды сақтап, аударуды бастаңыз


