[java] Apache Tika 를 활용한 문서 분석

Apache Tika는 다양한 문서 포맷에서 텍스트와 메타데이터를 추출하는 Java 라이브러리입니다. 이를 활용하면 Word, PDF, Excel 등 다양한 문서를 분석하고 내용을 추출할 수 있습니다.

Apache Tika 설치

Apache Tika를 사용하기 위해 먼저 프로젝트에 Tika 라이브러리를 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가합니다:

<dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-core</artifactId>
    <version>1.26</version>
</dependency>

Gradle을 사용하는 경우 build.gradle 파일에 다음 의존성을 추가합니다:

implementation 'org.apache.tika:tika-core:1.26'

문서 분석하기

Apache Tika를 사용하여 문서를 분석하는 간단한 예제 코드를 작성해보겠습니다. 아래 코드는 example.pdf 파일에서 텍스트를 추출하는 예제입니다.

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.SAXException;

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

public class DocumentAnalyzer {

    public static void main(String[] args) {
        try {
            FileInputStream inputstream = new FileInputStream("example.pdf");
            BodyContentHandler handler = new BodyContentHandler();
            AutoDetectParser parser = new AutoDetectParser();
            Metadata metadata = new Metadata();

            parser.parse(inputstream, handler, metadata);

            System.out.println("문서 메타데이터:");
            for (String name : metadata.names()) {
                System.out.println(name + ": " + metadata.get(name));
            }

            System.out.println("문서 내용:\n" + handler.toString());
        } catch (IOException | TikaException | SAXException e) {
            e.printStackTrace();
        }
    }
}

위 코드는 example.pdf 파일을 열어서 문서의 텍스트와 메타데이터를 추출합니다. 문서의 내용은 BodyContentHandler를 통해 추출되고, 메타데이터는 Metadata 객체에 저장됩니다. 결과는 콘솔에 출력됩니다.

실행 결과

위 예제 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:

문서 메타데이터:
Content-Type: application/pdf
Author: John Doe
Title: Example Document
...
문서 내용:
This is an example document for testing Apache Tika.
...

위 결과에서는 문서의 메타데이터와 내용을 확인할 수 있습니다. 이를 활용하여 다양한 문서 분석 작업을 수행할 수 있습니다.

추가 리소스