Как отделить извлеченный из pdf текст от символов которые в самом pdf отображаются как "изображения"
При попытке извлечь текст с помощью python (pymupdf) вместе с текстом я получаю символы, которые в самом pdf документе выглядят как изображения. Возможно это Лигатуры, но как это проверить
Как отделить текст не применяя OCR и регулярные выражения (и другие методы фильтрации)?
Ответы (1 шт):
Лично я вижу такое решение: составить алфавит допустимых символов и пунктуации, а оставшееся просто опустить.
Алфавит такой:
import string
ALPHABET = (" ".join(string.ascii_letters + string.digits + string.punctuation + string.printable) + "Ё Й Ц У К Е Н Г Ш Щ З Х Ъ Ф Ы В А П Р О Л Д Ж Э Я Ч С М И Т Ь Б Ю ё й ц у к е н г ш щ з х ъ ф ы в а п р о л д ж э я ч с м и т ь б ю").split()
Далее прогнать текст, который у Вас получился посимвольно и проверить есть ли каждый из этих символов в нашем алфавите.
Также если такая проверка не дает результатов и в полученном тексте есть бессвязный мусор из символов, то можно анализировать каждое слово на наличие таковых в языке, на котором написан PDF c помощью библиотеки langdetect:
from langdetect import detect
import string
def check_language(word):
if word in (not (string.digits + string.punctuation + string.printable)):
try:
lang = detect(word)
if lang == "ru": # Если документ написан на русском
return True
else:
return False
except:
return False
Проверив таким образом каждое слово можно получить связный текст.
Решения топорные, но пока идей больше нет
