[JAVA] Textextraktion aus Dokumenten mit POI, Tika

Einführung

Mit Funktionen wie der Volltextsuche möchten Sie möglicherweise den Inhalt der hochgeladenen Datei durchsuchen. Beim Erstellen eines Index wie ElasticSearch wird der Text aus der Datei extrahiert und dem Indexdokument hinzugefügt.

Zu den zu extrahierenden Tools gehören POI und Tika.

POI:https://poi.apache.org/ Tika:https://tika.apache.org/

POI image.png

Was ist POI?

Java API for Microsoft Documents Sie können Word, Excel und PowerPoint erstellen, bearbeiten und extrahieren.

Probe durch POI extrahiert

Einführung der POI-Bibliothek

build.gradle


// https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml
compile group: 'org.apache.poi', name: 'poi-ooxml', version: '4.1.0'

Excel⇒text

ExcelExtractor.java


import java.io.File;
import java.io.IOException;

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.xssf.extractor.XSSFExcelExtractor;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbookFactory;

public class ExcelExtractor {

	public static void main(String[] args) throws InvalidFormatException, IOException {
		XSSFWorkbook workbook = XSSFWorkbookFactory.createWorkbook(new File("/data/test.xlsx"), true);
		XSSFExcelExtractor excel = new XSSFExcelExtractor(workbook);
		
		//Text extrahieren
		System.out.println(excel.getText());
		
		//schließen
		excel.close();
	}
}

Word⇒text

WordExtractor.java


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

public class WordExtractor {

	public static void main(String[] args) throws FileNotFoundException, IOException {
		XWPFDocument doc = new XWPFDocument(new FileInputStream(new File("/data/test.docx")));
		XWPFWordExtractor word = new XWPFWordExtractor(doc);
		//Text extrahieren
		System.out.println(word.getText());
		//schließen
		word.close();
	}
}

PowerPoint⇒text

PowerPointExtractor.java


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.poi.xslf.extractor.XSLFPowerPointExtractor;
import org.apache.poi.xslf.usermodel.XMLSlideShow;

public class PowerPointExtractor {

	public static void main(String[] args) throws FileNotFoundException, IOException {
		XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("/data/test.pptx"));
		XSLFPowerPointExtractor powerPointExtractor = new XSLFPowerPointExtractor(ppt);
		//Text extrahieren
		System.out.println(powerPointExtractor.getText());
		//schließen
		powerPointExtractor.close();
	}
}

Tika image.png

Was ist Tika?

The Apache Tika™ toolkit detects and extracts metadata and text from over a thousand different file types。 Dokumentmetadaten, Textextraktion, Dateityperkennung und mehr.

Einführung der Tika-Bibliothek

build.gradle


// https://mvnrepository.com/artifact/org.apache.tika/tika-core
compile group: 'org.apache.tika', name: 'tika-core', version: '1.22'

// https://mvnrepository.com/artifact/org.apache.tika/tika-parsers
compile group: 'org.apache.tika', name: 'tika-parsers', version: '1.22'

Probe mit Tika extrahiert

TikaExtractor.java


import java.io.File;
import java.io.IOException;

import org.apache.tika.Tika;
import org.apache.tika.exception.TikaException;

public class TikaExtractor {

	public static void main(String[] args) throws IOException, TikaException  {
		Tika tika = new Tika();
		String data = tika.parseToString(new File("/data/test.pdf"));
		System.out.println(data);
	}
}

Dies ist praktisch, da es aus Textdateien, PDF, Word, Excel, PowerPoint usw. extrahiert werden kann.

das ist alles

Recommended Posts

Textextraktion aus Dokumenten mit POI, Tika
[Java] Textextraktion aus PowerPoint (ppt) mit Apache POI
Textextraktion in Java aus PDF mit pdfbox-2.0.8