{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.7.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":43873,"databundleVersionId":5585780,"sourceType":"competition"}],"dockerImageVersionId":30407,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"!pip -qq install pyspellchecker","metadata":{"scrolled":true,"execution":{"iopub.status.busy":"2024-03-06T13:55:12.236663Z","iopub.execute_input":"2024-03-06T13:55:12.237184Z","iopub.status.idle":"2024-03-06T13:55:24.717895Z","shell.execute_reply.started":"2024-03-06T13:55:12.237113Z","shell.execute_reply":"2024-03-06T13:55:24.715669Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Part 1 - EasyOCR + SpellChecker","metadata":{}},{"cell_type":"code","source":"import easyocr\nfrom PIL import Image\nfrom spellchecker import SpellChecker\nimport matplotlib.pyplot as plt\n\n# Функция для распознавания текста с изображения\ndef recognize_text(image_path):\n    reader = easyocr.Reader(['en'])\n    result = reader.readtext(image_path)\n    text = ' '.join([res[1] for res in result])\n    return text\n\n# Функция для исправления опечаток в тексте\ndef correct_spelling(text):\n    spell = SpellChecker()\n    words = text.split()\n    corrected_words = []\n    for word in words:\n        corrected_word = spell.correction(word)\n        if corrected_word is not None:\n            corrected_words.append(corrected_word)\n        else:\n            corrected_words.append(word)\n    corrected_text = ' '.join(corrected_words)\n    return corrected_text\n\n# Список путей к изображениям графиков\nimage_paths = [\n    \"/kaggle/input/benetech-making-graphs-accessible/train/images/0000ae6cbdb1.jpg\",\n    \"/kaggle/input/benetech-making-graphs-accessible/train/images/0003a50817cf.jpg\",\n    \"/kaggle/input/benetech-making-graphs-accessible/train/images/0005413054c9.jpg\",\n    \"/kaggle/input/benetech-making-graphs-accessible/train/images/0005e64fdc6e.jpg\",\n    \"/kaggle/input/benetech-making-graphs-accessible/train/images/000614d3eab6.jpg\",\n    \"/kaggle/input/benetech-making-graphs-accessible/train/images/000631f33080.jpg\",\n    \"/kaggle/input/benetech-making-graphs-accessible/train/images/000917f5d829.jpg\",\n    \"/kaggle/input/benetech-making-graphs-accessible/train/images/000944919c5c.jpg\",\n    \"/kaggle/input/benetech-making-graphs-accessible/train/images/000a2d157ea1.jpg\",\n    \"/kaggle/input/benetech-making-graphs-accessible/train/images/000b92c3b098.jpg\",\n]\n\n# Распознавание и исправление подписей к графикам\nfor i, image_path in enumerate(image_paths):\n    # Загрузка изображения с помощью PIL\n    image = Image.open(image_path)\n    \n    # Распознавание текста с изображения\n    recognized_text = recognize_text(image_path)\n    \n    # Исправление опечаток в распознанном тексте\n    corrected_text = correct_spelling(recognized_text)\n    \n    # Вывод изображения на экран  \n    print(f\"Image path: {image_path}\")\n    plt.figure(figsize=(10, 8))\n    plt.imshow(image)\n    plt.axis('off')\n    plt.title(f\"Image №{i+1}\")\n    plt.show()\n    \n    # Вывод результатов\n    print(f\"Recognized Text: {recognized_text}\")\n    print(f\"Corrected Text: {corrected_text}\")\n    print(\"---\")\n    print()\n    print()\n    print()","metadata":{"execution":{"iopub.status.busy":"2024-03-06T13:55:24.721135Z","iopub.execute_input":"2024-03-06T13:55:24.721587Z","iopub.status.idle":"2024-03-06T13:56:35.313766Z","shell.execute_reply.started":"2024-03-06T13:55:24.721550Z","shell.execute_reply":"2024-03-06T13:56:35.312384Z"},"trusted":true},"execution_count":null,"outputs":[]}]}