提案されたソリューションはWindows-8で実装されていますが、少し調整することで、LinuxおよびOS Xで非常にうまく使用できると思います。
Abbyy FineReader、MS Word、MS OneNoteは、画像をテキストに変換するタスクに対応しています。 画像をオンラインに変換できるサイトもあります: http : //www.ocrconvert.com
提案されたソリューションは無料のユーティリティを使用しています。 優先順位は、コマンドラインでの作業でもありました。
すべてのpdfページを画像ファイルに変換します
2〜3ページある場合は、PrintScreen関数を使用できます。 Windowsでは、このためにキーボードに別のボタンがあります。 そして、Mac OS Xでは、トリッキーなキーの組み合わせ:Shift + Command + 4の3つのキーを押す必要があります。マウスで画面の目的の領域を選択し、デスクトップで結果のファイルを探します。 しかし、ページが多い場合は、別の方法を探す必要があります。
幸いなことに、これを行うことができるStduViewerプログラムがあります。 [ファイル]→[エクスポート]→[画像として]に移動します。 表示されるウィンドウで、PNGタイプ、解像度300 dpiを選択し、結果の画像ファイルを配置するパスを設定します。 保存されたファイルの名前のテンプレートでは、ページが10を超える場合、%PN%を%0PN%に変更する価値があります。
kolgrim99は、pdfドキュメントをjpgファイルに変換するためのコマンドラインで使用できるxpdfパッケージのユーティリティを提案しました。 彼の提案は次のとおりです。
<<タスクが単にスキャン(または他の写真)で大きなPDFファイルを消化することである場合、xpdfセットのユーティリティを使用できます。多くのすべてがありますが、写真にはpdfimages.exeが必要です。 構文は次のようなものです。
pdfimages.exe -j some_file.pdf C:\ images \
パスの最後にある最後の引数には、必ず '\'を入力してください。そうしないと、取得されません>>
ページ画像ファイルをテキストに変換する
HPが開発し、Googleは画像をテキスト( OCR )に変換するtesseractライブラリのソースコードを開きました。 tesseract-ocrプログラムをインストールします。
インストール中にロシア語を認識するには、「追加の言語データ」でロシア語のチェックボックスをオンにします。
コマンドプロンプトで、次のようなコマンドを実行します。
tesseract.exe image_01.png res_01.txt -l rus
テキストファイルを受け取ります。 各ページに対してコマンドを手動で実行できます。 Pythonでスクリプトを実行する方が簡単です:
import os, sys import io sPathIn = "D:/Pictures/pict" sPathOut = "D:/Pictures/txt" sCmd = "\"C:/Program Files (x86)/Tesseract-OCR/tesseract.exe\" {} {} -l rus" os.system("cd \"C:/Program Files (x86)/Tesseract-OCR\"") dirs = os.listdir( sPathIn ) for file in dirs: filename, file_ext = os.path.splitext(file) sCmdRes = sCmd.format(sPathIn + '/' + file, sPathOut + '/' + filename + ".txt") print ("run> " + sCmdRes) os.system(sCmdRes)
一連のテキストファイルが見つかりましたが、それらは1つにまとめられたままでした。 これはペンで行うことができます。 しかし、Pythonでスクリプトを書く方が簡単でした:
import os, sys import io sPathIn = "D:/Pictures/txt" sFileOut = "D:/Pictures/res.txt" dirs = os.listdir( sPathIn ) for file in dirs: filename, file_ext = os.path.splitext(file) if (file_ext == ".txt"): fOut = open(sFileOut, "ab") f = open(sPathIn + "/" + file, "rb") data = f.read() fOut.write(data) f.close() fOut.close()
これは完了することができます、なぜなら 基本的に、テキストは非常に読みやすいことが判明しましたが、テキスト内の場所では大量のリムが形成されました。
たとえば、テキスト付きの写真
このようなものに変換されました:
一時的な中断、中間の保存、一時停止状態からのモデリングプロセスの再起動、さまざまな初期条件の設定、搭載システムの障害、気象条件、時刻、さまざまな妨害要因(風、乱気流など)によるモデリングプロセスの管理;
したがって、次の段階が登場しました。
テキストのエラーの修正
LanguageToolプログラムを使用します。 コマンドラインでの作業に興味があるので、 「独立バージョン」をダウンロードしてください。 LanguageToolが動作するにはJavaが必要です。
ネイティブディレクトリから開始し(現在のディレクトリが外部の場合は何らかの理由でWindows 8.1で動作させたくありませんでした)、完全なファイル名(ディレクトリを含む)を示しました。 たとえば、コマンドプロンプトでコマンドを実行すると、次のようになります。
java -Dfile.encoding=UTF-8 -jar languagetool-commandline.jar --help
...その後、追加のコンソールが起動し、正直にヘルプを書いて、1秒以内に安全に閉じます。 コンソールに何が書き込まれるかを確認するには、この行を中に入れてコマンドbat-fileを実行する必要があります。 おそらく、javaには他のコマンドラインパラメーターがあるため、余分なコマンドは開始されません。 コンソールですが、これは私には不明です。
テキストファイルのエラー修正コマンドは次のとおりです。
java -Dfile.encoding=UTF-8 -jar languagetool-commandline.jar -a -l ru original.txt > corrected.txt
小さな文字から大きな文字への修正をオフにするために、行の先頭に追加のパラメーターが表示されました--disablecategories CASING、ファイル名-%1の代わりに、bat-file内の名前を引数として渡します。 合計で、batファイルの行は次のようになりました。
java -Dfile.encoding=UTF-8 -jar languagetool-commandline.jar -a -u --disablecategories CASING -l ru %1 > %1-res.txt
-u引数を使用すると、文字列「Unknown words:」が修正されたテキストファイルの末尾に追加され、LanguageToolが認識しないすべての単語のコンマ区切りリストが追加されます。 したがって、このリストから間違った単語を修正することにより、テキストを改善できます。
Python 3.5とPyCharmが使用されました 。
ご清聴ありがとうございました!