[java] Apache Tika 를 활용한 텍스트 분석

Apache Tika는 Apache Software Foundation에서 제공하는 오픈 소스 라이브러리로, 다양한 문서 포맷에서 텍스트를 추출하고 분석하는 기능을 제공합니다. 이를 활용하면 텍스트 파일, 워드 문서, PDF, HTML 등 다양한 형식의 문서에서 텍스트 데이터를 추출하고 이를 분석할 수 있습니다.

Tika 설치 및 설정

Apache Tika를 사용하기 위해서는 먼저 해당 라이브러리를 설치해야 합니다. 다음은 Maven 프로젝트에서 Tika를 사용하기 위한 의존성 설정 예시입니다.

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

위의 의존성을 추가한 후 Maven이나 Gradle 등의 빌드 도구를 사용하여 Tika를 다운로드 받을 수 있습니다.

텍스트 추출

Tika를 사용하여 텍스트를 추출하기 위해서는 간단한 코드를 작성해야 합니다. 아래는 Tika를 이용하여 텍스트를 추출하는 Java 코드 예시입니다.

import org.apache.tika.Tika;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class TextExtractor {

    public static void main(String[] args) {
        try {
            File file = new File("example.docx"); // 추출할 문서 파일 경로
            FileInputStream fis = new FileInputStream(file);
            Tika tika = new Tika();
            String text = tika.parseToString(fis);
            System.out.println(text);
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서는 example.docx 파일로부터 텍스트를 추출하여 출력하는 예시입니다. 파일의 경로는 실제 사용하고자 하는 파일의 경로로 변경해야 합니다.

텍스트 분석

Tika를 이용한 텍스트 분석은 추출된 텍스트 데이터를 원하는 대로 가공하여 활용하는 것을 말합니다. 예를 들어, 텍스트에서 단어 수를 세거나 특정 패턴의 문자열을 찾는 등 다양한 분석 작업을 할 수 있습니다.

텍스트 분석을 위한 예시 코드는 아래와 같습니다.

import org.apache.tika.Tika;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class TextAnalyzer {

    public static void main(String[] args) {
        try {
            File file = new File("example.txt"); // 분석할 텍스트 파일 경로
            FileInputStream fis = new FileInputStream(file);
            Tika tika = new Tika();
            String text = tika.parseToString(fis);

            // 단어 수 세기
            int wordCount = text.split("\\s+").length;
            System.out.println("단어 수: " + wordCount);

            // 특정 패턴의 문자열 찾기
            String pattern = "example";
            int count = 0;
            int startIndex = text.indexOf(pattern);
            while (startIndex != -1) {
                count++;
                startIndex = text.indexOf(pattern, startIndex + 1);
            }
            System.out.println("특정 패턴 수: " + count);

            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서는 example.txt 파일을 읽고, 텍스트 데이터에서 단어 수를 세고 “example”이라는 패턴을 검색하는 예시입니다. 분석하고자 하는 파일의 경로와 분석 작업은 필요에 따라 수정되어야 합니다.

결론

Apache Tika를 사용하면 다양한 형식의 문서에서 텍스트 데이터를 추출하고 분석하는 작업을 간편하게 수행할 수 있습니다. Tika의 다양한 기능과 활용 방법은 공식 문서를 참고하시기 바랍니다.