KRISTAL Home (Korean)   
KRISTAL 홈 | K-Lab | 자료실 | 연락처
KRISTAL IRMS
활용사이트
라이센스
관련문서
다운로드
K-Lab
기술협력업체
워크숍
관련사이트
오픈소스 정보검색관리시스템 KRISTAL-IRMS
Knowledge Retrieval In Science & Technology Affiliated Literatures - Information Retrieval Management System

KRISTAL HyperTextizer

KRISTAL은 C++ 클라이언트의 기능중 하나로 HyperTextizer를 제공합니다. HyperTextizer란 사용자가 지정한 단어들이 출현하면 이에 대해 특수한 태그를 자동으로 삽입하여 주는 기능입니다. 이 기능은 상세보기에서 본문에 검색링크와 같이 주로 Hyper Text를 추가하는 기능으로 사용됩니다.

HyperTextizer 데모

사용 예제

  • HyperTextizer hyperTextizer;
  • hyperTextizer.setSkipXMLTags(true); // XML 태그내의 텍스트 무시
  • hyperTextizer.setOutURLEncoding("EUC-KR"); // UTF-8 또는 EUC-KR
  • hyperTextizer.setDictTextEncoding("EUC-KR"); // UTF-8 또는 EUC-KR
  • hyperTextizer.addLinks(string text, vector<string> dict, start_tag, end_tag);
  • text = UECONVCODE(text); // 출력을 위하여 UTF-8에서 EUC-KR로 변환

사용 예제 설명

  • HyperTextizer는 KRISTAL의 C++ 클라이언트 라이브러리에서만 지원
  • 링크를 삽입할 원본 텍스트는 UTF-8 인코딩의 문자열이어야 한다(위의 예에서는 string text).
  • 사용자가 구성하는 HyperTextizer 사전은 편의를 위하여 EUC-KR 인코딩을 지원한다(setDictTextEncoding).
  • URL 링크에서 URL내에 사용되는 텍스트에 대하여 EUC-KR 또는 UTF-8 인코딩을 지원한다(setOutURLEncoding).
  • 그러나 HyperTextizer에서는 UTF-8을 기본으로 하기 때문에 EUC-KR로 출력하고자 할 경우에는 변환된 텍스트를 EUC-KR로 변환해야 한다 (UECONVCODE 함수; HyperTextizer에서 텍스트의 기본 출력은 UTF-8이며 EUC-KR은 개발자의 편의를 위하여 제공하는 것임).

예제 보기

  • Makefile - C++ 컴파일하기 위한 makefile
  • ht.cpp - C++ 소스 파일
  • 이 예제에서는 출력을 EUC-KR 인코딩으로 하였습니다.
  • Makefile 및 ht.cpp의 설명문은 EUC-KR로 되어 있습니다. 소스를 클릭하여 한글이 제대로 보이지 않으면 웹브라우저의 텍스트 인코딩을 '한국어'로 선택하십시오.

성능에 대한 고찰

  • C++ 클리아언트를 이용한 HyperTextizer는 수천개 정도의 항목으로 이루어진 사전에 대해서는 무리없이 작동합니다.
  • 수만개 이상의 사전 항목에 대해서는 느린 편입니다 (동물그림창고에서는 약 2만개 항목의 사전으로 HyperTextizer가 실행되고 있습니다).
  • 현재 수십만개 이상의 사전 항목에 대해서도 빠르게 실행할 수 있는 보조 도구에 대한 설계를 하고 있습니다.
  • 과학기술학회지 등과 같이 별도의 키워드(또는 표제어)가 제공되는 경우에는 이 키워드들에 대해서 효과적으로 자동링크를 구성할 수 있습니다.
  • 도움이 필요하시면 게시판으로 문의하시기 바랍니다.

간단한 알고리즘 설명

  • Boyer-Moore-Horspool 문자열 탐색 알고리즘을 이용하여 대상 문서에 출현 가능한 사전 항목을 모두 추출한다.
  • 문서를 토큰 단위로 분리하여 추출된 사전 항목과의 일치 여부를 확인하고 일치하는 경우에 해당 사전의 좌우에 start_tag와 end_tag를 삽입한다.

PHP, JSP, JAVA 등에서 사용할 수 있는 방법

  • C++로 프로그램을 작성하고 passthru(), exec() 등의 함수를 이용하여 자바나 PHP 등에서 불러 쓸 수 있습니다. 현재 이 데모 페이지는 PHP 페이지에서 C++ 프로그램을 passthru()를 이용하여 그 결과 값을 출력하도록 구성되어 있습니다.

© 2006. GIIS - Group for Intelligent Information Systems. Some rights may be reserved.
Powered By KRISTAL-IRMS