[java] Apache Tika 와 키워드 필터링

이번에는 Apache Tika를 사용하여 키워드 필터링을 하는 방법에 대해 알아보겠습니다. Apache Tika는 다양한 형식의 문서에서 텍스트 추출과 메타데이터 추출을 위한 자바 라이브러리입니다. 특히, 텍스트에서 원하는 키워드를 추출하거나 특정 키워드를 필터링하여 문서를 분류하는 데 사용할 수 있습니다.

Apache Tika 설치

Apache Tika를 사용하기 위해 먼저 필요한 라이브러리를 다운로드하여 프로젝트에 포함시켜야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가하면 됩니다:

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

키워드 필터링

Tika를 사용하여 문서에서 키워드를 필터링하는 방법은 간단합니다. 먼저, 문서에서 텍스트를 추출해야 합니다. 다음 코드는 텍스트 추출을 위해 Tika를 사용하는 예제입니다:

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

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

public class TikaKeywordFilteringExample {
    public static void main(String[] args) {
        // 텍스트를 추출할 문서 파일 경로
        String filePath = "path/to/document.docx";
        
        // Tika 인스턴스 생성
        Tika tika = new Tika();
        
        try {
            // 문서 파일 로드
            File file = new File(filePath);
            
            // 문서에서 텍스트 추출
            String text = tika.parseToString(file);
            
            // 추출한 텍스트를 출력
            System.out.println(text);
        } catch (IOException | TikaException e) {
            e.printStackTrace();
        }
    }
}

위 예제에서, path/to/document.docx는 텍스트를 추출하려는 문서 파일의 경로로 대체되어야 합니다. parseToString 메서드는 지정된 문서 파일에서 텍스트를 추출하고 문자열로 반환합니다.

이제 텍스트에서 특정 키워드를 필터링하는 방법을 살펴봅시다. 다음은 특정 키워드가 포함된 문서만 출력하는 예제입니다:

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

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

public class TikaKeywordFilteringExample {
    public static void main(String[] args) {
        // 키워드 필터링할 문서 파일 경로
        String filePath = "path/to/documents";
        
        // 필터링할 키워드
        String keyword = "example";
        
        // Tika 인스턴스 생성
        Tika tika = new Tika();
        
        try {
            File rootDir = new File(filePath);
            
            // 파일 목록 조회
            File[] files = rootDir.listFiles();
            
            // 각 파일에 대해 텍스트 추출 및 필터링
            for (File file : files) {
                String text = tika.parseToString(file);
                
                // 필터링 조건 확인
                if (text.contains(keyword)) {
                    System.out.println("Matching document: " + file.getName());
                }
            }
        } catch (IOException | TikaException e) {
            e.printStackTrace();
        }
    }
}

위 예제에서, path/to/documents는 텍스트를 추출하고 필터링할 문서 파일들이 있는 디렉토리 경로로 대체되어야 합니다. contains 메서드를 사용하여 추출한 텍스트에 특정 키워드가 포함되어 있는지 확인합니다. 조건을 만족하는 경우, 해당 문서의 파일 이름을 출력합니다.

이렇게 Apache Tika를 사용하여 텍스트 추출과 키워드 필터링을 할 수 있습니다.

결론

Apache Tika는 다양한 형식의 문서에서 텍스트 추출과 메타데이터 추출을 지원하는 강력한 자바 라이브러리입니다. 키워드 필터링을 통해 원하는 키워드를 추출하거나 문서를 필터링할 수 있습니다. 이를 활용하여 효율적인 문서 분류나 검색 기능을 구현할 수 있습니다.