{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## ABC_1 DOCUMENTATION\n", "\n", "Dito ko lalagay lahat ng documentation and uses ng mga functions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### pdftoimage.py and docxtoimage.py\n", "\n", "bale parang naging utils file na lang toh kasi ginawa ko siya na pwede tawagin sa ibang python file nilagay ko na siya sa abc_1.py pareho and pinagsama ko sa isang function na pangalan convert_pages(folder_path,image_output,Max_pages) tas automatically na toh mag iiterate sa isang folder para gumawa ng mga buffer folders na may lamang image na page ng file ganto sample usage nya also si docx to image automatic na png na siya kasi best for ocr naman ang png \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "plaintext" } }, "outputs": [], "source": [ "import abc_1\n", "abc_1.convert_pages('input','png',4) \n", "\n", " \n", "def convert_pages(folder_path, output_format ,max_pages):\n", " for root, directories, files in os.walk(folder_path):\n", " for filename in files:\n", " # Get the file extension (including the dot)\n", " extension = os.path.splitext(filename)[1].lower()\n", " if extension=='.pdf':\n", " pdftoimage.convert_pdfs(folder_path, output_format,max_pages)\n", " if extension=='.docx':\n", " docxtoimage.process(folder_path,max_pages)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### inputPDFToOutputOCR\n", "\n", "ito yung parang augmentA.py na for text. ginawa kong very similar yung parameters ng pagtakbo nya except dagdag lang ng konti kasi may subfolder toh. ito pinaka challenging na part sa buong project kasi kailangan match pa din yung categories_dict para di na kayo mahirapan mag bago bago ng formats and flows pero syempre ako na toh kaya possible. bale ginamit ko mga functions inside the abc_1 na den to categorize kaya walang issue yan with functions and outputs kasi same sila ng fundamental rules for categorization bale same dapat na babato sa file yung json categories like sa augment a then straightforward naman na from there" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "plaintext" } }, "outputs": [], "source": [ "## run muna yung convert_pages for this then delete folder pag taopos\n", "\n", "if __name__ == '__main__': \n", " categories_keywords_dict = {\n", " 'AI': ['Artificial', 'Intelligence'],\n", " 'Automata': ['finite', 'state', 'machines'],\n", " 'DT': ['game', 'theory']\n", " }\n", "\n", " folder_path = 'input' #output folder ni pdftoimage toh\n", " folder_output = 'output' # Fixed typo\n", " compiled_keywords = abc_1.compile_keywords(categories_keywords_dict)\n", "\n", " subfolder_names = get_subfolder_names(folder_path)\n", " runOCR(subfolder_names)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### LIMITATIONS\n", "Discuss ko lang mga potential issues na makakaharap naten\n", "\n", "- file name delikado if may kapareho kasi ang way ng pag generate ng subfolder is file name tas pag mmove na yung file mismo lalagyan lang ng .pdf or .docx\n", "\n", "- next issue yung bilis. tinanggal ko lahat ng concurrency and threading functionalities pag dating sa OCR kasi may potential risk na makasira ng device kasi nga mabigat talaga sobra. \n", "\n", "- file path management. di ko alam if gagana yung program natin if nasa labas ng work folder yung ipprocess natin\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### JUSTIFICATIONS\n", "- pwede tayo gumawa ng script na pang error handling ng file with same names\n", "- justify natin na limitations ng machine yung bagal kasi di kaya\n", "- ito idk pano ssolve or baka lang di ko alam pano\n", "\n", "for the integration part pwede nyo na siguro rin simulan and itry para easy na after magawa ng front. pero functionality wise i think kumpleto na tayo " ] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 2 }