<jupyter_start><jupyter_text>Картинку в текст и просмотр ошибок в %<jupyter_code>def pic_to_text(image):

    preprocess = "thresh"

#     загрузить образ и преобразовать его в оттенки серого
    image = cv2.imread(image)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    # проверьте, следует ли применять пороговое значение для предварительной обработки изображения
    if preprocess == "thresh":
        gray = cv2.threshold(gray, 0, 255,
            cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]

    # если нужно медианное размытие, чтобы удалить шум
    elif preprocess == "blur":
        gray = cv2.medianBlur(gray, 3)

    # сохраним временную картинку в оттенках серого, чтобы можно было применить к ней OCR
    filename = "{}.png".format(os.getpid())
    cv2.imwrite(filename, gray)
    
    # Теперь применим OCR к изображению, используя pytesseract:
    # загрузка изображения в виде объекта image Pillow, применение OCR, а затем удаление временного файла
    text = pytesseract.image_to_string(Image.open(filename), lang='rus')
    os.remove(filename)
    return text
def check_spec_symbols(test_str):
#     pattern = r'[^\.a-z0-9]'
    pattern = r'[^\.a-zA-Zа-яА-Я]'
    if re.search(pattern, test_str):
        #Character other then . a-z 0-9 was found
        return True
    else:
        #No character other then . a-z 0-9 was found
        return False
def get_clean_text(name):
    t = pic_to_text(name)
    
    speller = YandexSpeller()
    text = t
    spl = text.split()
    
    for el in spl:
        if (len(el) == 1 or check_spec_symbols(el)):
            spl.remove(el)
            
    count = 0
    for el in spl:
        check = Word(el)
        if (check.correct == False):
            count += 1
            # create df and fill in
        #     print('el: {}, correct: {}, count: {}'.format(el, check.correct, count))
    perc = count / len(spl) * 100
    print('{}% of mistakes!'.format(perc))
get_clean_text('bad.jpg')<jupyter_output>41.66666666666667% of mistakes!<jupyter_text>Проверить разом текст и заменить слова, не всегда работает<jupyter_code>def get_text(text):
    changes = {change['word']: change['s'][0] for change in speller.spell(text)}
    for word, suggestion in changes.items():
        text = text.replace(word, suggestion)
    print(text)<jupyter_output><empty_output><jupyter_text>Проверить варианты исправления и сохранить вариант<jupyter_code>check.variants
check.spellsafe
u'test'<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11115602263540825, 'fraction_numerical': 0.01778496362166532, 'mean_word_length': 3.097682119205298, 'pattern_counts': {'":': 2, '<': 12, '<?xml version=': 0, '>': 12, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 1, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '369292', 'license': 'Apache-2.0', 'n_tokens_mistral': 940, 'n_tokens_neox': 962, 'n_words': 215, 'path': 'Project/Text detection.ipynb', 'repo_name': 'vanavski/Documents-Analyzer', 'size': '2474'}