Lesson 4: 임의 파일 유형에서 자동으로 텍스트 추출하기
메타데이터를 추출하는 기능 외에도 Apache Tika에는 임의 파일 유형을 구문 분석할 수 있는 한 해당 유형에 대한 다른 수많은 정보(패키징, 헤더, 2진 항목 및 일반적으로 파일과 함께 패키지되는 기타 정보)와 별개로 텍스트 컨텐츠를 제공하는 기능이 있다. Tika의 모든 구문 분석기는 구문 분석할 수 있는 한 특정 파일 유형에서 텍스트를 추출할 수 있는 기본적인 방법을 구현해야 한다. 텍스트 컨텐츠는 검색 엔진에 보낼 수 있고, 컨텐츠 관리 시스템에서 색인화할 수 있으며, 특정 컨텐츠에 대한 요약 정보를 표시하는 데 사용할 수 있기 때문에 유용하다. 아래 예제에서는 Tika에서 몇 개의 단계만 수행하여 임의 파일 유형에서 텍스트 컨텐츠를 쉽게 추출하는 방법을 보여 준다. 그리고 일반적으로 TV에 나오는 경고 문구와는 달리 필자는 이 작업을 집에서도 시도해 보기를 권장한다.
Listing 12. 파일 유형에서 텍스트 컨텐츠 추출하기
TikaConfig tc = TikaConfig.getDefaultConfig();
List<File> list = Utils.getFiles(new File(Messages.getProperty("m001")),
new ArrayList<File>());
Utils.deleteFiles(new File(Messages.getProperty("m002")));
for (File f : list) {
try {
String txt = ParseUtils.getStringContent(f, tc);
Utils.writeTxtFile(new File(Messages.getProperty("m002")
+ File.separator + Utils.getFileNameNoExtension(f) + ".txt"),txt);
log.info(Messages.getProperty("m003") + f.getName()
+ Messages.getProperty("m004"));
} catch (TikaException e) {
log.error(e.getLocalizedMessage() + " " + f.getName());
} catch (IOException e) {
log.error(e.getLocalizedMessage() + " " + f.getName());
}catch (Exception e) {
log.error(e.getLocalizedMessage() + " " + f.getName());
}
}
|
ParseUtils getStringContent(...) 함수에 의해 마술같은
작업이 수행된다. ParseUtils는 문서를 구문 분석하는 유틸리티 메소드를 가지고
있으며 Tika 프레임워크에 대한 간단한 시작점을 제공한다. 매개변수 중 하나는 파일이고 두 번째 매개변수는
XML 구성 파일을 구문 분석하는 TikaConfig이다. 이 함수는 단순하면서도 강력하다.
이 마술같은 작업이 어떻게 수행되는지 알고 싶은가? 그렇다면 ant tikaextracttext를 입력해 보자.

