KR20140016159A - 자원 효율적인 문서 검색 - Google Patents

자원 효율적인 문서 검색 Download PDF

Info

Publication number
KR20140016159A
KR20140016159A KR1020130081142A KR20130081142A KR20140016159A KR 20140016159 A KR20140016159 A KR 20140016159A KR 1020130081142 A KR1020130081142 A KR 1020130081142A KR 20130081142 A KR20130081142 A KR 20130081142A KR 20140016159 A KR20140016159 A KR 20140016159A
Authority
KR
South Korea
Prior art keywords
text data
search
terms
relevance
term
Prior art date
Application number
KR1020130081142A
Other languages
English (en)
Other versions
KR102046096B1 (ko
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 이엑스비 에셋 매니지먼트 게엠베하
Publication of KR20140016159A publication Critical patent/KR20140016159A/ko
Application granted granted Critical
Publication of KR102046096B1 publication Critical patent/KR102046096B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 문헌은 하나 이상의 검색 용어를 사용하여 문서를 검색하기 위한 시스템과 방법에 관한 것이다. 특히, 본 문헌은 문서의 테이타베이스 내에서 어떤 문헌을 검색하기 위한 자원 효율적인 방법에 관한 것이다. 데이타베이스(103)를 포함하는 전자 장치(100)에서 역 인덱스(221, 521)를 결정하기 위한 방법(200, 500)이 설명된다. 역 인덱스(221, 521)는 데이타베이스(103)로부터의 다수의 텍스트 데이타 실체(entity; 213)를 검색 용어에 맵핑하도록 구성된다. 본 방법(200, 500)은, 상기 데이타베이스(103)로부터의 다수의 텍스트 데이타 실체(213)에 대한 다수의 관련성 벡터(relevance vector; 216)를 결정하는 단계를 포함한다. 데이타베이스(103)로부터의 텍스트 데이타 실체(213)에 대한 관련성 벡터(216)를 결정하는 단계는, 텍스트 데이타 실체(213)를 묘사하는 N 개의 용어를 선택하는 것과, 선택된 N 개의 용어들로부터 관련성 벡터(216)를 결정하는(203) 것을 포함한다. 또한, 본 방법(200, 500)은 다수의 기록(222, 522)을 포함하는 역 인덱스(221, 521)를 결정하는 단계(204, 504)를 포함하며, 다수의 기록(222, 522) 각각은 다수의 관련성 벡터(216) 내에 지시되어 있는 용어들로부터의 각 용어와 관련되어 있다. 역 인덱스(221, 521)를 결정하는 단계(204, 504)는, 다수의 기록(222, 522) 각각에 대해, 데이타베이스(103)로부터 최대 P 개의 텍스트 데이타 실체(213)를 선택하는 것을 포함하며, 기록(222, 522)의 최대 P 개의 텍스트 데이타 실체(213)의 관련성 벡터(216)는 그 기록(222, 522)과 관련되어 있다.

Description

자원 효율적인 문서 검색{RESOURCE EFFICIENT DOCUMENT SEARCH}
본 발명은 하나 이상의 검색 용어, 문서 또는 문서의 수집을 사용하여 문서를 검색하기 위한 시스템과 방법에 관한 것이다. 특히, 본 발명은 문서의 데이타베이스 내에 있는 문서를 검색하기 위한 자원 효율적인 방법에 관한 것이다.
검색 엔진(예컨대, 인터넷 검색 엔진)은 사용자가 예컨대 하나 이상의 검색 용어를 포함하는 문의에 응답하여 관련된 문서를 확인할 수 있게 해준다. 검색 엔진은 일반적으로, 잠재적으로 관련된 문서의 신뢰가능한 리스트를 사용자에게 제공하기 위해, 상당한 계산 자원(resource)(처리 능력과 메모리에 대해)을 사용한다.
휴대용 전자 장치(예컨대, 스마트폰, 타블렛 컴퓨터, 노트북 컴퓨터 등)는 사용자가 텍스트 문서(전자 책, 이메일, SMS, 캘린더 데이타베이스 항목, 어드레스 북 항목, 다운로드된 웹페이지 및 기티와 같은)의 큰 데이타베이스를 가지고 다닐 수 있게 해준다. 사용자는 문의에 응답하여 텍스트 문서의 데이타베이스로부터 관련된 텍스트 문서를 신뢰적으로 또한 효율적으로 결정할 수 있어여 한다. 그러나, 휴대용 전자 장치는 일반적으로 매우 제한된 계산 자원(메모리와 처리 능력에 대해)을 갖고 있다. 그러므로, 하나 이상의 검색 용어를 포함하는 문의에 응답하여 (관련된) 후보 문서의 리스트를 자원 효율적인 방식으로 결정하기 위한 방법과 시스템을 제공하는 것이 바람직하다. 하나 이상의 검색 용어를 포함하는 상기 문의는 문서(예컨대, 검색 문서라고 함)로부터 구해질 수 있다(예컨대, 그 문서에 대응할 수 있음).
일 양태에 따르면, 데이타베이스를 포함하는 전자 장치에서 역 인덱스를 결정하기 위한 방법이 설명된다. 상기 역 인덱스는 전자 장치에 저장될 수 있고 또한 이 역 인덱스는 데이타베이스로부터의 다수의 텍스트 데이타 실체(entity)를 검색 용어에 맵핑하도록 구성될 수 있다. 다시 말해, 역 인덱스는 검색 용어의 리스트를 포함할 수 있다(또는 그러한 리스트를 나타낼 수 있다). 각각의 검색 용어는 텍스트 데이타 실체의 기록과 관련될 수 있으며, 상기 텍스트 데이타 실체는 상기 기록과 관련되어 있는 검색 용어를 포함하고/포함하거나 상기 기록과 관련되어 있는 검색 용어와 관련 있다. 텍스트 데이타 실체의 예를 들면, 텍스트 문서, 이메일, SMS, 캘린더 항목 및/또는 어드레스 북 항목이 있다.
상기 방법은 상기 데이타베이스로부터의 다수의 텍스트 데이타 실체에 대한 다수의 관련성 벡터(relevance vector)를 결정하는 단계를 포함한다. 데이타베이스의 텍스트데이타 실체 각각은 대응하는 관련성 벡터와 관련될 수 있다. 관련성 벡터는 대응하는 텍스트 데이타 실체의 메타데이타로서 저장될 수 있다. 관련성 벡터는 대응하는 텍스트 테이타 실체내의 N 개의 가장 관련 있는 용어(예컨대, 단어)를 나타낼 수 있다. 대안적으로 또는 추가적으로, 관련성 벡터는 대응하는 텍스트 테이타 실체에 대해 가장 잘 묘사하는 N 개의 용어(예컨대, 단어)를 나타낼 수 있다. 본 명세서에서, "용어" 또는 "단어" 라는 표현은 "용어 유형" 또는 "단어 유형"의 의미로 이해된다.
상기 데이타베이스로부터의 텍스트 데이타 실체에 대한 관련성 벡터를 결정하는 것은 다음과 같은 단계들 중의 일부 또는 전부를 포함할 수 있다. 특히, 다수의 관련성 벡터들 각각은 다음과 같은 단계들 중의 일부 또는 전부를 사용하여 결정될 수 있다. 관련성 벡터는 텍스트 데이타 실체를 묘사하는 N 개의 용어를 선택하여 결정될 수 있다. 예컨대, 묘사를 가장 잘 하는 용어 및/또는 텍스트 데이타 실체내에서 최고의 관련성을 갖는 용어가 선택될 수 있다. 관련성 벡터는 선택된 N 개의 용어로부터 결정될 수 있다.
바람직한 실시 형태에서, 텍스트 데이타 실체에 대한 관련성 벡터를 결정하기 위해, 텍스트 데이타 실체 내에서의 다수의 용어의 다수의 발생율(절대 빈도라고도 함)이 결정될 수 있다. 예컨대, 텍스트 데이타 실체의 각 용어에 대해, 각각의 발생율(텍스트 데이타 실체내에 있는 용어의 총 갯수에 대한 발생율)이 결정될 수 있다. 또한, 상기 다수의 발생율 및 다수의 용어에 대한 다수의 디폴트 발생율에 근거하여, 다수의 용어에 대한 다수의 관련성 값이 결정될 수 있다. 디폴트 발생율은 디폴트 발생율의 미리 정해진 리스트에서 취해질 수 있다. 디폴트 발생율의 미리 정해진 리스트는 트레이닝 텍스트 데이타 실체의 집단을 사용하여 결정될 수 있다. 예컨대, 다수의 발생율과 다수의 디폴트 발생율 사이의 편차를 고려하여 다수의 관련성 값을 각각 결정할 수 있다. 그 편차는 발생율의 비 또는 차에 근거하여 결정될 수 있고/있거나 통계적 중요성 척도(예컨대, 카이(Chi) 제곱 척도, 대수(log) 가능성 척도 등)를 사용하여 결정될 수 있다.
텍스트 데이타 실체에 대한 관련성 벡터는 최고의 관련성 값을 갖는 다수의 용어로부터 N 개의 용어를 선택하여 결정될 수 있다. 특히, 관련성 벡터는 선택된 N 개의 용어 및 각각의 관련성 값으로부터 결정될 수 있다. 더욱 특히, 관련성 벡터는, 더 낮은 관련성 값을 갖는 다른 용어는 고려하지 않고, 선택된 N 개의 용어 및 각각의 관련성 값만으로부터 결정될 수 있다. N 은 20 또는 15 또는 10 이하의 정수일 수 있고 또는 총 문서 수집 크기와 같은 주어진 파라미터(즉, 데이타베이스내에 포함되어 있는 텍스트 데이타 실체의 수)에 종속하는 함수일 수 있다. 예컨대, N 은 데이타베이스내에 포함되어 있는 텍스트 데이타 실체의 수가 감소함에 따라 감소할 수 있고 그 반대도 가능하다.
상기 방법은 다수의 기록을 포함하는 역 인덱스를 결정하는 것을 더 포함할 수 있다. 다수의 기록 각각은 다수의 관련성 벡터내에 지시되어 있는 용어들로부터의 각 용어와 관련될 수 있다. 특히, 각 기록은 테이타베이스로부터의 다수의 텍스트 데이타 실체를 나타낼 수 있으며, 다수의 텍스트 데이타 실체는 상기 기록과 관련되어 있는 용어와 관련 있다. 역 지수를 결정하는 것은, 다수의 기록 각각에 대해, 데이타베이스로부터 최대 P 개의 텍스트 데이타 실체를 선택하는 것을 포함할 수 있다. 기록의 최대 P 개의 선택된 텍스트 데이타 실체의 관련성 벡터는 그 기록과 관련되어 있는 용어와 관련될 수 있다(예컨대, 그 용어를 나타내거나 포함할 수 있음). 특히, 상기 기록의 최대 P 개의 선택된 텍스트 데이타 실체는 기록과 관련되어 있는 용어와 관련 있을 수 있다. P 는 5 와 같은 작은 디폴트 값으로 설정된 정수일 수 있고(예컨대, P 는 5 이하일 수 있다). 다수의 데이타 기록 각각은 최대 (또는 정확히) P 개의 텍스트 데이타 실체만 나타낼 수 있다(그리고 P 개 보다 많은 텍스트 데이타 실체는 나타내지 않을 수 있다).
다수의 기록 각각은 이 기록(222, 522)과 관련되어 있는 용어에 대한 최대 P 개의 텍스트 데이타 실체 각각의 관련성 값을 더 나타낼 수 있다. 기록 내의 텍스트 데이타 실체의 관련성 값은, 텍스트 데이타 실체의 관련성 벡터내에서 기록과 관련되어 있는 용어의 관련성 값에 대응할 수 있다.
제 1 용어에 대한 제 1 기록은 최대 P 개의 텍스트 데이타 실체를 포함할 수 있고, 이 텍스트 데이타 실체에 대해, 대응하는 관련성 벡터는 다수의 모든 관련성 벡터 중에서 상기 제 1 용어에 대한 최고의 관련성 값을 나타낸다. 다시 말해, 기록 내에 지시되어 있는 최대 P 개의 텍스트 데이타 실체는, (데이타베이스의 다수의 텍스트 데이타 실체 중에서) 기록과 관련되어 있는 용어에 대한 최고의 관련성 값을 갖는 최대 P 개의 텍스트 데이타 실체일 수 있다.
일반적으로, 다수의 기록 각각의 최대 P 개의 텍스트 데이타 실체의 관련성 벡터는 각각의 기록과 관련되어 있는 용어를 포함한다. 다시 말해, 용어에 대한 기록은 일반적으로 그 기록과 관련되어 있는 용어를 포함하는 관련성 벡터를 갖는 텍스트 데이타 실체만 포함한다(또는 나타낸다).
상기 방법은 의미적 텍스트 처리에 적합하게 될 수 있다. 이를 위해, 상기 방법은 용어-클러스터 맵핑 테이블을 사용하여, 다수의 관련성 벡터 각각의 용어를 대응하는 클러스터에 맵핑시키는 것을 포함할 수 있고, 그리하여 다수의 의미적 관련성 벡터가 얻어질 수 있다. 용어-클러스터 맵핑 테이블은 일반적으로 용어의 통계적 동시 발생의 관찰에 근거하는 분포적 유사성에 근거하여 언어에 있어서 일반적 담론에서의 일반적으로 개별적인 주제를 일반화하는 것을 반영한다. 다시 말해, 용어-클러스터 맵핑 테이블은 일반적으로 대응하는 개별적인 의미적 주제내에서 사용되고 분포적 유사성에 근거하여 결정될 수 있는, 즉 용어의 통계적 동시 발생의 관찰에 근거하는 용어들의 그룹을 반영한다. 용어-클러스터 맵핑 테이블은 예컨대 트레이닝 텍스트 데이타 실체의 집단에 근거하여 사전에 결정될 수 있다. 역 인덱스의 다수의 기록 각각은 다수의 의미적 관련성 벡터 내에 지시되어 있는 클러스터들로부터의 각 클러스터와 관련될 수 있다. 이러한 경우, 역 인덱스를 의미적 역 인덱스라고 할 수 있다. 다수의 기록 각각의 최대 P 개의 텍스트 데이타 실체의 의미적 관련성 벡터는 일반적으로 상기 기록과 관련되어 있는 클러스터를 포함한다. 의미적 역 인덱스의 경우, 그 역 인덱스의 기록은 이 기록과 관련되어 있는 각 클러스터와 관련 있는 최대 P 개의 텍스트 데이타 실체를 포함한다(또는 나타낸다).
다른 양태에 따르면, 데이타베이스를 포함하는 전자 장치에 저장되는 역 인덱스가 설명된다. 이 역 인덱스는 데이타베이스로부터의 하나 이상의 텍스트 데이타 실체를 하나 이상의 검색 용어에 맵핑하도록 구성될 수 있다. 역 인덱스는 다수의 기록을 포함할 수 있다. 다수의 기록 각각은 데이타베이스의 다수의 텍스트 데이타 실체 각각에 대한 다수의 관련성 벡터 내에 지시되어 있는 용어들로부터의 각 용어와 관련될 수 있다. 텍스트 데이타 실체에 대한 관련성 벡터는, 텍스트 데이타 실체 내에서 최고의 관련성 값을 갖는 다수의 용어로부터의 최대 N 개의 용어만 나타낼 수 있다(그리고/또는 N 개 보다 많은 용어는 나타내지 않을 수 있다). N 은 20 과 같은 미리 정해진 어떤 수 이하의 정수일 수 있다. 이 수는 테이타베이스 내에 포함되어 있는 텍스트 데이타 실체의 총 수에 의존할 수 있다. 다수의 기록 각각은 데이타베이스로부터의 최대 P 개의 텍스트 데이타 실체만 나타낼 수 있다(그리고/또는 P 개 보다 많은 텍스트 데이타 실체는 나타내지 않는다). 다수의 기록 각각의 최대 P 개의 텍스트 데이타 실체의 관련성 벡터는 기록과 관련되어 있는 용어와 관련될 수 있다(예컨대, 그 용어를 포함하거나 나타낼 수 있다). P 는 5 와 같은 미리 정해진 어떤 수 이하의 정수일 수 있다. 이 수는 테이타베이스 내에 포함되어 있는 텍스트 데이타 실체의 총 수에 의존할 수 있다. 예컨대, P 및/또는 N 은 데이타베이스 내에 포함되어 있는 텍스트 데이타 실체의 수가 증가하면 증가될 수 있고 그 반대도 가능한다.
다른 양태에 따르면, 데이타베이스로부터의 하나 이상의 텍스트 데이타 실체를 검색 용어에 맵핑시키도록 구성된 역 인덱스가 설명된다. 이 역 인덱스는 본 명세서에서 설명되는 역 지수 결정 방법들 중 어떤 것이라도 사용하여 결정된다는 사실에 특징이 있다.
다른 양태에 따르면, 데이타베이스를 포함하는 전자 장치에서 그 데이타베이스로부터 유사한 텍스트 데이타 실체를 결정하기 위한 방법이 설명된다. 상기 유사한 텍스트 데이타 실체는 다수의 검색 용어를 포함하는 검색 벡터와 유사하다. 이 검색 벡터는 다수의 검색 용어를 포함하는 문의 및 텍스트 데이타 실체의 관련성 벡터 중의 하나 이상일 수 있고, 다수의 검색 용어는 텍스트 데이타 실체 내에 있는 N 개의 가장 관련 있는 용어에 대응한다.
상기 방법은 역 인덱스를 사용하여, 다수의 검색 용어들 중의 다른 검색 용어는 고려하지 않고 다수의 검색 용어들 중의 제 1 검색 용어에 근거하여 다수의 제 1 후보 텍스트 데이타 실체를 결정하는 것을 포함할 수 있다. 상기 역 인덱스는 본 명세서에서 설명하는 바와 같이 구성될 수 있다. 따라서, 다수의 제 1 후보 텍스트 데이타 실체는 검색 벡터로부터의 개별적인 검색 용어에 근거하여 결정될 수 있다(다른 검색 용어는 고려하지 않고). 본 명세서에서 설명되는 능률적인 역 인덱스 때문에, 다수의 제 1 후보 텍스트 데이타 실체는 매우 제한된 수의 텍스트 데이타 실체(일반적으로 최대 P 개의 텍스트 데이타 실체)만 포함하고, 제 1 검색 용어는 그 텍스트 데이타 실체에 대해 높은 관련성을 갖는다.
상기 방법은 다수의 제 1 후보 텍스트 데이타 실체 각각과 검색 벡터 사이의 유사도를 결정하는 것을 더 포함할 수 있다. 유사도를 결정할 때, 다수의 검색 용어(예컨대, 다수의 모든 검색 용어)들 중에서 상기 제 1 검색 용어 외의 다른 적어도 하나의 검색 용어를 고려할 수 있다. 그리고 유사한 후보 텍스트 데이타 실체는 다수의 제 1 후보 텍스트 데이타 실체와 각각의 유사도에 근거하여 결정될 수 있다. 예컨대, 유사한 후보 텍스트 데이타 실체는 최고의 유사도를 갖는 후보 텍스트 데이타 실체로서 결정될 수 있다.
따라서, 유사한 후보 텍스트 데이타 실체를 결정하는 방법은, 검색 벡터로부터 개별적인 검색 용어에 근거하여 후보 텍스트 데이타 실체를 결정하는 제 1 단계를 포함할 수 있다. 제 2 단계에서, 후보 텍스트 데이타 실체와 완전한 검색 벡터 사이의 유사도가 결정될 수 있으며(예컨대, 코사인 유사성을 사용하여), 그리하여 유사한 후보 텍스트 데이타 실체가 얻어진다.
상기 방법은 다수의 검색 용어 각각에 대한 다수의 후보 텍스트 데이타 실체를 결정하는 것을 더 포함할 수 있다. 또한, 상기 방법은 다수의 검색 용어 각각에 대해, 다수의 후보 텍스트 데이타 실체 각각과 검색 벡터 사이의 유사도를 결정하는 것을 더 포함할 수 있다. 추가로, 상기 방법은 다수의 검색 용어 각각에 대한 다수의 후보 텍스트 데이타 실체와 각각의 유사도에 근거하여 상기 유사한 후보 텍스트 데이타 실체를 결정하는 것을 포함할 수 있다. 예컨대, 유사한 후보 텍스트 데이타 실체는, 개별적인 검색 용어에 근거하여 확인된 모든 후보 텍스트 데이타 실체 중에서 최소의 유사도를 갖는 후보 덱스트 데이타 실체로서 결정될 수 있다.
유사한 후보 텍스트 데이타 실체를 결정하는 상기 방법은 반복적으로 그리고/또는 병렬적으로 수행될 수 있으며, 그래서 검색 결과를 빨리 제공할 수 있고 또한 이어서 그 검색 결과를 조절할 수 있다. 이러한 반복적인 방법에서, 다수의 후보 텍스트 데이타 실체, 각각의 유사도 및/또는 상기 유사한 후보 텍스트 데이타 실체는, 다수의 검색 용어 각각에 대한 다수의 후보 텍스트 데이타 실체가 결정될 때까지, 제 1 검색 용어에서 시작하여 다수의 검색 용어들 중의 다른 개별적인 검색 용어로 하나씩 하나씩 진행하여 반복적으로 결정될 수 있다.
상기 방법은 의미적 검색을 수행하는데 적합하게 될 수 있다. 이러한 목적으로, 상기 방법은 용어-클러스터 맵핑 테이블을 사용하여, 다수의 검색 용어들의 검색 용어를 대응하는 클러스터에 맵핑시키는 것을 더 포함할 수 있고, 그리하여 다수의 검색 클러스터를 포함하는 의미적 검색 벡터가 얻어진다. 전술한 바와 같이, 용어-클러스터 맵핑 테이블은 일 집단의 트레이닝 텍스트 테이타 실체 내에서 용어의 통계적 동시 발생을 반영할 수 있다. 다수의 제 1 후보 텍스트 데이타 실체는 다수의 검색 클러스터들 중의 제 1 검색 클러스터에 근거하여, 다수의 검색 클러스터들 중의 다른 검색 클러스터는 고려하지 않고 개별적으로 결정될 수 있다. 다른 한편, 다수의 제 1 후보 텍스트 데이타 실체 각각과 의미적 검색 벡터 사이의 유사도는, 다수의 검색 클러스터들 중에서 상기 제 1 검색 클러스터 외의 다른 적어도 하나의 검색 클러스터를 고려하여(예컨대, 완전한 의미적 검색 벡터를 고려하여) 결정될 수 있다.
다른 양태에 따르면, 다수의 텍스트 데이타 실체를 포함하는 데이타베이스를 포함하는 전자 장치가 설명된다. 이 전자 장치는, 상기 데이타베이스로부터의 다수의 텍스트 데이타 실체에 대한 다수의 관련성 벡터를 결정하도록 구성될 수 있다. 이미 전술한 바와 같이, 상기 데이타베이스로부터의 텍스트 데이타 실체에 대한 다수의 관련성 벡터를 결정하는 것은 다음과 같은 단계, 즉 텍스트 데이타 실체 내에서의 다수의 용어의 다수의 발생율을 결정하는 단계; 상기 다수의 발생율 및 다수의 용어에 대한 다수의 디폴트 발생율에 근거하여, 다수의 용어에 대한 다수의 관련성 값을 결정하는 단계; 최고의 관련성 값을 갖는 다수의 용어로부터 N 개의 용어를 선택하는 단계; 및/또는 선택된 N 개의 용어 및 각각의 관련성 값으로부터 관련성 벡터를 결정하는 단계 중의 하나 이상을 포함할 수 있다. 또한, 상기 전자 장치는 다수의 기록을 포함하는 역 인덱스를 결정하도록 구성될 수 있다. 다수의 기록 각각은 다수의 관련성 벡터 내에 지시되어 있는 용어들로부터의 각 용어와 관련될 수 있다. 전술한 바와 같이, 역 인덱스를 결정하는 것은, 다수의 기록 각각에 대해, 데이타베이스로부터 최대 P 개의 텍스트 데이타 실체를 선택하는 것을 포함할 수 있다. 상기 기록의 최대 P 개의 텍스트 데이타 실체의 관련성 벡터는 기록과 관련되어 있는 용어와 관련될 수 있다(예컨대, 그 용어를 포함하거나 나타낼 수 있음).
또한, 상기 전자 장치는 유사한 후보 텍스트 데이타 실체를 결정하도록 구성될 수 있다. 이러한 목적으로, 상기 전자 장치는, 상기 역 인덱스를 사용하여, 다수의 검색 용어들 중의 다른 검색 용어는 고려하지 않고 다수의 검색 용어들 중의 제 1 검색 용어에 근거하여 다수의 제 1 후보 텍스트 데이타 실체를 결정하도록 구성될 수 있다. 또한, 상기 전자 장치는, 다수의 검색 용어들 중에서 상기 제 1 검색 용어 외의 다른 적어도 하나의 검색 용어를 고려하여, 다수의 제 1 후보 텍스트 데이타 실체 각각과 다수의 검색 용어를 포함하는 검색 벡터 사이의 유사도를 결정하도록 구성될 수 있다. 추가로, 상기 전자 장치는, 다수의 제 1 후보 텍스트 데이타 실체와 각각의 유사도에 근거하여 유사한 후보 텍스트 데이타 실체를 결정하도록 구성될 수 있다.
다른 양태에 따르면, 소프트웨어 프로그램이 설명된다. 이 소프트웨어 프로그램은 프로세서에서 실행되고 계산 장치에서 실행될 때 본 명세서에서 설명한 양태와 특징을 수행하는데 적합하게 되어 있는 지시로서 컴퓨터 판독가능한 매체(유형의 것일 수 있거나 아니면 비일시적인 것일 수 있다)에 저장될 수 있다.
다른 양태에 따르면, 소프트웨어 프로그램을 포함하는 저장 매체가 설명된다. 이 저장 매체는 메모리(예컨대, RAM, ROM 등), 광학 매체, 자기적 매체 등 일 수 있다. 소프트웨어 프로그램은, 프로세서에서 실행되고 계산 장치에서 실행될 때 본 명세서에서 설명한 양태와 특징을 수행하는데 적합하게 될 수 있다.
다른 양태에 따르면, 컴퓨터 프로그램 제품이 설명된다. 이 컴퓨터 프로그램 제품은 계산 장치에서 실행될 때 본 명세서에서 설명한 양태와 특징을 수행하기 위한 실행가능한 지시들을 포함할 수 있다.
본 특허 출원에서 설명하는 바람직한 실시 형태를 포함하는 상기 방법과 시스템은 단독으로 사용되거나 또는 본 명세서에 개시되어 있는 다른 방법 및 시스템과 결합하여 사용될 수 있다. 또한, 본 특허 출원에서 설명하는 바람직한 상기 방법과 시스템의 모든 양태들은 임의로 결합될 수 있다. 특히, 청구 범위에 기재된 특징적 사항들은 임의로 서로 결합될 수 있다.
이하, 첨부 도면을 참조하여 본 발명을 예시적으로 설명하도록 한다.
도 1 은 일 예시적인 전자 장치의 블럭도를 도시한다.
도 2a ∼ 2c 는 역 인덱스를 결정하기 위한 일 예시적인 방법을 도시한다.
도 3 은 문의에 응답하여 후보 데이타 실체를 결정하기 위한 일 예시적인 방법의 흐름도를 나타낸다.
도 4a ∼ 4b 는 다수의 의미적 클러스터를 결정하기 위한 일 예시적인 방법을 도시한다.
도 5a 및 5b 는 의미적 클러스터에 대한 역 인덱스를 결정하기 위한 일 예시적인 방법을 도시한다.
도 6 은 의미적 클러스터를 사용하여 문의에 응답해 후보 데이타 실체를 결정하기 위한 일 예시적인 방법의 흐름도를 나타낸다.
도 1 에는, 본 명세서에서 설명하는 검색 계획을 수행하도록 구성될 수 있는 일 예시적인 전자 장치(100)가 나타나 있다. 이 전자 장치(100)는 휴대용 및/또는 무선 전자 장치, 예컨대 스마트폰, 타블렛 PC 또는 랩탑 PC일 수 있다. 전자 장치(100)는 다수의 텍스트 데이타 실체(entity)(또는 텍스트성 데이타 실체 또는 데이타 실체)를 저장하고 관리하기 위한 데이타베이스(103)를 포함한다. 텍스트 데이타 실체의 전형적인 예는, 이메일 메시지, SMS 메시지, 텍스트 문서, 어드레스 북 항목, 캘린더 항목, 웹 페이지 등이다. 데이타베이스(103)는 조직적인 구조(예컨대, 폴더 구조)를 사용하여 다수의 데이타 실체를 저장할 수 있다. 또한, 데이타베이스(103)는 다수의 데이타 실체에 관한 표시 구조 또는 메타데이타를 포함할 수 있다. 이러한 메타데이타는 예컨대 본 명세서에서 설명되는 관련성 벡터(relevance vector)를 포함할 수 있다. 특히, 데이타베이스(103)의 데이타 실체는 데이타 실체내에 포함되는 관련된 용어의 관련성 벡터와 관련될 수 있다. 또한, 데이타베이스(103)는 데이타베이스(103) 내에 저장되는 다수의 데이타 실체에 대한 검색 용어의 역 인덱스(inverse index)를 포함할 수 있다.
상기 전자 장치(100)는 데이타 입력/출력 유닛(104)을 더 포함할 수 있다. 물리적인 층에서, 그 데이타 입력/출력 유닛(104)은 데이타 실체를 다른 전자 장치 또는 네트워크(공유) 서버와 교환하기 위해 무선 또는 유선 통신 인터페이스를 포함할 수 있다. 논리적인 층에서, 데이타 입력/출력 유닛(104)은, 전자 장치(100)에서 데이타 실체를 받고 저장하는 것을 관리하고 또한 전자 장치(100)로부터 데이타 실체를 보내는 것을 관리하도록 구성될 수 있다.
또한, 전자 장치(100)는 데이타 발생부(101)를 포함할 수 있으며, 전자 장치(100)의 사용자는 그 데이타 발생부를 사용하여 새로운 데이타 실체, 예컨대 새로운 이메일 메시지 또는 새로운 텍스트 문서를 발생시키고/발생시키거나 하나 이상의 검색 용어를 포함하는 문의를 발생시킬 수 있다. 데이타 발생부(101)는 일반적으로 새로운 데이타 실체 또는 문의를 표시하기 위한 디스플레이, 새로운 데이타 실체 또는 문의를 구성하기 위한 편집 수단(예컨대, 키보드) 및/또는 새로운 데이타 실체 또는 문의를 사용자에게 들을 수 있는 형태로 제공하는 텍스트-스피치 음성 모듈, 그리고 스피치-텍스트 모듈을 통해 새로운 데이타 실체 또는 문의를 구성하기 위한 음성 편집 수단을 포함한다. 추가로, 상기 전자 장치(100)는 데이타베이스(103)로부터 데이타 실체를 확인하는 검색 엔진(102)을 포함하며, 그 데이타 실체는 데이타 발생부(101)에서 발생되고 있는 새로운 데이타 실체 또는 문의에 대해 높은 관련도를 갖고 있는 것이다. 새로운 데이타 실체 또는 문의의 발생을 위해 데이타베이스(103)에 저장되어 있는 데이타 실체의 관련성을 결정하기 위해, 상기 검색 엔진(102)은 본 명세서에서 설명하는 검색 계획을 사용할 수 있다.
상기 전자 장치(100)의 사용자가 새로운 데이타 실체를 편집하고 있을 때(예컨대, 전자 장치(100)의 사용자가 이메일을 쓰고 있을 때), 전자 장치(100)는 데이타베이스(103)로부터 관련된 데이타 실체(여기서는 후보 데이타 실체라고도 함)의 리스트를 결정하도록 구성될 수 있다. 따라서, 사용자는 새로운 데이타 실체의 발생을 위해 관련된 데이타 실체의 일 부분을 사용할 수 있을 것이다(예컨대, "복사해서 붙여 넣기" 작업으로). 관련된 데이타 실체의 리스트를 결정하기 위해, 전자 장치(100)는 새로운 데이타 실체를 위한 관련성 벡터를 추출하도록 구성될 수 있다. 관련성 벡터는 본 명세서에서 설명되는 방법을 사용하여 결정될 수 있다. 그 관련성 벡터는 새로운 데이타 실체의 가장 관련 있는 N개의 용어(또는 단어)를 포함할 수 있다. 자원 효율적인 검색 계획을 제공하기 위해, 데이타 실체의 관련성 벡터내에 있는 용어의 수 N 은 비교적 작은 값으로 선택되는데, 예컨대 N 은 5, 10, 15, 20 이하일 수 있다.
따라서, 전자 장치(100)는 새로운 데이타 실체를 위해 N 개의 관련된 용어들을 포함하는 관련성 벡터를 결정할 수 있다. 이 관련성 벡터는 새로운 데이타 실체가 사용자에 의해 발생됨에 따라 업데이트될 수 있으며, 그리하여 사용자에게 제안되는 관련된 데이타 실체의 리스트도 업데이트된다. 새로운 데이타 실체의 관련성 벡터는 N 개의 검색 용어(그리고 가능하다면 각각의 관련성 값)를 포함하는 문의로 볼 수 있다. 이하, 일반적으로 어떤 M 개의 검색 용어를 포함하는 문의를 참조하도록 한다. 그 문의는 발생되고 있는 새로운 데이타 실체의 관련성 벡터에 대응할 수 있다(이러한 경우 M 은 N 과 같을 수 있음). 다른 한편, 문의는 또한 사용자가 입력한 검색 용어를 포함하는 어떤 종류의 문의라도 될 수 있다. 전체적으로, 문의는 M 개의 다수의 검색 용어를 포함한다고 생각할 수 있다. 또한, 문의는 M 개의 검색 용어에 대한 M 개의 관련성 값을 포함할 수 있다. 상기 관련성 값은 문의내에 있는 각각의 검색 용어의 상대적인 중요성을 나타낸다. 문의가 텍스트 데이타 실체의 관련성 벡터에 대응하면, 관련성 값은 텍스트 데이타 실체내에 있는 관련성 벡터의 용어의 상대적인 중요성을 나타낸다.
전술한 바와 같이, 데이타베이스(103)내에 포함되는 데이타 실체의 일부 또는 전부는 그 데이타 실체의 각각의 관련성 벡터와 관련될 수 있다. 관련성 벡터는 데이타 실체내에 포함되어 있는 가장 관련 있는 N 개의 용어(또는 단어)를 나타낼 수 있다. 도 2a 에는, 데이타 실체의 관련성 벡터를 결정하고 또한 특정 검색 용어와 관련 있는 하나 이상의 데이타 실체를 확인할 수 있게 해주는 역 인덱스를 발생시키고 업데이트하기 위한 일 예시적인 방법(200)의 흐름도가 도시되어 있다.
상기 방법(200)은 특정 데이타 실체내에 포함되어 있는 용어의 절대 빈도를 결정하는 단계(201)를 포함한다. 이어서, 상기 특정 데이타 실체내에 포함되어 있는 용어의 관련성을 결정하기 위해 미분 분석을 사용할 수 있다(단계(202)). 특정 데이타 실체의 관련성 벡터는 일반적으로 특정 데이타 실체내에 포함되어 있는 가장 관련 있는 N 개의 용어를 포함한다 (단계(203)). 전술한 바와 같이, N 은 비교적 작게 유지된다(자원 효율성을 위해).
특정 데이타 실체(213)에 대한 관련성 벡터(216)의 결정이 도 2b 에 더 상세히 도시되어 있다. 데이타 실체(213)에 대해 빈도 벡터(214)가 결정될 수 있는데, 이 빈도 벡터(214)는 예컨대 데이타 실체(213) 내에 있는 가장 빈번히 사용되는 X 개의 용어의 절대 빈도를 포함할 수 있다(예컨대, X = 최대 100 또는 500). 빈도 벡터(214)는 데이타 실체(213) 내의 용어의 전형적인(예컨대, 평균) 빈도를 나타내는 디폴트 빈도 분포(212)(또한 디폴트 발생율이라고도 함)과 비교된다. 디폴트 빈도 분포(212)는 트레이닝 데이타 실체의 집단(211)에 근거하여 오프라인으로(예컨대, 중앙 서버에서) 결정될 수 있다. 상기 집단(211)은 수천 또는 심지어는 수백만개의 데이타 실체를 포함할 수 있으며, 그래서 신뢰성 있는 디폴트 빈도 분포(212)를 제공한다. 디폴트 빈도 분포(212)는 예컨대 최대 십만개 단어의 디폴트 빈도를 포함할 수 있다.
디폴트 빈도 분포(212)와 빈도 벡터(214)는 데이타 실체(213)에 대한 빈도 벡터(214) 내에 포함되어 있는 용어의 관련성을 결정하는데 사용된다. 빈도 벡터(214)의 일 용어는, 데이타 실체(213)내의 그 용어의 절대 빈도(빈도 벡터(214) 내에 반영됨)가 그 용어의 디폴트 빈도(디폴트 빈도 분포(212)내에 반영됨)에 근거한 그의 빈도에 대한 기대값 보다 높으면 관련성이 있을 수 있다. 어떤 용어의 관련성은 디폴트 빈도로부터의 절대 빈도의 편차가 증가함에 따라 증가한다(또한 그 반대도 가능하다). 빈도 벡터(214)의 용어의 관련성 값은 대수(log) 가능성의 푸아송(Poisson) 근사화에 근거하여 관련성 결정부(215) 내에서 결정될 수 있다(예컨대, 이는 H.F. Witschel의 "용어-추출", Ergon, 2004 에서 개략적으로 설명되어 있는 바와 같으며, 이는 참조로 관련되어 있다). 데이타 실체(213)의 관련성 벡터(216)는 빈도 벡터(214)의 N 개의 용어(최고의 관련성 값을 가짐)를 선택하여 결정될 수 있다.
다시 말해, 미분 분석을 수행할 수 있는데, 이 미분 분석은 데이타 실체(213)에서 실제 발생량을 갖는 배경 집단(211)에서의 용어의 빈도에 근거하여 데이타 실체(213)에 있는(예컨대, 문서내에 있는) 용어(또는 단어)의 기대 발생량을 계산하는 것에 기초한다. 카이(Chi) 제곱, 상호 정보 또는 대수 가능성이 이러한 목적을 위해 사용될 수 있다. 한 변량(variant)을 tf.idf 라고 하는데, 이는 term-frequency-inverse-document-frequency를 의미한다. 도시된 실시예에서, 대수 가능성의 푸아송 분포 근사화가 사용된다.
상기 방법(200)은 가장 관련 있는 L 개의 용어에 대한 역 인덱스를 결정하고/결정하거나 업데이트하는 단계(204)를 포함할 수 있다. 역 인덱스는 가장 관련 있는 L 개의 용어 각각에 대한 L 개의 기록을 포함한다. 특정 용어에 대한 특정 기록은 데이타베이스(103)의 최대 P 개의 데이타 실체(213)의 리스트를 나타낼 수 있으며, 상기 특정 용어는 상기 특정 기록으로 확인되는 데이타 실체(213) 내에서 비교적 높은 관련성을 갖는다. 분명, 특정 용어에 대한 특정 기록은, 특정 용어가 데이타베이스(103)의 모든 데이타 실체(213) 중에서 최고의 관련성을 갖는 데이타 실체(213)를 나타낼 수 있다. 특정 용어에 대한 특정 기록은 최대 P 개의 각각의 데이타 실체(213) 내에 있는 특정 용어의 관련성(예컨대, 관련성 값)을 또한 나타낼 수 있다.
역 인덱스내에 포함되는 기록의 수 L 은 예컨대 십만 이하의 범위에 있을 수 있다. 기록에 의해 참조되는 데이타 실체의 수 P 는 비교적 작을 수 있어, 자원 효율적인 검색 계획을 제공한다. 예컨대, P 는 4, 5, 6, 10 또는 다른 수 이하이며, 총 문서 수집 크기(즉, 데이타베이스내에 포함되는 텍스트 데이타 실체의 수 같은 것)와 같은 다른 측정가능한 파라미터에 의존할 수 있다.
역 인덱스(221)의 결정이 도 2c 에 더 도시되어 있다. 데이타베이스(103)의 다수의 데이타 실체(213)에 대한 다수의 관련성 벡터(216)를 분석하여, 다수의 관련성 벡터(216) 내에 포함되어 있는 용어의 완전한 리스트를 결정하게 된다. 전술한 바와 같이, 관련성 벡터(216)는 N 개의 제한된 수의 용어를 포함한다(또는 나타낸다). 다른 관련성 벡터(216)의 용어들의 겹침 때문에, 용어의 완전한 리스트는 일반적으로 단지 2000 ∼ 5000 개의 용어를 포함한다(심지어는 데이타베이스(103) 내에 포함되는 1000 개 이상의 많은 수의 데이타 실체(213)에 대해서도). 이는 역 인덱스(221)가 일반적으로 단지 L = 2000 ∼ L = 5000 또는 그 이하의 기록(222)를 포함하는 것을 의미한다.
역 인덱스(221)의 기록(222)은 다수의 관련성 벡터(216)로부터의 용어와 최대 P 개의 데이타 실체(213)의 리스트(또는 기록) 사이의 맵핑을 제공한다. P 개의 데이타 실체(213)는, 데이타베이스(103) 내에 포함되어 있는 모든 데이타 실체(213)와 비교하여 기록(222)의 용어가 최고의 관련성을 갖는 데이타 실체(213)일 수 있다. 기록(222)은 P 개의 각각의 데이타 실체(213) 내에 있는 용어의 관련성(또는 강도)을 더 제공할 수 있다.
데이타 실체(213)가 데이타베이스(103)에 추가되거나 또는 그로부터 제거됨에 따라 상기 역 인덱스는 업데이트될 수 있다. 어떤 데이타 실체(213)가 데이타베이스(103)로부터 제거되면, 역 인덱스(221)의 기록(222) 내에 있는 그 제거된 데이타 실체(213)에 대한 모든 참조는 제거될 수 있다. 또한, 빈 기록(222)을 갖는 역 인덱스(221)의 용어가 역 인덱스(221)로부터 제거될 수 있다. 추가로, 제거된 데이타 실체(213)의 관련성 벡터(216)가 제거될 수 있다. 다른 한편, 어떤 데이타 실체(213)가 데이타베이스(103)에 추가되면, 그 추가된 데이타 실체(213)에 대한 관련성 벡터(216)가 결정될 수 있다(예컨대, 상기 방법(200)를 사용해서). 추가된 데이타 실체(213)의 관련된 용어들 중 어떤 것이라도 각각의 기록(222)에 나타나 있는 최저의 관련성을 초과하는 관련성 값을 갖고 있는지(또는 각각의 기록(222)이 P 개의 데이타 실체를 아직 나타내지 않는지)를 판단하기 위해, 추가된 데이타 실체(213)의 관련성 벡터(216) 내에 포함되어 있는(또는 그 관련성 벡터로 나타나 있는) 용어에 대한 기록(222)이 분석된다. 그 결과, 추가된 데이타 실체(213)는 그의 관련성 벡터(216)의 용어에 대한 기록(222)들 중 일부 또는 모두에 포함될 수 있다. 동시에, 추가된 데이타 실체(213)의 관련성 벡터의 각 용어에 대해 낮은 관련성 값을 갖는 모든 데이타 실체(213)가 각각의 기록(222)으로부터 제거될 수 있다. 종합적으로, 역 인덱스(221)가 이 역 인덱스(221) 내에 열거되어 있는 L 개의 용어에 대한 가장 관련 있는 최대 P 개의 데이타 실체(213)를 항상 나타내는 것을 보장할 수 있다.
다시 말해, 미분 분석으로 얻어진 관련성 벡터(216)로부터의 관련성 값은, 데이타 실체(213)가 특정 용어에 대해 얼마나 중요한가에 대한 표시로서 직접 역으로 사용될 수 있다. 그래서, 용어 "집"이 계산되어 제 1 데이타 실체(213)에서의 그 용어의 빈도가 기대값으로부터 편차를 갖는다면, 또한 이 편차가 20배이면, 값 20 이 데이타 실체(213)에서의 그 용어의 중요성(또는 관련성)에 할당될 수 있다. 역 인덱스(221)에서, 이 용어에 대한 데이타 실체(213)의 중요성은 그 용어의 관련성 값(즉 값 20)에 대응한다고 가정할 수 있다. 다른 데이타 실체(213)가 30 의 중요성을 갖는(즉, 30 의 관련성 값을 갖는) 동일한 용어를 포함한다면, 상기 다른 데이타 실체(213)는 용어 "집" 에 대해 기록(222)내의 제 1 데이타 실체(213) 보다 높게 순위가 매겨질 것이다. 용어 "집" 에 대해 더 높은 중요성(또는 관련성 값)을 갖는 P 개 이상의 데이타 실체(213)가 확인되면, 제 1 데이타 실체(213)는 용어 "집" 에 대한 기록(222)으로부터 탈락된다.
요컨대, 관련성 벡터(216) 내에 있는 용어의 수 N 을 제한하거나, 역 인덱스(221) 내에 포함되어 있는 용어의 수 L 을 제한하고/제한하거나 역 인덱스(221)의 기록(222) 마다 데이타 실체(213)의 수 P 를 제한함으로써, 관련된 데이타 실체(213)에 대한 검색을 할 수 있게 하기 위한 저장 및 처리 요건들이 낮게 유지될 수 있다(아래에서 더 상술하는 바와 같이). 또한, M 개의 검색 용어에 대한 문의가 L × P 차원의 역 인덱스에 의존하는 고정된 시간량으로 수행될 수 있는 것을 보장할 수 있다.
도 3 은 문의를 받는 관련된 데이타 실체(213)에 대한 검색을 수행하기 위한 일 예시적인 방법(300)의 흐름도를 나타낸다. 문의는 M 개의 검색 용어를 포함할 수 있다(그리고 가능하다면 각각의 관련성 값도 포함할 수 있음). 위에서 개략적으로 설명한 바와 같이, 문의는 데이타 실체(213)의 관련성 벡터(216)의 용어들을 포함할 수 있고, 그래서 데이타 실체(213) 간의 유사도를 결정할 수 있게 해준다. 상기 방법(300)은 문의의 검색 용어를 확인하는 단계(301)를 포함한다. 확인된 각각의 검색 용어에 대해, 역 인덱스(221)를 사용하여 후보 데이타 실체를 결정한다(단계(302)). 제 1 검색 용어에 대한 후보 데이타 실체는 제 1 검색 용어에 대한 기록(200) 내에서 확인된(문의로부터의 다른 검색 용어는 고려하지 않고) 데이타 실체(213)에 대응한다.
따라서, 제 1 검색 용어에 대해, 제 1 후보 데이타 실체(213)의 대응하는 리스트가 결정될 수 있다. 제 1 후보 데이타 실체(213)는 완전한 문의와 비교될 수 있다(단계(303)). 특히, 상기 문의와 각각의 제 1 후보 데이타 실체(213) 사이의 유사성 척도가 결정될 수 있다. 상기 문의와 제 1 후보 데이타 실체(213) 사이의 유사성 척도를 결정하기 위해, 제 1 후보 데이타 실체(213)의 관련성 벡터(216)는 상기 문의(다수의 검색 용어 및 가능하다면 이 다수의 검색 용어에 대한 각각의 관련성 값을 포함하는 관련성 벡터라고 볼 수 있음)와 비교될 수 있다. 예컨대, 문의 벡터(검색 용어를 포함함)와 제 1 후보 실체(213)의 관련성 벡터(216) 사이의 코사인(cosine) 유사성이 결정될 수 있다. 따라서, 각각의 제 1 후보 데이타 실체(213)에 대해, 완전한 문의와의 유사도가 결정될 수 있다. 제 1 후보 데이타 실체(213)는 그의 유사도에 따라(예컨대, 내림 차순의 유사도에 따라) 순위가 매겨질 수 있으며, 문의에 대한 검색 결과로서 가장 유사한 제 1 후보 데이타 실체(213)들 중의 일부 또는 전부가 사용자에게 제공될 수 있다.
그런 다음, 상기 방법(300)은 단계(305)를 지나, 제 2 검색 용어에 대한 제 2 후보 데이타 실체(213)의 리스트를 결정하고(문의의 다른 검색 용어는 고려하지 않고)(단계(302)), 각각의 제 2 후보 데이타 실체(213)에 대한 완전한 문의와의 유사성을 결정하며(단계(303)) 그리고 후보 데이타 실체(213)의 순위와 출력을 업데이트한다(단계(304)). 순위 매기기는 일반적으로 다른 검색 용어의 후보 데이타 실체(213)를 고려하여(즉, 제 1 후보 데이타 실체(213)를 고려하여) 수행돤다. 따라서, 순위 매기기는 결국에는 문의의 모든 검색 용어에 대한 후보 데이타 실체(213)에 걸쳐 수행된다.
상기 방법(300)은 문의에 포함되어 있는 모든 검색 용어에 대해 상기 단계(302, 303, 304)를 반복한다. 따라서, 검색 결과의 리스트(완전한 문의와 가장 유사한 후보 데이타 실체(213)를 포함함)는 모든 검색 용어가 처리될 때까지 업데이트된다. 이리하여, 임시 검색 결과를 신속하게 제공할 수 있으며(제 1 검색 용어의 제 1 후보 데이타 실체(213)에 근거하여), 임시 검색 결과는 완전한 문의에 대한 최종 검색 결과가 얻어질 때까지 업데이트된다(다른 검색 용어의 후보 데이타 실체(213)에 근거하여).
검색 결과(데이타베이스(103)로부터의 가장 유사한 후보 데이타 실체(213)의 리스트를 포함함)를 결정하는 상기 반복적인 방법(300)은 대안적으로는 블럭 방식(동일한 최종 검색 결과를 제공함)으로 수행될 수 있다. 블럭식 접근을 사용할 때는, 각각의 검색 용어에 대한 후보 데이타 실체(213)의 리스트들을 조합하여(각각의 개별적인 검색 용어에 대한 후보 데이타 실체(213)의 리스트들의 결합을 사용하여) 후보 데이타 실체(213)의 완전한 리스트를 결정한다. 이어서, 완전한 문의(M 개의 모든 검색 용어를 포함함)와 완전한 리스트로부터의 각 후보 데이타 실체(213) 사이의 유사도가 결정된다. 그런 다음, 완전한 리스트로부터의 후보 데이타 실체(213)가 그의 유사도에 따라 순위가 매겨지고, 완전한 문의와의 최고 유사도를 갖는 완전한 리스트로부터의 후보 데이타 실체(213)가 검색 결과로서 제공된다.
문의에 응답하여 검색 결과를 제공하기 위한 상기 방법(300)은 유사성 분석(단계(303)에서 이루어짐)에서 관련이 가장 없는 문서는 고려에서 자동적으로 배제하므로 잘 작동한다. 따라서, 상기 방법(300)은 상기 문의의 적어도 하나의 검색 용어가 높은 관련성을 갖는 후보 데이타 실체(213)에 대해 문의와의 유사성만 분석하므로 틀린 문서를 채택할 위험을 줄여준다.
종래의 검색 계획은 복잡한 역 인덱스에서 직접 작동하는 반면, 상기 방법(300)은 능률적인 역 인덱스(221)만을 사용하여 후보 데이타 실체(213)의 리스트를 선택하고(문의의 개별적인 검색 용어에 근거하여), 그런 다음에 그 후보 데이타 실체는 코사인 유사성과 같은 유사성 척도를 사용하여 완전한 문의 또는 데이타 실체(213)의 관련성 벡터(216)와 비교된다.
따라서, 상기 방법(300)은 문의에 응답하여 검색 결과(즉, 문의와 유사한 후보 데이타 실체(213)의 리스트)를 결정하기 위한 자원 효율적인 계획을 제공하는 것이다. 상기 역 인덱스(221) 및 이 역 인덱스(221)의 기록(222)의 제한된 크기를 고려하여, 검색 방법(300)은 미리 정해진 메모리 요건으로 또한 미리 정해진 기간 내에서 수행될 수 있다. 따라서, 검색 방법(300)은 스마트폰 또는 타블렛 PC와 같은 자원이 제한된 장치(100)에서 가치 있는 검색 결과를 제공하는데 적합하게 될 수 있다.
상기 데이타베이스(103) 및/또는 검색 엔진(104)의 데이타 구조, 예컨대 관련성 벡터(216) 및/또는 역 인덱스(221)는 문의 및 데이타 실체의 의미적 유사성 분석을 가능케 하는데 적합하게 될 수 있다. 의미적 분석은 용어의 의미를 고려하고, 또한 문의의 검색 용어와는 다르지만 그 검색 용어와 유사한 의미를 갖는 용어를 데이타 실체가 포함할 수 있다는 사실을 고려하고자 한다. 예컨대, 의미적 관점에서 검색 용어 "집"은 용어 "빌딩"과 유사하다고 생각될 수 있다. 그래서, 의미적 유사성을 고려하는 검색 방법은, 검색 용어가 "집" 이더라도 관련 용어 "빌딩"을 갖는 후보 데이타 실체를 고려해야 한다.
도 4a 는 동시 발생 통계에 근거하여 용어-클러스터 맵핑 테이블을 결정하기 위한 방법(400)의 블럭도를 나타낸다. 이 용어-클러스터 맵핑 테이블은 의미적 유사성을 고려하는 검색 계획을 실행하는데 사용될 수 있다. 용어-클러스터 맵핑 테이블은 유사한 의미를 갖는 용어를 동일한 의미적 클러스터에 맵핑하도록 구성된다. 예컨대, 용어 "집" 및 "빌딩"은 동일한 의미적 클러스터에 맵핑될 수 있다. 용어-클러스터 맵핑 테이블은 예컨대 수천 또는 수백만 개의 데이타 실체를 포함하는 트레이닝 데이타의 집단에 근거하여 결정될 수 있다. 바람직하게는, 트레이닝 데이타의 집단(211)이 사용된다. 이 집단을 사용하여, 다수의 용어의 동시 발생 통계가 결정될 수 있다(단계(401)). 동시 발생 통계는 다수의 용어의 의미적 유사도를 결정하는데(단계(402)) 사용될 수 있다. 이어서, 다수의 용어들은 그들의 의미적 유사도에 근거하여 클러스터화될 수 있는데(단계(403)), 즉 높은 의미적 유사도를 갖는 용어들이 한 클러스터에 할당될 수 있다. 이 클러스터는 용어-클러스터 맵핑 테이블을 결정하는데(단계(404)) 사용될 수 있다. 용어-클러스터 맵핑 테이블은 오프라인으로(예컨대, 서버에서) 결정될 수 있고 또한 전자 장치(100)에 다운로드될 수 있다.
용어-클러스터 맵핑 데이블(414)을 결정하기 위한 상기 방법(400)은 도 4b 에 더 도시되어 있다. 집단(211)을 사용하여, 동시 발생 통계(411)가 결정될 수 있다(예컨대, 용어 쌍들에 대해). 동시 발생 통계(411)는, 두개의 용어가 동일 문서내에 나타나는 빈도(또는 중요성)에 대한 표시를 제공할 수 있다. 그리고 상기 동시 발생 통계(411)는 각각의 용어(예컨대, 도 4b 에 도시되어 있는 바와 같이, 용어 "집" 및 "빌딩")에 대한 동시 발생 벡터(412)를 결정하는데 사용될 수 있다. 제 1 용어에 대한 동시 발생 벡터(412)는, 제 1 용어와 함께(제 1 용어가 그러한 다른 용어와 함께 동시에 나타나는 중요성의 표시와 함께) 데이타 실체(213)에서 함께 나타날 가능성이 가장 높은 미리 정해진 수의 다른 용어들을 나타낸다. 따라서, 다수의 동시 발생 벡터(412)가 다수의 대응하는 용어에 대해 각각 결정될 수 있다. 제 1 용어에 대한 동시 발생 벡터(412)는, 제 1 용어와 함께 데이타 실체(213)에 나타날 가능성이 가장 높은 다수의 다른 용어들을 나타낸다. 유사성 척도(예컨대, 코사인 유사성)는 동시 발생 벡터(412) 쌍들 사이의 유사도를 결정하여 다수의 동시 발생 벡터(412)를 한 벡터 공간에 둘 수 있게 하는데 사용될 수 있다. 이어서, 다수의 동시 발생 벡터(412)는 그 벡터 공간에서 클러스터화되어, 의미가 유사한 하나 이상의 용어(즉, 높은 유사도를 갖는 동시 발생 벡터(412)를 갖는 용어)를 포함하는 하나 이상의 클러스터(413)를 제공한다. 클러스터(413)는 용어-클러스터 맵핑 테이블(414)에 배치될 수 있고, 용어-클러스터 맵핑 테이블(414)은 일반적으로 한 용어를 정확히 하나의 클러스터(413)에 맵핑할 수 있게 해준다 .
전술한 바와 같이, 용어-클러스터 맵핑 테이블(414)은 전자 장치(100)에 저장될 수 있고, 의미적 유사성을 고려하는 검색 계획을 실행하는데 사용될 수 있다. 특히, 용어-클러스터 맵핑 테이블(414)은 데이타베이스(103)의 데이타 실체(213)에 대한 의미적 관련성 벡터를 결정하고/결정하거나 의미적 역 인덱스를 결정하고/결정하거나 의미적 검색을 가능케 하는데 사용될 수 있다.
도 5a 는 데이타 실체(213)에 대한 의미적 관련성 벡터를 결정하고/결정하거나 의미적 역 인덱스를 결정하기 위한 일 예시적인 방법(500)의 흐름도를 도시한다. 상기 방법(200)의 단계(201, 202, 203)와 유사한 방식으로, N 개의 용어(및 그들의 각각의 관련성 값)를 포함하는 관련성 벡터(216)가 데이타 실체(213)에 대해 결정될 수 있다. 상기 용어-클러스터 맵핑 테이블(414)을 사용하여, 관련성 벡터(216)의 N 개의 용어는 하나 이상의 각각의 클러스터(413)에 맵핑될 수 있으며(단계(501)), 클러스터의 수 N' 은 상기 용어의 수 N 이하이다. 제 1 클러스터에 대한 클러스터 관련성 값은 제 1 클러스터에 맵핑되는 관련성 벡터(216)의 용어의 용어 관련성 값들의 합에 근거하여 결정될 수 있다. 따라서, 의미적 관련성 벡터가 결정될 수 있으며, 이 의미적 관련성 벡터는 N' 개의 클러스터 및 그들의 각각의 클러스터 관련성 값을 나타낸다. 의미적 검색만 수행할 때는, 의미적 관련성 벡터만 데이타베이스(103)와 함께 메타데이타로서 저장될 수 있고(N 개의 용어를 포함하는 관련성 벡터(216) 대신에), 그리하여 자원 요건들이 더욱 줄어든다.
또한, 상기 방법(500)은 클러스터 관련성 벡터에 근거하여 의미적 역 인덱스를 결정하거나 업데이트하는 단계(504)를 포함할 수 있다. 의미적 역 인덱스는 역 인덱스(221)와 유사한 방식으로 결정될 수 있고, 이때 용어는 클러스터(413)로 대체된다. 도 5b 는 의미적 역 인덱스(521)의 결정 및/또는 업데이트에 관한 추가 상세를 제공한다. 데이타 실체(213)의 관련성 벡터(216)는 용어-클러스터 변환(520)(이 변환은 용어-클러스터 맵핑 테이블(414)을 이용함)을 사용하여 의미적 관련성 벡터로 변환될 수 있다. 의미적 역 인덱스(521)는 L' 개의 다수의 클러스터(413)에 대한 기록(522)을 포함할 수 있다. 일반적으로, 의미적 역 인덱스(521) 내에 있는 클러스터 기록(522)의 수 L' 은 용어 기록(222)의 수 L 보다 (상당히) 작으며, 그래서 검색 계획의 자원 요건들이 더 줄어든다. 예컨대, L' 은 1000 이하일 수 있다. 용어 기록(222)과 유사한 방식으로, 클러스터 기록(522)은 의미적 역 인덱스(521)에 열거되어 있는 각각의 클러스터에 대한 가장 관련 있는 P 개의 데이타 실체(213)를 나타낼 수 있다.
상기 의미적 역 인덱스(521)는 의미적 유사성을 고려하도록 구성된 검색 방법(600)을 제공하는데 사용될 수 있다. 이 검색 방법(600)은 검색 방법(300)과 유사하며, 검색은 용어 대신에 클러스터에 근거하여 수행된다. 클러스터의 수는 일반적으로 용어의 수 보다 작기 때문에, 클러스터 기반 검색 방법(600)에 대한 자원 요건들은 용어 기반 검색 방법(300)과 비교하여 더 줄어든다. 방법(300)과 유사한 방식으로, 문의의 M 개의 검색 용어(또는 데이타 실체(213)의 관련성 벡터(216)의 N 개의 용어)가 결정된다(단계(301)). M 개의 검색 용어는 용어-클러스터 맵핑 테이블(414)을 사용하여 M' 개의 검색 클러스터에 맵핑되며(단계(601)), 여기서 M' 은 M 이하이다. 이어서, 의미적 역 인덱스(521)를 사용하여 개별적인 검색 클러스터에 대한 후보 데이타 실체(213)를 결정한다(방법(300)의 단계(302)에 대응하는 단계(602)). 그리고 후보 데이타 실체(213)는 완전한 문의와 비교된다(방법(300)의 단계(303)에 대응하는 단계(603)). 이 비교는 유사성 척도를 이용할 수 있다. 상기 방법(300)과 관련하여 전술한 바와 같이, 그 유사성 척도는 후보 데이타 실체(213)의 관련성 벡터(216)와 문의의 검색 용어를 포함하는 문의 벡터의 유사도(예컨대, 코사인 유사성)를 결정할 수 있다. 방법(600)의 경우에, 유사성 척도는 대안적으로 또는 추가로, 후보 데이타 실체(213)의 의미적 관련성 벡터와 문의의 검색 클러스터를 포함하는 의미적 문의 벡터의 유사도(예컨대, 코사인 유사성)를 결정할 수 있다. 이어서, 후보 데이타 실체(213)는 완전한 문의와의 유사도에 따라 순위가 매겨질 수 있다(방법(300)의 단계(304)에 대응하는 단계(604)). 방법(300)과 유사한 방식으로, 상기 검색 방법(600)은 문의의 모든 검색 클러스터에 대해 반복적으로(단계(305)) 수행될 수 있다.
본 명세서에서, 문의를 받는 데이타베이스에서 데이타 실체를 검색하기 위한방법과 시스템을 설명했다. 이 방법과 시스템은 종래의 검색 방법/시스템에 비해 메모리 및/또는 처리 요건들을 줄여주며, 그래서 비교적 낮은 저장 용량 및/또는 처리 용량을 갖는 전자 장치에서도 사용될 수 있다.
예컨대, 휴리스틱(heuristic) 역 인덱스와 비교되는(의미적 클러스터의 사용 없이) 종래의 전체 역 인덱스의 거동을 조사하였다. 두개의 다른 이메일 콜렉션, 즉 3,000 개의 이메일을 갖는 콜렉션 A 및 5,000 개의 이메일을 갖는 콜렉션 B 를 사용하였다. 일반적으로, 사용자가 그의 개인 전자 장치에서 데이타베이스에 저장하는 문서들은 그들의 내용에 있어서 상당히 겹친다. 그래서, 콜렉션 A 에 대한 실제의 고유한 단어의 양은 3,863 개의 단어인 것으로 나타났고 콜렉션 B 에 대해서는 5,931 개의 단어인 것으로 나타났다(매우 높은 빈도의 단어 및 비존재 단어, 즉 상당히 더 큰 배경 집단 내에 존재하지 않는 단어는 무시함). 이들 단어는 텍스트 콜렉션에 대해 전형적인 것처럼 멱법칙(power-law) 분포를 따르는 것으로 나타났다. 콜렉션 A 의 경우 종래의 역 인덱스는 3,863 개의 단어 기록 중에 분포되어 있는 역 인덱스 내에서 총 143,873 개의 항목을 가졌으며, 4 바이트 정수를 저장 단위로 가정한다면 이는 저장을 위해서는 적어도 575 KB의 메모리 공간을 필요로 한다. 콜렉션 B 의 경우, 종래의 인덱스는 5,931 개의 단어 기록 중에 분포되어 있는 252,393 개의 항목을 포함했고 그래서 1,001KB의 저장 공간을 필요로 했다. 본 명세서에서 설명되는 휴리스틱 역 인덱스는 콜렉션 A 의 경우 1371 개의 단어 기록 중에 분포되어 있는 단지 4,814 개의 항목만 가졌고 그래서 단지 19KB의 저장 공간만 필요로 했고, 콜렉션 B 의 경우에는 1,888 개의 단어 기록에 대해 6,406 개의 항목을 가졌으며 그래서 26KB의 저장 공간을 필요로 했다. 또한, 콜렉션 A 및 B 에 대한 저장 공간 요건을 비교해 보면, 휴리스틱 역 인덱스의 저장 공간 요건의 성장(데이타베이스 내에 있는 증가하는 수의 텍스트 데이타 실체로 인한)은 선형 보다 낮을 수 있다. 다시 말해, 휴리스틱 역 인덱스의 크기는 데이타베이스의 크기에 비례하는 경우 보다 덜 커진다. 따라서, 휴리스틱 역 인덱스의 이점은 데이타베이스의 크기가 증가함에 따라 커진다.
본 명세서에서 설명하는 휴리스틱 역 인덱스는 무손실이 아니기 때문에, 전체 역 인덱스와 휴리스틱 역 인덱스의 검색질을 측정하였고 F-점수에 결합되는 재현 능력과 정확도 면에서 비교하였으며, F-점수는 정보 검색 시스템의 질에 대한 널리 채택되는 척도이다. 콜렉션 A 의 경우, 전체 역 인덱스를 사용하면 24.99%의 F-점수가 나타났으며, 반면 휴리스틱 역 인덱스는 30.11%의 F-점수를 가졌다. 콜렉션 B 의 경우에는, 전체 역 인덱스를 사용하면 25.07%의 F-점수가 나타났으며 휴리스틱 역 인덱스를 사용하면 35.54%의 F-점수가 나타났다. 질의 증가(직관적으로 추정되는 감소와는 반대인)는, 고려되지 않을 문서들의 사전 선택이 잘 기능한다면, 검색 용어와 가장 유사한 문서의 세트를 준비할 때 심지어 많은 문서들을 고려하지 않음으로써 비교 방법에 혼동이 덜 발생한다는 사실 때문인 것으로 생각된다. 다시 말해, 성능 증가는, 먼저 적절한 후보 텍스트 데이타 실체를 선택하는(개별적인 검색 용어와 휴리스틱 역 인덱스에 근거하여) 단계 및 이어서 그 후보 텍스트 데이타 실체에 대해서만 문서 유사성을 결정하는(전체 문의에 근거하여) 단계로 이루어진 2-단계 접근법으로 인해 얻어지는 것이다. 따라서, 각각의 텍스트 데이타 실체에 대해 가장 관련있는 단어를 선택할 때(즉, 휴리스틱 역 인덱스를 설계할 때), 관찰되는 성능 및 질의 증가는 미분 분석의 성능에 달려 있다.
추가로, 본 명세서에서 설명하는 바와 같은 의미적 클러스터를 사용하는 것의 영향을 측정하였다. 콜렉션 A 의 경우, 역 인덱스의 의미적 부류형 기록의 수는 499 개로 감소했고 이때 항목의 총 개수는 1,392 이고 32.98%의 F-점수로 증가했다. 콜렉션 B 의 경우, 의미적 부류형 기록의 수는 556 개이였으며 이때 항목의 총 개수는 1.556 이고 F-점수는 34.76%로 약간 감소했다. 더 감소된 이들 의미적 인덱스를 저장하기 위해 요구되는 총 공간은 콜렉션 A 에 대해서 5.5 KB 이었고 콜렉션 B 에 대해서는 6.2 KB 이었다. 따라서, 의미적 역 인덱스를 사용하면, 그러한 의미적 역 인덱스를 사용하는 검색 계획의 질이 더 증가될 수 있고 동시에 자원 요건이 더 줄어든다.
전술한 방법과 시스템은 서버 팜(farm), 서버, 워크스테이션, 데스크탑 PC, 가상화된 데스크탑, 랩탑, 타블렛 PC 와 같은 컴퓨터 시스템 및 이동 전화기, 스마트폰, PDA 등과 같은 휴대용 또는 무선 장치에서 실행될 수 있다. 전술한 방법 시스템은, 개인 휴대용 전자 장치의 사용자와 관련 있는 텍스트 데이타 실체(예컨대, 이메일, SMS, 텍스트 문서)의 데이타베이스를 포함하는 개인 휴대용 전자 장치(스마트폰 또는 휴대용(타블렛) PC와 같은)에 특히 적절하다.
본 명세서에서 설명한 시스템과 방법은 개시된 예시적인 경우에 한정되지 않는다. 다른 사용의 경우도 본 발명으로부터 이익을 얻을 수 있다. 이 서술된 설명은 최선의 모드를 포함하여 본 발명을 개시하고 또한 당업자로 하여금 본 발명을 만들고 사용할 수 있게 해주기 위해 실시예들을 사용한다. 본 발명은 다양한 특정 실시 형태의 면에서 설명되었지만, 당업자라면 본 발명은 청구의 요지 및 범위내에서 수정되어 실시될 수 있음을 알 것이다. 특히, 전술한 실시 형태의 상호 배타적이지 않은 사항들은 서로 결합될 수 있다. 본 발명의 특허가능한 범위는 청구 범위로 규정되며 당업자가 생각할 수 있는 다른 실시예도 포함할 수 있다.

Claims (15)

  1. 데이타베이스(103)를 포함하는 전자 장치(100)에서 역 인덱스(221, 521)를 결정하기 위한 방법(200, 500)으로서, 상기 역 인덱스(221, 521)는 데이타베이스(103)로부터의 다수의 텍스트 데이타 실체(entity; 213)를 검색 용어에 맵핑하도록 구성되고, 상기 방법(200, 500)은,
    상기 데이타베이스(103)로부터의 다수의 텍스트 데이타 실체(213)에 대한 다수의 관련성 벡터(relevance vector; 216)를 결정하는 단계와,
    다수의 기록(222, 522)을 포함하는 역 인덱스(221, 521)를 결정하는 단계(204, 504)를 포함하고,
    상기 데이타베이스(103)로부터의 텍스트 데이타 실체(213)에 대한 관련성 벡터(216)를 결정하는 상기 단계는,
    텍스트 데이타 실체(213)를 묘사하는 N 개의 용어를 선택하는 것과,
    선택된 N 개의 용어들로부터 관련성 벡터(216)를 결정하는(203) 것을 포함하며,
    다수의 기록(222, 522) 각각은 다수의 관련성 벡터(216) 내에 지시되어 있는 용어들로부터의 각 용어와 관련되고,
    역 인덱스(221, 521)를 결정하는 상기 단계(204, 504)는,
    다수의 기록(222, 522) 각각에 대해, 데이타베이스(103)로부터 최대 P 개의 텍스트 데이타 실체(213)를 선택하는 것을 포함하고,
    상기 기록(222, 522)의 최대 P 개의 텍스트 데이타 실체(213)의 관련성 벡터(216)는 그 기록(222, 522)과 관련되어 있는 용어와 관련되는 방법 (200, 500).
  2. 제 1 항에 있어서, 데이타베이스(103)로부터의 텍스트 데이타 실체(213)에 대한 관련성 벡터(216)를 결정하는 상기 단계는,
    텍스트 데이타 실체(213) 내에서의 다수의 용어의 다수의 발생율을 결정하는 것(201);
    상기 다수의 발생율 및 다수의 용어에 대한 다수의 디폴트(default) 발생율에 근거하여, 다수의 용어에 대한 다수의 관련성 값을 결정하는 것(202);
    최고의 관련성 값을 갖는 다수의 용어로부터 N 개의 용어를 선택하는 것; 그리고
    선택된 N 개의 용어 및 각각의 관련성 값으로부터 관련성 벡터(216)를 결정하는 것(203)을 포함하는 방법(200, 500).
  3. 제 2 항에 있어서, 다수의 기록(222, 522) 각각은, 그 기록(222, 522)과 관련되어 있는 용어에 대한 최대 P 개의 텍스트 데이타 실체(213) 각각의 관련성 값을 더 나타내며,
    용어에 대한 텍스트 데이타 실체(213)의 관련성 값은 텍스트 데이타 실체(213)의 관련성 벡터내에 있는 용어의 관련성 값에 대응하는 방법(200, 500).
  4. 제 2 항 또는 제 3 항에 있어서, 제 1 용어에 대한 제 1 기록(222, 522)은 최대 P 개의 텍스트 데이타 실체(213)를 포함하고, 이 텍스트 데이타 실체에 대해, 최대 P 개의 대응하는 관련성 벡터(216)는 다수의 관련성 벡터(216) 중에서 상기 제 1 용어에 대한 최대 P 개의 최고 관련성 값을 포함하는 방법(200, 500).
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서, 다수의 기록(222, 522) 각각의 최대 P 개의 텍스트 데이타 실체(213)의 관련성 벡터(216)는 기록(222, 522)과 관련되어 있는 용어를 포함하는 방법(200, 500).
  6. 제 2 항에 있어서, 용어-클러스터 맵핑 테이블(414)을 사용하여, 다수의 관련성 벡터(216) 각각의 용어를 대응하는 클러스터에 맵핑시키는 단계(501)를 더 포함하고, 그리하여 다수의 의미적 관련성 벡터가 얻어지며, 상기 용어-클러스터 맵핑 테이블(414)은 용어의 통계적 동시 발생(411)을 반영하며, 역 인덱스(521)의 다수의 기록(522) 각각은 다수의 의미적 관련성 벡터(216) 내에 지시되어 있는 클러스터들로부터의 각 클러스터와 관련되며, 다수의 기록(522) 각각의 최대 P 개의 텍스트 데이타 실체(213)의 의미적 관련성 벡터는 기록(522)과 관련되어 있는 클러스터를 포함하는 방법(500).
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서, N 은 20 이하의 정수이고/정수이거나 P 는 5 이하의 정수인 방법(500).
  8. 데이타베이스(103)를 포함하는 전자 장치(100)에 저장되고 데이타베이스(103)로부터의 하나 이상의 텍스트 데이타 실체(213)를 검색 용어에 맵핑하도록 구성되는 역 인덱스(221, 521)로서, 이 역 인덱스(221, 521)는 다수의 기록(222, 522)을 포함하고,
    다수의 기록(222, 522) 각각은 데이타베이스(103)의 다수의 텍스트 데이타 실체(213) 각각에 대한 다수의 관련성 벡터(216) 내에 지시되어 있는 용어들로부터의 각 용어와 관련되고,
    텍스트 데이타 실체(213)에 대한 관련성 벡터(216)는, 최고의 관련성 값을 갖는 다수의 용어들로부터의 최대 N 개의 용어만 나타내며, 여기서 N 은 20 이하의 정수이며,
    다수의 기록(222, 522) 각각은 데이타베이스(103)로부터의 최대 P 개의 텍스트 데이타 실체(213)만 나타내며,
    다수의 기록(222, 522) 각각의 최대 P 개의 텍스트 데이타 실체(213)의 관련성 벡터(216)는 기록(222, 522)과 관련되어 있는 용어와 관련되며,
    P 는 5 이하의 정수인 역 인덱스 (221, 521).
  9. 데이타베이스(103)를 포함하는 전자 장치(100)에서 그 데이타베이스(103)로부터 유사한 텍스트 데이타 실체(213)를 결정하기 위한 방법(300, 600)으로서,
    상기 유사한 텍스트 데이타 실체(213)는 다수의 검색 용어를 포함하는 검색 벡터와 유사하며, 상기 방법(300, 600)은,
    제 1 항 내지 제 7 항 중 어느 한 항의 방법에 따라 설계된 역 인덱스(221, 521)를 사용하여, 다수의 검색 용어들 중의 다른 검색 용어는 고려하지 않고 다수의 검색 용어들 중의 제 1 검색 용어에 근거하여 다수의 제 1 후보 텍스트 데이타 실체(213)를 결정하는 단계(302, 602);
    다수의 검색 용어들 중에서 상기 제 1 검색 용어 외의 다른 적어도 하나의 검색 용어를 고려하여, 다수의 제 1 후보 텍스트 데이타 실체(213) 각각과 검색 벡터 사이의 유사도를 결정하는 단계(303, 603); 및
    다수의 제 1 후보 텍스트 데이타 실체(213)와 각각의 유사도에 근거하여 유사한 후보 텍스트 데이타 실체(213)를 결정하는 단계(304, 604)를 포함하는 방법(300, 600).
  10. 제 9 항에 있어서, 상기 검색 벡터는 다수의 검색 용어를 포함하는 문의 및 텍스트 데이타 실체(213)의 관련성 벡터(216) 중의 하나이고, 다수의 검색 용어는 텍스트 데이타 실체(213) 내에 있는 N 개의 가장 관련 있는 용어에 대응하는 방법(300, 600).
  11. 제 9 항 또는 제 10 항에 있어서,
    다수의 검색 용어 각각에 대한 다수의 후보 텍스트 데이타 실체(213)를 결정하는 단계(302, 602);
    다수의 검색 용어 각각에 대해, 다수의 후보 텍스트 데이타 실체(213) 각각과 검색 벡터 사이의 유사도를 결정하는 단계(303, 603); 및
    다수의 검색 용어 각각에 대한 다수의 후보 텍스트 데이타 실체(213)와 각각의 유사도에 근거하여 상기 유사한 후보 텍스트 데이타 실체(213)를 결정하는 단계(304, 604)를 더 포함하는 방법(300, 600).
  12. 제 11 항에 있어서, 다수의 후보 텍스트 데이타 실체(213), 각각의 유사도 및 상기 유사한 후보 텍스트 데이타 실체(213)는, 다수의 검색 용어 각각에 대한 다수의 후보 텍스트 데이타 실체가 결정될 때까지, 제 1 검색 용어에서 시작하여 다수의 검색 용어들 중의 다른 검색 용어로 하나씩 하나씩 진행하여 반복적으로 결정되는 방법(300, 600).
  13. 제 9 항에 있어서, 용어-클러스터 맵핑 테이블(414)을 사용하여, 다수의 검색 용어들의 검색 용어를 대응하는 클러스터에 맵핑시키는 단계(601)를 더 포함하며, 그리하여 다수의 검색 클러스터를 포함하는 의미적 검색 벡터가 얻어지며,
    용어-클러스터 맵핑 테이블(414)은 용어의 통계적 동시 발생(411)을 반영하며,
    다수의 제 1 후보 텍스트 데이타 실체(213)는 다수의 검색 클러스터들 중의 제 1 검색 클러스터에 근거하여 개별적으로 결정되며,
    다수의 제 1 후보 텍스트 데이타 실체(213) 각각과 의미적 검색 벡터 사이의 유사도는 다수의 검색 클러스터들 중에서 상기 제 1 검색 클러스터 외의 다른 적어도 하나의 검색 클러스터를 고려하여 결정되는 방법(300, 600).
  14. 다수의 텍스트 데이타 실체(213)를 포함하는 데이타베이스(103)를 포함하는 전자 장치(100)로서, 이 전자 장치(100)는,
    상기 데이타베이스(103)로부터의 다수의 텍스트 데이타 실체(213)에 대한 다수의 관련성 벡터(216)를 결정하고, 또한
    다수의 기록(222, 522)을 포함하는 역 인덱스(221, 521)를 결정(204, 504)하도록 구성되어 있고,
    상기 데이타베이스(103)로부터의 텍스트 데이타 실체(213)에 대한 관련성 벡터(216)를 결정하는 것은,
    텍스트 데이타 실체(213)를 묘사하는 N 개의 용어를 선택하는 것과,
    선택된 N 개의 용어들로부터의 관련성 벡터(216)를 결정하는(203) 것을 포함하며,
    다수의 기록(222, 522) 각각은 다수의 관련성 벡터(216) 내에 지시되어 있는 용어들로부터의 각 용어와 관련되고,
    역 인덱스(221, 521)를 결정하는 것은,
    다수의 기록(222, 522) 각각에 대해, 데이타베이스(103)로부터 최대 P 개의 텍스트 데이타 실체(213)를 선택하는 것을 포함하고,
    상기 기록(222, 522)의 최대 P 개의 텍스트 데이타 실체(213)의 관련성 벡터(216)는 기록(222, 522)과 관련되어 있는 용어와 관련되는 전자 장치 (100).
  15. 제 14 항에 있어서,
    상기 역 인덱스(221, 521)를 사용하여, 다수의 검색 용어들 중의 다른 검색 용어는 고려하지 않고 다수의 검색 용어들 중의 제 1 검색 용어에 근거하여 다수의 제 1 후보 텍스트 데이타 실체(213)를 결정(302, 602)하고,
    다수의 검색 용어들 중에서 상기 제 1 검색 용어 외의 다른 적어도 하나의 검색 용어를 고려하여, 다수의 제 1 후보 텍스트 데이타 실체(213) 각각과 다수의 검색 용어를 포함하는 검색 벡터 사이의 유사도를 결정(303, 603)하며, 또한
    다수의 제 1 후보 텍스트 데이타 실체(213)와 각각의 유사도에 근거하여 유사한 후보 텍스트 데이타 실체(213)를 결정(304, 604)하도록 더 구성되어 있는 전자 장치(100).
KR1020130081142A 2012-07-30 2013-07-10 자원 효율적인 문서 검색 KR102046096B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP12178492.0 2012-07-30
EP12178492.0A EP2693346A1 (en) 2012-07-30 2012-07-30 Resource efficient document search

Publications (2)

Publication Number Publication Date
KR20140016159A true KR20140016159A (ko) 2014-02-07
KR102046096B1 KR102046096B1 (ko) 2019-11-19

Family

ID=46601689

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130081142A KR102046096B1 (ko) 2012-07-30 2013-07-10 자원 효율적인 문서 검색

Country Status (3)

Country Link
US (1) US10002183B2 (ko)
EP (1) EP2693346A1 (ko)
KR (1) KR102046096B1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9213702B2 (en) * 2013-12-13 2015-12-15 National Cheng Kung University Method and system for recommending research information news
US10296589B2 (en) * 2014-02-24 2019-05-21 Ca, Inc. Grouping content based upon user activity
US9778833B2 (en) * 2014-07-18 2017-10-03 Microsoft Technology Licensing, Llc Identifying and surfacing relevant report artifacts in documents
EP3219130A1 (en) * 2014-11-14 2017-09-20 Telefonaktiebolaget LM Ericsson (publ) Visual cryptography and obfuscation using augmented reality
US9529860B2 (en) * 2014-12-01 2016-12-27 Bank Of America Corporation Keyword frequency analysis system
CN104573130B (zh) * 2015-02-12 2017-11-03 北京航空航天大学 基于群体计算的实体解析方法及装置
US10229143B2 (en) 2015-06-23 2019-03-12 Microsoft Technology Licensing, Llc Storage and retrieval of data from a bit vector search index
US11281639B2 (en) 2015-06-23 2022-03-22 Microsoft Technology Licensing, Llc Match fix-up to remove matching documents
US10242071B2 (en) 2015-06-23 2019-03-26 Microsoft Technology Licensing, Llc Preliminary ranker for scoring matching documents
US10565198B2 (en) 2015-06-23 2020-02-18 Microsoft Technology Licensing, Llc Bit vector search index using shards
US11392568B2 (en) 2015-06-23 2022-07-19 Microsoft Technology Licensing, Llc Reducing matching documents for a search query
US10733164B2 (en) 2015-06-23 2020-08-04 Microsoft Technology Licensing, Llc Updating a bit vector search index
US10467215B2 (en) 2015-06-23 2019-11-05 Microsoft Technology Licensing, Llc Matching documents using a bit vector search index
US9805176B2 (en) * 2015-07-30 2017-10-31 Toshiba Tec Kabushiki Kaisha Shared system and terminal device
US10460083B2 (en) * 2015-11-04 2019-10-29 Screening Room Media, Inc. Digital credential system
CN106872872B (zh) * 2015-12-14 2020-07-03 北京确安科技股份有限公司 一种芯片测试向量转换方法
US11182393B2 (en) * 2017-02-21 2021-11-23 International Business Machines Corporation Spatial data analyzer support
CN107315825B (zh) * 2017-07-05 2020-02-28 北京奇艺世纪科技有限公司 一种索引更新系统、方法及装置
CN109064787B (zh) * 2018-07-17 2021-09-24 广东小天才科技有限公司 一种点读设备
US10977250B1 (en) * 2018-09-11 2021-04-13 Intuit, Inc. Responding to similarity queries using vector dimensionality reduction
US11151990B2 (en) * 2018-12-14 2021-10-19 International Business Machines Corporation Operating a voice response system
CN109828965B (zh) * 2019-01-09 2021-06-15 千城数智(北京)网络科技有限公司 一种数据处理的方法及电子设备
US11526565B2 (en) * 2019-04-05 2022-12-13 Ovh Method of and system for clustering search queries
US20200380036A1 (en) * 2019-05-28 2020-12-03 Hillegonda Hendrika van Bochove-Gutierrez Methods and systems for chaining biographic inputs using artificial intelligence
US11416562B1 (en) 2021-04-23 2022-08-16 International Business Machines Corporation Corpus expansion using lexical signatures
CN113407738B (zh) * 2021-07-12 2022-12-13 网易(杭州)网络有限公司 一种相似文本检索方法、装置、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010067045A (ko) * 1999-07-30 2001-07-12 마츠시타 덴끼 산교 가부시키가이샤 유사어 추출 및 문서 검색을 위한 방법 및 시스템
KR20040091095A (ko) * 2002-03-07 2004-10-27 코닌클리케 필립스 일렉트로닉스 엔.브이. 정보 검색 요청에 응답하여 검색 결과를 제공하는 방법 및장치
KR20080011594A (ko) * 2006-07-31 2008-02-05 (주)닷넷소프트 정보 검색 장치 및 그 제어 방법
KR20100084510A (ko) * 2007-09-12 2010-07-26 레퓨테이션디펜더, 인코포레이티드 전자 소스로부터 특정 개체와 관련된 정보를 식별하는 방법, 시스템 및 장치
KR20110050106A (ko) * 2009-11-06 2011-05-13 동국대학교 산학협력단 문서의 색인화 및 검색을 위한 방법 및 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478740B2 (en) * 2010-12-16 2013-07-02 Microsoft Corporation Deriving document similarity indices
US8719257B2 (en) * 2011-02-16 2014-05-06 Symantec Corporation Methods and systems for automatically generating semantic/concept searches
US8566340B2 (en) * 2011-12-07 2013-10-22 Microsoft Corporation Provision of query suggestions independent of query logs

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010067045A (ko) * 1999-07-30 2001-07-12 마츠시타 덴끼 산교 가부시키가이샤 유사어 추출 및 문서 검색을 위한 방법 및 시스템
KR20040091095A (ko) * 2002-03-07 2004-10-27 코닌클리케 필립스 일렉트로닉스 엔.브이. 정보 검색 요청에 응답하여 검색 결과를 제공하는 방법 및장치
KR20080011594A (ko) * 2006-07-31 2008-02-05 (주)닷넷소프트 정보 검색 장치 및 그 제어 방법
KR20100084510A (ko) * 2007-09-12 2010-07-26 레퓨테이션디펜더, 인코포레이티드 전자 소스로부터 특정 개체와 관련된 정보를 식별하는 방법, 시스템 및 장치
KR20110050106A (ko) * 2009-11-06 2011-05-13 동국대학교 산학협력단 문서의 색인화 및 검색을 위한 방법 및 장치

Also Published As

Publication number Publication date
US10002183B2 (en) 2018-06-19
KR102046096B1 (ko) 2019-11-19
US20140032567A1 (en) 2014-01-30
EP2693346A1 (en) 2014-02-05

Similar Documents

Publication Publication Date Title
KR102046096B1 (ko) 자원 효율적인 문서 검색
US11645317B2 (en) Recommending topic clusters for unstructured text documents
US8433705B1 (en) Facet suggestion for search query augmentation
CN102193973B (zh) 呈现回答
RU2012138707A (ru) Настраиваемый семантический поиск на основе роли пользователя
US8843507B2 (en) Serving multiple search indexes
CN107844493B (zh) 一种文件关联方法及系统
CN107977398B (zh) 对搜索结果文档进行排名
KR101441219B1 (ko) 정보 엔터티들의 자동 연관
US20150370861A1 (en) Methods and Systems for Searching Enterprise Data
CN110546633A (zh) 文档的基于命名实体的类别标签添加
JP2015197722A (ja) 文書検索装置、文書検索方法、プログラム、及び、文書検索システム
JP2019500704A (ja) 人工知能ベースの関連度計算を用いたノート提供方法及び装置
US9996535B1 (en) Efficient hierarchical user interface
US9400789B2 (en) Associating resources with entities
CN111143400B (zh) 一种全栈式检索方法、系统、引擎及电子设备
JP4667889B2 (ja) データマップ作成サーバ、およびデータマップ作成プログラム
US20130318092A1 (en) Method and System for Efficient Large-Scale Social Search
Nicholson et al. Dissemination and discovery of diverse data: do libraries promote their unique research data collections?
US11366814B2 (en) Systems and methods for federated search with dynamic selection and distributed relevance
JP2012027841A (ja) 検索プログラム、検索装置、検索システム、検索方法及び記録媒体
JP2011018152A (ja) 情報提示装置、情報提示方法およびプログラム
Koukal et al. Enhancing literature review methods-towards more efficient literature research with latent semantic indexing
Gujral et al. No-escape search: Design and implementation ofcloud based directory content search
Grbić A three-phase mapreduce-based algorithm for searching biomedical document databases

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant