[JAVA] Extraction de texte à partir de documents à l'aide de POI, Tika

introduction

Pour les fonctionnalités telles que la recherche en texte intégral, vous souhaiterez peut-être rechercher le contenu du fichier téléchargé. Lors de la création d'un index tel qu'ElasticSearch, le texte est extrait du fichier et ajouté au document d'index.

Les outils pour extraire incluent POI et Tika.

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

POI image.png

Qu'est-ce que POI

Java API for Microsoft Documents Vous pouvez créer, modifier et extraire Word, Excel et PowerPoint.

Échantillon extrait par POI

Présentation de la bibliothèque de POI

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);
		
		//Extraire le texte
		System.out.println(excel.getText());
		
		//Fermer
		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);
		//Extraire le texte
		System.out.println(word.getText());
		//Fermer
		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);
		//Extraire le texte
		System.out.println(powerPointExtractor.getText());
		//Fermer
		powerPointExtractor.close();
	}
}

Tika image.png

Qu'est-ce que Tika

The Apache Tika™ toolkit detects and extracts metadata and text from over a thousand different file types。 Métadonnées de document, extraction de texte, détection de type de fichier, etc.

Présentation de la bibliothèque Tika

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'

Échantillon extrait avec Tika

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);
	}
}

C'est pratique car il peut être extrait de fichiers texte, PDF, Word, Excel, PowerPoint, etc.

c'est tout

Recommended Posts

Extraction de texte à partir de documents à l'aide de POI, Tika
[Java] Extraction de texte de PowerPoint (ppt) à l'aide d'Apache POI
Extraction de texte en Java à partir de PDF avec pdfbox-2.0.8