KR101769940B1 - 문서를 검색하는 방법 - Google Patents

문서를 검색하는 방법 Download PDF

Info

Publication number
KR101769940B1
KR101769940B1 KR1020160026494A KR20160026494A KR101769940B1 KR 101769940 B1 KR101769940 B1 KR 101769940B1 KR 1020160026494 A KR1020160026494 A KR 1020160026494A KR 20160026494 A KR20160026494 A KR 20160026494A KR 101769940 B1 KR101769940 B1 KR 101769940B1
Authority
KR
South Korea
Prior art keywords
word
concept
documents
search
axis
Prior art date
Application number
KR1020160026494A
Other languages
English (en)
Inventor
김한준
홍기주
Original Assignee
서울시립대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울시립대학교 산학협력단 filed Critical 서울시립대학교 산학협력단
Priority to KR1020160026494A priority Critical patent/KR101769940B1/ko
Application granted granted Critical
Publication of KR101769940B1 publication Critical patent/KR101769940B1/ko

Links

Images

Classifications

    • G06F17/30011
    • G06F17/2705
    • G06F17/28
    • G06F17/30401
    • G06F17/30424

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 일 실시예에 따른 문서를 검색하는 방법은 프로세서 및 상기 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스에서 수행되며, 상기 복수의 문서에 포함된 각각의 문서를 나타내는(representing) 문서 축(axis), 상기 각각의 문서가 포함하는 단어를 나타내는 단어 축 및 상기 각각의 문서에 포함된 단어가 해당 문서에서 갖는 의미인 개념(concept)을 나타내는 개념 축이 3차원 공간에서 서로 직교하도록 구성될 때, 상기 복수의 문서를 상기 3차원 공간에서 표현하는 단계와, 상기 복수의 문서 각각을 상기 단어 축과 상기 개념 축으로 이루어진 2차원 평면에서 표현하는 단계와, 상기 검색어를 입력받는 단계와, 상기 2차원 평면에서 표현된 상기 복수의 문서 각각에 대하여, 상기 입력받은 검색어와 유사한 정도를 나타내는 유사도를 산출하는 단계와, 상기 유사도를 기초로 상기 복수의 문서 중에서 일부를 검색한 결과로 출력하는 단계를 포함한다.

Description

문서를 검색하는 방법 {METHOD FOR SEARCHING DOCUMENT}
본 발명은 문서를 검색하는 방법에 관한 것이다. 보다 자세하게는 복수의 문서를 단어 축, 개념 축, 문서 축이 직교하는 3차원 공간에서 큐보이드 모델로 나타내고, 검색어가 입력되면 이러한 큐보이드 모델을 이용하여 검색어와 관련있는 관련 개념을 추출한 뒤, 입력된 검색어와 추출된 관련 개념을 기초로 검색을 수행하는 자의 의도를 파악하여 검색을 수행하는 방법, 즉 시멘틱 검색 방법에 관한 것이다.
시장 조사 업체인 IDC(International Data Corporation)가 최근에 발표한 디지털 유니버스 보고서(Digital Universe Study)에 따르면, 2011년에 생성된 데이터의 양은 약 1.8 제타바이트(1.8 zettabytes = 1.8조 기가바이트)로 추정되며, 향후 10년간 그 규모는 50배를 초과할 것이라고 한다. 따라서, 이러한 대용량의 데이터에서 검색을 수행하는 자(이하, 사용자라고 지칭하기로 함)의 의도를 파악하여 의도에 부합되는 문서를 정확하게 찾아주는 검색 기술의 중요성이 더욱 높아지고 있다.
현재의 검색 기술에는 예를 들면 키워드 기반 알고리즘과 링크 기반 알고리즘 등이 있다. 이들 검색 기술은 사용자가 입력한 검색어만을 기초로 검색을 수행한다는데에 특징이 있다.
그러나, 현재의 검색 기술로는 사용자가 입력한 검색어만으로는 사용자의 의도를 정확하게 파악하기 어렵다. 왜냐하면, 검색어는 다양하게 해석될 수 있기 때문이다. 예를 들면, 검색어가 'JAVA'인 경우, 기존의 검색 기술로는 검색어 'JAVA'가 커피의 한 종류를 의도한 것인지, 섬의 이름을 것인지, 컴퓨터 프로그래밍 언어를 의도한 것인지를 파악할 수 없다.
아울러, 현재의 검색 기술로는 사용자의 의도를 정확하게 파악하였다고 하더라도, 파악된 사용자의 의도에 부합하는 검색 결과를 도출하는 것 또한 용이하지 않다. 왜냐하면, 현재의 검색 기술은 단순히 검색어에 상응하는 단어가 문서에 포함되어 있는지 여부 또는 검색어에 상응하는 단어가 문서에 포함되는 횟수 등을 기초로 검색을 수행하여 그 결과를 도출할 뿐, 검색어에 상응하는 단어가 해당 문서에서 어떠한 의미로 사용되었는지를 파악할 수 없기 때문이다. 즉, 검색어가 'JAVA'이고 커피의 한 종류를 의도한 것까지 파악하였다고 하더라도, 기존의 검색 기술로는 'JAVA'를 포함하는 모든 문서, 예를 들면 커피의 종류를 나타내는 'JAVA'가 포함된 문서 뿐 아니라, 섬의 이름을 나타내는 'JAVA'를 포함하는 문서 및 컴퓨터 프로그래밍 언어를 나타내는 'JAVA'를 포함하는 문서를 모두 포함하여 검색할 수 있을 뿐이다.
따라서, 검색어를 기초로 사용자의 의도를 정확하게 파악할 수 있고, 이와 같이 파악된 사용자의 의도를 기초로 그 의도에 부합되는 검색 결과를 제공할 수 있는 검색 방법에 대한 기술이 요구된다.
특허문헌 : 한국공개특허 제2008-0035248호 (2008.04.23. 공개)
본 발명이 해결하고자 하는 과제는, 검색어를 기초로 사용자의 의도를 정확하게 파악할 수 있고, 이와 같이 파악된 사용자의 의도에 부합되는 검색 결과를 제공할 수 있는 검색 방법에 대한 기술을 제공하는 것이다.
다만, 본 발명의 해결하고자 하는 과제는 이에 한정되지 않는다.
본 발명의 일 실시예에 따른 문서를 검색하는 방법은 프로세서 및 상기 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스에서 수행되며, 상기 복수의 문서에 포함된 각각의 문서를 나타내는(representing) 문서 축(axis), 상기 각각의 문서가 포함하는 단어를 나타내는 단어 축 및 상기 각각의 문서에 포함된 단어가 해당 문서에서 갖는 의미인 개념(concept)을 나타내는 개념 축이 3차원 공간에서 서로 직교하도록 구성될 때, 상기 복수의 문서를 상기 3차원 공간에서 표현하는 단계와, 상기 복수의 문서 각각을 상기 단어 축과 상기 개념 축으로 이루어진 2차원 평면에서 표현하는 단계와, 상기 검색어를 입력받는 단계와, 상기 2차원 평면에서 표현된 상기 복수의 문서 각각에 대하여, 상기 입력받은 검색어와 유사한 정도를 나타내는 유사도를 산출하는 단계와, 상기 유사도를 기초로 상기 복수의 문서 중에서 일부를 검색한 결과로 출력하는 단계를 포함한다.
또한, 상기 2차원 평면에서 표현하는 단계는 상기 단어 축을 행렬의 행(row)과 열(column) 중 어느 하나로, 상기 개념 축을 상기 행렬의 행과 열 중 나머지 하나로 맵핑하여서 상기 복수의 문서 각각을 상기 2차원 평면에서 행렬로 표현할 수 있다.
또한, 상기 유사도는 상기 검색어를 행렬로 표현한 뒤, 상기 행렬로 표현된 상기 복수의 문서 각각과 상기 행렬로 표현된 검색어와의 행렬 간에 산출된 코사인 유사도일 수 있다.
또한, 상기 코사인 유사도는 행렬 간 프로베니우스(frobenius) 곱 및 각 행렬에 대한 L2-놈(norm)을 기초로 산출될 수 있다.
본 발명의 다른 실시예에 따른 문서를 검색하는 방법은 프로세서 및 상기 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스에서 수행되며, 상기 복수의 문서에 포함된 각각의 문서를 나타내는(representing) 문서 축(axis), 상기 각각의 문서가 포함하는 단어를 나타내는 단어 축 및 상기 각각의 문서에 포함된 단어가 해당 문서에서 갖는 의미인 개념(concept)을 나타내는 개념 축이 3차원 공간에서 서로 직교하도록 구성될 때, 상기 복수의 문서를 상기 3차원 공간에서 표현하는 단계와, 상기 복수의 문서 각각을 상기 단어 축과 상기 개념 축으로 이루어진 2차원 평면에서 표현하는 단계와, 상기 검색어를 입력받는 단계와, 상기 개념 축 상에 포함된 복수의 개념 중에서 상기 검색어에 대응되는 단어와 관련 있는 관련 개념을 추출하는 단계와, 상기 2차원 평면에서 표현된 상기 복수의 문서 각각에 대하여, 상기 입력받은 검색어에 대응되는 단어 및 상기 관련 개념과의 유사한 정도를 나타내는 유사도를 산출하는 단계와, 상기 유사도를 기초로 상기 복수의 문서 중에서 일부를 검색한 결과로 출력하는 단계를 포함한다.
또한, 상기 관련 개념을 추출하는 단계는 상기 검색어에 대응되는 단어가 상기 복수의 개념 중에서 어느 하나의 개념으로 사용되는 강도를 상기 복수의 문서 전체에 대해서 합산하는 단계와, 상기 합산하는 단계를 상기 복수의 개념 전체에 대해서 각각 수행하는 단계와, 상기 복수의 개념 전체에 대해서 각각 합산된 강도의 크기를 기초로 상기 관련 개념을 추출하는 단계를 포함할 수 있다.
또한, 상기 검색어가 적어도 두 개 이상의 단어를 포함하면, 상기 관련 개념을 추출하는 단계에 포함된 각 단계는 상기 적어도 두 개 이상의 단어 각각을 검색어로 지정하여 수행되도록 할 수 있다.
본 발명의 또 다른 실시예에 따른 문서를 검색하는 방법은 프로세서 및 상기 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스에서 수행되며, 상기 복수의 문서에 포함된 각각의 문서를 나타내는(representing) 문서 축(axis), 상기 각각의 문서가 포함하는 단어를 나타내는 단어 축 및 상기 각각의 문서에 포함된 단어가 해당 문서에서 갖는 의미인 개념(concept)을 나타내는 개념 축이 3차원 공간에서 서로 직교하도록 구성될 때, 상기 복수의 문서를 상기 3차원 공간에서 표현하는 단계와, 상기 복수의 문서 각각을 상기 단어 축과 상기 개념 축으로 이루어진 2차원 평면에서 표현하는 단계와, 상기 검색어를 입력받는 단계와, 상기 개념 축 상에 포함된 복수의 개념 중에서 상기 검색어에 대응되는 단어와 관련 있는 관련 개념을 추출하는 단계와, 상기 2차원 평면에서 표현된 상기 복수의 문서 각각에 대하여, 상기 관련 개념과의 유사한 정도를 나타내는 유사도를 산출하는 단계와, 상기 유사도를 기초로 상기 복수의 문서 중에서 일부를 검색한 결과로 출력하는 단계를 포함한다.
또한, 상기 관련 개념을 추출하는 단계는 상기 검색어에 대응되는 단어가 상기 복수의 개념 중에서 어느 하나의 개념으로 사용되는 강도를 상기 복수의 문서 전체에 대해서 합산하는 단계와, 상기 합산하는 단계를 상기 복수의 개념 전체에 대해서 각각 수행하는 단계와, 상기 복수의 개념 전체에 대해서 각각 합산된 강도의 크기를 기초로 상기 관련 개념을 추출하는 단계를 포함할 수 있다.
또한, 상기 검색어가 적어도 두 개 이상의 단어를 포함하면, 상기 관련 개념을 추출하는 단계에 포함된 각 단계는 상기 적어도 두 개 이상의 단어 각각을 검색어로 지정하여 수행되도록 할 수 있다.
본 발명의 일 실시예에 따른 문서를 검색하는 방법은 복수의 문서에 포함된 각각의 문서를 나타내는(representing) 문서 축(axis), 상기 각각의 문서가 포함하는 단어를 나타내는 단어 축 및 상기 각각의 문서에 포함된 단어가 해당 문서에서 갖는 의미인 개념(concept)을 나타내는 개념 축이 3차원 공간에서 서로 직교하도록 구성될 때, 상기 복수의 문서를 상기 3차원 공간에서 표현하는 단계와, 상기 복수의 문서 각각을 상기 단어 축과 상기 개념 축으로 이루어진 2차원 평면에서 표현하는 단계와, 검색어를 입력받는 단계와, 상기 2차원 평면에서 표현된 상기 복수의 문서 각각에 대하여, 상기 입력받은 검색어와 유사한 정도를 나타내는 유사도를 산출하는 단계와, 상기 유사도를 기초로 상기 복수의 문서 중에서 일부를 검색한 결과로 출력하는 단계를 수행하도록 프로그램된 컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
본 발명의 일 실시예에 따른 문서를 검색하는 방법은 복수의 문서에 포함된 각각의 문서를 나타내는(representing) 문서 축(axis), 상기 각각의 문서가 포함하는 단어를 나타내는 단어 축 및 상기 각각의 문서에 포함된 단어가 해당 문서에서 갖는 의미인 개념(concept)을 나타내는 개념 축이 3차원 공간에서 서로 직교하도록 구성될 때, 상기 복수의 문서를 상기 3차원 공간에서 표현하는 단계와, 상기 복수의 문서 각각을 상기 단어 축과 상기 개념 축으로 이루어진 2차원 평면에서 표현하는 단계와, 검색어를 입력받는 단계와, 상기 2차원 평면에서 표현된 상기 복수의 문서 각각에 대하여, 상기 입력받은 검색어와 유사한 정도를 나타내는 유사도를 산출하는 단계와, 상기 유사도를 기초로 상기 복수의 문서 중에서 일부를 검색한 결과로 출력하는 단계를 수행하는 명령어를 포함하는 프로그램이 기록된 컴퓨터 판독가능 기록매체로 구현될 수 있다.
본 발명의 실시예에 따르면 검색어에 부합되는 문서를 검색할 때 해당 문서에 포함된 단어만을 고려하는 것이 아니라 해당 문서에 포함된 단어가 어떠한 의미(개념)를 갖는지를 동시에 고려하여 검색을 수행할 수 있으므로, 사용자의 의도에 보다 부합하는 검색 결과를 출력할 수 있다. 또한, 검색어 뿐만 아니라 관련 개념을 추가적으로 고려하여 검색을 수행할 수 있고, 이 때 사용자는 검색어만으로는 표현되기 어려운 사용자의 의도를 관련 개념으로 반영시킬 수 있다.
도 1은 본 발명의 일 실시예에 따라 문서를 행렬로 표현한 것을 도시한 도면이다.
도 2a는 본 발명의 일 실시예에 따라 단어 축, 개념 축 및 문서 축이 서로 직교하도록 구성된 3차원 공간에서 복수의 문서를 큐보이드 모델을 이용하여 표현한 것을 도시한 도면이다.
도 2b는 본 발명의 일 실시예에 따른 큐보이드 모델에서 단어, 개념 및 문서의 관계를 도시한 도면이다.
도 2c는 본 발명의 일 실시예에 따라 복수의 문서를 큐보이드 모델로 표현한 것을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따라 개념 벡터의 생성에 관하여 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따라 개념 벡터를 생성하는 과정을 예시적으로 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따라 문서를 검색하는 방법의 과정을 도시한 도면이다.
도 6a는 본 발명의 일 실시예에 따라 슈퍼 행렬을 구하는 것을 도시한 도면이다.
도 6b는 본 발명의 일 실시예에 따라 검색어에 대한 행렬과 문서에 대한 행렬의 곱을 개념적으로 도시한 도면이다.
도 7은 본 발명의 다른 실시예에 따른 문서를 검색하는 방법의 절차를 도시한 도면이다.
도 8은 본 발명의 다른 실시예에 따라서 관련 개념을 추출하는 것을 개념적으로 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 실시예로써 제시되는 문서를 검색하는 방법 중 적어도 일부나 전부는 적어도 프로세서 및 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스 또는 컴퓨터 프로그램에 의해 선택적으로 활성화 또는 재구성되는 프로그래밍 가능한 머신(machine)상에서, 일부의 소프트웨어와 하드웨어의 하이브리드 구현 방식으로 구현될 수 있다.
또한, 본 발명의 실시예로써 제시되는 문서를 검색하는 방법 중 적어도 일부나 전부는 하나 이상의 가상화된 컴퓨팅 환경(예를 들어 네트워크 컴퓨팅 클라우드 또는 그와 유사한 것)에서 구현될 수 있다.
아울러, 본 발명의 실시예의 설명에 있어서 행렬은 매트릭스(matrix) 또는 2차 텐서(2-order tensor)와 동일한 의미로 사용될 수 있다. 또한, 본 발명의 실시예에 있어서 '단어'는 '용어', 'word' 또는 'term'과 동일한 의미로 사용될 수 있으며, '개념'은 '시멘틱(semantic)' 또는 '컨셉(concept)'과 동일한 의미로 사용될 수 있고, '문서'는 '텍스트(text)', 'document' 또는 '텍스트 문서'와 동일한 의미로 사용될 수 있으며, 또한 문서 집합(document corpus)은 복수의 문서를 지칭한다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예에 대해 설명하기로 한다.
본 발명의 실시예는 하나의 문서를 단어 축과 벡터 축으로 이루어진 2차원 평면에서 행렬로 표현하고, 이와 같이 표현된 문서에 대한 문서 집합을 단어 축과 개념 축 및 문서 축이 서로 직교하도록 구성된 3차원 공간에서 표현하는 것으로부터 시작된다. 따라서, 하나의 문서를 2차원 평면에서 행렬로 표현하는 방법과 문서 집합을 3차원 공간에서 표현하는 방법에 대하여 먼저 살펴보도록 한다.
도 1은 본 발명의 일 실시예에 따라 문서를 2차원 평면에서 행렬로 표현한 것을 도시한 도면이다.
도 1을 참조하면, 특정 문서(di)는 단어 축(10)과 개념 축(20)으로 구성된 2차원 평면에서 행렬(100)로 표현되며, 이하에서 이러한 행렬(100)은 단어-개념 매트릭스(term-concept matrix)라고 지칭하기로 한다.
먼저, 단어 축(10)은 특정 문서(di)에 포함된 단어를 표현하기 위한 공간이다. 단어 축(10)에서 특정 문서(di)에 포함된 단어는 단어 벡터로 표현된다. 예를 들어, 도 1을 참조하면, 단어 축(10)이 단어(t1 내지 tT)으로 이루어져 있을 때, 특정 문서(di)가 단어 t1과 t2가 각각 1개 및 2개씩 포함하고 있으면, 이러한 특정 문서(di)는 단어 축(10)에서 단어 벡터 [1, 2, 0, …]로 표현될 수 있다.
개념 축(20)은 특정 문서(di)에 포함된 개념을 표현하기 위한 공간이다. 개념 축(20)에서 특정 문서(di)에 포함된 개념은 개념 벡터로 표현된다. 예를 들어, 도 1을 참조하면, 개념 축(20)이 개념(c1 내지 cC)으로 이루어져 있을 때, 특정 문서(di)가 개념 c2와 c3를 각각 2개, 1개씩 포함하고 있으면, 이러한 특정 문서(di)는 개념 축(20)에서 개념 벡터 [0, 2, 1, …]로 표현될 수 있다.
특정 문서(di)는 단어 축(10)과 개념 축(20)으로 이루어진 2차원 평면에서 행렬(100)로 표현될 수 있다. 이 때, 단어 축(10)과 개념 축(20)은 각각 행렬(100)에서 각각 행과 열(또는 열과 행)로 구성될 수 있다. 아울러, 이러한 행렬의 구성요소(element)(50)는 해당 문서에서 특정 단어가 특정 개념에 대하여 갖는 강도를 의미하는데, 이러한 강도를 구하는 과정은 후술하기로 한다.
다음으로, 도 2a 내지 2c는 복수의 문서, 즉 문서 집합을 3차원 공간에 표현한 것을 도시한 도면으로, 보다 자세하게는 도 2a는 본 발명의 일 실시예에 따라 단어 축, 개념 축 및 문서 축이 서로 직교하도록 구성된 3차원 공간에서 문서 집합을 큐보이드 모델을 이용하여 표현한 것을 도시한 도면이고, 도 2b는 본 발명의 일 실시예에 따른 큐보이드 모델에서 단어 축, 개념 축 및 문서 축의 관계를 도시한 도면이며, 도 2c는 본 발명의 일 실시예에 따라 문서 집합을 큐보이드 모델로 표현한 것을 도시한 도면이다.
도 2a 및 도 2c를 참조하면, 문서 집합(d1 내지 dD)은 단어 축(10), 개념 축(20) 및 문서 축(30)이 서로 직교하도록 구성된 3차원 공간에서 표현될 수 있다. 보다 자세하게 살펴보면, 도 1에서 설명한 바와 같이 특정 문서(di)는 단어 축(10)과 개념 축(20)으로 이루어진 2차원 평면에서 행렬(100)로 표현될 수 있으므로, 문서 집합(d1 내지 dD)은 2차원 평면에서 행렬(100)로 표현된 문서 복수 개를 문서 축(30) 방향으로 적층하여 3차원 공간에서 직육면체 형태(200)로 표현될 수 있다. 이하에서는 문서 집합을 3차원 공간에서 직육면체 형태(200)로 표현하는 방식을 큐보이드(cuboid) 모델이라고 지칭하기로 한다.
큐보이드 모델에서 단어 축(10)과 개념 축(20) 및 문서 축(30)은 도 2a 및 2c에 도시된 것과 같이 서로 직교하도록 구성된다.
한편, 하나의 문서를 2차원 평면에서 행렬로 표현하는 방법과 문서 집합을 3차원 공간에서 큐보이드 모델로 표현하는 방법은 모두, 어느 하나의 문서에서 특정 단어가 특정 개념에 대하여 갖는 강도를 행렬의 구성요소(element)로 갖는 개념 벡터를 생성하는 것으로부터 시작하므로 이하에서는 이에 대하여 살펴보기로 한다.
먼저, 특정 문서(di)가 어떠한 단어를 포함하는지를 나타내는 단어 벡터를 생성한다. 이 때, 단어 벡터는 특정 문서(di)에 포함된 모든 단어가 아닌, 정보를 포함하는 단어(informative word)를 구성요소로 포함할 수 있고, 예를 들면 수학식 1과 같이 표현될 수 있다.
Figure 112016021376303-pat00001
여기서, tv(di)는 특정 문서(di)에 대한 단어 벡터이며, 단어(t1 내지 tT)는 특정 문서(di)에 관한 정보를 포함하는 단어를 의미할 수 있다. 다만, 이와 같이 문서 중에서 정보를 포함하는 단어를 추출하고 이를 벡터로 표현하는 것은 관련 분야에서 공지된 기술이므로 이에 관한 자세한 설명은 생략하기로 한다.
다음으로, 특정 문서(di)에 대한 개념 벡터를 생성한다. 개념 벡터란, 특정 문서(di)에서 특정 단어(tj)가 어떠한 의미(=개념)로 사용되었는지를 나타내는 벡터이다. 예를 들면, 특정 문서에 포함된 'JAVA'라는 단어는 커피의 종류를 나타내거나 또는 섬의 이름을 나타내는 것으로 해석될 수 있다. 개념 벡터는 특정 문서에서 'JAVA'가 커피의 종류를 나타내는 것으로 해석되는 정도 또는 섬의 이름을 나타내는 것으로 해석되는 정도를 정량적으로 나타낸다. 이러한 개념 벡터의 구성요소는 해당 단어가 각각의 개념으로 해석되는 정도를 강도(wjk)(50)로써 나타내며, 예를 들면 수학식 2의 형태일 수 있다.
Figure 112016021376303-pat00002
수학식 2에서 cv(tj,di)는 특정 문서(di)에서 특정 단어(tj)가 각 개념(c1 내지 cC)에 대하여 갖는 강도를 개념 축(20)에서 벡터 형태로 표현한 개념 벡터이다. 그리고, w(ck,tj,di)는 특정 문서(di)에서 특정 단어(tj)가 갖는 특정 개념(ck)에 대하여 갖는 강도를 표현한 값으로 이러한 강도를 구하는 과정은 후술할 것이다.
여기서 개념 축(20)에 대하여 보다 자세하게 살펴보면, 개념 축(20)은 복수의 문서(d1 내지 dD)에 포함된 각각의 단어(t1 내지 tT)가 가질 수 있는 개념(c1 내지 cC)을 포함한다. 개념 축(20)에 포함된 개념은 예를 들면 World Knowledge 수준의 온톨로지(ontology), 문서 집합(text corpora)이나 유의어 사전(thesauri) 또는 기타 다른 형태의 자료 등을 활용하여 설정할 수 있으며, 본 발명의 일 실시예에서는 온톨로지 중 위키피디아를 활용하여 개념 축의 개념을 설정하는 것을 예로 들어 설명하기로 한다. 위키피디아(특히, 위키피디아의 웹페이지, 즉 위키페이지)를 활용하여 개념 축(20)의 개념을 설정하는 것에 대하여 살펴보면, 위키페이지 자체를 개념 축(20)을 구성하는 개념으로 설정할 수 있으며, 해당 위키페이지의 타이틀(title)을 해당 개념의 명칭으로 할당할 수 있다. 예를 들면, "http://en.wikipedia.org/wiki/Graphics"를 URL로 갖는 위키페이지가 있는 경우, 이러한 위키페이지 자체가 하나의 개념으로 설정될 수 있으며, 이 때 해당 위키페이지의 타이틀인 'Graphics'는 해당 개념의 명칭으로 할당될 수 있다. 이 때, 개념의 명칭은 적정 수준의 포괄성 및 품질을 가질 때 신뢰성을 가질 수 있다. 이를 위하여, 예를 들면 위키페이지의 타이틀로부터 명사만을 추출하고, 추출된 명사가 영어인 경우 모두 소문자로 변환한 뒤, 구둣점이나 숫자 또는 공백 등을 제거하거나 불용어를 제거한 후, 명사의 어근만을 추출하여 개념으로 설정할 수 있다.
이하에서는, 이와 같이 설정된 개념 및 개념 축을 이용하여 강도를 산출하는 구체적인 방법에 대하여 도 3과 도 4를 참조하여 보다 구체적으로 살펴보기로 한다.
도 3은 본 발명의 일 실시예에 따라 개념 벡터를 생성하는 과정을 예시적으로 도시한 도면이다.
도 3을 참조하면, 단어 벡터에 포함된 단어 중에서 강도(50)를 산출하고자 하는 단어를 중심 단어(또는 제1 단어)(t0)(501)라고 하자. 중심 단어(t0)(501)의 강도는 중심 단어(t0)(501) 및 단어 벡터 상에서 중심 단어(t0)(501)에 인접해 있는 단어(t-r 내지 tr, 이하에서는 이를 주변 단어라고 지칭함)(502)가 각각 특정 개념(c1)(31)과 관련되었는지 여부를 기초로 산출될 수 있다.
여기서, 주변 단어(t-r 내지 tr)(502)는 중심 단어(t0)(501)으로부터 단어 벡터 상에서 앞뒤로 반경 r(503)의 거리 내에 있는 단어로 선정될 수 있는데, 반경 r(503)은 중심 단어(t0)(501)를 기준으로 주변 단어(t-r 내지 tr)(502)를 선정하는 기준이며, 이러한 반경 r(503)의 값은 기지정된 값일 수 있으며 변경 가능하다.
한편, 중심 단어(t0)(501)가 단어 벡터의 첫번 째 단어이거나 또는 마지막 단어인 경우, 이 때의 주변 단어(502)의 개수는 변동될 수 있다. 예를 들면, 중심 단어(t0)(501)가 단어 벡터의 첫번 째 단어인 경우에는 중심 단어의 앞쪽에는 주변 단어(502)가 없을 수 있다.
또 한편으로는, 중심 단어(t0)(501) 및 해당 중심 단어(t0)(501)로부터 반경 r(503)만큼 떨어져있는 주변 단어(t-r 내지 tr)(502)를 선정하기 위한 개념으로 개념 윈도우(concept window, CW)(500)가 설정될 수 있다. 중심 단어(t0)(501)에 대한 개념 윈도우(500)는 해당 중심 단어(t0)(501) 및 해당 중심 단어(t0)(501)로부터 앞뒤로 반경 r(503)의 거리를 갖는 주변 단어(t-r 내지 tr)(502)를 포함하므로, 개념 윈도우(500)는 중심 단어(t0)(501)를 포함하여 총 2*r+1의 갯수의 단어를 포함할 수 있으며, 이 때 2*r+1을 개념 윈도우(500)의 크기라고 지칭할 수 있다. 이 때, 중심 단어(t0)(501)가 단어 벡터의 첫번 째 단어이거나 또는 마지막 단어인 경우,개념 윈도우(500)의 크기는 2*r+1이 아니며, 이 경우에는 중심 단어(t0)(501)와 주변 단어(502)의 갯수를 합한 값일 수 있다.
중심 단어(t0)(501)와 주변 단어(t-r 내지 tr)(502)가 특정 개념(c1)(31)과 관련되는지 여부를 기초로 중심 단어(t0)(501)가 갖는 특정 개념(c1)(31)에 대한 강도를 산출하는 방법은 중심 단어(t0)(501)와 주변 단어(t-r 내지 tr)(502) 각각이 특정 개념(c1)(31)의 위키페이지에 포함되는지 여부를 조사하여, 포함되는 경우를 '1', 포함되지 않는 경우를 '0'으로 두고, 이러한 '1' 또는 '0'의 값을 합산한 값을 강도로 산출하거나, 또는 이와 같이 합산된 값을 중심 단어와 주변 단어의 갯수인 2*r+1의 값으로 나눈 값을 강도로 산출할 수 있다.
여기서, 중심 단어(t0)(501)와 주변 단어(t-r 내지 tr)(502) 각각이 특정 개념(ck)(31)의 위키페이지에 포함되는지 여부는 중심 단어(t0)(501)와 주변 단어(t-r 내지 tr)(502) 각각이 특정 개념(ck)(31)에 포함되는지, 더 구체적으로는 특정 개념(ck)(31)의 위키페이지에 대한 키워드(32)(예를 들면, 키워드1, 2 등)와 일치하는지 여부로 판단될 수 있다.
여기서, 특정 개념(ck)의 위키페이지에 포함된 키워드(32)는 해당하는 위키페이지의 특성을 대표하는 단어로 선정될 수 있다. 예를 들면, 키워드(32)는 해당하는 위키페이지에 tf*idf(Term Frequency * Inverse Document Frequency) 방법을 적용하여 선정할 수 있으며, 여기서 tf*idf 방법은 관련 분야에서 공지된 기술이므로 이에 관한 자세한 설명은 생략하기로 한다.
이상에서는, 특정 문서(di) 내에 포함된 특정 단어(tj)(여기서는 중심 단어(t0))(501)가 어느 하나의 특정 개념(c1)(31)에 대하여 갖는 강도를 구하는 방법에 대해 살펴보았다. 따라서, 특정 문서(di) 내에 포함된 특정 단어(tj)가 개념 축(20)에 포함된 각 개념(c1 내지 cC)에 대하여 갖는 강도(50)인 개념 벡터는 이러한 방법을 나머지 개념(c2 내지 cC)에 대하여 순차적으로 실행한다면 산출될 수 있다.
한편, 특정 문서(di) 내에 포함된 특정 단어(tj)에 대한 개념 벡터가 생성된 경우, 중심 단어(t0)(501)를 이동(예를 들면 tj에서 tj+1로 이동)(따라서 개념 윈도우(500) 또한 이동된다)하여 새로운 특정 단어에 대한 강도 산출 과정을 진행하고 이에 따라 새로운 특정 단어에 대한 개념 벡터를 생성할 수 있다.
따라서, 이러한 과정을 반복할 경우 단어 벡터에 포함된 단어 전체에 대하여 개념 벡터를 생성할 수 있다.
전술한 특정 문서(di) 내에 포함된 특정 단어(tj)가 특정 개념(c1)(31)에 대하여 갖는 강도 w(ck,tj,di)는 예를 들면 수학식 3과 같은 형태로 표현될 수 있다.
Figure 112016021376303-pat00003
여기서, |CWd(tj)|는 개념 윈도우(500)의 크기이며, ECWd(tj)는 특정 문서(di)의 단어 벡터에 포함된 단어 중에서 개념 윈도우(500)에 의해 특정된 단어가 어떤 단어인지를 나타내는 매트릭스이고, C는 특정 문서(di)의 단어 벡터에 포함된 단어가 개념 축(20)의 각 개념에 포함된 키워드(32)와 일치하는지 여부를 나타내는 매트릭스이며, ck()는 ck()의 괄호 안을 계산한 행렬에서 k번째 열(column) 벡터를 의미하며, 기호 '|| ||'는 열(column) 벡터에 존재하는 모든 행에 대한 값의 절대값을 합산한 값을 의미한다.
보다 구체적으로 살펴보면, ECWd(tj)는 특정 문서(di)의 단어 벡터에 포함된 단어 중에서 개념 윈도우(500)에 의해 특정된 단어가 어떤 단어인지를 나타내는 매트릭스이며, 행은 개념 윈도우(500)에 의해 특정된 단어와 관련되어 있으며 열은 단어 벡터(100)에 포함된 단어와 관련되어 있다.
또한, C는 특정 문서(di)의 단어 벡터에 포함된 단어가 개념 축(20)의 각 개념에 포함된 키워드(32)와 일치하는지 여부를 나타내는 매트릭스이며, 행은 단어 벡터에 포함된 단어와 관련되어 있으며 열은 각 개념에 포함된 키워드(32)와 관련되어 있다.
또한, 특정 문서(di) 내에 포함된 특정 단어(tj)가 개념 축(20)에 대하여 갖는 개념 벡터 cv(tj,di)(20)는 특정 문서(di) 내에 포함된 특정 단어(tj)가 개념 축(20)에 포함된 각 개념(c1 내지 cC)에 대하여 갖는 강도(50)(수학식 3)를 결합한 것이므로, 예를 들면 수학식 3을 참조하여 수학식 4로 표현될 수 있다.
Figure 112016021376303-pat00004
이하에서는, 도 4를 참조하여 전술한 개념 벡터를 구하는 방법을 예로 들어 설명하기로 한다. 여기서, 도 4에서의 예는 특정 단어의 특정 개념에 대한 강도를 구하고 나머지 개념에 대한 강도를 순차적으로 구하는 전술한 방법과는 다르게, 특정 단어의 전체 개념에 대한 강도를 동시에 구하는 방법을 이용한다.
도 4를 참조하면, 본 발명의 일 실시예에 따라 문서에 포함된 단어에 대한 개념 벡터를 산출하기 위하여 먼저 해당 문서에 대한 단어 벡터(11)를 생성한다. 예를 들면, 해당 문서에 대하여 생성된 단어 벡터(11)는 9개의 단어를 포함할 수 있다.
아울러, 해당 문서에 대한 개념 축이 포함하는 개념 및 각 개념에 포함된 키워드는 도 4의 테이블(21)을 참조한다. 도 4를 참조하면, 개념 축(22)은 COMPUTER, CULTURE, SCIENCE를 개념으로 포함하고 있고, 이들은 각각 (computer, graphics, programming, system, openGL), (culture, human, science), (computer, human, science, system)인 키워드(23)를 포함한다.
이를 기초로, 강도를 산출하고자 하는 단어인 중심 단어를 programming으로 설정하고 각 개념(COMPUTER, CULTURE, SCIENCE)에 대한 강도를 산출하는 방법에 대하여 살펴보기로 한다. 먼저, 반경 r이 2인 것을 전제로 개념 윈도우(101)는 5개의 단어, 즉 중심 단어 programming과 주변 단어 library, openGL, science 및 system을 포함한다.
COMPUTER, CULTURE 및 SCIENCE의 각 개념(22)에 대한 키워드(23)와 전술한 중심 단어와 주변 단어의 일치 여부 판단하여 테이블(24)에 1과 0으로 표시(25)하였다. 도 4에 도시된 바와 같이, COMPUTER 개념에 포함된 키워드와 중심 단어 및 주변 단어는 openGL, programming 및 system에 대하여 일치한다.
이후, 각 개념에 대하여 테이블(24)에 기재된 값을 합산하고 이를 개념 윈도우의 크기인 5로 나눈다. 테이블(24)에 도시된 바와 같이, 이 값은 각 개념에 대하여 각각 3/5, 1/5 및 2/5임을 알 수 있다(26).
이를 기초로, 중심 단어 programming에 대한 개념 벡터는 (3/5, 1/5, 2/5)(27)로 산출된다.
이후, 개념 윈도우(101)를 슬라이딩 하여 중심 단어를 programming에서 science로 옮긴 뒤 전술한 과정을 수행하고, 이러한 과정을 반복함으로써 단어 벡터(101)에 포함된 모든 단어에 대하여 개념 벡터를 생성할 수 있다.
여기서, 중심 단어가 단어 벡터의 첫번 째 단어이거나 또는 마지막 단어인 경우, 이 때의 주변 단어의 개수는 변동될 수 있다. 예를 들면, 도 4에서 중심 단어가 library인 경우 주변 단어는 openGL 및 programming으로 2개일 수 있으며 이 때 개념 윈도우의 크기는 3이 될 수 있고, 마찬가지로 중심 단어가 system인 경우 주변 단어는 programming 및 science일 수 있으며 이 때 개념 윈도우의 크기는 3이 될 수 있다.
이상에서 살펴본 바와 같이, 일 실시예에서는 하나의 문서를 단어 축과 개념 축으로 이루어진 2차원 평면에서 행렬로 나타낼 수 있으며, 행렬로 표현된 문서를 복수 개 적층함으로써 문서의 집합을 3차원 공간에서 큐보이드 모델로 나타낼 수 있다.
이하에서는 문서를 검색하는 방법에 대하여 살펴보기로 한다.
도 5는 본 발명의 일 실시예에 따른 문서를 검색하는 방법의 과정을 도시한 도면으로, 이러한 문서를 검색하는 방법은 프로세서 및 상기 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스에서 수행 가능하다.
도 5를 참조하면, 먼저, 복수의 문서를 3차원 공간에서 표현하는 단계(S100)가 수행된다. 단계 S100은 복수의 문서에 포함된 각각의 문서를 나타내는(representing) 문서 축(axis), 각각의 문서가 포함하는 단어를 나타내는 단어 축 및 각각의 문서에 포함된 단어가 해당 문서에서 갖는 의미인 개념(concept)을 나타내는 개념 축이 3차원 공간에서 서로 직교하도록 구성될 때, 복수의 문서를 이러한 3차원 공간에서 큐보이드 모델로 표현하는 과정을 포함한다. 단계 S100의 경우 도 1 내지 도 4에서 이미 설명하였으므로 이에 관한 자세한 설명은 생략하기로 한다.
다음으로, 복수의 문서 각각을 단어 축과 개념 축으로 이루어진 2차원 평면에서 표현하는 단계(S200)가 수행된다. 복수의 문서 각각은 도 1에 도시된 것과 같이 단어 축(10)과 개념 축(20)으로 이루어진 2차원 평면에서 행렬로 표현될 수 있다.
여기서, 2차원 행렬로 표현된 문서는 도 2a를 기초로 살펴보면 3차원의 큐보이드 모델을 단어 축(10)과 개념 축(20)으로 이루어진 평면으로 자른 단면이다. 즉, 문서 집합을 큐보이드 모델을 이용하여 나타낼 경우, 문서는 큐보이드 모델을 단어 축(10)과 개념 축(20)으로 이루어진 평면으로 자름으로써 용이하게 도출될 수 있다.
다음으로, 검색어를 입력받는 단계(S300)가 수행된다. 검색어는 적어도 하나 이상의 단어를 포함할 수 있다. 아울러, 검색어는 키보드와 같은 입력 장치를 통해서 입력될 수 있다.
다음으로, 2차원 평면에서 표현된 복수의 문서 각각에 대하여, 입력받은 검색어와 유사한 정도를 나타내는 유사도를 복수의 문서 각각에 대하여 산출하는 단계(S400)가 수행된다.
단계 S400에 대하여 보다 구체적으로 살펴보면, 먼저 검색어를 행렬로 표현한다. 검색어를 행렬로 표현하는 방법은, 복수의 문서 각각을 2차원 평면에서 각각 행렬로 표현하였을 때, 각각의 행렬 중에서 상기 검색어에 상응하는 단어를 포함하는 행 또는 열을 서로 더한 뒤 평균값을 산출한다. 다음으로, 산출된 평균값을 검색어에 대한 행렬로 표현한다. 다만 검색어를 행렬로 표현하는 방법은 이와 다른 방법일 수도 있다. 예를 들면, 도 6a를 참조하면 먼저 슈퍼 행렬(110)을 구할 수 있다. 슈퍼 행렬(110)이란, 복수의 문서 각각을 단어 축(10)과 개념 축(20)으로 이루어진 2차원 평면에서 행렬로 표현하였을 때, 각각의 행렬을 더한 뒤 그 평균값을 구성요소로 하는 행렬을 지칭한다. 다음으로, 슈퍼 행렬(110)에서 검색어에 상응하는 단어(ti 또는 tj)를 갖는 열(또는 행)을 추출한 뒤, 이러한 열(또는 행)을 검색어에 대한 행렬로 표현할 수도 있다.
이 때, 검색어가 2개의 단어를 포함하면, 각각의 단어에 해당하는 열(또는 행)로 이루어진 행렬을 슈퍼 행렬(110)로 표현할 수 있다.
다음으로, 복수의 문서 각각에 대하여, 입력받은 검색어와 유사한 정도를 나타내는 유사도를 산출한다. 전술한 바와 같이 복수의 문서 각각은 단어 축(10)과 개념 축(20)으로 구성된 행렬로 표현될 수 있으며, 입력받은 검색어 또한 검색어에 대응되는 개념 축(20)과 단어 축(10)으로 구성된 행렬로 표현될 수 있다. 도 6b는 복수의 문서 각각과 검색어를, 단어 축(10)과 개념 축(20) 상에서 행렬로 표현한 것을 예시적으로 나타낸 도면이다. 복수의 문서 각각과 검색어는 모두 행렬로 표현될 수 있으므로, 이들간의 유사도는 행렬 간의 유사도를 기초로 산출될 수 있다. 여기서, 도 6b는 검색어가 t1 내지 t|T|로 구성된 것으로 예시적으로 도시하고 있으나, 실시예에 따라서 검색어는 이보다 적은 수의 단어, 예를 들면, t1만을 포함할 수도 있으며, 이 경우 검색어에 대한 행렬은 도 6b의 terms에서 1개의 열(t1)만을 가질 수도 있다.
여기서, 행렬간의 유사도는 코사인 유사도를 산출하는 구하는 공식에 기초하여, 예를 들면 수학식 5를 이용하여 산출할 수 있다.
Figure 112016021376303-pat00005
여기서 d는 복수의 문서 각각을 나타내며 q는 검색어를 나타낸다. 그리고, sim(d,q)는 유사도의 산출 대상이 되는 2개의 행렬 d, q에 대한 유사도를 나타내며, <d,q>F는 행렬 d,q에 대한 프로베니우스(frobenius) 곱을 의미하고, ||d||2와 ||q||2는 행렬 d, q 각각에 대한 L2-놈(norm)을 의미한다.
이와 같이 산출된 유사도는 검색어와 복수의 문서 각각 간에 얼마나 유사한지를 나타낸다. 따라서, 유사도가 높다면 해당 문서는 검색어에 상대적으로 많이 부합되는 문서이며 유사도가 낮다면 해당 문서는 검색어에 상대적으로 적게 부합되는 문서임을 의미한다.
여기서, 유사도의 산출 대상이 되는 문서는 단순히 단어로만 표현되지 않고 전술한 바와 같이 단어 및 해당 단어가 해당 문서에서 갖는 개념으로 표현된다. 즉, 일 실시예에 따르면, 유사도 산출 과정에는, 문서에 포함된 단어 뿐만 아니라 해당 단어가 해당 문서에서 갖는 개념 또한 동시에 고려될 수 있다.
마지막으로, 산출된 유사도를 기준으로 검색 결과를 출력하는 단계(S500)가 수행된다. 예를 들면, 유사도를 기준으로 내림차순으로 검색 결과를 출력하거나 또는 상위 몇 개의 유사도에 대해서만 검색 결과를 출력할 수 있다. 이 때의 검색 결과는 모니터 등의 디스플레이 장치에 표시될 수 있다.
이상에서 살려본 바에 따르면, 큐보이드 모델에서는 문서를 그에 포함된 단어만을 이용하여 표현하는 것이 아니라, 문서에 포함된 단어가 해당 문서에서 어떠한 의미를 갖는지를 표현할 수 있다. 따라서, 검색어에 부합되는 문서를 검색할 때 해당 문서에 포함된 단어만을 고려하는 것이 아니라 해당 문서에 포함된 단어가 어떠한 의미를 갖는지를 동시에 고려하여 검색을 수행할 수 있으므로, 사용자의 의도에 보다 부합하는 검색 결과를 출력할 수 있다.
도 7은 본 발명의 다른 실시예에 따른 문서를 검색하는 방법의 과정을 도시한 도면이다. 도 7에 따른 문서를 검색하는 방법은 단계 S110 내지 S310, S610을 포함하는데, 이는 도 5에 도시된 문서를 검색하는 방법에 포함된 단계 S100 내지 S300 및 S500과 동일하므로, 동일한 부분에 대한 설명은 생략하기로 한다.
단계 S410부터 설명하기에 앞서, 도 7에 도시된 문서를 검색하는 방법은 도 5에 도시된 문서를 검색하는 방법과는 달리 검색어를 기초로 검색어와 관련 있는 개념, 즉 관련 개념을 추출한 뒤, 검색어와 관련 개념을 이용하여 검색을 수행한다. 즉, 검색어를 확장(expansion)하여 검색을 수행한다.
보다 구체적으로 살펴보면, 단계 S110 내지 S310을 수행한 뒤, 검색어와 대응되는 단어와 관련 있는 개념, 즉 관련 개념을 추출하는 단계가 수행된다(S410). 관련 개념을 추출하는 단계는 도 8을 참조하여 보다 자세하게 설명하기로 한다.
도 8은 본 발명의 다른 실시예에 따라서 관련 개념을 추출하는 것을 개념적으로 도시한 도면이다.
도 8을 참조하면, 먼저, 3차원 공간의 큐보이드 모델을 검색어(tj)를 기준으로 개념 축(20)과 문서 축(30)으로 이루어진 평면으로 자른다. 이와 같이 자른 단면은 도 8에 도시된 것과 같이 개념 축(20)과 문서 축(30)으로 이루어진 2차원 평면에서 행렬로 표현될 수 있다. 행렬은 검색어(tj)가 복수의 문서 각각에서 복수의 개념 각각으로 사용된 강도를 행렬의 구성요소로 갖는다.
다음으로, 각 개념이 복수의 문서 각각에 대해서 갖는 강도를 각 개념별로 합산한다. 예를 들면, 개념 c1이 문서 d1에서 갖는 강도 tj(1,1)부터 문서 dD에서 갖는 강도 tj(1,D)까지 합산한다. 아울러, 이러한 과정을 나머지 개념 c2부터 cC까지 수행한다. 수학식 6은 이러한 과정을 나타낸다.
Figure 112016021376303-pat00006
여기서, Itj는 검색어 tj가 복수의 문서 d1부터 dD 각각에서 개념 ci로 사용된 강도를 합산한 값을 나타낸다. Itj값이 높을수록 검색어 tj와 관련도가 높은 개념임을 나타낸다.
다음으로, 각각의 개념에 대하여 합산된 강도의 값의 크기를 기초로, 관련 개념을 추출한다. 관련 개념은 예를 들면 합산된 강도의 값의 크기를 내림차순으로 정렬한 뒤 기 설정된 개수의 상위 몇개의 관련 개념만을 선정하여 관련 개념으로 추출할 수 있으나 이에 한정되는 것은 아니다.
다음으로, 복수의 문서 각각에 대하여, 입력받은 검색어에 대응되는 단어 및 추출된 관련 개념과의 유사한 정도를 나타내는 유사도를 산출한다. 여기서, 유사도는 예를 들면 다음의 수학식 7과 8을 이용하여 산출할 수 있다.
Figure 112016021376303-pat00007
Figure 112016021376303-pat00008
여기서, sim(dj,q)는 검색어 q와 문서 dj간의 유사도(수학식 5 참조)이다. Ici는 개념 ci가 복수의 문서 중 어느 하나인 문서 dj에서 단어 t1부터 단어 tT로 사용된 강도를 합산한 값을 문서 dj에 출현한 단어의 수인 N으로 나눈 값이다. N으로 나눈 것은, 단어의 수가 많은 문서에 상응하는 수학식 8의 값이 높아지는 것을 방지하기 위해서이다.
아울러, β는 검색을 수행함에 있어 관련 개념을 고려하는 정도를 조절하기 위하여 사용되는 변수로써, β=1이면 관련 개념은 전혀 고려하지 않고 검색어만으로 검색을 수행하는 반면, β=0이면 검색어는 배제하고 관련 개념만으로 검색을 수행하게 된다. β가 0과 1사이이면 관련 개념과 검색어를 모두 고려하여 검색을 수행할 수 있는데, 이러한 `β의 값은 기 지정된 값이며 변경 가능하다.
이러한 방법을 이용하여 검색을 수행하는 방법을 예로 들면 다음과 같다. 먼저, 사용자는 검색어를 입력한다. 그러면, 검색어와 관련된 관련 개념이 관련이 높은 순으로 추출되어 표시된다. 이 후, 관련이 높은 관련 개념과 검색어가 함께 이용되어 검색이 수행되며, 그에 따른 검색 결과가 획득될 수 있다.
이와 달리, 사용자는 추출된 관련 개념 중에서 자신이 원하는 관련 개념을 선택할 수도 있다. 이 경우에는, 관련 개념이 추출되었을 때, 사용자로부터 사용자 자신이 원하는 관련 개념을 선택받는 단계가 추가로 수행될 수 있다. 이 후, 검색어에 더하여 사용자가 선택한 관련 개념을 모두 포함하는 문서가 검색되어 출력될 수도 있다.
즉, 본 발명의 다른 실시예에 따르면, 검색어 뿐만 아니라 관련 개념을 추가적으로 고려하여 검색을 수행할 수 있고, 이 때 사용자는 검색어만으로는 표현되기 힘든 의도를 관련 개념으로 반영시켜서 검색을 수행할 수 있다. 따라서, 검색어만으로 검색을 수행하는 경우보다 상대적으로 사용자의 의도에 부합되는 검색 결과를 획득할 수 있다.
뿐만 아니라, 수학식 7에서 β=0으로 설정하면, 관련 개념만으로 검색을 수행할 수 있다. 이 경우, 검색어에 상응하는 단어가 문서에서 오타 등으로 잘못 기재(포함)되어 있는 경우에도, 검색어는 배제된 채 관련 개념만으로 검색이 수행될 수 있다. 따라서, 이를 이용하면 검색어에 상응하는 단어를 잘못 기재(포함)하고 있는 문서에 대해서도 검색이 수행될 수 있다.
한편, 검색어는 적어도 2개 이상의 단어, 예를 들면, t1과 t2로 구성될 수도 있다. 이 경우에는, t1에 대하여 추출된 관련 개념과 t2에 대하여 추출된 관련 개념을 합하여 검색어에 대한 관련 개념으로 추출할 수 있으나, 다만 이에 한정되는 것은 아니다.
이상에서 살펴본 바와 같이, 본 발명의 실시예에 따르면 검색어에 부합되는 문서를 검색할 때 해당 문서에 포함된 단어만을 고려하는 것이 아니라 해당 문서에 포함된 단어가 어떠한 의미(개념)를 갖는지를 동시에 고려하여 검색을 수행할 수 있으므로, 사용자의 의도에 보다 부합하는 검색 결과를 출력할 수 있다. 또한, 검색어 뿐만 아니라 관련 개념을 추가적으로 고려하여 검색을 수행할 수 있고, 이 때 사용자는 검색어만으로는 표현되기 어려운 사용자의 의도를 관련 개념으로 반영시킬 수 있다. 따라서, 검색어만으로 검색을 수행하는 경우보다 상대적으로 사용자의 의도에 부합되는 검색 결과를 획득할 수 있다.
한편, 본 발명의 일 실시예에 따른 문서를 검색하는 방법은 이러한 방법에 포함된 각 단계를 수행하도록 프로그램된 컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램로 구현될 수 있으며, 또한 이러한 방법에 포함된 각 단계를 수행하는 명령어를 포함하는 프로그램이 기록된 컴퓨터 판독가능 기록매체로 구현될 수도 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10: 단어 축
20: 개념 축
30: 문서 축

Claims (14)

  1. 프로세서 및 상기 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스에서 수행되는, 복수의 문서 중에서 검색어를 기반으로 문서를 검색하는 검색 방법으로서,
    상기 복수의 문서에 포함된 각각의 문서를 나타내는(representing) 문서 축(axis), 상기 각각의 문서가 어떠한 단어를 포함하고 있는지를 나타내는 단어 축 및 상기 단어가 문맥에 따라서 어떠한 개념(concept)을 갖는지를 나타내는 개념 축이 3차원 공간에서 서로 직교하도록 구성될 때, 상기 복수의 문서를 상기 3차원 공간에서 표현하는 단계와,
    상기 3차원 공간을 상기 단어 축과 상기 개념 축을 포함하는 평면과 평행한 평면으로 잘랐을 때의 단면을 이용하여서, 상기 단어 축과 상기 개념 축으로 이루어진 2차원 평면에서 상기 각각의 문서를 표현하는 단계와,
    상기 검색어를 입력받는 단계와,
    상기 2차원 평면에서 표현된 상기 복수의 문서 각각에 대하여, 상기 입력받은 검색어와의 유사한 정도를 나타내는 유사도를 산출하는 단계와,
    상기 유사도를 기초로 상기 복수의 문서 중에서 일부를 검색한 결과로 출력하는 단계를 포함하는 문서를 검색하는 방법.
  2. 제 1 항에 있어서,
    상기 2차원 평면에서 표현하는 단계는,
    상기 단어 축을 행렬의 행(row)과 열(column) 중 어느 하나로, 상기 개념 축을 상기 행렬의 행과 열 중 나머지 하나로 맵핑하여서 상기 복수의 문서 각각을 상기 2차원 평면에서 행렬로 표현하는
    문서를 검색하는 방법.
  3. 제 2 항에 있어서,
    상기 유사도를 산출하는 단계는,
    상기 검색어를 행렬로 표현하는 단계와,
    상기 행렬로 표현된 상기 복수의 문서 각각과 상기 행렬로 표현된 검색어 간에 코사인 유사도를 산출하는 단계를 포함하는
    문서를 검색하는 방법.
  4. 제 3 항에 있어서,
    상기 검색어를 행렬로 표현하는 단계는,
    상기 복수의 문서 각각을 상기 2차원 평면에서 각각 행렬로 표현하였을 때, 상기 각각의 행렬 중에서 상기 검색어를 포함하는 행끼리 또는 열끼리 서로 더한 뒤, 상기 더해진 결과인 행 또는 열을 상기 복수의 문서의 갯수로 나눠서 평균값을 산출하는 단계와,
    상기 산출된 평균값을 상기 검색어에 대한 행렬로 표현하는 단계를 포함하는
    문서를 검색하는 방법.
  5. 제 3 항에 있어서,
    상기 코사인 유사도는,
    행렬 간 프로베니우스(frobenius) 곱 및 각 행렬에 대한 L2-놈(norm)을 기초로 산출되는
    문서를 검색하는 방법.
  6. 프로세서 및 상기 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스에서 수행되는, 복수의 문서 중에서 검색어를 기반으로 문서를 검색하는 검색 방법으로서,
    상기 복수의 문서에 포함된 각각의 문서를 나타내는(representing) 문서 축(axis), 상기 각각의 문서가 어떠한 단어를 포함하고 있는지를 나타내는 단어 축 및 상기 단어가 문맥에 따라서 어떠한 개념(concept)을 갖는지를 나타내는 개념 축이 3차원 공간에서 서로 직교하도록 구성될 때, 상기 복수의 문서를 상기 3차원 공간에서 표현하는 단계와,
    상기 3차원 공간을 상기 단어 축과 상기 개념 축을 포함하는 평면과 평행한 평면으로 잘랐을 때의 단면을 이용하여서, 상기 단어 축과 상기 개념 축으로 이루어진 2차원 평면에서 상기 각각의 문서를 표현하는 단계와,
    상기 검색어를 입력받는 단계와,
    상기 개념 축 상에 포함된 복수의 개념 중에서 상기 검색어에 대응되는 단어와 관련 있는 관련 개념을 추출하는 단계와,
    상기 2차원 평면에서 표현된 상기 복수의 문서 각각에 대하여, 상기 입력받은 검색어에 대응되는 단어 및 상기 관련 개념과의 유사한 정도를 나타내는 유사도를 산출하는 단계와,
    상기 유사도를 기초로 상기 복수의 문서 중에서 일부를 검색한 결과로 출력하는 단계를 포함하는
    문서를 검색하는 방법.
  7. 제 6 항에 있어서,
    상기 관련 개념을 추출하는 단계와 상기 유사도를 산출하는 단계 사이에서 상기 추출된 관련 개념 중 일부가 선별되는 단계를 더 포함하며,
    상기 유사도를 산출하는 단계는,
    상기 2차원 평면에서 표현된 상기 복수의 문서 각각에 대하여, 상기 입력받은 검색어에 대응되는 단어 및 상기 선별된 관련 개념과의 유사한 정도를 나타내는 유사도를 산출하는
    문서를 검색하는 방법.
  8. 제 6 항에 있어서,
    상기 관련 개념을 추출하는 단계는,
    상기 검색어에 대응되는 단어가 상기 복수의 개념 중에서 어느 하나의 개념으로 사용되는 강도를 상기 복수의 문서 전체에 대해서 합산하는 단계와,
    상기 합산하는 단계를 상기 복수의 개념 전체에 대해서 각각 수행하는 단계와,
    상기 복수의 개념 전체에 대해서 각각 합산된 강도의 크기를 기초로 상기 관련 개념을 추출하는 단계를 포함하는
    문서를 검색하는 방법.
  9. 제 8 항에 있어서,
    상기 검색어가 적어도 두 개 이상의 단어를 포함하면,
    상기 관련 개념을 추출하는 단계에 포함된 각 단계는 상기 적어도 두 개 이상의 단어 각각을 검색어로 지정하여 수행되도록 하는
    문서를 검색하는 방법.
  10. 프로세서 및 상기 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스에서 수행되는, 복수의 문서 중에서 검색어를 기반으로 문서를 검색하는 검색 방법으로서,
    상기 복수의 문서에 포함된 각각의 문서를 나타내는(representing) 문서 축(axis), 상기 각각의 문서가 어떠한 단어를 포함하고 있는지를 나타내는 단어 축 및 상기 단어가 문맥에 따라서 어떠한 개념(concept)을 갖는지를 나타내는 개념 축이 3차원 공간에서 서로 직교하도록 구성될 때, 상기 복수의 문서를 상기 3차원 공간에서 표현하는 단계와,
    상기 3차원 공간을 상기 단어 축과 상기 개념 축을 포함하는 평면과 평행한 평면으로 잘랐을 때의 단면을 이용하여서, 상기 단어 축과 상기 개념 축으로 이루어진 2차원 평면에서 상기 각각의 문서를 표현하는 단계와,
    상기 검색어를 입력받는 단계와,
    상기 개념 축 상에 포함된 복수의 개념 중에서 상기 검색어에 대응되는 단어와 관련 있는 관련 개념을 추출하는 단계와,
    상기 2차원 평면에서 표현된 상기 복수의 문서 각각에 대하여, 상기 관련 개념과의 유사한 정도를 나타내는 유사도를 산출하는 단계와,
    상기 유사도를 기초로 상기 복수의 문서 중에서 일부를 검색한 결과로 출력하는 단계를 포함하는
    문서를 검색하는 방법.
  11. 제 10 항에 있어서,
    상기 관련 개념을 추출하는 단계는,
    상기 검색어에 대응되는 단어가 상기 복수의 개념 중에서 어느 하나의 개념으로 사용되는 강도를 상기 복수의 문서 전체에 대해서 합산하는 단계와,
    상기 합산하는 단계를 상기 복수의 개념 전체에 대해서 각각 수행하는 단계와,
    상기 복수의 개념 전체에 대해서 각각 합산된 강도의 크기를 기초로 상기 관련 개념을 추출하는 단계를 포함하는
    문서를 검색하는 방법.
  12. 제 11 항에 있어서,
    상기 검색어가 적어도 두 개 이상의 단어를 포함하면,
    상기 관련 개념을 추출하는 단계에 포함된 각 단계는 상기 적어도 두 개 이상의 단어 각각을 검색어로 지정하여 수행되도록 하는
    문서를 검색하는 방법.
  13. 복수의 문서에 포함된 각각의 문서를 나타내는(representing) 문서 축(axis), 상기 각각의 문서가 어떠한 단어를 포함하고 있는지를 나타내는 단어 축 및 상기 단어가 문맥에 따라서 어떠한 개념(concept)을 갖는지를 나타내는 개념 축이 3차원 공간에서 서로 직교하도록 구성될 때, 상기 복수의 문서를 상기 3차원 공간에서 표현하는 단계와,
    상기 3차원 공간을 상기 단어 축과 상기 개념 축을 포함하는 평면과 평행한 평면으로 잘랐을 때의 단면을 이용하여서, 상기 단어 축과 상기 개념 축으로 이루어진 2차원 평면에서 상기 각각의 문서를 표현하는 단계와,
    검색어를 입력받는 단계와,
    상기 2차원 평면에서 표현된 상기 복수의 문서 각각에 대하여, 상기 입력받은 검색어와 유사한 정도를 나타내는 유사도를 산출하는 단계와,
    상기 유사도를 기초로 상기 복수의 문서 중에서 일부를 검색한 결과로 출력하는 단계를 수행하도록 프로그램된
    컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램.
  14. 복수의 문서에 포함된 각각의 문서를 나타내는(representing) 문서 축(axis), 상기 각각의 문서가 어떠한 단어를 포함하고 있는지를 나타내는 단어 축 및 상기 단어가 문맥에 따라서 어떠한 개념(concept)을 갖는지를 나타내는 개념 축이 3차원 공간에서 서로 직교하도록 구성될 때, 상기 복수의 문서를 상기 3차원 공간에서 표현하는 단계와,
    상기 3차원 공간을 상기 단어 축과 상기 개념 축을 포함하는 평면과 평행한 평면으로 잘랐을 때의 단면을 이용하여서, 상기 단어 축과 상기 개념 축으로 이루어진 2차원 평면에서 상기 각각의 문서를 표현하는 단계와,
    검색어를 입력받는 단계와,
    상기 2차원 평면에서 표현된 상기 복수의 문서 각각에 대하여, 상기 입력받은 검색어와 유사한 정도를 나타내는 유사도를 산출하는 단계와,
    상기 유사도를 기초로 상기 복수의 문서 중에서 일부를 검색한 결과로 출력하는 단계를 수행하는 명령어를 포함하는 컴퓨터 프로그램이 기록된
    컴퓨터 판독가능 기록매체.
KR1020160026494A 2016-03-04 2016-03-04 문서를 검색하는 방법 KR101769940B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160026494A KR101769940B1 (ko) 2016-03-04 2016-03-04 문서를 검색하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160026494A KR101769940B1 (ko) 2016-03-04 2016-03-04 문서를 검색하는 방법

Publications (1)

Publication Number Publication Date
KR101769940B1 true KR101769940B1 (ko) 2017-08-30

Family

ID=59760497

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160026494A KR101769940B1 (ko) 2016-03-04 2016-03-04 문서를 검색하는 방법

Country Status (1)

Country Link
KR (1) KR101769940B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116796754A (zh) * 2023-04-20 2023-09-22 浙江浙里信征信有限公司 基于时变上下文语义序列成对比较的可视分析方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
P. Malo et al., Automated query learning with Wikipedia and generic programming, Artificial Intelligence, Vol.194 pp.86-110 (2013)*
김한준 외, 위키피디어 기반 개념 공간을 가지는 시멘틱 텍스트 모델, 한국전자거래학회지 제19권 제3호, pp.107-123, 2014.08.
홍기주, 위키피디아 기반 텍스트 표현모델을 활용한 시멘틱 검색 기법, 서울시립대학교 석사학위논문(2015.12.)*

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116796754A (zh) * 2023-04-20 2023-09-22 浙江浙里信征信有限公司 基于时变上下文语义序列成对比较的可视分析方法及系统

Similar Documents

Publication Publication Date Title
KR101623860B1 (ko) 문서 요소에 대한 유사도를 산출하는 방법
JP4972358B2 (ja) 文書検索装置、文書検索方法、文書検索プログラム及び記録媒体。
US8645380B2 (en) Optimized KD-tree for scalable search
KR101923146B1 (ko) 워드 벡터를 이용한 시맨틱 검색 시스템 및 방법
US10482146B2 (en) Systems and methods for automatic customization of content filtering
EP2045731A1 (en) Automatic generation of ontologies using word affinities
JP2004178605A (ja) 情報検索装置及びその方法
WO2009076728A1 (en) Methods for determining a path through concept nodes
CN107844493B (zh) 一种文件关联方法及系统
US10191921B1 (en) System for expanding image search using attributes and associations
JP6772478B2 (ja) 情報検索プログラム及び情報検索装置
WO2015145981A1 (ja) 多言語文書類似度学習装置、多言語文書類似度判定装置、多言語文書類似度学習方法、多言語文書類似度判定方法、および、記憶媒体
KR101494795B1 (ko) 문서를 매트릭스로 표현하는 방법
JP2015207026A (ja) 情報処理装置、レコード位置情報特定方法および情報処理プログラム
KR101769940B1 (ko) 문서를 검색하는 방법
CN111143400B (zh) 一种全栈式检索方法、系统、引擎及电子设备
TW202201249A (zh) 2維映射產生裝置、2維映射產生方法及2維映射產生用程式
US20090030893A1 (en) Query generation system for an information retrieval system
CN117312518A (zh) 一种智能问答方法、装置、计算机设备及存储介质
CN116644146A (zh) 一种文档搜索方法、装置、系统、电子设备及存储介质
JP2011100208A (ja) 行動推定装置、行動推定方法および行動推定プログラム
EP2219121A1 (en) Efficient computation of ontology affinity matrices
JP4453440B2 (ja) 視覚的情報分類方法及び装置及びプログラム及び視覚的情報分類プログラムを記録した記憶媒体
Padilla et al. Intuitive large image database browsing using perceptual similarity enriched by crowds
JP2010009237A (ja) 多言語間類似文書検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant