OCR テキスト抽出とドキュメント分析用の無料 Java ライブラリ
Java アプリに OCR 機能を組み込むためのオープンソース Java OCR ライブラリ。画像やスキャンしたドキュメントからテキストを抽出できます。
今日のデジタル時代において、光学式文字認識 (OCR) は、画像やスキャンした文書からテキストを抽出するために不可欠なツールとなっています。 OCR テクノロジーを使用すると、印刷されたテキストまたは手書きのテキストを機械可読データに変換できるため、文書分析、データ抽出、自動化にさまざまな可能性が広がります。 利用可能な多くの OCR ソリューションの中で、Tess4J は、Tesseract OCR エンジンの多用途性と Java プログラミングのシンプルさを組み合わせた強力なオープンソース ライブラリとして際立っています。
Tess4J ライブラリにより、Java 開発者は OCR 機能をアプリケーションにシームレスに組み込むことができます。 これは、もともと Hewlett-Packard によって開発され、現在は Google によって保守されている OCR エンジンである Tesseract の Java ラッパーです。 Tess4J は、精度で有名な Tesseract の OCR エンジンを活用しています。 高度なアルゴリズムと機械学習技術を採用して、画像から信頼性の高いテキスト抽出を実現し、高品質の結果を保証します。 Java アプリケーションへの OCR 統合が可能になり、Windows、Linux、macOS などのさまざまなプラットフォームとの互換性が得られます。
Tess4J は、簡単で十分に文書化された API を提供するため、開発者は OCR 機能を Java アプリケーションに簡単に統合できます。 Tess4J は、開発者が強力な OCR 機能を Java アプリケーションに統合できるようにする、多用途で堅牢なオープンソース ライブラリです。 Tess4J は、複数言語、画像前処理機能、PDF 変換機能、信頼度スコアリング システムのサポートにより、テキスト抽出とドキュメント分析のための効率的で信頼性の高いソリューションを提供します。
Tess4J 入門
Tess4J をインストールする推奨方法は、Maven を使用することです。 スムーズにインストールするには、次のコマンドを使用してください。
Tess4J の Maven 依存関係
<dependencies>
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j;/artifactId>
<version>X.X.X</version>
</dependency>
</dependencies>
GitHub 経由で Tess4J をインストールします
git clone https://github.com/nguyenq/tess4j.git
手動でインストールすることもできます。 最新のリリース ファイルを GitHub リポジトリから直接ダウンロードします。
Java API によるコンテンツ抽出
オープン ソースの Tess4J ライブラリを使用すると、ソフトウェア開発者は Java アプリケーション内のさまざまな種類の画像からテキストを抽出できます。 このライブラリを使用すると、画像からテキストを抽出できるため、アプリケーションでテキスト コンテンツを分析および処理できるようになります。 この機能は、感情分析、テキスト要約、情報検索などの分野で応用できます。 このライブラリを使用すると、Tesseract OCR エンジンのロード、指定された画像のコンテンツ抽出の実行、抽出されたテキストのコンソールへの出力も簡単に行えます。
Java OCR ライブラリを使用してコンテンツ抽出を実行する
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
public class ContentExtractionExample {
public static void main(String[] args) {
// Path to the Tesseract OCR installation directory
String tessDataPath = "path/to/tesseract";
// Initialize Tesseract instance
Tesseract tesseract = new Tesseract();
tesseract.setDatapath(tessDataPath);
try {
// Set the language for OCR (e.g., "eng" for English)
tesseract.setLanguage("eng");
// Path to the image file for content extraction
String imagePath = "path/to/image.jpg";
// Perform content extraction
String extractedText = tesseract.doOCR(new File(imagePath));
System.out.println(extractedText);
} catch (TesseractException e) {
e.printStackTrace();
}
}
}
Java API を介した PDF からプレーン テキストへの変換
オープン ソースの Tess4J ライブラリは、Java アプリケーション内で PDF ドキュメントをロードしてプレーン テキストに変換するための完全な機能を提供します。 Tess4J は、検索可能な PDF ドキュメントをプレーン テキストに変換できるため、開発者は PDF ファイルからコンテンツを抽出し、さらなる分析やデータ処理を実行できます。 次の例は、ソフトウェア開発者が Java アプリケーション内で既存の PDF ファイルをプレーン テキストに変換する方法を示しています。
既存の PDF ファイルをプレーン テキストに変換するにはどうすればよいですか?
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import java.io.File;
import java.io.IOException;
public class PDFToTextConverter {
public static void main(String[] args) {
// Path to the PDF file
String filePath = "path/to/your/pdf/file.pdf";
try {
// Load the PDF document
PDDocument document = PDDocument.load(new File(filePath));
// Create an instance of Tesseract OCR engine
Tesseract tesseract = new Tesseract();
// Set the path to the tessdata directory (containing language data)
tesseract.setDatapath("path/to/your/tessdata/directory");
// Iterate over each page of the PDF document
for (int pageIndex = 0; pageIndex < document.getNumberOfPages(); pageIndex++) {
// Extract the text from the current page
PDFTextStripper stripper = new PDFTextStripper();
stripper.setStartPage(pageIndex + 1);
stripper.setEndPage(pageIndex + 1);
String pageText = stripper.getText(document);
// Perform OCR on the extracted text
String ocrText = tesseract.doOCR(pageText);
// Output the OCR result
System.out.println("Page " + (pageIndex + 1) + " OCR Result:");
System.out.println(ocrText);
System.out.println("--------------------------------------");
}
// Close the PDF document
document.close();
} catch (IOException | TesseractException e) {
e.printStackTrace();
}
}
}