KR102292092B1 - 개인화된 검색 결과 제공 방법 및 그 장치 - Google Patents

개인화된 검색 결과 제공 방법 및 그 장치 Download PDF

Info

Publication number
KR102292092B1
KR102292092B1 KR1020150141556A KR20150141556A KR102292092B1 KR 102292092 B1 KR102292092 B1 KR 102292092B1 KR 1020150141556 A KR1020150141556 A KR 1020150141556A KR 20150141556 A KR20150141556 A KR 20150141556A KR 102292092 B1 KR102292092 B1 KR 102292092B1
Authority
KR
South Korea
Prior art keywords
user
document
weight
keyword
search results
Prior art date
Application number
KR1020150141556A
Other languages
English (en)
Other versions
KR20170042080A (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 삼성에스디에스 주식회사
Priority to KR1020150141556A priority Critical patent/KR102292092B1/ko
Publication of KR20170042080A publication Critical patent/KR20170042080A/ko
Application granted granted Critical
Publication of KR102292092B1 publication Critical patent/KR102292092B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/73Querying
    • G06F16/735Filtering based on additional data, e.g. user or group profiles
    • 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/903Querying
    • G06F16/9032Query formulation
    • G06F16/90324Query formulation using system suggestions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)

Abstract

본 발명의 일 태양에 따른 개인화된 검색 결과 제공 방법은, 사용자가 열람한 문서를 대상으로, 상기 문서의 키워드를 추출하는 단계와 상기 키워드의 상기 문서에서의 빈도를 고려하여, 가중치를 계산하는 단계와 상기 키워드에 상기 가중치를 맵핑하여, 상기 사용자에 대한 사용자 모델 데이터를 생성하는 단계 및 상기 사용자의 단말로부터 질의어를 수신하고, 상기 사용자 모델 데이터를 이용하여, 상기 질의어에 대한 검색 결과를 정렬하는 단계를 포함할 수 있다.

Description

개인화된 검색 결과 제공 방법 및 그 장치 {Method and apparatus for providing personalized search results}
본 발명은 개인화된 검색 결과를 제공하는 방법 및 그 장치에 관한 것이다. 보다 자세하게는 검색 결과에 대한 사용자의 반응을 수치화하여, 사용자가 보다 관심 있어 할만한 문서를 우선하여 제공하는 방법 및 그 방법을 수행하는 장치에 관한 것이다.
다양한 정보들 중에 원하는 정보만을 얻기 위해서 흔히 검색을 이용한다. 이 때 사용자는 원하는 정보를 검색하기 위한 질의어를 입력하여 검색을 수행한다. 하지만 사용자가 입력하는 질의어는 대부분 한 두 단어에 그치기 때문에, 검색의 품질이 떨어지는 경우가 많다. 즉 사용자가 원하는 정보를 찾기 위한 최적의 질의어를 입력하는 경우는 소수이다.
이러한 문제를 해결하기 위하여 검색 엔진은 자체 알고리즘에 의해 검색 결과를 정렬해서 제공하거나, 유사 검색어 또는 추천 검색어 같은 서비스를 제공하기도 한다. 그러나 대부분 이러한 서비스는 질의어에 대응되어 제공되는 기능으로 서로 다른 사용자라 하더라도 동일한 질의어를 입력한 경우에는 동일한 검색 결과, 동일한 유사 검색어, 동일한 추천 검색어를 제공할 뿐이다.
동일한 질의어라고 하더라도 사용자에 따라 해당 질의어를 통해서 얻고자 하는 정보는 상이할 수 있다. 동음이의어나 다의어와 같은 극단적인 예를 들면, "밤"이라는 동일한 질의어를 입력하더라도 누군가는 해가 져서 어두워진 때를 의미하는 밤(night)에 관한 정보를 검색하기 위한 것일 수도 있고, 다른 누군가는 밤나무의 열매를 의미하는 밤(chestnut)에 관한 정보를 검색하기 위한 것일 수도 있다.
본 발명이 해결하고자 하는 과제는 개인화된 검색 결과를 제공하는 방법 및 그 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 개인화된 검색 결과를 제공하기 위한 최적의 알고리즘 조합을 제공하는 방법 및 그 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 태양에 따른 개인화된 검색 결과 제공 방법은, 사용자가 열람한 문서를 대상으로, 상기 문서의 키워드를 추출하는 단계와 상기 키워드의 상기 문서에서의 빈도를 고려하여, 가중치를 계산하는 단계와 상기 키워드에 상기 가중치를 맵핑하여, 상기 사용자에 대한 사용자 모델 데이터를 생성하는 단계 및 상기 사용자의 단말로부터 질의어를 수신하고, 상기 사용자 모델 데이터를 이용하여, 상기 질의어에 대한 검색 결과를 정렬하는 단계를 포함할 수 있다.
일 실시예에서, 상기 가중치를 계산하는 단계는, 상기 키워드와 상기 가중치의 분포를 고려하여, 상기 가중치를 보정하는 단계를 포함할 수 있다.
다른 실시예에서, 상기 가중치를 계산하는 단계는, 상기 사용자가 상기 문서를 열람한 시간에 관한 정보를 고려하여, 상기 가중치를 보정하는 단계를 포함할 수 있다.
또 다른 실시예에서, 상기 질의어에 대한 검색 결과를 정렬하는 단계는, 상기 검색 결과에 속한 각 문서에서 검색 결과 키워드를 추출하는 단계와 상기 검색 결과 키워드와 상기 키워드를 비교하고, 상기 키워드에 맵핑된 가중치를 기준으로, 상기 각 문서의 중요도를 계산하는 단계 및 상기 각 문서의 중요도를 이용하여, 상기 질의어에 대한 검색 결과를 정렬하는 단계를 포함할 수 있다.
또 다른 실시예에서, 상기 질의어에 대한 검색 결과를 정렬하는 단계는, 상기 정렬된 검색 결과에 대한 상기 사용자의 반응을 피드백하여, 상기 사용자 모델 데이터를 갱신하는 단계를 포함할 수 있다.
또 다른 실시예에서, 상기 사용자에 대한 사용자 모델 데이터를 생성하는 단계는, 사용자 모델 데이터를 기준으로 복수의 사용자를 클러스터링 하여, 클러스터를 구성하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 태양에 따른 개인화된 검색 결과 제공 장치는, 사용자가 열람한 문서를 대상으로, 상기 문서의 키워드를 추출하는 키워드 추출부와 상기 키워드의 상기 문서에서의 빈도를 고려하여, 가중치를 계산하는 가중치 연산부와 상기 키워드에 상기 가중치를 맵핑하여, 상기 사용자에 대한 사용자 모델 데이터를 생성하는 사용자 모델 데이터 생성부 및 상기 사용자의 단말로부터 질의어를 수신하고, 상기 사용자 모델 데이터를 이용하여, 상기 질의어에 대한 검색 결과를 정렬하는 검색 결과 개인화부를 포함할 수 있다.
일 실시예에서, 상기 가중치 연산부는, 상기 키워드와 상기 가중치의 분포를 고려하여, 상기 가중치를 보정하는 가중치 보정부를 포함할 수 있다.
다른 실시예에서, 상기 검색 결과 개인화부는, 상기 검색 결과에 속한 각 문서에서 검색 결과 키워드를 추출하는 검색 결과 키워드 추출부와 상기 검색 결과 키워드와 상기 키워드를 비교하고, 상기 키워드에 맵핑된 가중치를 기준으로, 상기 각 문서의 중요도를 계산하는 문서 중요도 연산부 및 상기 각 문서의 중요도를 이용하여, 상기 질의어에 대한 검색 결과를 정렬하는 검색 결과 정렬부를 포함할 수 있다.
또 다른 실시예에서, 상기 검색 결과 개인화부는, 상기 정렬된 검색 결과에 대한 상기 사용자의 반응을 피드백하여, 상기 사용자 모델 데이터를 갱신하는 사용자 모델 데이터 갱신부를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 태양에 따른 개인화된 검색 결과 제공 장치는, 네트워크 인터페이스와 하나 이상의 프로세서와 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리 및 문서 데이터, 사용자 모델 데이터, 알고리즘 조합 데이터를 저장하는 스토리지를 포함할 수 있다. 여기서, 상기 컴퓨터 프로그램은, 상기 문서 데이터 중 사용자가 열람한 문서를 대상으로, 상기 문서의 키워드를 추출하는 키워드 추출 오퍼레이션과 상기 키워드의 상기 문서에서의 빈도를 고려하여, 가중치를 계산하는 가중치 연산 오퍼레이션과 상기 키워드에 상기 가중치를 맵핑하여, 상기 사용자에 대한 상기 사용자 모델 데이터를 생성하는 사용자 모델 데이터 생성 오퍼레이션과 사용자 모델 데이터를 기준으로 복수의 사용자를 클러스터링 하여 클러스터를 구성하고, 키워드 추출 알고리즘, 가중치 계산 알고리즘, 가중치 보정 알고리즘 및 중요도 연산 알고리즘에 대한 상기 클러스터에 속한 사용자의 반응을 기계 학습하여, 상기 클러스터의 상기 알고리즘 조합 데이터를 생성하는 알고리즘 조합 학습 오퍼레이션 및 상기 사용자의 단말로부터 질의어를 수신하고, 상기 사용자 모델 데이터를 이용하여, 상기 질의어에 대한 검색 결과를 정렬하는 검색 결과 개인화 오퍼레이션을 포함할 수 있다.
상기와 같은 본 발명에 따르면, 검색 결과에 대한 사용자의 반응을 수치화하여 이를 사용자 모델 데이터(user model data)로 취합함으로써, 해당 사용자가 다음 검색을 수행할 때에는 보다 사용자의 관심에 적합할 만한 문서를 우선하여 제공할 수 있다.
또한 이 과정에서 사용될 수 있는 복수의 알고리즘을 기계 학습(machine learning)을 통하여 각각의 사용자에 맞게 설정함으로써, 개인화된 검색 결과를 제공하는데 활용할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
도 1은 기존의 검색 결과 제공 방법을 설명하기 위한 개념도이다.
도 2 내지 도 3은 본 발명의 일 실시예에 따른 개인화된 검색 결과를 제공하는 방법을 설명하기 위한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 개인화된 검색 결과 제공 방법의 순서도이다.
도 5는 본 발명의 일 실시예에 따른 사용자의 관심 문서에서 키워드를 추출하여 가중치를 계산하는 단계를 설명하기 위한 개념도이다.
도 6 내지 도 7은 본 발명의 일 실시예에 따른 문서의 열람과 관련된 시간정보를 기준으로 가중치를 계산하는 단계를 설명하기 위한 개념도이다.
도 8 내지 도 9는 본 발명의 일 실시예에 따른 사용자 모델 데이터를 이용하여 검색 결과를 개인화 하는 단계를 설명하기 위한 개념도이다.
도 10은 개인화된 검색 결과 제공 방법의 각 단계에서 사용될 수 있는 알고리즘을 도시한 것이다.
도 11은 각 알고리즘 조합에 따라 특정 문서의 중요도를 테스트한 결과를 도시한 것이다.
도 12는 본 발명의 일 실시예에 따른 알고리즘 조합을 기계 학습 하여 개인화된 검색 결과를 제공하는 방법을 설명하기 위한 순서도이다.
도 13은 각 알고리즘 조합에 따라 사용자의 반응을 테스트한 결과를 도시한 것이다.
도 14는 본 발명의 일 실시예에 따른 개인화된 검색 결과 제공 장치의 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명에서 사용되는 검색 및 검색 결과는 키워드 위주의 검색 및 텍스트 위주로 작성된 문서들을 대상으로 한다. 즉 이미지 검색이나, 동영상 검색과 같은 분야를 대상으로 하는 것은 아니다. 여기서 텍스트 위주로 작성된 문서란 일반 웹 문서일 수도 있고, 경우에 따라서는 그룹웨어 내의 메일이나 게시판의 게시글과 같은 문서, 또는 한글, 워드, 파워포인트 등과 같이 문서 프로그램으로 작성된 문서일 수도 있다.
이하, 본 발명에 대하여 첨부된 도면에 따라 보다 상세히 설명한다.
도 1은 기존의 검색 결과 제공 방법을 설명하기 위한 개념도이다.
도 1을 참고하면, 서로 다른 사용자 A(101a)와 사용자 B(101b)가 동일한 질의어로 검색을 수행하면(① query 단계), 검색 엔진(111)은 검색 대상이 되는 문서(113)를 해당 질의어로 검색하여 검색 결과를 조회한다(② searching 단계). 검색 엔진(111)은 조회된 검색 결과(115)를 자체적인 알고리즘에 의해 정렬을 수행한다(③ ranking 단계). 이 때 정렬 알고리즘은 예를 들면 검색 대상 문서에서 해당 키워드가 나타난 빈도와 같은 정보를 이용할 수 있다. 또는 검색 대상 문서가 작성된 시기나 수정된 시기와 같은 정보들도 정렬 알고리즘에 이용될 수 있다. 이렇게 정렬된 검색 결과(115)는 사용자 A(101a)와 사용자 B(101b)에게 제공된다(④ view / click 단계).
그러나 사용자 A(101a)와 사용자 B(101b)가 동일한 질의어를 입력하였기 때문에 그 때 조회되는 검색 결과(115)도 동일할 수 밖에 없다. 즉 사용자의 취향이나 성향을 반영한 검색 결과(115)를 제공하는 것은 아니기 때문에, 사용자에 따라 검색 결과(115)에 대한 만족도가 다를 수 밖에 없다.
예를 들면 사용자 A(101a)는 해가 져서 어두운 밤을 검색하고 싶어서 "밤"을 입력하였고, 사용자 B(101b)는 밤나무 열매인 밤을 검색하고 싶어서 "밤"을 입력하였는데, 검색 결과(115)는 밤나무 열매에 관한 정보만 가득하다면, 사용자 A(101a)는 자신이 원하는 정보를 찾기 위해서 검색 결과(115)를 몇 페이지씩 넘겨가면서 하나하나 확인해야 하거나 또는 질의어를 수정해서 다시 검색을 수행해야 할 것이다.
만약, 이 때 사용자 A(101a)와 사용자 B(101b)의 취향이나 성향을 고려하여 서로 다른 개인화된 검색 결과(115)를 제공할 수 있다면, 사용자 각자가 자신이 원하는 정보를 검색하기 위한 수고를 덜 수 있을 것이다.
도 2 내지 도 3은 본 발명의 일 실시예에 따른 개인화된 검색 결과를 제공하는 방법을 설명하기 위한 개념도이다.
도 2를 참고하면, 사용자 모델 데이터(user model data)를 이용하여 검색 결과(115)를 각 사용자에 맞게 개인화하여 정렬한다(③ personalized ranking 단계). 여기서 사용자 모델 데이터(117)은 각 사용자의 취향이나 성향을 반영하여 생성된 데이터로, 예를 들면 사용자가 좋아할 만한 문서의 종류나 특성을 데이터화 한 것이다. 즉 사용자의 취향이나 성향을 모델링한 데이터를 말한다.
물론 사용자 모델 데이터(117)는 사전에 사용자 환경 설정 메뉴 등을 통해서 사용자로부터 직접 입력 받는 데이터일 수도 있으나, 바람직하게는 검색 결과에 대한 사용자의 반응을 모니터링 하여 생성된 데이터일 수 있다. 즉, 검색 결과에서 사용자가 어떤 문서를 중점적으로 열람하였는지를 기준으로 다음 검색에서는 사용자가 열람했던 문서들과 유사한 문서들 위주로 검색 결과를 정렬해서 제공하는 것이다.
이를 통해서 동일하게 "밤"이라는 질의어를 입력하였더라도, 사용자 A(101a)에게는 해가 져서 어두운 어두운 밤과 관련된 문서들(119a) 위주로 제공하고, 사용자 B(101b)에게는 밤나무 열매인 밤과 관련된 문서들(119b) 위주로 제공할 수 있다. 즉, 사용자 모델 데이터(117)를 각 사용자별로 생성하여 이를 이용하여 개인화된 검색 결과(119a, 119b)를 제공할 수 있다.
도 3을 참고하면, 사용자 모델 데이터(117)를 생성하는 과정을 볼 수 있다. 즉, 개인화된 검색 결과(119a, 119b)에 대해서 각 사용자가 어느 문서들을 위주로 열람하였는지를 이용하여 다시 사용자 모델 데이터(117)를 수정하는 것이다(⑤ feedback 단계). 사용자가 검색을 하면 할수록 사용자가 열람하였던 문서들과 유사한 문서들을 검색 결과로 제공할 수 있어서, 검색 결과의 품질이 높아질 수 있다.
지금까지, 도 1 내지 도 3을 통해서 기존의 검색 결과 제공 방법과 본 발명의 일 실시예에 따른 개인화된 검색 결과 제공 방법에 대해서 개념적으로 살펴보았다. 이하 도 4 내지 도 14를 통해서 본 발명의 일 실시예에 다른 개인화된 검색 결과 제공 방법에 대해서 보다 자세하게 살펴보도록 한다.
도 4는 본 발명의 일 실시예에 따른 개인화된 검색 결과 제공 방법의 순서도이다.
도 4를 참고하면, 우선 각 사용자의 관심 문서들에서 키워드를 추출한다(S1100). 여기서 사용자의 관심 문서란 앞서 언급한 것처럼 검색 결과에서 사용자가 반응하여 열람한 문서들을 말한다. 즉, 특정 사용자가 검색을 통해서 얻고자 하는 정보들을 해당 특정 사용자가 열람한 문서들로부터 추론하는 것이다.
이러이러한 질의어를 입력하여 나온 검색 결과에서 이러이러한 문서들을 위주로 열람한 사용자에게는 다음 검색에서는 해당 문서들과 유사한 문서들을 우선하여 제공하기 위해 관심 문서들에 대한 정보를 수치화하는 것이다. 사용자의 관심 문서들을 수치화하기 위해서는 관심 문서에 대한 다양한 정보들을 이용할 수 있겠지만, 우리는 문서에 기재된 단어, 키워드에 초점을 맞추어 문서의 특성을 수치화하기로 한다.
관심 문서에서 키워드를 추출한 후에는 각 키워드 가중치를 계산할 수 있다(S1200). 키워드 가중치를 계산할 때에는 해당 키워드가 해당 관심 문서에서 어느 정도의 빈도로 나타나는지, 또한 다른 문서에서는 어느 정도의 빈도로 나타나는지 등을 기준으로 가중치를 계산할 수 있다. 나아가 키워드와 가중치의 분포에 따라 추가적으로 가중치를 보정할 수도 있다.
사용자의 관심 문서에서 키워드를 추출하고 각 키워드 가중치를 계산한 후에는, 이를 합산하여 사용자별로 키워드 가중치를 사용자 모델 데이터로 생성하여 저장한다(S1300). 이를 이용하여 추후에 해당 사용자가 다른 질의어를 입력하여 검색을 수행하더라도 이전에 검색된 문서들에 대한 사용자의 반응을 기초로 검색된 문서들을 개인화하여 제공할 수 있는 것이다(S1400).
사용자마다 열람한 문서들은 서로 다를 수밖에 없으므로, 동일한 질의어를 입력하여 검색을 수행하더라도, 사용자 모델 데이터가 서로 달라 그 검색 결과 또한 서로 다르게 제공될 수 밖에 없다. 이를 통해서 사용자가 자신이 원하는 정보를 찾기 위해서 검색 결과를 하나하나 탐색해야 하는 수고를 덜 수 있다.
예를 들면, 해가 져서 어두운 밤을 검색하기 위해 "밤"을 입력한 사용자 A(101a)가 그 후 "여행"이라는 질의어를 입력한다면, 밤에 떠나서 다녀올 수 있는 야간 여행지를 검색 결과로 우선하여 제공하고, 밤나무 열매인 밤을 검색하기 위해 "밤"을 입력한 사용자 B(101b)가 그 후 "여행"이라는 질의어를 입력한다면, 밤 생산지나 밤 줍기 체험 프로그램을 할 수 있는 여행지를 검색 결과로 우선하여 제공할 수 있을 것이다.
도 5는 본 발명의 일 실시예에 따른 사용자의 관심 문서에서 키워드를 추출하여 가중치를 계산하는 단계를 설명하기 위한 개념도이다.
우선 사용자가 열람한 문서들에서 키워드를 추출한다. 여기서 키워드는 문서의 제목이나 작성자, 본문 등에서 추출될 수 있다. 만약 그룹웨어에서 사용되는 문서라면 작성자의 부서나 직급체계와 관련된 정보도 키워드로 추출될 수 있을 것이다. 추출된 키워드는 문서 내에서의 빈도 및 다른 문서에서의 빈도 등을 기준으로 가중치를 계산한다.
계산된 가중치는 그대로 사용자 모델 데이터로 사용될 수도 있지만, 필요에 따라서는 가중치를 보정하는 작업을 수행할 수 있다. 가중치 보정에는 각종 통계적인 방법이 적용될 수 있다. 그리고 가중치 보정 작업은 여러 단계에 걸쳐서 수행될 수도 있다. 즉, 다양한 보정 알고리즘에 의해서 가중치 보정을 여러 번 수행할 수도 있다. 이렇게 각 문서에 대해서 가중치를 계산하고 보정을 한 후에는 각 문서의 키워드 가중치를 합산하여 해당 사용자의 사용자 모델 데이터를 생성하고 저장한다.
도 5를 참고하면, 사용자가 열람한 문서 중 특정 문서(121)에서 키워드를 추출하여 가중치를 계산하는 과정을 볼 수 있다. "사업 보고자료"라는 제목으로 "A사업부"의 "홍길동"이 작성한 문서에서 키워드를 추출하면 "사업", "보고자료", "홍길동", "A사업부"와 같은 키워드를 추출할 수 있다. 다만, 여기서는 지면상의 제한으로 제목, 작성자와 관련된 정보에서 키워드를 추출한 것일 뿐, 문서의 본문이나 그 외 문서와 관련된 다양한 텍스트 정보에서 키워드가 추출될 수 있다.
추출된 키워드(123)는 1차적으로 해당 문서에서의 빈도 및 다른 문서에서의 빈도를 이용하여 가중치(125)를 계산한다. 도 5를 참고하면 "사업"은 0.12의 가중치를, "보고자료"는 1.32의 가중치를, "홍길동"은 2.12의 가중치를, "A 사업부"는 4.12의 가중치를 가지는 것을 볼 수 있다. 가중치를 계산하는 1차 작업이 완료되면 해당 가중치를 적절하게 보정할 수 있다.
가중치를 보정하는 단계는 필요에 따라 여러 번 수행될 수 있다. 예를 들면 가중치의 편차가 너무 심한 경우에는 이를 보정할 수 있다. 도 5의 예에서는 보정을 통해 각각의 가중치가 0.02, 0.23, 0.11, 0.12의 값으로 보정된 것을 볼 수 있다.
문서에서 보정된 가중치(127)를 하나로 합산하면, 사용자 모델 데이터가 완성된다. 도 5의 예에서는 사용자가 열람한 특정 문서(121) 외에도 사용자가 열람한 다른 문서에서 키워드를 추출하여 가중치를 계산하였다. "사업", "보고자료", "홍길동", "A사업부"외에도 다른 문서에서 추출한 키워드 "사업", "마감일", "출원", "김지영"의 가중치를 합산할 수 있다. 이렇게 여러 문서의 키워드와 키워드 가중치를 합산하면 사용자 모델 데이터(129)를 생성할 수 있다. 여기서, 가중치를 계산하는 구체적인 방법에 대해서는 추후 도 10 내지 도 13에서 자세히 살펴보도록 한다.
도 6 내지 도 7은 본 발명의 일 실시예에 따른 문서의 열람과 관련된 시간정보를 기준으로 가중치를 계산하는 단계를 설명하기 위한 개념도이다.
검색 결과에 대한 사용자의 반응을 모니터링 하여 가중치를 계산할 때, 단순히 문서를 열람하였는지 여부를 기준으로 가중치를 계산하면 각 문서간의 경중이 반영되지 않을 수가 있다. 일반적으로 사용자는 검색 결과로 제공되는 문서들을 열람하여 자신이 원하는 정보가 있는지 확인하는 과정을 거치게 되는데 이를 고려할 필요가 있는 것이다. 즉, 검색 결과로 제공된 문서를 사용자가 열람을 하는 경우, 각 문서를 열람한 시간을 고려할 필요가 있다. 그래서 검색 결과 중에서 사용자가 원한 정보가 있는 문서가 어떤 문서였는지 고려하여 가중치를 계산하여야 한다.
또한, 사용자가 예전에 질의어를 입력하여 검색된 결과 중에서 열람한 문서들과 최근에 질의어를 입력하여 검색된 결과 중에서 열람한 문서들의 경중을 반영할 필요가 있다. 즉, 최근에 검색하여 열람한 문서들일수록 가중치를 계산할 때 보다 더 큰 가중치를 가지도록 할 필요가 있다. 이를 위해서는 사용자가 검색 결과에서 문서를 열람한 시간을 모니터링 할 필요가 있다. 다시 말하면, 사용자가 문서를 열람한 누적 시간과, 최근 열람 일시를 기준으로 가중치를 보정하는 과정이 필요하다.
도 6을 참고하면, 사용자가 검색창(131)에서 "정산"이라는 질의어를 입력하여 검색을 수행한 검색 결과(133)를 볼 수 있다. 그룹웨어 내에서 사용자가 입력한 질의어 "정산"으로 검색된 검색 결과는 "개발 정의서.pptx", "화면 설계서.pptx", "정산 서류.xls" 등과 같은 문서가 있을 수 있다. 사용자는 검색 결과에서 각 문서의 제목이나 요약 내용(미도시) 등을 참고하여 자신이 원하는 정보가 있는 문서가 어느 문서인지 고민한 후, 검색 결과에서 몇몇의 문서들을 열람해서 정말로 원하는 정보가 있는 문서인지 확인할 수 있다. 이 때, 사용자가 해당 문서를 열람을 시작한 시간과 열람을 종료한 시간을 모니터링 하면, 사용자가 해당 문서를 열람하는데 소모한 시간 및 해당 문서의 최근 열람 일시 등을 구할 수 있다.
도 6의 예에서는 "개발 정의서.pptx"를 열람하는 데는 10초의 시간을 소모하고, "화면 설계서.pptx"를 열람하는 데는 8초의 시간을, "정산 서류.xls"를 열람하는 데는 6분 32초의 시간을 소모한 것을 볼 수 있다. 아마도 검색 결과에서 사용자가 검색을 통해서 얻고자 했던 정보는 "정산 서류.xls"에 있을 가능성이 높다. 이렇게 각 문서에 대한 사용자의 열람 시간을 모니터링 하여 로그 데이터(135)로 별도로 저장해서 관리하면, 각 문서간의 열람 선후 순서뿐만 아니라, 열람 누적 시간도 구할 수가 있다. 즉 어느 문서를 가장 최근에 열람했는지, 또 해당 문서를 열람하는데 어느 정도의 시간을 소모했는지 알 수가 있다.
도 7을 참고하면, 도 6에서 구한 문서를 열람하는데 소모한 시간과 문서를 최근에 열람한 시간을 기준으로 가중치를 계산하는 것을 볼 수 있다. 도 5에서는 각 문서에 포함된 키워드 가중치(keyword weighting)를 계산하였다면, 도 7에서는 각 문서에 대한 시간 가중치(time weighting)를 계산하는 것이다.
각 문서의 시간 가중치를 고려하지 않는다면, 그저 단순히 사용자가 열람한 문서들의 키워드 가중치를 합산하여 사용자 모델 데이터를 생성할 것이다. 도 7의 예를 참고하면, 문서 1(141a)과 문서 2(141b)의 키워드 가중치를 계산한 후 시간 가중치의 고려 없이 이를 합산하여 사용자 모델 데이터(151)를 얻었다. 여기서는 문서별 경중 없이 단순히 각 문서의 키워드 가중치를 합산하여 공통된 키워드인 "사업"은 0.02+0.04=0.06 의 가중치를 가지게 되었고, 그 외의 키워드는 공통된 키워드가 없어, "보고자료"는 0.23, "홍길동"은 0.11, "A사업부"는 0.12, "마감일"은 0.36, "출원"은 0.17, "김지영"은 0.24의 가중치를 가지는 사용자 모델 데이터(151)가 생성되었다.
하지만, 도 6에서 설명한 것처럼 열람한지 오래된 문서일수록, 열람하는데 소모한 시간이 적은 문서일수록 낮은 가중치를 갖도록 보정할 필요가 있다. 도 5의 키워드 가중치(keyword weighting)에 대비하여 이를 시간 가중치(time weighting)라 한다.
열람 시간을 기준으로 한 가중치(143a, 143b)는 열람 시간이 많을수록 높은 가중치를 가지게 된다. 문서 1(141a)의 경우 열람 시간이 많아서 0.5(143a)의 시간 가중치를 가지고, 문서 2(141b)의 경우 열람 시간이 적어서 0.2(143b)의 시간 가중치를 가지는 것을 볼 수 있다. 이 때, 필요에 따라서는 열람 시간이 커질수록 열람 시간에 따른 시간 가중치가 특정한 값에 수렴하게 할 수 있다. 도 7의 예에서는 열람 시간에 따른 시간 가중치는 1에 수렴하도록 설정되었다.
열람 시간을 기준으로 한 가중치(143a, 143b) 외에도 최근에 열람한 문서일수록 높은 가중치를 가지도록 할 수 있다. 최근 열람을 기준으로 한 가중치(145a, 145b)를 살펴보면 문서 1(141a)의 경우 열람한지 오래된 문서로 0.1의 가중치를 가지고, 문서 2(141b)의 경우 최근에 열람한 문서여서 0.6의 가중치를 가지는 것을 볼 수 있다. 이 때, 필요에 따라서는 가장 최근에 열람한 문서는 특정한 값을 가지게 할 수 있다. 또한, 도 7의 예에서는 가장 최근에 열람한 문서는 1의 값을 가지도록 설정되었다. 그리고 열람한 일시가 오래될수록 시간 가중치가 감소하게 되어 결국에는 0에 수렴하게 된다.
시간 가중치의 고려 없이 생성한 사용자 모델 데이터(151)에 비해 시간 가중치를 고려한 사용자 모델 데이터(157)는 다른 값을 가지는 것을 볼 수 있다. 즉 시간 가중치를 고려하게 되면 1차로 열람 시간을 기준으로 한 시간 가중치와, 2차로 최근 열람을 기준으로 한 시간 가중치를 곱하여 각 문서의 키워드 가중치를 보정할 수 있다. 문서 1(141a)의 경우 시간 가중치를 고려하여 *0.05(=0.5*0.1)만큼 보정된 키워드 가중치(147a)를 가지게 되었고, 문서 2(141b)의 경우에도 시간 가중치를 고려하여 *0.12(=0.2*0.6)만큼 보정된 새로운 키워드 가중치(147b)를 가지게 된 것을 볼 수 있다. 이제 이 둘을 합산하면 시간 가중치가 반영된 새로운 사용자 모델 데이터(157)를 얻을 수 있고, 이를 이용하여 검색 결과를 정렬한다면 보다 사용자의 관심에 적합한 문서를 우선하여 제공할 수 있을 것이다.
도 8 내지 도 9는 본 발명의 일 실시예에 따른 사용자 모델 데이터를 이용하여 검색 결과를 개인화 하는 단계를 설명하기 위한 개념도이다.
지금까지 도 5 내지 도 7을 통해서 사용자 모델 데이터를 생성하기 위하여 키워드 가중치 및 시간 가중치를 고려하여 가중치를 계산하는 과정을 살펴보았다. 이렇게 생성된 사용자 모델 데이터는 검색 결과를 정렬하는데 이용될 수 있다. 즉, 동일한 키워드를 입력하더라도 서로 다른 사용자 모델 데이터로 인해, 사용자에게 제공되는 검색 결과는 서로 다르게 되는 것이다. 예를 들면, 사용자 A(101a)에게는 해가 져서 어두운 밤과 관련된 문서를 우선하여 제공하고, 사용자 B(101b)에게는 밤나무의 열매인 밤과 관련된 문서를 우선하여 제공할 수 있다.
도 8을 참고하면, 검색된 결과의 각 문서들을 정렬하기 위한 순서를 정하는 알고리즘이 소개되어 있다. 이 때 사용할 수 있는 알고리즘은 크게 세 가지이다. 하나는 매칭 알고리즘(matching algorithm), 다른 하나는 유니크 매칭 알고리즘(unique matching algorithm), 마지막은 언어 모델 알고리즘(language model algorithm)이다.
매칭 알고리즘은 검색된 문서에서 키워드를 추출하여 검색된 문서에서 키워드의 빈도와 사용자 모델 데이터에서 해당 키워드의 가중치를 이용하여 문서의 중요도를 계산할 수 있다.
도 8의 예에서, 검색 결과 문서 1(163)에 대해서 매칭 알고리즘을 적용해보면 2번 등장한 "사업"의 사용자 모델 데이터(161)에서의 가중치가 0.1, 한번 등장한 "보고자료"의 사용자 모델 데이터(161)에서의 가중치가 0.2, 2번 등장한 "A사업부"의 사용자 모델 데이터(161)에서의 가중치가 0.4, 1번 등장한 "회의"의 사용자 모델 데이터(161)에서의 가중치가 0으로 이를 각각 곱해서 더하면 (2*0.1) + (1*0.2) + (2*0.4) + (1*0) = 1.2 수식에 의해서 1.2의 중요도를 얻을 수 있다.
유니크 매칭 알고리즘은 매칭 알고리즘과 유사하나, 검색된 문서에서 키워드의 빈도를 고려하지 않는 점에서 차이가 있다. 즉 검색된 문서에서 해당 키워드가 등장하기만 하면 한번을 등장하던 여러 번 등장하든 그 차이를 두지 않고 문서의 중요도를 계산하는 방법이다.
도 8의 예에서, 검색 결과 문서 1(163)에 대해서 유니크 매칭 알고리즘을 적용해보면 검색 결과 문서 1(163)에 등장한 키워드 "사업", "보고자료", "A사업부", "회의" 각각의 사용자 모델 데이터(161)에서의 가중치 0.1, 0.2, 0.4, 0을 합산하여 0.1 + 0.2 + 0.4 + 0 = 0.7 수식에 의해서 0.7의 중요도를 얻을 수 있다.
앞선 두 알고리즘에 비해 언어 모델 알고리즘은 조금 다른 방식을 취한다. 각 키워드의 가중치를 합산하여 가중치 합계(wtotal)를 구한 후 이에 대한 비율에 로그를 취하여 중요도를 계산한다. 이 과정에서 각 키워드 가중치에 1를 더해서 로그를 취하여 중요도를 구한다. 언어 모델 알고리즘을 이용하면 매칭 알고리즘이나 유니크 매칭 알고리즘과는 다르게 사용자 모델 데이터(161)에서 가중치가 0인 키워드도 중요도에 영향을 미칠 수 있다.
도 8의 예에서, 검색 결과 문서 1(163)에 대해서 언어 모델 알고리즘을 적용해보면 2*log((0.1+1)/1.5) + 1*log((0.2+1)/1.5) + 2*log((0.4+1)/1.5) + 1*log((0+1)/1.5) = 4.8 수식에 의해서 4.8의 중요도를 얻을 수 있다.
도 8에서 살펴본 것처럼 동일한 검색 결과 문서 1(163)에 대해 동일한 사용자 모델 데이터(161)를 이용하여 중요도를 계산하더라도 적용하는 알고리즘에 따라 문서의 중요도가 달라질 수 있는 것을 볼 수 있다. 이에 도 9와 함께 각 알고리즘에 대해서 좀 더 자세히 살펴보도록 하자.
도 9에서는 도 8에 이어 검색 결과 문서 2(165)에 대해 각 알고리즘에 의해 문서의 중요도를 계산하는 과정을 볼 수 있다.
검색 결과 문서 1(163)과 검색 결과 문서 2(165)에 대한 문서의 중요도를 계산하는 과정을 각각 표로 나타내면 다음과 같다.
키워드 매칭 유니크 매칭 언어 모델
사업 2*0.1=0.2 0.1 2*log((0.1+1)/1.5)=1.467
보고자료 1*0.2=0.2 0.2 1*log((0.2+1)/1.5)=0.8
A사업부 2*0.4=0.8 0.4 2*log((0.4+1)/1.5)=1.867
회의 1*0=0 0 1*log((0+1)/1.5)=0.667
합계 1.2 0.7 4.8
키워드 매칭 유니크 매칭 언어 모델
홍길동 2*0.3=0.6 0.3 2*log((0.3+1)/1.5)=1.733
A사업부 1*0.4=0.4 0.4 1*log((0.4+1)/1.5)=0.933
김지영 1*0.5=0.5 0.5 1*log((0.5+1)/1.5)=1
합계 1.5 1.2 3.67
표 1은 검색 결과 문서 1(163)에 대한 중요도 계산을 표로 정리한 것이고, 표 2는 검색 결과 문서 2(165)에 대한 중요도 계산을 표로 정리한 것이다. 표 1과 표 2를 참고하면, 매칭 알고리즘이나 유니크 매칭 알고리즘에 의해 중요도를 계산하면, 검색 결과 문서 1(163)의 중요도 1.2 또는 0.7에 비해 검색 결과 문서 2(165)의 중요도 1.5 또는 1.2가 보다 더 높아, 검색 결과 문서 2(165)가 보다 더 중요한 문서로 취급될 수 있다. 그러나, 언어 모델 알고리즘에 의해 중요도를 연산하게 되면 검색 결과 문서 1(163)의 중요도 4.8에 비해 검색 결과 문서 2(165)의 중요도 3.67이 보다 더 낮아, 검색 결과 문서 1(163)이 보다 더 중요한 문서로 취급될 수 있다.
도 8의 예처럼, 문서의 중요도를 계산하기 위해 적용되는 알고리즘에 따라 검색 결과의 정렬 순서가 뒤바뀔 수도 있다. 도 8의 문서의 중요도를 계산하는 단계는 도 4의 순서도에서 검색 결과를 개인화하는 단계(S1400)에 해당된다. 그리고 도 8의 검색 결과를 개인화 하는 단계(S1400) 외에도 나머지 각 단계(S1100, S1200, S1300)에서 적용되는 알고리즘에 따라 검색 결과의 정렬 순서가 얼마든지 달라질 수 있다. 이에 대해서 도 10 내지 도 13을 통해서 살펴보도록 한다.
도 10 내지 도 13은 본 발명의 일 실시예에 따른 검색 결과 개인화에서 사용되는 알고리즘 조합을 기계 학습 하는 과정을 설명하기 위한 개념도이다.
도 10은 개인화된 검색 결과 제공 방법의 각 단계에서 사용될 수 있는 알고리즘을 도시한 것이다. 우선, 관심 문서에서 키워드를 추출하는 단계(S1100)에서는 n-gram, context, stemming, part-of-speech tagging, NER(named entity recognition) 등의 알고리즘이 사용될 수 있다. 각 알고리즘에 대해서 간단히 살펴보면, n-gram 알고리즘에는 uni-gram, bi-gram, tri-gram 이 있으며 uni-gram 은 한 글자씩, bi-gram은 두 글자씩, tri-gram은 세 글자씩 추출하는 방법이다. "철수가 학교에 간다"라는 예문에 대해 n-gram 알고리즘을 적용해보면 다음의 표 3과 같다.
원문 철수가 학교에 간다.
uni-gram 철, 수, 가, 학, 교, 에, 간, 다
bi-gram 철수, 수가, 학교, 교에, 간다
tri-gram 철수가, 학교에, 간다.
다음으로, context 알고리즘은 텍스트로부터 인명, 업무명, 부서명, 날짜 등을 추출하는 방법이다. "본 회계 자료는 경리 부서 김철수에 의해 발표된 자료입니다."라는 예문에 대해 context 알고리즘을 적용해보면 아래 표 4와 같다.
원문 본 회계 자료는 경리 부서 김철수에 의해 발표된 자료입니다.
키워드 인명 : 김철수, 부서명 : 경리부서, 업무명 : 회계 자료
다음으로, part-of-speech tagging 알고리즘은 텍스트에 품사를 태깅하는 방법이다. "철수가 학교에 간다."라는 예문에 대해 part-of-speech tagging 알고리즘을 적용해보면 다음의 표 5와 같다.
원문 철수가 학교에 간다.
키워드 철수/명사, 가/조사, 학교/명사, 에/조사, 가/동사
다음으로, stemming 알고리즘은 영문 텍스트에 대해 특정 규칙에 의해 하나의 공통된 단어를 추출하는 방법이다. 이에 대한 간단한 예를 살펴보면 다음의 표 6과 같다.
원문 engineering, engineer, engine
키워드 engine
다음으로, NER(Named Entity Recognition) 알고리즘은 개체명 인식으로 context 알고리즘과 유사한 방법으로 날짜, 이름, 장소명 등을 추출 하는 방법이다. "철수가 학교에 간다."라는 예문에 대해 NER 알고리즘을 적용해보면 다음의 표 7과 같다.
원문 철수가 학교에 간다.
키워드 인명 : 철수, 장소 : 학교
동일한 예문이더라도 적용되는 키워드 추출 알고리즘에 따라 다른 키워드가 추출되기도 하며, 추출된 키워드를 품사나 성격에 따라 구분할 수도 있다. 키워드 추출 알고리즘은 문서의 성격에 따라 많은 영향을 받을 수 있다. 도 10에 도시하지는 않았지만, 예를 들면 영화나 음악의 리뷰를 분석하여 제공하는 검색에서는 긍정/부정의 키워드를 추출할 수 있는 알고리즘이 유용할 것이며, 논문을 검색하는 경우에 키워드를 추출하는 알고리즘과 가십 뉴스를 검색하는 경우에 키워드를 추출하는 알고리즘은 서로 다를 수 밖에 없을 것이다.
도 5에서 키워드의 가중치를 계산하는 단계(S1200)에서는 키워드의 빈도를 이용하여 각 키워드의 가중치를 계산할 수 있다고 언급하였다. 이 때 적용될 수 있는 알고리즘을 살펴보면, 우선 TF-IDF(term frequency - inverse document frequency) 알고리즘은 일반적으로 적용될 수 있는 방법으로, 해당 문서에서 많이 나타나는 단어일수록 가중치를 높게 반영하는 대신 다른 여러 문서에서 많이 나타나는 단어일수록 가중치를 낮게 반영하는 방법이다. 즉, 해당 문서에서만 많이 나타나는 단어일수록 가중치를 높게 평가하는 것이다. TF-IDF는 구체적인 수식으로는 해당 문서에서의 해당 키워드의 빈도를 다른 문서에서의 빈도로 나눈 값으로 구할 수 있다. 다만, 여기서 다른 문서에서의 빈도는 역수에 로그를 취해서 계산될 수 있다.
다음으로, TF-IDF normalized 알고리즘은 일반적인 TF-IDF 알고리즘과 다르게 문서 길이에 대한 정규화를 수행하여 키워드의 가중치를 계산하는 방법이다. 즉, 문서의 길이가 길면 길수록 해당 키워드가 등장할 빈도가 높아지므로 이를 고려하여 해당 키워드의 가중치를 계산하는 것이다. 다시 말하면 동일한 빈도를 가진 키워드라고 하더라도, 길이가 짧은 문서에서의 키워드의 경우 가중치를 더 높게 평가하는 것이다. 이는 문서 길이가 긴 문서에서 출현하는 단어의 가중치는 항상 높게 나타날 수 있기 때문에 이를 약화 시키기 위해 사용하는 알고리즘이다.
다음으로, BM25 알고리즘은 TF-IDF normalized 방법과 유사하게 약간의 파라미터 조정을 통해서 가중치를 다르게 평가하는 알고리즘이다. 지금까지 키워드의 가중치를 계산하는 알고리즘을 간단하게 수식으로 표현해보면 다음의 표 8과 같다.
TF-IDF
Figure 112015097641917-pat00001
TF-IDF (norm)
Figure 112015097641917-pat00002
BM25
Figure 112015097641917-pat00003
키워드의 가중치를 계산한 후에는 필요에 따라 가중치를 보정하는 단계를 더 수행할 수도 있다. 이 때 적용될 수 있는 알고리즘을 살펴보면, SVD(singular value decomposition) 알고리즘은 용어와 문서로 이루어진 매트릭스로부터 용어 성분을 나타내는 U, 특이치를 나타내는 sigma, 문서 성분을 나타내는 V(전치행렬) 을 분해하여, 차원의 축소를 위해 사용되는 방법이다.
다음으로, GMM(gaussian mixture model) 알고리즘은 가우시안 분포 모델의 혼합 모델로, 값의 분포의 중심에 가까울 수록 가중치를 높게 책정하는 방법이다. 일반적인 가우시안 분포의 특성이 여러 형태로 나타날 경우 이를 혼합 모델로 하여 형성될 수 있다.
마지막으로, 사용자 모델 데이터를 생성하고 이를 이용하여 검색 결과를 개인화 하는 단계(S1400)에 사용될 수 있는 알고리즘은 도 8 내지 도 9에서 살펴본 것처럼 매칭 알고리즘, 유니크 매칭 알고리즘, 언어 모델 알고리즘 등이 있을 수 있다. 매칭 알고리즘은 사용자 모델 데이터의 키워드가 검색 결과 문서에 있을 때 키워드 가중치의 합을 계산하는데 있어서 검색 결과 문서에 있는 키워드의 개수까지 고려하는 방법이고, 유니크 매칭 알고리즘은 사용자 모델 데이터의 키워드가 검색 결과에 있을 때 단순히 키워드 가중치의 합을 계산하는 방법이며, 언어 모델 알고리즘은 키워드 가중치를 전체 키워드의 가중치 합으로 나누어 계산하는 방법이다.
개인화된 검색 결과를 제공하는 방법의 각 단계에서 사용될 수 있는 알고리즘은 도 10에 도시된 알고리즘 외에도 다양한 알고리즘이 있을 수 있다. 문서에 따라, 사용자에 따라, 키워드에 따라 적용하기에 적절한 알고리즘이 달라질 수 있다.
도 11은 각 알고리즘 조합에 따라 특정 문서의 중요도를 테스트한 결과를 도시한 것이다.
도 11을 참고하면, 동일한 사용자 모델 데이터 및 동일한 검색 결과 문서를 대상으로 각 알고리즘 조합을 테스트해 보았다. 키워드를 추출하는 알고리즘으로는 POSTagging 알고리즘(미도시)을 사용하였고, 가중치를 계산하는 알고리즘으로 TF-IDF, TF-IDF (norm), BM25를 사용하는 경우 및 가중치를 보정하는 알고리즘을 적용하는 경우와 적용하지 않는 경우를 테스트 해보았다. 동일한 사용자 모델 데이터 및 동일한 검색 결과 문서임에도 적용된 알고리즘에 따라 해당 검색 결과 문서의 중요도가 다양하게 계산되는 것을 확인할 수 있다.
해당 검색 결과 문서의 중요도가 가장 높게 계산되는 경우는 (TF-IDF (norm) / GMM / 유니크 매칭 알고리즘) 조합을 사용한 경우의 0.55이였으며, 해당 검색 결과 문서의 중요도가 가장 낮게 계산되는 경우는 (TF-IDF / 언어 모델 알고리즘) 또는 (BM25 / 언어 모델 알고리즘) 또는 (TF-IDF (norm) / GMM / 매칭 알고리즘) 조합일 때 계산된 0.3이였다. 알고리즘의 조합에 따라 0.3 에서 0.55까지 검색 결과 문서의 중요도가 다양하게 계산될 수 있는 것을 알 수 있다.
검색된 결과를 정렬하여 제공할 때 각 문서의 중요도를 구하여 이를 이용하여 사용자에게 노출되는 문서의 순서를 정렬하여 제공할 수 있다. 이 때 문서의 중요도에 영향을 미치는 요소는 사용자가 이미 열람한 문서들을 기초로 생성된 사용자 모델 데이터뿐만 아니라 개인화된 검색 결과 제공 방법에서 사용되는 알고리즘의 조합도 영향을 미칠 수 있는 것이다. 만약 특정 사용자에게 맞는 알고리즘 조합도 개인화 할 수 있다면 보다 신뢰할 만한 검색 결과를 사용자에게 제공할 수 있을 것이다. 다만, 특정 사용자에게 알맞은 알고리즘 조합을 알아내기에는 많은 어려움이 있으므로 이를 간단히 수행하기 위한 몇 가지 방법을 도 12와 함께 살펴보도록 한다.
도 12는 본 발명의 일 실시예에 따른 알고리즘 조합을 기계 학습 하여 개인화된 검색 결과를 제공하는 방법을 설명하기 위한 순서도이다.
도 12를 참고하면, 사용자 모델 데이터를 생성하는 단계(S1300)를 수행한 후에는 생성된 사용자 모델 데이터를 기준으로 사용자를 클러스터링 하는 단계(S1310)를 수행할 수 있다. 즉 사용자별로 알고리즘 조합을 기계 학습하기에는 표본이나 실험결과가 부족할 수 있으므로 사용자 모델 데이터를 기준으로 사용자를 그룹으로 묶는 것이다. 사용자 모델 데이터에 포함된 키워드 및 각 키워드의 가중치를 고려하여 유사한 키워드와 유사한 키워드 가중치를 가진 사용자들끼리 클러스터링을 수행하면 보다 효율적으로 알고리즘 조합을 학습할 수 있다.
사용자 모델 데이터를 클러스터링 한 후에는 각 클러스터별로 키워드를 추출하는 알고리즘, 가중치를 계산하는 알고리즘, 가중치를 보정하는 알고리즘, 문서의 중요도를 계산하는 알고리즘을 피처(feature)로 하여 사용자의 반응을 기계 학습 한다(S1320). 즉, 검색 결과에서 특정 문서를 열람하는데 소모한 시간을 이용하면 사용자가 검색을 통해서 찾고자 했던 문서가 어떤 문서인지 추론할 수 있으므로, 특정 알고리즘 조합에 의해 사용자에게 우선하여 제공된 문서 중에서 실제로 사용자가 찾고자 했던 문서가 포함된 비율 등을 이용하면 어느 알고리즘 조합이 해당 클러스터에 더 유용한지 학습 할 수 있다. 기계 학습 과정에서는 통계적 방식인 Naive Bayes 알고리즘과, 벡터방식의 SVM(Support Vector Machine) 알고리즘, kNN(k-Nearest Neighbor) 알고리즘 등이 적용될 수 있다.
도 13은 각 알고리즘 조합에 따라 사용자의 반응을 테스트한 결과를 도시한 것이다.
특정 사용자 모델 데이터 클러스터에 대해 몇몇 알고리즘 조합에 의해 검색 결과를 제공하는 경우 사용자에게 우선하여 제공된 검색 결과에 대한 사용자의 반응을 기준으로 사용자가 검색을 통해서 얻고자 한 정보를 우선하여 제공하였는지 여부를 수치화하여 평가하였다.
해당 특정 사용자 모델 데이터 클러스터에서는 키워드 추출 알고리즘으로 POSTagging, 1차 가중치 계산 알고리즘으로 BM25, 2차 가중치 보정 알고리즘으로 SVD, 검색 결과의 중요도 계산 알고리즘으로 매칭 알고리즘(미도시)를 조합한 경우가 정밀도(precision)에서 0.79의 값을, 재현율(recall)에서 0.49 및 F-Measure에서 0.60으로 가장 적절한 조합임을 알 수 있었다.
도 13의 예에서처럼 각 사용자 모델 데이터를 기준으로 한 사용자 클러스터에 대해 알고리즘 조합을 학습한다면, 사용자가 열람한 문서를 피드백으로 사용자 모델 데이터가 보다 더 정교해질 뿐만 아니라 사용자 열람한 문서를 피드백으로 해당 사용자 모델 데이터가 속한 클러스터에 적용할 알고리즘 조합도 보다 더 정교해질 수 있다. 이를 통해서 보다 더 효율적으로 개인화된 검색 결과를 제공할 수 있다.
도 14는 본 발명의 일 실시예에 따른 개인화된 검색 결과 제공 장치의 하드웨어 구성도이다.
도 14을 참고하면, 개인화된 검색 결과 제공 장치(10)는 하나 이상의 프로세서(510), 메모리(520), 스토리지(560) 및 네트워크 인터페이스(570)을 포함할 수 있다. 프로세서(510), 메모리(520), 스토리지(560) 및 인터페이스(570)는 시스템 버스(550)를 통하여 데이터를 송수신한다.
프로세서(510)는 메모리(520)에 로드 된 컴퓨터 프로그램을 실행하고, 메모리(520)는 상기 컴퓨터 프로그램을 스토리지(560)에서 로드(load) 한다. 상기 컴퓨터 프로그램은, 키워드 추출 오퍼레이션(521), 가중치 연산 오퍼레이션(523), 사용자 모델 데이터 생성 오퍼레이션(525), 알고리즘 조합 학습 오퍼레이션(527) 및 검색 결과 개인화 오퍼레이션(529)을 포함할 수 있다.
키워드 추출 오퍼레이션(521)은 스토리지(560)의 문서 데이터(569) 중 사용자가 열람한 문서를 대상으로 Context, POSTagging 등의 알고리즘을 적용하여 키워드를 추출할 수 있다. 또한 스토리지(560)의 문서 데이터(569) 중 질의어를 입력하여 검색된 각 문서의 중요도를 사용자 모델 데이터(561)를 이용하여 계산하기 위해서, 검색된 각 문서를 대상으로 키워드를 추출할 수 있다.
가중치 연산 오퍼레이션(523)은 키워드 추출 오퍼레이션(521)에서 추출한 키워드를 대상으로 TF-IDF, BM25 등의 알고리즘을 적용하여 각 키워드의 가중치를 계산할 수 있다. 또한 가중치 연산 오퍼레이션(523)은 필요에 따라 계산된 가중치를 GMM, SVD 등의 알고리즘을 적용하여 보정하거나, 사용자가 해당 문서를 열람한 시간, 최근 열람한 시간 등을 기준으로 시간 가중치를 적용하여 보정할 수 있다.
사용자 모델 데이터 생성 오퍼레이션(525)은 가중치 연산 오퍼레이션(523)에 계산된 키워드 및 키워드에 대응되는 가중치 정보를 사용자가 열람한 문서를 기준으로 합산하여 사용자 모델 데이터(561)로 생성할 수 있다. 이 때 생성된 사용자 모델 데이터(561)은 시스템 버스(550)을 통해 스토리지(560)의 사용자 모델 데이터(561)로 저장된다.
알고리즘 조합 학습 오퍼레이션(527)은 사용자 모델 데이터 생성 오퍼레이션(525)에서 생성한 사용자 모델 데이터(561)를 기준으로 사용자를 클러스터링하여 여러 개의 클러스터로 분류하고, 각 클러스터에 대해서 키워드 추출 알고리즘, 가중치 계산 알고리즘, 가중치 보정 알고리즘, 문서 중요도 계산 알고리즘을 입력으로 하여 검색 결과에 대한 사용자의 반응을 모니터링하여 해당 클러스터에 적합한 알고리즘 조합을 기계 학습할 수 있다. 이렇게 학습된 사용자 클러스터별 알고리즘 조합은 시스템 버스(550)을 통해 스토리지(560)의 알고리즘 조합 데이터(563)으로 저장된다.
검색 결과 개인화 오퍼레이션(529)은 네트워크 인터페이스(570)을 통해 사용자로부터 질의어를 입력 받아서, 스토리지(570)의 문서 데이터(569)를 대상으로 검색을 수행한 후, 검색된 문서들을 사용자 모델 데이터(561)와 알고리즘 조합 데이터(563)을 이용하여 중요도를 계산한다. 계산된 중요도에 따라 검색 결과를 정렬하여 각 사용자에게 개인화된 검색 결과를 제공한다.
도 14의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (17)

  1. 사용자가 열람한 문서를 대상으로, 상기 문서의 키워드를 추출하는 단계;
    상기 키워드의 상기 문서에서의 빈도를 고려하여, 가중치를 계산하는 단계;
    상기 키워드에 상기 가중치를 맵핑하여, 상기 사용자에 대한 사용자 모델 데이터를 생성하는 단계; 및
    상기 사용자의 단말로부터 질의어를 수신하고, 상기 사용자 모델 데이터를 이용하여, 상기 질의어에 대한 검색 결과를 정렬하는 단계를 포함하되,
    상기 사용자 모델 데이터를 생성하는 단계는,
    상기 검색 결과에 대한 상기 사용자의 반응을 기계 학습하여, 상기 사용자 모델 데이터를 생성하는 알고리즘을 결정하는 단계를 포함하는,
    개인화된 검색 결과 제공 방법.
  2. 제1항에 있어서,
    상기 가중치를 계산하는 단계는,
    상기 키워드와 상기 가중치의 분포를 고려하여, 상기 가중치를 보정하는 단계를 포함하는,
    개인화된 검색 결과 제공 방법.
  3. 제1항에 있어서,
    상기 가중치를 계산하는 단계는,
    상기 사용자가 상기 문서를 열람한 시간에 관한 정보를 고려하여, 상기 가중치를 보정하는 단계를 포함하는,
    개인화된 검색 결과 제공 방법.
  4. 제3항에 있어서,
    상기 가중치를 보정하는 단계는,
    상기 사용자가 상기 문서를 열람한 시간이 많을수록 상기 가중치를 크게 보정하는 단계를 포함하는,
    개인화된 검색 결과 제공 방법.
  5. 제3항에 있어서,
    상기 가중치를 보정하는 단계는,
    상기 사용자가 상기 문서를 열람한 시간이 최근일수록 상기 가중치를 크게 보정하는 단계를 포함하는,
    개인화된 검색 결과 제공 방법.
  6. 제1항에 있어서,
    상기 질의어에 대한 검색 결과를 정렬하는 단계는,
    상기 검색 결과에 속한 각 문서에서 검색 결과 키워드를 추출하는 단계;
    상기 검색 결과 키워드와 상기 키워드를 비교하고, 상기 키워드에 맵핑된 가중치를 기준으로, 상기 각 문서의 중요도를 계산하는 단계; 및
    상기 각 문서의 중요도를 이용하여, 상기 질의어에 대한 검색 결과를 정렬하는 단계를 포함하는,
    개인화된 검색 결과 제공 방법.
  7. 제1항에 있어서,
    상기 질의어에 대한 검색 결과를 정렬하는 단계는,
    상기 정렬된 검색 결과에 대한 상기 사용자의 반응을 피드백하여, 상기 사용자 모델 데이터를 갱신하는 단계를 포함하는,
    개인화된 검색 결과 제공 방법.
  8. 제1항에 있어서,
    상기 사용자에 대한 사용자 모델 데이터를 생성하는 단계는,
    사용자 모델 데이터를 기준으로 복수의 사용자를 클러스터링 하여, 클러스터를 구성하는 단계를 포함하는,
    개인화된 검색 결과 제공 방법.
  9. 제8항에 있어서,
    상기 클러스터를 구성하는 단계는,
    키워드 추출 알고리즘에 대한 상기 클러스터에 속한 사용자의 반응을 기계 학습하여, 상기 클러스터의 키워드 추출 알고리즘을 결정하는 단계를 포함하는,
    개인화된 검색 결과 제공 방법.
  10. 제8항에 있어서,
    상기 클러스터를 구성하는 단계는,
    가중치 계산 알고리즘에 대한 상기 클러스터에 속한 사용자의 반응을 기계 학습하여, 상기 클러스터의 가중치 계산 알고리즘을 결정하는 단계를 포함하는,
    개인화된 검색 결과 제공 방법.
  11. 제8항에 있어서,
    상기 클러스터를 구성하는 단계는,
    가중치 보정 알고리즘에 대한 상기 클러스터에 속한 사용자의 반응을 기계 학습하여, 상기 클러스터의 가중치 보정 알고리즘을 결정하는 단계를 포함하는,
    개인화된 검색 결과 제공 방법.
  12. 제8항에 있어서,
    상기 클러스터를 구성하는 단계는,
    중요도 연산 알고리즘에 대한 상기 클러스터에 속한 사용자의 반응을 기계 학습하여, 상기 클러스터의 중요도 연산 알고리즘을 결정하는 단계를 포함하는,
    개인화된 검색 결과 제공 방법.
  13. 사용자가 열람한 문서를 대상으로, 상기 문서의 키워드를 추출하는 키워드 추출부;
    상기 키워드의 상기 문서에서의 빈도를 고려하여, 가중치를 계산하는 가중치 연산부;
    상기 키워드에 상기 가중치를 맵핑하여, 상기 사용자에 대한 사용자 모델 데이터를 생성하는 사용자 모델 데이터 생성부;
    상기 사용자의 단말로부터 질의어를 수신하고, 상기 사용자 모델 데이터를 이용하여, 상기 질의어에 대한 검색 결과를 정렬하는 검색 결과 개인화부; 및
    상기 검색 결과에 대한 상기 사용자의 반응을 기계 학습하여, 상기 사용자 모델 데이터를 생성하는 알고리즘을 결정하는 알고리즘 조합부를 포함하는,
    개인화된 검색 결과 제공 장치.
  14. 제13항에 있어서,
    상기 가중치 연산부는,
    상기 키워드와 상기 가중치의 분포를 고려하여, 상기 가중치를 보정하는 가중치 보정부를 포함하는,
    개인화된 검색 결과 제공 장치.
  15. 제13항에 있어서,
    상기 검색 결과 개인화부는,
    상기 검색 결과에 속한 각 문서에서 검색 결과 키워드를 추출하는 검색 결과 키워드 추출부;
    상기 검색 결과 키워드와 상기 키워드를 비교하고, 상기 키워드에 맵핑된 가중치를 기준으로, 상기 각 문서의 중요도를 계산하는 문서 중요도 연산부; 및
    상기 각 문서의 중요도를 이용하여, 상기 질의어에 대한 검색 결과를 정렬하는 검색 결과 정렬부를 포함하는,
    개인화된 검색 결과 제공 장치.
  16. 제13항에 있어서,
    상기 검색 결과 개인화부는,
    상기 정렬된 검색 결과에 대한 상기 사용자의 반응을 피드백하여, 상기 사용자 모델 데이터를 갱신하는 사용자 모델 데이터 갱신부를 포함하는,
    개인화된 검색 결과 제공 장치.
  17. 네트워크 인터페이스;
    하나 이상의 프로세서;
    상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및
    문서 데이터, 사용자 모델 데이터, 알고리즘 조합 데이터를 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    상기 문서 데이터 중 사용자가 열람한 문서를 대상으로, 상기 문서의 키워드를 추출하는 키워드 추출 오퍼레이션;
    상기 키워드의 상기 문서에서의 빈도를 고려하여, 가중치를 계산하는 가중치 연산 오퍼레이션;
    상기 키워드에 상기 가중치를 맵핑하여, 상기 사용자에 대한 상기 사용자 모델 데이터를 생성하는 사용자 모델 데이터 생성 오퍼레이션;
    사용자 모델 데이터를 기준으로 복수의 사용자를 클러스터링 하여 클러스터를 구성하고, 키워드 추출 알고리즘, 가중치 계산 알고리즘, 가중치 보정 알고리즘 및 중요도 연산 알고리즘에 대한 상기 클러스터에 속한 사용자의 반응을 기계 학습하여, 상기 클러스터의 상기 알고리즘 조합 데이터를 생성하는 알고리즘 조합 학습 오퍼레이션; 및
    상기 사용자의 단말로부터 질의어를 수신하고, 상기 사용자 모델 데이터를 이용하여, 상기 질의어에 대한 검색 결과를 정렬하는 검색 결과 개인화 오퍼레이션을 포함하는,
    개인화된 검색 결과 제공 장치.
KR1020150141556A 2015-10-08 2015-10-08 개인화된 검색 결과 제공 방법 및 그 장치 KR102292092B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150141556A KR102292092B1 (ko) 2015-10-08 2015-10-08 개인화된 검색 결과 제공 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150141556A KR102292092B1 (ko) 2015-10-08 2015-10-08 개인화된 검색 결과 제공 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20170042080A KR20170042080A (ko) 2017-04-18
KR102292092B1 true KR102292092B1 (ko) 2021-08-19

Family

ID=58704031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150141556A KR102292092B1 (ko) 2015-10-08 2015-10-08 개인화된 검색 결과 제공 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR102292092B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102476812B1 (ko) * 2016-10-18 2022-12-09 삼성에스디에스 주식회사 유사도 분석 기반 이음 동의 항목 관리 방법 및 장치
KR102023516B1 (ko) * 2017-08-11 2019-09-20 주식회사 인데이터랩 사용자 반응 데이터 분석 방법 및 장치
KR102055747B1 (ko) * 2018-04-02 2019-12-13 주식회사 클래스큐브 수식을 포함하는 문서를 검색하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
CN112925872A (zh) * 2019-12-05 2021-06-08 北京沃东天骏信息技术有限公司 一种数据搜索方法和装置
KR102352125B1 (ko) * 2021-05-04 2022-02-08 최동욱 Ai 고객 관리 어플리케이션 및 단말기의 동작 방법
CN113435193A (zh) * 2021-06-16 2021-09-24 深圳市世强元件网络有限公司 一种落地页面关键词投放方法、装置及计算机设备
CN113609248A (zh) * 2021-08-20 2021-11-05 北京金山数字娱乐科技有限公司 词权重生成模型训练方法及装置、词权重生成方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101544462B1 (ko) * 2010-09-28 2015-08-17 주식회사 케이티 위치기반 정보 제공 시스템에서의 클라이언트 단말 정보를 이용한 개인화 된 poi정보 제공 방법 및 그 클라이언트 단말
KR101425093B1 (ko) * 2010-10-12 2014-08-04 한국전자통신연구원 이동 단말의 개인화 검색 방법 및 이를 수행하는 이동 단말

Also Published As

Publication number Publication date
KR20170042080A (ko) 2017-04-18

Similar Documents

Publication Publication Date Title
KR102292092B1 (ko) 개인화된 검색 결과 제공 방법 및 그 장치
US20210165955A1 (en) Methods and systems for modeling complex taxonomies with natural language understanding
US11645317B2 (en) Recommending topic clusters for unstructured text documents
US20220261427A1 (en) Methods and system for semantic search in large databases
US8412717B2 (en) Changing ranking algorithms based on customer settings
US9594850B2 (en) Method and system utilizing a personalized user model to develop a search request
US10198491B1 (en) Computerized systems and methods for extracting and storing information regarding entities
US8341167B1 (en) Context based interactive search
US20090182723A1 (en) Ranking search results using author extraction
CA2638558C (en) Topic word generation method and system
CN111194442B (zh) 基于文档的语义丰富度对文档进行排名
US20060020588A1 (en) Constructing and maintaining a personalized category tree, displaying documents by category and personalized categorization system
US10108698B2 (en) Common data repository for improving transactional efficiencies of user interactions with a computing device
KR20190015797A (ko) 인공지능(ai)을 통한 딥러닝훈련모듈과, 순위화프레임워크모듈을 활용하여, 법률전문가에게 최적화된 모범답안을 제시하는 한편, 법률정보를 의미 벡터로 변환하여, 데이터베이스에 저장하고, 이에 대한 문자열 사전모듈을 활용한 온라인 법률정보사전을 제공하는 시스템 및 그 방법
CN111970186A (zh) 确定电子通信回复中包括的非文本回复内容的方法和装置
US20180081861A1 (en) Smart document building using natural language processing
KR20060050397A (ko) 개인화된 검색 및 정보 액세스를 제공하기 위한 시스템,방법 및 인터페이스
CN110888990A (zh) 文本推荐方法、装置、设备及介质
US20180032620A1 (en) Search query modification using personalized profile
US20120130999A1 (en) Method and Apparatus for Searching Electronic Documents
CN112035506A (zh) 一种语义识别方法及其设备
US20230030086A1 (en) System and method for generating ontologies and retrieving information using the same
US8046361B2 (en) System and method for classifying tags of content using a hyperlinked corpus of classified web pages
US11475048B2 (en) Classifying different query types
CN115062135B (zh) 一种专利筛选方法与电子设备

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