정보 검색의 개요



2012.05.31
윤도상, dsyoon@ncue.net
목차

 • 정보 검색 시스템
     – 정의
     – 데이터베이스와 차이
 • 시스템의 간략한 구조
     –   Text Operator
     –   Indexer
     –   Searcher
     –   어려운 점
 • 검색 데모
 • 검색 고도화
 • 맺음말



                         2
정보 검색 시스템




  정의
   사용자가 필요로 하는 정보를 수집하고, 그 내용을 분석한 뒤
   찾기 쉬운 형태로 조직해서, 정보에 대한 요구가 발생했을 때,
   해당 정보를 찾아 제공하는 시스템




                    3
정보 검색 시스템

 • 정보 망원경




            [정보검색 시스템]




                   4
데이터베이스 vs. 정보검색

 • 데이터베이스                 Data Retrieval System
   – 데이터의 저장 & 관리
   – 정형화된 데이터 (row & column)
   – 정확한 해답 제공

 • 정보 검색             Information Retrieval System
   –   데이터의 빠른 검색
   –   비정형화된 데이터 (text, video, voice, …)
   –   확률이나 예측에 근거한 해답 제공
   –   근접도 정렬

           1. 상급자의 골프존 비전 소개
           2. 골프존 스크린골프 비전! 중구본점을 방문하다!
           3. 골프존 상급자용 스크린 골프 시스템 비전 이용 후기




                               5
정보 검색 시스템

 • 구성
   – Crawler(수집기): 대상 데이터의 수집
   – Indexer(색인기): 수집된 데이터를 빨리 찾을 수 있도록 구조화
   – Searcher(검색기): 요구에 적합한 정보 검색

 • 고려사항
   – 검색 대상
     • 폭발적으로 증가하는 컨텐츠 수
   – 검색 조건
     • 사용자 질의에 대한 빠른 응답시간




                      6
정보 검색 시스템

 • 개략적인 구조도
                                                                  Text
                                         User Interface
                                                                 Text
                 User Needs


                                  sdasf              sdasf
                        asda           Text Operator          asdfs
                              Logical Text                       Logical Text

                      Query
                     Operator                                Indexer              DB Manager
      User
      Feedback
                              System Query                       Inverted File
                                                                                 contents
                    Searcher                                 색인파일

                              Inverted Docs


                      Ranker
                                                                                    Database
   Ranked Docs



                                                      7
Text Operator

  • 정의
     – Text 형태의 문서나 사용자 쿼리에서 핵심 키워드를 추출함


           병렬 시스템이나 병렬 프로그램에 대해 알려주세요


                       형태소분석


                  병렬, 시스템, 병렬, 프로그램

                       가중치계산


                (병렬,2) (시스템,1) (프로그램,1)



                              8
Text Operator

  • 순서
     – 불용어(Stopword) 제거
         • 이, 그, 저, 는, 가, …, a, an, the, …,
     – 어간/어근 추출(Stemming)
         • 연구했다 (연구 + 하 + 았 + 다)  연구
         • fishing, fished, fish, fisher  fish
     – 명사류 추출
     – 색인어의 출현 빈도(TF: Term Frequency) 계산

            문서(DOCID)               (추출된 색인어, TF)

                001       (병렬, 4) (시스템, 3)
                002       (정보, 2) (검색, 3) (시스템, 2)
                003       (프로그램, 4) (시스템, 3) (성능, 1)
                004       (병렬, 2) (프로그램, 2)


                                     9
Indexer

  • 정의
     – 개개의 Text 데이터로부터 뽑혀진 색인어에 대해서 각 데이터를
       대표하도록 만들어 빠르게 검색될 수 있도록 구조화함




                      10
Indexer

  • 색인 전처리
     – (문서: 색인어,TF), …(색인어: 문서,TF), … 형태로 재구성
     – 색인어 순으로 정렬
          색인어               (문서번호, TF)
           검색    (002, 3)
           병렬    (001, 4) (004, 2)
           성능    (003, 1)
          시스템    (001, 3) (002, 2) (003, 3)
           정보    (002, 2)
          프로그램   (003, 4) (004, 2)

                                       문서(DOCID)          (추출된 색인어, TF)
                                              001   (병렬, 4) (시스템, 3)
                                              002   (정보, 2) (검색, 3) (시스템, 2)
                                              003   (프로그램, 4) (시스템, 3) (성능, 1)
                                              004   (병렬, 2) (프로그램, 2)
                                      11
Indexer
                                                          색인어            (문서번호, TF)

  • Inverted/Posting File 생성                            검색
                                                        병렬
                                                                  (002, 3)
                                                                  (001, 4) (004, 2)
                                                        성능        (003, 1)
                                                       시스템        (001, 3) (002, 2) (003, 3)
                                                        정보        (002, 2)
                                                      프로그램        (003, 4) (004, 2)
  [Inverted File]              [Posting File]
                               1           2          3           4             5
    색인어        문서개수     시작위치
                                    002         001        004        003            001
                                     3           4          2          1              3
     검색             1    1
                               6           7          8           9             10
     병렬             2    2
                                    002         003        002        003            004
     성능             1    4           2           3          2          4              2
    시스템             3    5     11          12
     정보             1    8
   프로그램             2    9


                                    0001          0002           0003               0004
                                    문서            문서             문서                 문서

                                    12
Searcher

  • Boolean Model
                     1 = 조건 식을 만족할 경우,
       sim(q, d )
                     0 = 조건 식을 만족하지 못할 경우,
예)
     [문서]
     0001: (병렬, 4) (시스템, 3)           0002: (정보, 2) (검색, 3) (시스템, 2)
     0003: (프로그램, 4) (시스템, 3) (성능, 1)   0004: (병렬, 2) (프로그램, 2)



     Q: “병렬 | 시스템 | 프로그램”         Q: “시스템 & 프로그램”

        0001=1                          0001=0
        0002=1                          0002=0
        0003=1                          0003=1
        0004=1                          0004=0



                                 13
Searcher

  • Vector Model
     – 쿼리와 문서를 모두 t차원의 벡터로 표현
             
             q      ( w1 , w2 ,  , wt )         wt       0
             dj      ( w1 j , w2 j ,, wtj )     wtj       0
               – t: 전체 문서집합 내에 존재하는 서로 다른 색인어의 수
               – 벡터의 값은 wi의 TF
     – 쿼리 벡터와 각 문서 벡터의 cosine 유사도 계산
           • 유사도 순으로 검색된 문서를 정렬

     문서: 병렬, 시스템, 프로그램                                         병렬

     쿼리: 시스템, 프로그램 j q
                  d                                     ( w1q w1 j       w2 q w2 j    )
     sim(d j , q)    cos
                                 dj        q   ( w12q      2
                                                          w2 q      )
                                                                    문서       ( w12j     2
                                                                                       w2 j   )
                                                //
                                                                                      시스템
                                                                     θ


                                                                     쿼리
                                               프로그램

                                               14
Searcher

     • Vector Model
       쿼리: (병렬,2) (시스템,1) (프로그램,1)
       [문서]
       0001: (병렬, 4) (시스템, 3)          0002: (정보, 2) (검색, 3) (시스템, 2)
       0003: (프로그램, 4) (시스템, 3) (성능, 1) 0004: (병렬, 2) (프로그램, 2)
                        검색          병렬         성능          시스템           정보         프로그램
              쿼리          0          2          0           1              0          1
              0001        0          4          0           3              0          0
              0002        3          0          0           2              2          0
              0003        0          0          1           3              0          4
              0004        0          2          0           0              0          2


                        (2 4 1 3)                8 3                                 (1 3 1 4)
sim(q, d1 )                                             0.90 sim(q, d 3 )                                    0.57
                     2 2 12 12      4 2 32     2.45 5                           2 2 12 12   12 32     42

                                 (1 2)                                              (2 2 1 2)
sim(q, d 2 )                                        0.20         sim(q, d 4 )                              0.87
                     2 2 12 12       32   22   22                               2 2 12 12   22   22
                                          0001 > 0004 > 0003 > 0002
                                                           15
검색 시스템의 어려운 점




                16
키워드 검색




                               미국과 일본
                               일본과 미국의 반도체
                               미국의 반도체 수출
                               미국의 반도체 수입
                               일본의 항공기 수출
 “일본의 반도체 수출과   일본, 반도체, 수출,   일본의 항공기 수입
 미국의 항공기 수입”    미국, 항공기 수입     ……




                      17
중의성

 • 주관적 정보
  – 문맥 해석의 차이                                 유아 – 아기
      • 예) 눈                                  제자 – 학생
                                              구매 – 구입
                                              기질 – 특성
                                              슬픈 – 우울한
  – 시대의 차이                                    미녀 – 미인
      • 예) 차                                  인간 – 사람
                                              ….
                 [100년전]        [지금]

  – 환경의 차이
      • 예) 시간표




                 [버스]       [기차]       [일과]

                           18
그 밖의 어려움

 • Numbers
   – 010-444-6567, 4105-1201-2310-2213, …
 • Hyphens
   – New-York New York
   – B-49  B 49
 • Punctuation Marks
   – 510B.C  510BC
   – val.id  valid
 • Stopword (불용어, 성인)
   – a, the, this, that, where, when, ….
   – 성폭행, 조폭, 폭력, 단란주점, 소녀, 스타킹, …




                              19
검색 데모
Solr 검색 엔진

 • 검색 데모 URL
    – http://ncue.net:8983/solr/select/?q=%EC%95%88%EC%B2%A0
      %EC%88%98+%EB%8C%80%EA%B6%8C&version=2.2&start
      =0&rows=10
 • 서제스트 데모 URL
    – http://ncue.net:8983/solr/suggestion/suggest?q=%EB%AF%B8%
      EB%9E%98




                               21
검색 고도화
검색 고도화 기법




               신한은행
                                        마스터즈

              나이키
                                        US오픈
                                  메이저
            롯데카드                   대회
                            최경주         오픈챔피언십
                      후원사

            SK텔레콤
                                        PGA챔피언십

            데니스골프




                23
데이터 마이닝

 • 검색쿼리: 신민아




 • 검색 고도화




               24
맺음말
호모서치엔스




         26
호모서치엔스



 검색은 새로운 취미와 새로운 인관 관계를 가질 수 있는 기
  회를 제공해주는 도구이자 창입니다.




                 27
질의/응답




         dsyoon@ncue.net




        28

정보검색의개요

  • 1.
  • 2.
    목차 • 정보검색 시스템 – 정의 – 데이터베이스와 차이 • 시스템의 간략한 구조 – Text Operator – Indexer – Searcher – 어려운 점 • 검색 데모 • 검색 고도화 • 맺음말 2
  • 3.
    정보 검색 시스템 정의 사용자가 필요로 하는 정보를 수집하고, 그 내용을 분석한 뒤 찾기 쉬운 형태로 조직해서, 정보에 대한 요구가 발생했을 때, 해당 정보를 찾아 제공하는 시스템 3
  • 4.
    정보 검색 시스템 • 정보 망원경 [정보검색 시스템] 4
  • 5.
    데이터베이스 vs. 정보검색 • 데이터베이스 Data Retrieval System – 데이터의 저장 & 관리 – 정형화된 데이터 (row & column) – 정확한 해답 제공 • 정보 검색 Information Retrieval System – 데이터의 빠른 검색 – 비정형화된 데이터 (text, video, voice, …) – 확률이나 예측에 근거한 해답 제공 – 근접도 정렬 1. 상급자의 골프존 비전 소개 2. 골프존 스크린골프 비전! 중구본점을 방문하다! 3. 골프존 상급자용 스크린 골프 시스템 비전 이용 후기 5
  • 6.
    정보 검색 시스템 • 구성 – Crawler(수집기): 대상 데이터의 수집 – Indexer(색인기): 수집된 데이터를 빨리 찾을 수 있도록 구조화 – Searcher(검색기): 요구에 적합한 정보 검색 • 고려사항 – 검색 대상 • 폭발적으로 증가하는 컨텐츠 수 – 검색 조건 • 사용자 질의에 대한 빠른 응답시간 6
  • 7.
    정보 검색 시스템 • 개략적인 구조도 Text User Interface Text User Needs sdasf sdasf asda Text Operator asdfs Logical Text Logical Text Query Operator Indexer DB Manager User Feedback System Query Inverted File contents Searcher 색인파일 Inverted Docs Ranker Database Ranked Docs 7
  • 8.
    Text Operator • 정의 – Text 형태의 문서나 사용자 쿼리에서 핵심 키워드를 추출함 병렬 시스템이나 병렬 프로그램에 대해 알려주세요 형태소분석 병렬, 시스템, 병렬, 프로그램 가중치계산 (병렬,2) (시스템,1) (프로그램,1) 8
  • 9.
    Text Operator • 순서 – 불용어(Stopword) 제거 • 이, 그, 저, 는, 가, …, a, an, the, …, – 어간/어근 추출(Stemming) • 연구했다 (연구 + 하 + 았 + 다)  연구 • fishing, fished, fish, fisher  fish – 명사류 추출 – 색인어의 출현 빈도(TF: Term Frequency) 계산 문서(DOCID) (추출된 색인어, TF) 001 (병렬, 4) (시스템, 3) 002 (정보, 2) (검색, 3) (시스템, 2) 003 (프로그램, 4) (시스템, 3) (성능, 1) 004 (병렬, 2) (프로그램, 2) 9
  • 10.
    Indexer •정의 – 개개의 Text 데이터로부터 뽑혀진 색인어에 대해서 각 데이터를 대표하도록 만들어 빠르게 검색될 수 있도록 구조화함 10
  • 11.
    Indexer •색인 전처리 – (문서: 색인어,TF), …(색인어: 문서,TF), … 형태로 재구성 – 색인어 순으로 정렬 색인어 (문서번호, TF) 검색 (002, 3) 병렬 (001, 4) (004, 2) 성능 (003, 1) 시스템 (001, 3) (002, 2) (003, 3) 정보 (002, 2) 프로그램 (003, 4) (004, 2) 문서(DOCID) (추출된 색인어, TF) 001 (병렬, 4) (시스템, 3) 002 (정보, 2) (검색, 3) (시스템, 2) 003 (프로그램, 4) (시스템, 3) (성능, 1) 004 (병렬, 2) (프로그램, 2) 11
  • 12.
    Indexer 색인어 (문서번호, TF) • Inverted/Posting File 생성 검색 병렬 (002, 3) (001, 4) (004, 2) 성능 (003, 1) 시스템 (001, 3) (002, 2) (003, 3) 정보 (002, 2) 프로그램 (003, 4) (004, 2) [Inverted File] [Posting File] 1 2 3 4 5 색인어 문서개수 시작위치 002 001 004 003 001 3 4 2 1 3 검색 1 1 6 7 8 9 10 병렬 2 2 002 003 002 003 004 성능 1 4 2 3 2 4 2 시스템 3 5 11 12 정보 1 8 프로그램 2 9 0001 0002 0003 0004 문서 문서 문서 문서 12
  • 13.
    Searcher •Boolean Model 1 = 조건 식을 만족할 경우, sim(q, d ) 0 = 조건 식을 만족하지 못할 경우, 예) [문서] 0001: (병렬, 4) (시스템, 3) 0002: (정보, 2) (검색, 3) (시스템, 2) 0003: (프로그램, 4) (시스템, 3) (성능, 1) 0004: (병렬, 2) (프로그램, 2) Q: “병렬 | 시스템 | 프로그램” Q: “시스템 & 프로그램” 0001=1 0001=0 0002=1 0002=0 0003=1 0003=1 0004=1 0004=0 13
  • 14.
    Searcher •Vector Model – 쿼리와 문서를 모두 t차원의 벡터로 표현  q ( w1 , w2 ,  , wt ) wt 0 dj ( w1 j , w2 j ,, wtj ) wtj 0 – t: 전체 문서집합 내에 존재하는 서로 다른 색인어의 수 – 벡터의 값은 wi의 TF – 쿼리 벡터와 각 문서 벡터의 cosine 유사도 계산 • 유사도 순으로 검색된 문서를 정렬 문서: 병렬, 시스템, 프로그램 병렬 쿼리: 시스템, 프로그램 j q d ( w1q w1 j w2 q w2 j ) sim(d j , q) cos dj q ( w12q 2 w2 q ) 문서 ( w12j 2 w2 j ) // 시스템 θ 쿼리 프로그램 14
  • 15.
    Searcher • Vector Model 쿼리: (병렬,2) (시스템,1) (프로그램,1) [문서] 0001: (병렬, 4) (시스템, 3) 0002: (정보, 2) (검색, 3) (시스템, 2) 0003: (프로그램, 4) (시스템, 3) (성능, 1) 0004: (병렬, 2) (프로그램, 2) 검색 병렬 성능 시스템 정보 프로그램 쿼리 0 2 0 1 0 1 0001 0 4 0 3 0 0 0002 3 0 0 2 2 0 0003 0 0 1 3 0 4 0004 0 2 0 0 0 2 (2 4 1 3) 8 3 (1 3 1 4) sim(q, d1 ) 0.90 sim(q, d 3 ) 0.57 2 2 12 12 4 2 32 2.45 5 2 2 12 12 12 32 42 (1 2) (2 2 1 2) sim(q, d 2 ) 0.20 sim(q, d 4 ) 0.87 2 2 12 12 32 22 22 2 2 12 12 22 22 0001 > 0004 > 0003 > 0002 15
  • 16.
  • 17.
    키워드 검색 미국과 일본 일본과 미국의 반도체 미국의 반도체 수출 미국의 반도체 수입 일본의 항공기 수출 “일본의 반도체 수출과 일본, 반도체, 수출, 일본의 항공기 수입 미국의 항공기 수입” 미국, 항공기 수입 …… 17
  • 18.
    중의성 • 주관적정보 – 문맥 해석의 차이 유아 – 아기 • 예) 눈 제자 – 학생 구매 – 구입 기질 – 특성 슬픈 – 우울한 – 시대의 차이 미녀 – 미인 • 예) 차 인간 – 사람 …. [100년전] [지금] – 환경의 차이 • 예) 시간표 [버스] [기차] [일과] 18
  • 19.
    그 밖의 어려움 • Numbers – 010-444-6567, 4105-1201-2310-2213, … • Hyphens – New-York New York – B-49  B 49 • Punctuation Marks – 510B.C  510BC – val.id  valid • Stopword (불용어, 성인) – a, the, this, that, where, when, …. – 성폭행, 조폭, 폭력, 단란주점, 소녀, 스타킹, … 19
  • 20.
  • 21.
    Solr 검색 엔진 • 검색 데모 URL – http://ncue.net:8983/solr/select/?q=%EC%95%88%EC%B2%A0 %EC%88%98+%EB%8C%80%EA%B6%8C&version=2.2&start =0&rows=10 • 서제스트 데모 URL – http://ncue.net:8983/solr/suggestion/suggest?q=%EB%AF%B8% EB%9E%98 21
  • 22.
  • 23.
    검색 고도화 기법 신한은행 마스터즈 나이키 US오픈 메이저 롯데카드 대회 최경주 오픈챔피언십 후원사 SK텔레콤 PGA챔피언십 데니스골프 23
  • 24.
    데이터 마이닝 •검색쿼리: 신민아 • 검색 고도화 24
  • 25.
  • 26.
  • 27.
    호모서치엔스 검색은 새로운취미와 새로운 인관 관계를 가질 수 있는 기 회를 제공해주는 도구이자 창입니다. 27
  • 28.
    질의/응답 dsyoon@ncue.net 28