DB를 이용한 정보검색기 구현 (sqlite3)

Slides:



Advertisements
Similar presentations
7 월 12 일 실습 StockQuoteClient.java MarketClient.java.
Advertisements

PowerBuilder Stored Procedure DW
19.(코드+년도+월)별,(코드)별,전체총액을 한번에
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
Term Project iTUTOR를 이용한 PIC 동작 검증 보고서와 모든 소스코드 압축하여 제출
DB 프로그래밍 학기.
DB 프로그래밍 학기.
Database Laboratory, Hong Ik University
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
Homework #1 연관규칙, 분류, 클러시트링의 세 가지 마이닝 방법에 대해, 교재 및 강의노트에 나오지 않는 사례를 각각 1개씩 드시오. 교재 p. 86의 2번 문제 교재 p. 91의 19번 문제 문서는 각 단어의 빈도를 조사하여 문서 벡터로 나타낼 수 있다. 문서.
Cross Compiler를이용한 커널 컴파일 및 포팅
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
신년워크숍-전략경영본부 (월), 09:30~13:30, 본관 교육장.
14장 질의응답 한빛미디어(주).
SQL*PLUS.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
VHDL Design : Barrel Shifter
5장 Mysql 데이터베이스 한빛미디어(주).
Ubiquitous Computing Practice - Part I (Installation) -
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
6장 그룹 함수.
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
4-1장. MySQL 제13장.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
1. C++ 시작하기.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
메시지 큐[5] – test1.c 메시지 제어: msgctl(2) #include <sys/msg.h>
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
Computer Architecture HW #3
5장 Mysql 데이터베이스 한빛미디어(주).
C++프로그래 밍 컴퓨터정보과 / 이기희교수.
DB연동하기 원격db접속.
You YoungSEok Oracle 설치 You YoungSEok
TF-IDF Porter stemmer, AP-88데이터셋
웹 어플리케이션 보안 2016년 2학기 3. Mongo db.
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
CHAP 13. 방명록 만들기 실습.
JDBC Lecture 004 By MINIO.
SQL Query in the SSMS : DB, Table
강의 개요. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
15장 자료실 한빛미디어(주).
영상처리 실습 인공지능연구실.
IS lab. 김건영 TF-IDF IS lab. 김건영
Smart Workplace 개발자 가이드
11장. GROUP BY와 HAVING 열의 그룹화 2개 이상의 열에 대한 그룹화
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
SQL INJECTION MADE BY 김 현중.
4.DECODE 함수를 이용한 IF 처리의 효율화
문성우 SQL 실습 Part Ⅰ 문성우.
OpenCV 설정 2.21 만든이 딩딩.
수동 설치시는 설치 방법 1. 두번에 설치 CD 속에 fscommand 폴더 밑에 Osstem 이라는 폴더를
Word2Vec.
05. General Linear List – Homework
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
Tensorboard in Windows
Chapter 10 데이터 검색1.
MATLAB Homework#6 Equalizer 기초
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
과제물 3호 3번 문제 설명자료.
Data Base Mysql.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
14 뷰(View) 뷰의 개념 뷰 관리.
 6장. SQL 쿼리.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
SPL-Duino 블록 편집기 이용하기 전류센서 블록 만들기 SPL-Duino 블록 편집기를 실행합니다.
Prof. Kyungshik Lim Kyungpook National University
Intelligent software Lab. 전재원
Presentation transcript:

DB를 이용한 정보검색기 구현 (sqlite3) IS lab. 김건영 http://hagazzusa.github.io/

1주전에 한 내용 Sed/awk를 이용한 문서 가공 Porter stemming 적용 tf-idf 를 사용하여 AP-88 데이터셋에 대하여 scoring

오늘 할거 Sed/awk를 이용한 문서 가공 (Dictionary대신 DB사용) Porter stemming 적용 tf-idf 를 사용하여 AP-88 데이터셋에 대하여 scoring (평가 툴을 사용하여 성능 확인)

SQLITE3 사용 Sqlite는 별도의 DB서버가 필요 없이 DB파일에 기초하 여 DB처리를 구현한 SQL DB엔진이다.

Posting list 사전 구조 -> DB table Post_list = { “term”:{“docs”: {STR:INT}, “doc_freq”: INT, “col_freq”: INT} … } TERMS DOCS TERMS 테이블은 없어도 된다. Term을 기준으로 doc_freq은 DOCS에서 doc_id를 COUNT col_freq는 DOCS에서 freq를 SUM하면 되기에, 다만 DOCS만 쓴다면 매번 계산해야 되므로 미리 만들어두자. term doc_freq col_freq term doc_id freq

SQLITE3 DB생성 Tfidfscorer.py가 있는 폴더에서 테이블 3 개를 만든다. .이 앞에 붙는 명령어들은 sqlite고유 명령어로 .table은 현재 생성된 테이블들을 보여준다.

SQLITE3 데이터 추가 및 삭제 (‘test’, 1, 1)추가 Term=‘test’인 행 삭제 .exit 명령어를 쓰면 빠져나올 수 있다.

Python에서 sqlite3 사용 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import sqlite3   # SQLite DB 연결 conn = sqlite3.connect("tfidf.db") # Connection 으로부터 Cursor 생성 cur = conn.cursor() # SQL 쿼리 실행 cur.execute(“SELECT * FROM TERMS") # 데이타 Fetch rows = cur.fetchall() for row in rows:     print(row) # Connection 닫기 conn.close()

Paramterized query 위와 같은 query는 아래 두가지 방법으로 대체 가능하다. ? Place holder (앞에서부터 순서대로) Named place holder (키-밸류) sql = "select * from customer where category=1 and region=‘SEA’" Cur.execute(sql) sql = "select * from customer where category=? and region=?" Cur.execute(sql, (1, ‘SEA’)) sql = "select * from customer where category= :ca and region= :re" Cur.execute(sql, {‘ca’:1, ‘re’:’SEA”})

Dictionary to DB File_to_dict는 예전과 그대로, DB_build는 한번만 실행 Sqlite3 에서 “SELECT * FROM TERMS”(DOCS)를 해보자

Tf-idf 계산부분

테스트하기 DB_build는 한번만 실행

Full data를 이용한 정보검색기 평가 평가용 질문셋 (첫번째 줄이 202번 질문) 평가용 정답셋 (질문 | null | 문서이름 | null)

Full data를 이용한 정보검색기 평가 지난 시간에 했던 자료들과 지금 만든 sqlite3를 이용한 tf-idf, AP-88 full data set을 한 곳에 넣는다. 지난 시간에 했던 전처리를 AP88.txt에 하면 되나…. 너무 크고 오래 걸리므로 DB를 연결만 하자 (Build_DB는 이후 쓰지 않는다.) /home/gykim/tfidf_full.db

새로운 DB 연결 Connection 함수에서 /home/gykim/tfidf_full.db에 연 결만 해주면 된다.

평가하기 “질문 번호” “Q질문번호-1” “문서이름” “랭킹” “결과값” “본인이름” 이 들어간 AP88_result.txt파일이 만들어진다.

평가하기 평가 프로그램을 다운받아 result파일, 정답셋과 같은 곳에 둔다. 위와 같이 실행하고 AP88_eval.txt를 열면 성능이 나온다. Retrieved : 검색된 문서 수 Relevant : 정답 문서 수 Rel_ret : 정답이면서 검색된 수 성능지표 precision : 검색된 문서 중 정답의 개수 recall : 정답중 검색된 개수

과제 AP88_eval.txt의 내용을 메일로 보낸다. (파일첨부 아님) 제목 : [학번]AP88_eval 메일주소 : gyk@kangwon.ac.kr 기한 5/6일(일요일) 오후 11시 59분 59초