
Docsinarowは、画像やドキュメントをスキャンおよび分析するためのPythonアプリケーションです。このツールは、スキャンされたドキュメントに含まれるテキストを読み取って解釈し、OpenAIが提供するGPT-3モデルを使用してドキュメントタイプを分類するように設計されています。画像の場合、Google Visionを使用してラベルとカテゴリを検出します。
リポジトリをクローンするか、Pythonスクリプトをダウンロードします。
PIPに必要な依存関係をインストールします:
pip install .システムにTesseract-ocrを設定し、スクリプトのパスを更新します。
pytesseract . pytesseract . tesseract_cmd = r"C:Program FilesTesseract-OCRtesseract.exe"OpenAI APIキーとGoogle Cloud Vision APIキーをスクリプトに置き換えます。
openai . api_key = 'your-openai-api-key'
os . environ [ "GOOGLE_APPLICATION_CREDENTIALS" ] = "your-google-cloud-vision-key.json"画像を写真ディレクトリに配置します。現在、画像はIMGで開始し、.jpgで終了する必要があります。例:
imgXXX . jpgスクリプトを実行します:
python ./src/main.pydocsinarowは、次のファイル形式をサポートしています。
現在、開発中はJPGファイルのみをサポートしています。これは、このプロジェクトが、私がメールで受け取った私のスキャンされたドキュメントを整理する方法として元気に始まったからです。将来的には、これを拡張して、多種多様なファイルタイプを含めます。
Pythonスクリプトを実行します。スクリプトは、ディレクトリ内の各画像を通過します。
各画像について:
画像に25語以上が含まれている場合、ドキュメントと見なされます。スクリプトはテキストを抽出し、GPT-3を使用して修正し、修正されたテキストを印刷します。また、GPT-3を使用してドキュメントを分類し、修正されたテキストを画像のメタデータに追加します。画像に25単語未満が含まれている場合、写真と見なされます。スクリプトはGoogle Visionを使用してラベルを検出し、それらを印刷します。各画像の後、スクリプトは次の画像に進みたいかどうかを尋ねます。 「y」と入力して続行するか、「n」を停止できます。
このプロジェクトでは、Pyinstallerを使用して、Pythonスクリプトをスタンドアロン実行可能ファイルにコンパイルします。プロジェクトを構築するには、次のコマンドを使用できます。
pyinstaller --onefile . s rc m ain.pyこれにより、SRCディレクトリにあるmain.pyスクリプトから単一の実行可能ファイルが作成されます。実行可能ファイルはDISTディレクトリに配置されます。
このツールは、最大コンテキスト長の4096トークンを持つOpenai Text-Davinci-003モデルを使用しています。この制限には、迅速なテキストと完了の両方が含まれているため、この制限内で適合を修正して分類するテキストを確認してください。
また、Openai APIおよびGoogle Cloud Vision APIに関連する使用コストにも注意してください。
Docsinarowプロジェクトは、コードとリソースを整理するための特定の構造に従います。プロジェクト構造の概要は次のとおりです。
DocsInARow/
├───.env
├───.gitignore
├───.pre-commit-config.yaml
├───logo.png
├───README.md
├───ROADMAP.md
├───setup.py
├───src
│ ├───config.py
│ ├───image_processing.py
│ ├───main.py
│ ├───text_processing.py
│ └───utils.py
├───tests
│ ├───test_image_processing.py
│ └───test_text_processing.py
└────test_images
└───test_image.jpg
config.py :このモジュールは、環境変数をロードし、A.ENVファイルからアプリケーションの構成を設定する責任があります。他のモジュールに必要な環境変数を設定および検証します。必要な環境変数が欠落している場合、エラーが発生します。
image_processing.py :画像関連の処理タスクの関数が含まれています。指定されたディレクトリから画像ファイルを取得し、画像メタデータにテキストを追加し、処理された画像を整理するための日付固有のディレクトリにファイルを移動します。
main.py :アプリケーションのメインエントリポイントとして機能します。画像処理ワークフロー全体を調整し、他のモジュールから関数を呼び出して画像からテキストを抽出して修正します。
text_processing.py :テキスト関連の処理タスクの関数を提供します。 OCRを使用して画像からテキストを抽出する関数、OpenAIのGPT-3モデルを使用した正しいテキスト、GPT-3を使用してドキュメントを分類し、意味のあるファイル名を生成します。
tests/test_text_processing.py : text_processing.pyの関数の単体テストが含まれています。テキスト処理機能が期待どおりに機能していることを保証します。
utils.py :このファイルは、アプリケーションにユーティリティ関数を提供します。各関数が行うことの内訳は次のとおりです。
get_windows_folder(CSIDL_FOLDER) : CSIDL値でWindows特別フォルダー(「私のドキュメント」、「私の写真」など)の現在のパスを取得します。
get_windows_documents_folder() : get_windows_folder()関数を使用して、Windowsの「My Documents」フォルダーの現在のパスを取得します。
get_windows_pictures_folder() : get_windows_folder()関数を使用して、Windowsの「My Pictures」フォルダーの現在のパスを取得します。
move_file_to_date_dir(filename, base_dir=None) :特定のファイルを「ドキュメント」フォルダーの日付固有のディレクトリに移動します。 「ドキュメント」フォルダーが指定されていない場合、Windowsの「My Documents」フォルダー、または非ウィンドウシステムの「〜/documents」フォルダーにデフォルトが表示されます。日付固有のディレクトリは、「年/月」としてフォーマットされます。ベースディレクトリまたは日付固有のディレクトリのいずれかが存在しない場合、それらが作成されます。
貢献は大歓迎です!プルリクエストをお気軽に送信したり、問題を開いたりしてください。
Docsinarowは、MITライセンスに基づいてライセンスされているオープンソースソフトウェアです。