ディレクトリを繰り返しパスし、PDFをocrsし、PDFを更新するスクリプトを更新しています。
シンプルなバージョンでは動作します。
ocrmypdf -l vie --deskew --clean --force-ocr --sidecar vietnamese_website.txt Vietnamese\ Website.jpg Vietnamese\ Website.pdf --verbose 1
フォルダを繰り返し繰り返し、さまざまなファイル形式を使用したいので、検索を次に拡張しました。
find . \( -name '*.pdf' -o -name '*.jpg' -o -name '*.tiff' -o -name '*.jpeg' -o -name '*.tif' -o -name '*.png' \)
バッチ処理と並列処理の例は次のとおりです。
find . -name '*.pdf' | parallel --tag -j 2 ocrmypdf -l languages --deskew --clean --force-ocr --verbose 1 '{}' '{}'
私の質問は2つの部分に分かれています。
「言語」は、サポートされているハイパースクエアトレーニングデータの完全なリストのエイリアスです。拡張するには、macOSのシェルに次のように入力します。エイリアス言語='eng+rus+vie+ukr+fra+spa+afr+amh+ara+asm+aze+aze_cyrl+bel+ben+bod+bos+bre +bul+cat+ceb+ces+chi_sim+chi_sim_vert+chi_tra +chi_tra_vert+chr+cos+cym+dan+dan_frak+deu+deu_frak+div+dzo+ell+eng+enm+epo+equ+est+eus+fao+ fas+ fil+ fin+fra+frk+frm+fry+gla+ gle+glg+grc+guj+hat+heb+hin+hrv+hun+hye+ik... など - ocrmypdf は、自分の言語がこれと同じだと思います。 --sidecarにテキストファイルを出力させたいです。 '{}.txt'はそのようなファイルがないと文句を言います。これが私がいるところです。
find . \( -name '*.pdf' -o -name '*.jpg' -o -name '*.tiff' -o -name '*.jpeg' -o -name '*.tif' -o -name '*.png' \) | parallel --tag -j 2 ocrmypdf -l languages --deskew --clean --force-ocr --sidecar '{}.txt' '{}' '{}' --verbose 1
必要なものを見つけることができる場所から得ましたが、--sidecarは満足できませんでした。それでは、エイリアスと '$1.txt'はどうすればいいですか?
答え1
私の考えには2つのポイントがあると思います。
- エイリアス拡張はオプションではなく、最初の単語でのみ機能します。
- 提供された名前をいくつか変更する必要があります
find
。
find
コマンドラインからすべてのことを実行できますが、この目的のためにスクリプトを作成する方が簡単だと思いましたocrmypdf.sh
。
#!/bin/bash
languages='eng+rus+vie+...'
base="${1%.*}
ocrmypdf -l "$languages" --deskew --clean --force-ocr --sidecar "$base.txt" "$1" "$base.pdf --verbose 1
その後、実行します。
find . \( -name '*.pdf' -o -name '*.jpg' -o -name '*.tiff' -o -name '*.jpeg' -o -name '*.tif' -o -name '*.png' \) | parallel --tag -j 2 ocrmypdf.sh '{}'
答え2
したがって、user-ralfiedlの指示に従って、MacOSXの最新のLSTMベースのTessearct 4.0には、次のことが適用されます。
更新:これらすべてを最初に行きたかった.profileまたは.bashrcにプッシュする方法を見つけることができました...以下はtxtファイルの変数を必要としません。
function do_ocr () {
#find . -name '*.pdf' -o -name '*.jpg' -o -name '*.tif' -o -name '*.png' -o -name '*.jpeg' -o -name '*.tiff'
find_all_formats | parallel --tag -j 2 \
ocrmypdf -l ori+por+srp+hin+chi_sim+spa+uzb_cyrl+mar+swa+ces+urd+nep+cat+mya+lit+dan+mlt+enm+bod+tir+tgl+tha+fas+hrv+ukr+lao+ben+eus+eng+dzo+nld+vie+ita+kir+pus+msa+heb+slv+kaz+rus+eng+vie+ukr+spa \
--clean --deskew --rotate-pages --image-dpi 300 --jpeg-quality 75 --png-quality 75 \
-i -f -O 2 --sidecar - --force-ocr '{}' '{}' --verbose 1
}
注:Brew Install Tesseract 4.0など、4.0用の各トレーニングセットを手動で再構築する必要があります。4.0 TrainingDataのインストール手順へのGithubリンク
アップデート:Tesseract 4.0用のDockerファイルがあります。言語データとMacOSXの段階的なインストール手順を追加する必要があります。これにより、Java 8が一緒にインストールされ、ScrollViewer.jar環境にあることを確認します。これにより、上記の機能を使用してすべての言語を「自動検出」し、可能であれば画像をOCRしてPDFに変換し、コンテンツのサイドカーtxtファイル(元の言語)を生成できます。
次のステップは、言語のOffice文書をインポートして翻訳し、機械学習を使用してテキストファイルにデータを追加して画像をOCRできるようにすることです。