11.텍스트를 위한 화일.

Slides:



Advertisements
Similar presentations
2.6 탐색(Search) 1. 순차검색 (Sequential Search, Linear Search)
Advertisements

UNIX 운영 체제의 설계 - Chapter 4. 파일의 내부 표현
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
피티라인 파워포인트 템플릿.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
4. 순차 화일.
연결리스트(linked list).
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
블록 속성 정의와 추출 속성 정의 블록을 만들 객체들에 문자를 사용하여 속성을 설명하는 꼬리표에 해당하는 태그를 정의하는
MySQL 및 Workbench 설치 데이터 베이스.
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
5장 Mysql 데이터베이스 한빛미디어(주).
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Error Detection and Correction
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
12. 데이타베이스.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
7장 인덱스된 순차 화일.
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
5장 Mysql 데이터베이스 한빛미디어(주).
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
11.텍스트를 위한 화일.
DBMS 기능 DBMS 구성 요소 물리적 저장 구조
인터넷응용프로그래밍 JavaScript(Intro).
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
27장. 모듈화 프로그래밍.
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
CHAP 5. 레이아웃.
01 화일의 기본 개념 02 화일 저장장치 03 화일 입출력 제어 04 순차화일 05 화일의 정렬 06 화일의 합병
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
USN(Ubiquitous Sensor Network)
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Database Management System
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
텍스트 분석 기초.
계산기.
CHAP 21. 전화, SMS, 주소록.
VHDL를 이용한 DES 설계 정보통신컴퓨터공학부 5조 김인옥, 백미숙
9.다중 키 화일.
문성우 SQL 실습 Part Ⅰ 문성우.
데이터 동적 할당 Collection class.
6장. 물리적 데이터베이스 설계 물리적 데이터베이스 설계
문서 클러스터링 일본언어문화학과 서동진.
메타검색 이용안내 전자자원 통합검색 2011 중 앙 도 서 관.
9장 파일시스템(File System) 박동근.
오라클 11g 보안.
SPL3D Printer If 조건문.
05. General Linear List – Homework
Chapter 10 데이터 검색1.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
제 4 장 Record.
2014년 가을학기 손시운 지도 교수: 문양세 교수님 행렬과 배열 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
 6장. SQL 쿼리.
피티라인 파워포인트 템플릿.
컴퓨터는 어떻게 덧셈, 뺄셈을 할까? 2011년 10월 5일 정동욱.
Power Point 예제 디자인 적용 (서식) - (디자인적용) - (원하는 디자인 선택)
7 생성자 함수.
6 객체.
20 XMLHttpRequest.
교과서 78쪽 학습 목표 정보 관리의 필요성을 이해할 수 있다. 데이터베이스의 개념과 필요성을 이해할 수 있다.
Presentation transcript:

11.텍스트를 위한 화일

▶ 텍스트를 위한 화일 텍스트 데이타로 구성된 문서(documents)나 텍스트 필드(text field)를 포함하고 있는 레코드 검색에 이용할 수 있는 화일 텍스트(text): 긴 문자열로 구성된 데이타 (예) 학생의 자기 소개, 신문 기사, 사전의 용어, 인터넷 사이트에 대한 설명 정보 키 워드(keyword): 텍스트 데이타에 대한 탐색 키 값 하나의 레코드를 식별하기 위하여 텍스트 필드는 여러 개의 키워드가 사용될 수 있음. (예) 학번이 123456인 학생 레코드의 자기 소개 필드에 “데이타베이스 시스템과 질의어에 대한 지식을 보유하고 있다.” 라고 기술되어 있다고 가정하면. “데이타베이스”, “시스템”, “질의어” 라는 키워드로 학번이 123456인 학생 레코드를 검색할 수 있음 응용 분야 digital office filing, digital library, image database , 기사(article) 검색 인터넷 검색 엔진의 핵심기술

 역 리스트 화일(inverted list file) 텍스트 필드를 지원하는 대표적 화일 구조 역 화일(inverted file)에서는 인덱스 엔트리가 여러 개의 포인터를 포함할 수 있지만 화일 내에서 이 포인터들은 모두 상이하다. 역 리스트 화일에서는 인덱스 엔트리가 여러 개의 포인터를 포함할 수 있을 뿐 아니라 하나의 레코드에 대한 포인터가 상이한 인덱스 엔트리에 중복해서 여러 번 포함 될 수 있다.

▶ 역 리스트 화일 구조 레코드가 문서(document)라고 가정할 때 역 리스트 화일은 인덱스 화일(index file), 포스팅 화일(posting file), 데이타 화일(data file)로 구성된다. 1. 인덱스 화일(index file) 또는 사전(dictionary) 키워드: 알파벳 순으로 정렬 관련된 문서 수(hit 수) 포스팅 화일에 대한 포인터 2. 포스팅 화일(posting file) : 키워드를 포함하고 있는 문서들에 대한 포인터 리스트 (<문서번호, 포인터>)를 저장 그 외에 그 문서에서 해당 키워드의 출현 빈도(frequency) 그 문서에서 해당 키워드의 상대적인 가중치(weight) 그 문서에서 해당 키워드의 오프셋(offset) 즉 키워드의 위치 등 3. 데이타 화일 (data file) 또는 문서 화일(document file) 텍스트 즉 문서를 저장한 화일

▶ 역 리스트 화일 구조의 예 … 2 질의어 시스템 3 데이타베이스 7 1 6 5 문서2 : 시스템 운영과 관리 경험이 있다. 문서1 : 데이타 베이스 시스템과 질의어에 대한 지식을 보유하고 있다. 키워드 히트링크 인덱스 화일 문서번호 링크 포스팅 화일 데이타 화일

▶ 역 리스트 화일의 검색 질의(query): 특정 키워드를 포함하고 있는 문서를 검색하는 과정 1. 불리언 질의(boolean query) 탐색 키워드들간의 논리적 관계를 AND, OR, NOT ( &, |, ! )를 이용하여 표현 (예) ‘데이타베이스 & 질의어’ 질의는 두 키워드가 모두 포함하는 데이타 화일을 검색 --- {1, 5, 6} & {1, 7} 을 AND하면 {1}이 되므로, 두 키워드를 포함한 문서는 1 번 문서 2. 랭킹 질의(ranking query) 원하는 문서를 단순히 키워드 리스트로 명세 명세된 키워드와 목표 문서 간의 근접도(closeness), 즉 유사성(similarity)을 평가하여 근접도가 높은 순서로 일정한 수(k)의 문서를 질의 결과로 생성. 근접도 계산에는 키워드의 가중치가 사용

 시그니처 화일(Signature File) 기본 아이디어는 개략적 필터(inexact filter) 방식에 기반 부적격 데이타를 우선적으로 제외 전체 화일의 내용을 순차적으로 검색하지 않고, 화일의 내용을 코드화해서 작은 공간을 차지하는 후보 데이타를 걸러낸 뒤에 이들을 검사해서 목표 데이타를 검색하는 방법 접근 방법 1. 문서(document)들을 텍스트 화일(text file)에 순차적으로 저장. 2. 이 문서들에 대한 문서 시그니처(document signature), 즉 해시 코드된 비트 패턴(hash-coded bit pattern)들을 시그니처 화일 (signature file)에 저장. 3. 질의문 처리시 이 시그니처 화일을 먼저 검사해서 부적격 문서를 걸러냄. 4. 나머지 문서들을 검사해서 결과를 생성. 시그니처는 일반적으로 중첩 코딩(superimposed coding) 방법을 이용하여 생성

▶ 중첩 코딩 생성 방법 각 문서를 일정 수(D)의 상이한 키워드를 포함하는 논리 블록 (logical block)으로 분할 2. 각 키워드에 대해 F개의 비트로 구성된 키워드 시그니처(keyword signature)를 작성. 키워드 시그니처는 m개의 비트만 1로 설정되고, 나머지는 0으로 설정 F와 m의 값은 시그니처 화일 설계 시에 결정 각 키워드 시그니처에 1로 설정되는 m 개의 위치는 hash 함수로 결정 3. 한 논리 블록에 속한 D개의 키워드 시그니처들에 OR 연산을 수행하여 하나의 블록 시그니처(block signature)를 작성 4. 문서에 속한 블록 시그니처들을 모두 접합(concatenation)하여 문서 시그니처(document signature)를 작성. 5. 질의문에 명세된 키워드를 검색하기 위해서는 이 키워드의 시그니처를 만들어 여기에 포함된 1들이 각 블록 시그니처의 1들과 일치하는지 비교해서 매치 여부를 결정

▶ 중첩 코딩 예 D=3, F=16, m=3인 경우의 중첩 코딩 예 키워드 시그니처 (F=16 비트) 데이타베이스 0010 0100 0000 0001 시스템 0000 1000 1000 0010 질의어 0100 1000 0100 0000 블록 시그니처 0110 1100 1100 0011

▶ 시그니처 화일을 이용한 검색 블록이 질의문의 키워드를 포함하고 있는지는 다음 식의 만족 여부로 결정: (질의문 시그니처) AND (블록 시그니처) = 질의문 시그니처? 질의문 예 : “시스템”이 포함된 문서를 검색하라 질의 시그니처 생성 0000 1000 1000 0010 2. 블록 시그니처 0110 1100 1100 0011 3. 질의 시그니처 AND 블록 시그니처 AND 0110 1100 1100 0011 ------------------------------------------ 0000 1000 1000 0010 (≡ 질의 시그니처) 4. 위의 조건을 만족하는 문서에 대해 “시스템”이 포함되었는지 실제로 검사

▶ 시그니처 화일의 장단점 시그니처 화일의 장점 시그니처 화일의 단점 전문(full text) 검색보다 2배 정도 빠름. 10 ~ 15%의 추가 공간만 필요 역 화일(inverted file)의 인덱스는 50 ~ 300%의 추가 공간을 필요 추가적인 삽입만을 허용하므로 삽입 연산이 간단 시그니처 화일의 단점 대규모 DB에서는 속도 저하 허위 통과(false drop) 또는 허위 적중(false hit) 시그니처 구성에 포함되지 않은 키워드가 매치되는 것

▶ 시그니처 화일의 구조 시그니처 화일은 N 개의 블록 시그니처를 나타내는 N x F 이진 행렬(binary matrix) 순차 시그니처 화일(SSF; sequential signature file) N 개의 블록 시그니처를 행 단위로 순차 저장 포인터 화일은 논리 블록의 시작점을 지시

▶ 시그니처 화일의 검색 방법 검색 과정 ① 질문에 포함된 키워드로 하나의 질의문 시그니처(query signature)를 생성 ② 질의문 시그니처를 N개의 논리 블록 시그니처의 각 각과 AND 연산한 결과로 질의 시그니처와 매치 여부를 결정 ③ 매치된 블록에 해당하는 포인터 화일의 포인터를 따라 텍스트 화일을 검색하여 질의문의 키워드들이 포함되어 있는 지를 검사 ④ ③에서 실제로 매치된 논리 블록들을 검색 결과로 출력

▶ 시그니처 화일의 성능 향상 방안(1) (1) 압축(compression) 시그니처의 행렬이 희소할 경우(1의 수가 매우 적음) 압축을 통해 저장 공간을 축소 시그니처 화일의 검색 시간 단축 (2) 수직 분할(vertical partitioning) 시그니처 화일을 열 단위, 즉 비트 슬라이스(bitslice)로 나누어 저장 비트 슬라이스 구조는 전치 비트 행렬(transposed bit matrix)이 됨 각 비트 위치마다 하나의 비트 화일(bit-file)로 전부 F 개의 화일을 사용하여 저장함 검색 시 질의문 시그니처에 1로 세트된 m 개의 파일에서 m 비트 벡터만 검색하여 AND를 하면 원하는 논리 블록을 식벽 할 수 있음 전체 검색시간 단축 시그니처 삽입 시에는 F 개의 화일을 전부 접근해야 됨 삽입 시간은 증가

▶ 시그니처 화일의 성능 향상 방안(2) (3) 수평 분할(horizontal partitioning) 유사 시그니처를 그룹화하고 이 시그니처 그룹에 대한 인덱스를 만들어 검색 전체 시그니처 화일의 순차 검색이 불필요