KR101140724B1 - 개념 네트워크 기반 사용자 프로파일 구성 방법 및 시스템과 이를 이용한 개인화 질의 확장 시스템 - Google Patents
개념 네트워크 기반 사용자 프로파일 구성 방법 및 시스템과 이를 이용한 개인화 질의 확장 시스템 Download PDFInfo
- Publication number
- KR101140724B1 KR101140724B1 KR1020090081082A KR20090081082A KR101140724B1 KR 101140724 B1 KR101140724 B1 KR 101140724B1 KR 1020090081082 A KR1020090081082 A KR 1020090081082A KR 20090081082 A KR20090081082 A KR 20090081082A KR 101140724 B1 KR101140724 B1 KR 101140724B1
- Authority
- KR
- South Korea
- Prior art keywords
- user profile
- concept
- module
- document
- query
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/3332—Query translation
- G06F16/3334—Selection or weighting of terms from queries, including natural language queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/3332—Query translation
- G06F16/3338—Query expansion
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)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
개인화 검색을 위한 개념 네트워크 기반 사용자 프로파일 구성 방법 및 시스템과 이를 이용한 개인화 질의 확장 시스템이 개시된다. 개념 네트워크 기반 사용자 프로파일 구성 시스템은, 사용자 프로파일을 작성하기 위해, 사용자가 검색 엔진을 사용하면서 탐색한 문서들을 대상으로 키워드를 추출하는 키워드 추출부와, 추출된 키워드들을 이용하여 세션 인터레스트를 생성하고, 생성된 세션 인터레스트를 누적하여 사용자 프로파일을 작성하는 세션 인터레스트 작성모듈과, 새로운 세션 인터레스트가 생성될 때마다 생성된 세션 인터레스트와 사용자 프로파일의 개념을 비교하는 비교모듈과, 세션 인터레스트가 사용자 프로파일의 개념과 동일 또는 유사할 경우, 세션 인터레스트와 사용자 프로파일의 개념을 서로 합하고, 상이할 경우, 새로운 사용자 프로파일의 개념으로서 추가하는 사용자 프로파일 갱신모듈을 포함한다. 이에 따라, 사용자가 질의한 단어를 사용자 프로파일과 비교하여, 개인화된 질의 단어를 추천하는 방식으로 검색의 개인화에 활용할 수 있다.
Description
본 발명은 개념 네트워크 기반 사용자 프로파일 구성 방법 및 시스템과 이를 이용한 개인화 질의 확장 시스템에 관한 것으로, 보다 상세하게는 개인화 검색을 위한 개념 네트워크 기반 사용자 프로파일 구성 방법 및 시스템과 이를 이용한 개인화 질의 확장 시스템에 관한 것이다.
일반적으로 정보 검색 시스템은 정보 수요자가 필요하다고 예측되는 정보나 데이터를 미리 수집, 가공, 처리하여 찾기 쉬운 형태로 축적해놓은 데이터베이스로부터 요구에 적합한 정보를 신속하게 찾아내어 정보 요구자에게 제공되는 시스템을 말한다.
종래에는 이러한 정보 검색 시스템을 활용하여 웹 포탈 사이트를 구축하였다. 상기 웹 포탈 사이트에서는 정보 검색시스템을 활용하여 인터넷 등을 통해 웹 사이트 등에서 정보를 수집하고 가공하여 처리하며 사용자 단말, 예를들어 컴퓨터나 무선 단말기 등에게 검색된 정보를 제공하게 된다.
현재 상용화된 검색 엔진이 훌륭한 성능을 보이고 있지만, 너무 많은 검색 결과를 보여주는 문제점이 있다. 이것은 검색 엔진이 기본적으로 질의어와 문서의 유사도를 비교하는 질의어 기반 시스템이기 때문이다. 하나의 단어가 여러 가지의 의미를 가질 수 있고, 개인마다 의도하는 바가 다를 수 있기 때문에 정확한 결과를 보장해 줄 수 없는 것이다.
이러한 문제를 해결하기 위해 질의어 확장이나 사용자의 기호에 따라 검색 결과의 순위를 조정하는 등의 많은 방법이 연구되었다.
질의어 확장은 사용자의 질의를 더 좋은 단어로 변경 또는 확장하여 검색 결과의 질을 향상시키는 방법이다. 이러한 질의어 확장을 위해서는 질의어와 관련이 있는 단어를 찾을 수 있는 사전이 필요한데, 상기 사전을 만들고 유지 보수하는 일은 매우 비용이 높은 작업이다.
이에 본 발명의 기술적 과제는 이러한 점에 착안한 것으로, 본 발명의 목적은 사용자가 질의한 단어와 방문한 웹 페이지에서 추출한 키워드간의 연관성을 이용하여 개인화 검색을 위한 개념 네트워크 기반 사용자 프로파일 구성 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기한 사용자 프로파일 구성 방법을 수행하기 위한 개념 네트워크 기반 사용자 프로파일 구성 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 상기한 개념 네트워크 기반 사용자 프로파일을 이용한 개인화 질의 확장 시스템을 제공하는 것이다.
상기한 본 발명의 목적을 실현하기 위하여 일실시예에 따른 개념 네트워크 기반 사용자 프로파일 구성 방법은, 사용자 프로파일을 작성하기 위해, 사용자가 검색 엔진을 사용하면서 탐색한 문서들을 대상으로 키워드를 추출하는 단계와, 추출된 키워드들을 이용하여 세션 인터레스트를 생성하고, 생성된 세션 인터레스트를 누적하여 사용자 프로파일을 작성하는 단계와, 새로운 세션 인터레스트가 생성될 때마다 생성된 세션 인터레스트와 사용자 프로파일의 개념을 비교하는 단계와, 상기 세션 인터레스트가 상기 사용자 프로파일의 개념과 동일 또는 유사할 경우, 상기 세션 인터레스트와 상기 사용자 프로파일의 개념을 서로 합하고, 상이할 경우, 새로운 사용자 프로파일의 개념으로서 추가하는 단계를 포함한다.
본 발명의 실시예에서, 상기 세션 인터레스트와 상기 사용자 프로파일의 개념간의 유사도 비교는 오픈 디렉토리 프로젝트(ODP)의 웹 디렉토리를 사용하여 이루어 질 수 있다.
여기서, 상기 세션 인터레스트와 상기 사용자 프로파일의 개념을 비교하는 단계는 상기 세션 인터레스트와 상기 사용자 프로파일의 개념 각각을 텀 벡터로 표현하는 단계와, 상기 세션 인터레스트에 대응하는 텀 벡터와 상기 사용자 프로파일의 개념에 대응하는 텀 벡터 각각을 상기 ODP의 카테고리를 차원으로 갖는 제1 벡터 및 제2 벡터로 변경하는 단계와, 코사인 유사도를 활용하여 상기 제1 벡터와 상기 제2 벡터를 비교하는 단계를 포함할 수 있다.
본 발명의 실시예에서, 상기 키워드를 추출하는 단계는 TF-IDF 가중치를 기준으로 각 웹 문서내에서 단어를 추출하는 단계와, 각 문서에서 추출된 단어들을 하나의 테이블에 저장하고, 등장 회수를 계산하는 단계와, 상기 등장 회수를 기준으로 일정한 임계값 이상의 등장 회수를 갖는 단어들만을 사용하여 세션 인터레스트를 구성하는 단계를 포함할 수 있다.
상기한 본 발명의 다른 목적을 실현하기 위하여 일실시예에 따른 개념 네트워크 기반 사용자 프로파일 구성 시스템은, 사용자 프로파일을 작성하기 위해, 사용자가 검색 엔진을 사용하면서 탐색한 문서들을 대상으로 키워드를 추출하는 키워드 추출부와, 추출된 키워드들을 이용하여 세션 인터레스트를 생성하고, 생성된 세션 인터레스트를 누적하여 사용자 프로파일을 작성하는 세션 인터레스트 작성모듈과, 새로운 세션 인터레스트가 생성될 때마다 생성된 세션 인터레스트와 사용자 프 로파일의 개념을 비교하는 비교모듈과, 상기 세션 인터레스트가 상기 사용자 프로파일의 개념과 동일 또는 유사할 경우, 상기 세션 인터레스트와 상기 사용자 프로파일의 개념을 서로 합하고, 상이할 경우, 새로운 사용자 프로파일의 개념으로서 추가하는 사용자 프로파일 갱신모듈을 포함한다.
본 발명의 실시예에서, 상기 비교모듈은 오픈 디렉토리 프로젝트(ODP)의 웹 디렉토리를 사용하여 상기 세션 인터레스트와 상기 사용자 프로파일의 개념간의 유사도를 비교할 수 있다.
여기서, 상기 비교모듈은 상기 세션 인터레스트와 상기 사용자 프로파일의 개념 각각을 텀 벡터로 표현하고, 상기 세션 인터레스트에 대응하는 텀 벡터를 상기 ODP의 카테고리를 차원으로 갖는 제1 벡터로 변경하며, 상기 사용자 프로파일의 개념에 대응하는 텀 벡터를 ODP의 카테고리로 차원으로 갖는 제2 벡터로 변경한 후, 코사인 유사도를 활용하여 상기 제1 벡터와 상기 제2 벡터를 비교할 수 있다.
본 발명의 실시예에서, 상기 키워드 추출부는 TF-IDF 가중치를 기준으로 각 웹 문서내에서 단어를 추출하고, 각 문서에서 추출된 단어들을 하나의 테이블에 저장하고, 등장 회수를 계산한 후, 상기 등장 회수를 기준으로 일정한 임계값 이상의 등장 회수를 갖는 단어들만을 사용하여 세션 인터레스트를 구성할 수 있다.
본 발명의 실시예에서, 상기 키워드 추출부는 질의어를 검색엔진에 질의하고 그 결과 웹 페이지를 분석하고 저장하는 웹 문서 수집모듈과, 저장된 웹 페이지들에서 단일명사를 추출하는 단일 명사 추출모듈과, TF-IDF 가중치를 계산하는 TF-IDF 가중치 계산모듈과, 상기 TF-IDF 가중치에 대하여 최중요단어출현빈도를 계산 하여 키워드를 선택하는 최중요단어출현빈도 계산모듈을 포함할 수 있다.
일례에서, 상기 최중요단어출현빈도 계산모듈은 문서내의 단어수를 기준으로 상위 특정 비율의 단어를 추출하고, 최중요단어출현빈도를 계산 및 키워드를 선택할 수 있다.
다른 예에서, 상기 최중요단어출현빈도 계산모듈은 문서내의 최대 TF-IDF 가중치를 기준으로 상위 특정 비율의 단어를 추출하고, 최중요단어출현빈도를 계산 및 키워드를 선택할 수 있다.
상기한 본 발명의 또 다른 목적을 실현하기 위하여 일실시예에 따른 개인화 질의 확장 시스템은, 개념 네트워크와, 클라이언트부로부터 질의어가 제공됨에 따라, 제공된 질의어에 대응하여 상기 개념 네트워크를 조회하여 확장된 질의어들을 획득하고, 획득한 확장된 질의어들을 상기 클라이언트부에 제공하는 질의 확장모듈과, 상기 클라이언트부에 의해 질의어가 선택됨에 따라, 선택된 질의어에 대응하는 문서들을 검색 엔진에 제공하여 검색을 의뢰하고, 의뢰에 상응하는 결과인 문서를 상기 클라이언트부에 제공하는 검색모듈과, 상기 클라이언트부로부터 세션 인터레스트가 제공됨에 따라 상기 세션 인터레스트와 상기 개념 네트워크에 저장된 사용자 프로파일의 개념을 비교하여, 상기 세션 인터레스트가 상기 사용자 프로파일의 개념과 동일 또는 유사할 경우, 상기 세션 인터레스트와 상기 사용자 프로파일의 개념을 서로 합하여 상기 개념 네트워크에 저장하고, 상이할 경우, 새로운 사용자 프로파일의 개념으로서 추가하여 상기 개념 네트워크에 저장하는 사용자 개념 네트워크 관리모듈을 포함한다.
본 발명의 실시예에서, 상기 클라이언트부는 사용자 입력을 받고, 탐색한 웹 페이지에서 키워드를 추출하여 상기 질의 확장모듈에 제공하는 질의 입력모듈과, 검색모듈에서 문서들이 제공됨에 따라 제공되는 문서들을 표시하는 뷰어모듈과, 사용자에 의해 선택된 관심 문서에서 키워드를 추출하고, 추출된 키워드를 상기 사용자 개념 네트워크 관리모듈에 제공하는 키워드 추출모듈을 포함할 수 있다.
본 발명의 실시예에서, 상기 키워드 추출모듈은 TF-IDF 가중치를 기준으로 각 웹 문서내에서 단어를 추출하고, 각 문서에서 추출된 단어들을 하나의 테이블에 저장하고, 등장 회수를 계산한 후, 상기 등장 회수를 기준으로 일정한 임계값 이상의 등장 회수를 갖는 단어들만을 사용하여 세션 인터레스트를 구성할 수 있다.
본 발명의 실시예에서, 상기 키워드 추출모듈은 질의어를 검색엔진에 질의하고 그 결과 웹 페이지를 분석하고 저장하는 웹 문서 수집모듈과, 저장된 웹 페이지들에서 단일명사를 추출하는 단일 명사 추출모듈과, TF-IDF 가중치를 계산하는 TF-IDF 가중치 계산모듈과, 상기 TF-IDF 가중치에 대하여 최중요단어출현빈도를 계산하여 키워드를 선택하는 최중요단어출현빈도 계산모듈을 포함할 수 있다.
이러한 개념 네트워크 기반 사용자 프로파일 구성 방법 및 시스템과 이를 이용한 개인화 질의 확장 시스템에 의하면, 사용자가 질의한 단어를 사용자 프로파일과 비교하여, 개인화된 질의 단어를 추천하는 방식으로 검색의 개인화에 활용할 수 있다.
이하, 첨부한 도면들을 참조하여, 본 발명을 보다 상세하게 설명하고자 한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하여 도시한 것이다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명에서는 사용자가 검색 엔진을 사용한 후에 탐색한 웹 문서를 사용해 사용자 프로파일을 작성하여 질의 확장을 위한 사전으로 사용하는 방법을 제시한다. 사용자가 방문했던 웹 문서를 이용하므로 사용자별로 서로 다른 프로파일을 구성하게되고, 이를 질의 확장에 사용하면 개인 의도를 검색 결과에 반영할 수 있다.
본 발명에서는 사용자 프로파일을 구성하기 위해 사용자가 검색 엔진 사용 후에 방문했던 웹 페이지에서 최중요단어출현빈도(Table Term Frequency, TTF) 기법을 사용하여 키워드를 추출한다.
최중요단어출현빈도 기법은 특정 문서집합 전체에서 키워드를 추출하기 위한 방법으로서, 용어 빈도수 (또는 단어 빈도수) 및 반전된 도큐먼트 빈도수(Term Frequency-Inverse Document Frequency, 이하 TF-IDF) 가중치를 이용한다.
TF-IDF 가중치는 어떤 문서 집합에 속해 있는 특정 문서내에서 등장하는 단어들에 대해서 중요한 정도를 평가할 수 있는 통계적 측정값이다.
TF(단어 빈도수, term frequency)는 특정한 단어가 문서 내에 얼마나 자주 등장하는지를 나타내는 값으로, TF 값이 높을수록 문서에서 중요하다고 간주할 수 있다. 하지만 단어 자체가 문서군 내에서 자주 사용되는 경우, 이것은 그 단어가 흔하게 등장한다는 것을 의미한다. 이것을 DF(문서 빈도수, document frequency)라고 하며, DF 값의 역수를 IDF(inverse document frequency)라고 한다. TF-IDF는 TF와 IDF를 곱한 값이다. IDF 값은 문서군의 성격에 따라 결정된다. 예를들어 '원자'라는 낱말은 일반적인 문서들 사이에서는 잘 나오지 않기 때문에 IDF 값이 높아지고 문서의 핵심어가 될 수 있지만, 원자에 대한 문서를 모아놓은 문서군의 경우 이 낱말은 상투어가 되어 각 문서들을 세분화하여 구분할 수 있는 다른 낱말들이 높은 가중치를 얻게 된다.
상기한 키워드들과 사용자가 질의했던 단어는 공통적으로 어떤 개념을 가르킨다고 가정하며, 상기한 키워드를 사용하여 질의어 확장을 할 수 있다.
그러면, 이하에서, 최중요단어출현빈도 기법을 사용하는 키워드 추출 방법에 대해 설명하고, 개인 프로파일을 구성하는 기본 모델에 대해 설명한다.
<검색 결과에 대한 키워드 추출>
본 발명에서는 사용자가 질의한 단어와 높은 연관성을 갖는 단어를 찾기 위해 검색엔진에서 특정 단어로 검색하여 방문한 웹 페이지들에서 키워드를 추출한다. 이러한 키워드를 추출하기 위해서 최중요단어출현빈도를 사용한다. 최중요단어출현빈도는 문서 집합이 주어졌을 때, 먼저 TF-IDF 가중치를 사용하여 문서내에서 중요한 단어를 일정 비율로 추출한다. 각 문서에서 추출한 중요한 단어들을 중복을 허용하여 하나의 테이블에 넣고 다시 발생횟수를 카운트한다. 상기 발생횟수가 최중요단어출현빈도이면, 카운트된 값이 높은 단어를 주어진 문서 집합 전체에서의 키워드로 간주하게 된다.
이하, 본 발명에서 사용된 TF-IDF 가중치를 구하는 방법과 최중요단어출현빈도를 구하는 방법을 각각 설명한다.
<TF-IDF 가중치>
TF-IDF 가중치는 정보 검색과 텍스트 마이닝에서 이용하는 가중치로, 여러 문서로 이루어진 문서군이 있을 때, 어떤 단어가 특정 문서내에서 얼마나 중요한 것인지를 나타내는 통계적 수치이다. 문서의 핵심어를 추출하거나, 검색 엔진에서 검색 결과의 순위를 결정하거나, 문서들 사이의 비슷한 정도를 구하는 등의 용도로 사용할 수 있다.
상대적으로 큰 TF-IDF 가중치를 갖는 단어는 더 중요하다고 볼 수 있다. 본 발명에서, 문서 j에서 등장한 단어 i의 TF-IDF 가중치는 하기하는 수학식 1에 의해 산출된다.
수학식 1은 문서 j에서 등장한 단어 i의 TF-IDF 가중치를 계산하는 식이고, TF 값과 IDF 값의 곱으로 계산된다.
먼저, TF 값은 한 문서내에서 빈도가 높은 단어가 더 중요하게 본다는 의미이며, 수학식 2와 같이 특정 단어 출현 빈도를 모든 단어의 총 출현 횟수로 나누는 표준화된 값을 사용한다. 그리고 IDF 값은 보다 적은 문서에서 등장한 단어가 더 중요하다는 의미로 사용되며, 하기하는 수학식 3을 이용하여 계산한다.
본 발명에서는 사용자가 검색 엔진에 한번 질의한 뒤에 방문했던 웹 페이지들을 각각 개별 문서로 간주하고, 상기 개별 문서들로 하나의 문서 집합을 구성한다. 이렇게 구성한 문서 집합에 대하여 TF-IDF 가중치를 계산한 뒤에 다음의 최중요단어출현빈도(Table Term Frequency; TTF)를 적용한다.
<최중요단어출현빈도(Table Term Frequency)>
앞에서 설명한 TF-IDF 가중치를 사용하면 문서 내부에서 어떤 단어가 더 중요한지를 확인할 수 있다. 하지만 TF-IDF 가중치는 문서 집합 전체에서의 중요한 정도를 나타내는 것이 아니기 때문에 최중요단어출현빈도(TTF)를 사용하여 주어진 문서 집합에서 가장 중요한 단어를 찾는다.
도 1a는 본 발명에 일실시예에 따른 개념 네트워크 기반 사용자 프로파일 구성 시스템을 설명하는 블럭도이다. 도 1b는 도 1a에 도시된 키워드 추출부의 일례를 설명하기 위한 블록도이다.
도 1a 및 도 1b를 참조하면, 본 발명의 일실시예에 따른 개념 네트워크 기반 사용자 프로파일 구성 시스템은 키워드 추출부(100) 및 사용자 프로파일 작성부(200)를 포함한다.
키워드 추출부(100)는 웹 문서 수집모듈(110), 단일명사 추출모듈(120), TF-IDF 가중치 계산모듈(130) 및 최중요단어출현빈도 계산모듈(140)을 포함한다. 본 실시예에서는 키워드 추출부(100)를 웹 문서 수집모듈(110), 단일명사 추출모듈(120), TF-IDF 가중치 계산모듈(130) 및 최중요단어출현빈도 계산모듈(140)로 구분하였으나, 이는 논리적으로 또는 기능적으로 구분하였을 뿐 하드웨어적으로 구분한 것은 아니다.
상기 웹 문서 수집모듈(110)은 질의어를 검색엔진에 질의하여, 그 결과 웹 페이지를 분석하고, 사용자가 선택한 결과 웹 페이지만을 저장한다.
상기 단일명사 추출모듈(120)은 저장된 웹 페이지들에서 단일명사를 추출한다.
상기 TF-IDF 가중치 계산모듈(130)은 TF-IDF 가중치를 계산한다. 상기 TF-IDF 가중치 계산모듈(130)에 의한 TF-IDF 가중치의 계산은 후술하기로 한다.
상기 최중요단어출현빈도 계산모듈(140)은 TF-IDF 가중치에 대하여 최중요단 어출현빈도를 계산하고, 키워드를 선택하게 된다.
일례로, 문서내의 단어수를 기준으로 상위 특정 비율의 단어를 추출하여 최중요단어출현빈도를 계산할 수 있다. 이어, 계산된 최중요단어출현빈도를 근거로 키워드를 선택하게 된다.
다른 예로, 문서 내의 최대 TF-IDF 가중값을 기준으로 상위 특정 비율의 단어를 추출하여 최중요단어출현빈도를 계산할 수 있다. 이어, 계산된 최중요단어출현빈도를 근거로 키워드를 선택하게 된다. 상기 최중요단어출현빈도 계산모듈(140)에 의한 TF-IDF 가중치의 계산은 후술하기로 한다.
사용자 프로파일 작성부(200)는 세션 인터레스트 작성모듈(210), 비교모듈(220) 및 사용자 프로파일 갱신모듈(230)을 포함한다. 본 실시예에서는 사용자 프로파일 작성부(200)를 세션 인터레스트 작성모듈(210), 비교모듈(220) 및 사용자 프로파일 갱신모듈(230)로 구분하였으나, 이는 논리적으로 또는 기능적으로 구분하였을 뿐 하드웨어적으로 구분한 것은 아니다.
세션 인터레스트 작성모듈(210)은 키워드 추출부(100)에 의해 추출된 키워드들을 이용하여 세션 인터레스트를 생성하고, 생성된 세션 인터레스트를 누적하여 사용자 프로파일을 작성한다.
비교모듈(220)은 새로운 세션 인터레스트가 생성될 때마다 생성된 세션 인터레스트와 사용자 프로파일의 개념을 비교한다. 상기 비교모듈(220)은 오픈 디렉토리 프로젝트(ODP)의 웹 디렉토리를 사용하여 상기 세션 인터레스트와 상기 사용자 프로파일의 개념간의 유사도를 비교한다. 상기 비교모듈(220)은 상기 세션 인터레 스트와 상기 사용자 프로파일의 개념 각각을 텀 벡터로 표현하고, 상기 세션 인터레스트에 대응하는 텀 벡터를 상기 ODP의 카테고리를 차원으로 갖는 제1 벡터로 변경하며, 상기 사용자 프로파일의 개념에 대응하는 텀 벡터를 ODP의 카테고리로 차원으로 갖는 제2 벡터로 변경한 후, 코사인 유사도를 활용하여 상기 제1 벡터와 상기 제2 벡터를 비교한다.
사용자 프로파일 갱신모듈(230)은 상기 비교모듈(220)에 의한 비교 결과에 따라 상기 세션 인터레스트가 상기 사용자 프로파일의 개념과 동일 또는 유사할 경우, 상기 세션 인터레스트와 상기 사용자 프로파일의 개념을 서로 합하여 상기 개념 네트워크(300)에 저장하고, 상이할 경우, 새로운 사용자 프로파일의 개념으로서 추가하여 상기 개념 네트워크(300)에 저장한다.
도 2a는 각각의 문서에 대하여 계산된 TF-IDF 가중치를 바탕으로 문서 전체에서 최중요단어출현빈도를 계산하는 방법을 설명하기 위한 흐름도이다.
도 2a를 참조하면, 각 문서에 대하여 TF-IDF 가중치를 계산한다(단계 S110). 여기서, 각 문서는 사용자가 검색 엔진에 한번 질의한 뒤에 방문했던 웹 페이지들을 각각 개별 문서로서 간주된다.
도 2b는 각 문서에 대응하는 단어 및 TF-IDF 가중치의 일례를 나타낸 표이다.
도 2b를 참조하면, 문서번호 1에 존재하는 단어 <영화>의 계산된 TF-IDF 가중치는 0.5이고, 문서번호 1에 단어 <스릴러>의 계산된 TF-IDF 가중치는 0.4이며, 문서번호 1에 단어 <개봉>의 계산된 TF-IDF 가중치는 0.1이고, 문서번호 2에 단어 <영화>의 계산된 TF-IDF 가중치는 0.6이고, 문서번호 2에 단어 <스릴러>의 계산된 TF-IDF 가중치는 0.4이고, 문서번호 2에 단어 <한국>의 계산된 TF-IDF 가중치는 0.1이다.
이렇게 계산된 TF-IDF 가중치를 통해 문서내에서 어떤 단어가 더 중요한지를 알 수 있게 된다.
도 2a의 설명으로 환원하여, 각 문서에서 가장 중요한 단어들, 즉 높은 TF-IDF 가중치를 갖는 단어만을 추출한다(단계 S120). 즉, 단계 S120에서, 각각 전체 단어수와 최대 TF-IDF 가중치를 기준으로 상위 60%의 단어만을 추출하는 경우, 0.6 대신 0.4를 곱하여 그 곱보다 큰 단어를 추출하면 출현한 전에 단어 중에서 중요한 단어 60%를 취하게 된다. 예를들어, 도 2b에 도시된 바와 같이, 문서 1의 전체 단어수는 4이므로, 4*0.6의 연산에 의해 2.4가 연산된다. 따라서, 2.4 순위 이내에 존재하는 단어 <영화>와, 단어 <스릴러>가 높은 TF-IDF 가중치를 갖는 단어로서 도 2c에 도시된 바와 같이 추출된다.
한편, 도 2b에 도시된 바와 같이, 문서 2의 전체 단어수는 3이므로, 3*0.6의 연산에 의해 1.8이 연산된다. 따라서, 1.8 순위 이내에 존재하는 단어 <영화>가 높은 TF-IDF 가중치를 갖는 단어로서 도 2c에 도시된 바와 같이 추출된다.
단계 S110에서는 각 문서에서 등장한 단어의 수를 기준으로 특정 비율로 단어를 추출하는 방법만을 사용하였으나, 추가적으로 문서내에서 최대 TF-IDF 값을 기준으로 단어를 추출하는 방법도 사용할 수도 있다. 예를들어, 도 2b에 도시된 바와 같이, 문서 1의 가장 큰 TF-IDF 값은 0.5이다. 따라서, 0.5*0.4의 연산에 의해 0.2가 연산된다. 따라서, TF-IDF 값이 0.2보다 큰 단어인 <영화>와, <스릴러>, <감독>이 최대 TF-IDF 가중치를 갖는 단어로서 추출된다.
한편, 도 2b에 도시된 바와 같이, 문서 2에서 가장 큰 TF-IDF 값은 0.6이다. 따라서, 0.6*0.4의 연산에 의해 0.24가 연산된다. 따라서, TF-IDF 값이 0.24보다 큰 단어인 <영화>와 <스릴러>가 최대 TF-IDF 가중치를 갖는 단어로서 추출된다.
이어, 추출한 단어들을 하나의 테이블에 넣고 발생횟수를 카운트하여 단어의 최중요단어출현빈도(TTF)를 계산한다(단계 S130).
도 2c는 각 문서에서 단어별 최중요단어출현빈도를 나타낸 표이다.
도 2c를 참조하면, 문서 1에 대응하여 단어 <영화>의 최중요출현빈도는 2회이고, 단어 <스릴러>의 최중요출현빈도는 1회로 각각 계산된다. 또한, 문서 2에 대응하여 단어 <영화>의 최중요출현빈도는 2회이고, 단어 <스릴러>의 최중요출현빈도는 2회이며, 단어 <감독>의 최중요출현빈도는 1회로 각각 계산된다.
이상에서는 사용자가 검색엔진에 질의한 뒤 탐색한 일련의 웹 문서들에 대하여 최중요단어출현빈도를 사용하여 키워드를 추출한 다음 최중요단어출현빈도를 갖는 단어들을 추출하는 일련의 과정에 대해 설명하였습니다.
이하에서, 상기한 방식으로 추출된 최중요출현빈도를 갖는 단어들 사이에 해당 사용자에게 특화된 연관성을 갖고 있다는 가정하에 개인화된 사전 모델, 즉 질의 확장을 위한 네트워크 기반 개인 프로파일 모델에 대해 설명한다.
<질의 확장을 위한 네트워크 기반 개인 프로파일 모델>
질의 확장은 어떤 단어로 질의할 경우, 질의된 단어와 밀접한 관계가 있는 다른 단어를 질의어로 추가하여 더 정확한 검색 결과를 얻고자 하는 것이다. 이를 위해서 단어들간의 관계가 정의되어 있는 일종의 사전이 필요하다. 또한 같은 질의어라 하더라도 그 의도가 개인별로 다를 수가 있으므로, 개인별로 사전을 구성하는 것이 더 합리적이라 할 수 있다.
따라서, 본 발명의 실시예에서는 질의어에 대한 키워드 추출 방법을 이용하여 질의 확장을 위한 네트워크 기반의 개인 프로파일을 만들고 질의 확장을 위한 사전으로 사용한다.
도 3은 질의 확장을 위한 개인 프로파일의 구성 모델을 설명하기 위한 개념도이다.
도 3을 참조하면, 사용자가 질의어 1을 검색엔진에 질의하여 결과를 반환받은 문서들중, 사용자가 링크를 클릭하여 탐색한 문서만을 대상으로 문서집합을 구성하고 구성된 문서집합에서 최중요단어출현빈도를 사용하여 키워드를 추출한다.
예를들어, 추출된 키워드들은 키워드 1, 키워드 2, 키워드 3이며, 키워드 1,2,3과 질의어 1은 개념 1을 공통적으로 가르키는 단어들로 간주한다. 이러한 관계에서, 개념 1은 해당 단어들이 공통적으로 가르키는 개념으로 정의한다.
도 4a는 사용자 프로파일로 표현되는 개념 네트워크를 설명하기 위한 개념도이다. 도 4b는 사용자 프로파일을 이용한 질의어 추천의 일례를 설명하기 위한 개념도이다. 도 4c는 질의어 추천에 따른 개념 네트워크를 설명하기 위한 개념도이다.
도 4a 내지 도 4c를 참조하면, 본 발명에서는 개인별로 프로파일을 만들어 이를 검색의 개인화에 활용한다. 각 개인의 관심사항을 사용자 프로파일로 표현할 때 도 4a에 도시된 키워드들이 개념 네트워크(Concept Network)로써 나타낸다. 예를들어, 개념 C1은 비어(Beer), 더프(Duff), 알코올(alcohol)이라는 키워드에 연결되어 있으며, 상기한 세 단어에 의해 정의된다.
사용자 프로파일은 질의어 추천에 직접적으로 활용될 수 있다. 사용자가 특정 단어 또는 알파벳 등을 입력하면, 본 발명에 따른 개인화 질의 확장 시스템은 사용자 프로파일에서 특정 단어 또는 알파벳으로 시작하는 단어를 찾고, 그 단어에 연결되어 있는 개념에 연결되어 있는 단어들을 사용하여 사용자가 질의를 확장해줄 수 있다.
예를들어, 사용자가 도 4b에 도시된 바와 같이, 'b'를 입력했을 때, 본 발명에 따른 개인화 질의 확장 시스템은 사용자 프로파일에서 알파벳 'b'로 시작하는 단어를 찾는다. 여기서, 찾아지는 알파벳 'b'로 시작하는 단어는 'beer'이다. 도 4c에 도시된 바와 같이, 단어 'beer'는 개념 C1과 개념 C3에 연결되어 있다. 따라서, 본 발명에 따른 개인화 질의 확장 시스템은 도 4b 및 도 4c에 도시된 바와 같이, 개념 C1과 개념 C3에 연결된 단어들을 조합하여 'beer', 'beer Duff', 'beer alcohol', 'beer drinking', 'beer Tavern', 'beer evening', 'beer Duff alcohol', 'beer Tavern drinking', 'beer drinking evening'이라는 확장된 단어들을 표시할 수 있다.
도 5는 개념 네트워크를 구성하는 세션 인터레스트(Session Interest)를 설명하기 위한 개념도이다.
도 5를 참조하면, 사용자의 프로파일을 작성하기 위해 사용자가 검색 엔진을 사용하면서 탐색한 문서들을 대상으로 키워드를 추출하여 사용한다. 이를 위해 세션(Session)과 세션 인터레스트(Session Interest)를 정의하여 사용한다. 여기서, 세션은 사용자가 검색 엔진에 질의를 하고, 다음 번 질의를 하기 전까지의 시간이다. 또한, 세션 인터레스트는 한 세션의 주요한 관심사항이다.
하나의 개념은 예를들어, 비어(Beer), 더프(Duff), 알코올(alcohol)과 같이 세 개의 단어들로 정의된다. 비어(Beer)는 사용자가 검색 엔진에 질의한 단어이고, 더프(Duff)와 알코올(alcohol)은 비어(Beer)를 질의한 다음, 결과 페이지에서 사용자가 보기 위해 클릭한 웹 문서들에서 추출한 키워드이다.
사용자가 질의할 때마다 이러한 세션 인터레스트를 생성하는데, 생성된 세션 인터레스트들을 누적하여 사용자 프로파일을 작성한다.
도 6은 세션 인터레스트를 누적하여 사용자 프로파일을 구성하는 일련의 절차를 설명하기 위한 개념도이다.
도 6을 참조하면, 새로운 세션 인터레스트가 생성될 때마다 기저장된 사용자 프로파일의 개념들과 비교하여 동일하거나 유사할 경우, 세션 인터레스트에 대응하는 개념과 사용자 프로파일의 개념을 합치고, 다르다고 판단될 경우, 개념으로서 더해진다. 이때 개념간의 유사도를 계산하기 위해 오픈 디렉토리 프로젝트(open directory project)라는 웹 디렉토리를 사용할 수 있다. 오픈 디렉토리 프로젝트는 수많은 웹 페이지들을 지원자들이 분류해놓은 웹 디렉토리이다.
도 7a는 오픈 디렉토리 프로젝트에서 카테고리들의 계층 구조를 설명하기 위 한 개념도이고, 도 7b는 계층 구조의 깊이에 따른 카테고리와 웹 페이지의 수의 일례를 나타내는 표이다.
도 7a를 참조하면, 오픈 디렉토리 프로젝트에서, 카테고리들이 계층구조를 갖고 있다. 즉, 최상위(Top) 카테고리의 하부에는 아트(Arts) 카테고리, 비즈니스(Business) 카테고리, 컴퓨터(Computers) 카테고리 등이 링크되어 있다. 상기 아트 카테고리에는 애니메이션(Animations) 카테고리, 골동품(Antiques) 카테고리, 건축(Architecture) 카테고리 등이 링크되어 있다. 상기 애니메이션 카테고리에는 애니메이티드 그래픽(Animated Graphics) 카테고리, 애니메이션 아트(Animation Art Galleries) 갤러리 카테고리 등이 링크되어 있다. 상기 애니메이티드 그래픽 카테고리에는 어도브 플래시(Adobe Flash) 카테고리, 애니메이티드 지아이에프(Animated GIFs) 카테고리, 아티스트(Artists) 카테고리가 링크되어 있다.
도 7b를 참조하면, 각 웹 페이지들은 소정의 카테고리로 분류되어 있다. 예를들어, 계층 깊이 1에는 17개의 카테고리들에 대응하여 89개의 웹 페이지들이 존재한다. 계층 깊이 2에는 657개의 카테고리들에 대응하여 6,427개의 웹 페이지들이 존재한다. 이러한 방식으로 계층 깊이 8에는 165,616개의 카테고리들에 대응하여 661,485개의 웹 페이지들이 존재한다.
각 카테고리들과 웹 페이지들에는 제목과 설명들이 기록되어 있다. 따라서, 오픈 디렉토리 프로젝트의 카테고리들과 웹 페이지들에 기록된 제목과 설명 등의 텍스트 데이터를 웹 페이지 검색시 활용할 수 있다.
도 8은 개념간의 유사도를 ODP 카테고리 차원에서 계산하기 위한 차원 변경 을 설명하기 위한 개념도이다.
도 8을 참조하면, 세션 인터레스트(session interest)와 사용자 프로파일의 개념(concept of profile) 각각은, 먼저 텀 벡터(term vector)(또는 도큐먼트 벡터(document vector))로 표현된다.
벡터 TS는 세션 인터레스트에 대응하는 텀 벡터고, 벡터 T1은 사용자 프로파일의 제1 개념에 대응하는 텀 벡터들이다. 벡터 TS와 벡터 T1은 각각은 ODP 카테고리들을 차원으로 갖은 벡터들로 변경되어 비교된다. 즉, 세션 인터레스트에 대응하는 텀 벡터(TS)는 ODP의 카테고리를 차원으로 갖는 벡터 Ct로 변경되고, 제1 개념에 대응하는 텀 벡터(T1)는 ODP의 카테고리를 차원으로 갖는 벡터 C1로 변경된다.
도 9는 도 8의 차원 변경을 구체적으로 설명하기 위한 개념도이다.
도 9를 참조하면, 텀 벡터(Term Vector)의 차원을 ODP 카테고리의 차원으로 변경하기 위해 먼저 ODP 카테고리들 역시 텀 벡터로 표현한다.
먼저, 각 ODP 카테고리와 해당 ODP 카테고리에 속해 있는 웹 페이지의 타이틀(Title), 설명(Description) 항목들의 문자열을 모아서 ODP 카테고리별로 문서를 하나씩 생성한다.
도 9의 슈퍼 문서(Super Document)들은 해당 ODP 카테고리별 문서들이고, 해당 문서들에 다시 TF-IDF 가중치를 매겨서 텀 벡터로 표현한다. TF-IDF 가중치는 어떤 문서 집합이 있을 때 각 문서내에서 어떤 단어가 중요한지 알 수 있는 가중치이다. TF-IDF 가중치는 텀빈도(Term Frequency)와 도큐먼트 빈도(Document Frequency)의 역수의 곱으로 계산된다. 여기서, 텀빈도는 한 문서 내에서 어떤 단어의 등장 횟수고, 도큐먼트 빈도는 문서 집합 내에서 어떤 단어가 등장한 문서의 수이다.
도 9에서, Tct는 개념을 텀 벡터로 표현한 값이고, T1, T2, T3, , TN은 카테고리를 텀 벡터로 표현한 값이다. 각 ODP 카테고리들과 개념간의 유사도는 코사인 유사도(Cosine Similarity)를 통해 계산될 수 있다. 코사인 유사도는 정보검색분야에서 가장 많이 사용되고 있는 벡터모델을 이용하여 문서간의 유사도를 측정하는 방법의 일종이다.
도 9를 참조하면, 카테고리 1에 대응하는 텀 벡터(T1)와 개념에 대응하는 텀 벡터(Tct)간의 유사도는 cos(T1, TCt)이고, 카테고리 2에 대응하는 텀 벡터(T2)와 개념에 대응하는 텀 벡터(Tct)간의 유사도는 cos(T2, TCt)이고, 카테고리 3에 대응하는 텀 벡터(T3)와 개념에 대응하는 텀 벡터(Tct)간의 유사도는 cos(T3, TCt)이다. 이와 유사한 방식으로, 카테고리 N에 대응하는 텀 벡터(TN)와 개념에 대응하는 텀 벡터(Tct)간의 유사도는 cos(TN, TCt)이다.
따라서, 카테고리 차원에서 개념 유사도는 아래의 수학식 4와 같이 표현된다.
이처럼, 개념들은 텀 벡터로 표현된 각 카테고리와의 유사도가 계산되어, 계산된 유사도 값을 각 카테고리의 차원 값으로 갖는 벡터로 표현된다. 이제 개념들을 카테고리 차원에서 유사도를 계산할 수 있다.
도 10a 및 도 10b는 키워드 추출 방법을 설명하기 위한 개념도들이다.
도 10a에 도시된 바와 같이, 사용자가 탐색했던 웹 페이지들(문서들)에서 키워드를 추출한다. 하나의 세션 내에서 사용자가 탐색했던 문서들로 문서집합을 구성한 다음, TF-IDF 가중치를 계산하여, 이 가중치를 기준으로 각 웹 문서내에서 중요한 단어를 선별적으로 추출한다. 상기한 도 10a에 도시된 바와 같이, 문서집합을 구성하고, TF-IDF 가중치를 계산한 후, 중요한 단어를 선별적으로 추출하는 것은 도 2a에서 설명된 단계 S110과 단계 S120에서 설명된 바 있다.
이어, 도 2a의 단계 S130에서 설명된 바와 같이, 각 문서에서 추출한 단어들을 하나의 테이블에 넣고 다시 등장 횟수를 계산한다. 예를들어, 도 10b에 도시된 바와 같이, 왼쪽 표의 임시 테이블(Temp. Table)에서 등장 횟수를 카운트하여 오른쪽 표의 텀빈도(Term Frequency) 테이블에 기재한다.
상기 등장 횟수를 기준으로 일정한 임계값 이상의 등장 횟수를 갖는 단어들만을 사용해서 세션 인터레스트의 개념을 구성한다. 도 10b에서, 구성되는 세션 인터레스트(Cs)에는 비어(Beer)와, 알코올(alcohol), 더프(Duff)와 같은 3개의 단어 들에 의해 정의된다.
도 11은 본 발명의 일실시예에 따른 개인화 질의 확장 시스템을 설명하기 위한 블록도이다. 특히, 사용자 프로파일 구성 기법을 기반으로 개인화된 질의 확장 시스템이 도시된다.
도 11을 참조하면, 본 발명의 일실시예에 따른 개인화 질의 확장 시스템은 클라이언트부(400)와 서버부(500)를 포함한다.
상기 클라이언트부(400)는 질의 입력모듈(410), 뷰어모듈(420), 키워드 추출모듈(430)을 포함하고, 사용자 입력을 받고, 탐색한 웹 페이지에서 키워드를 추출하여 사용자 프로파일을 만들도록 상기 서버부(500)로 전송한다. 본 실시예에서는 클라이언트부(400)를 질의 입력모듈(410), 뷰어모듈(420), 키워드 추출모듈(430)로 구분하였으나, 이는 논리적으로 또는 기능적으로 구분하였을 뿐 하드웨어적으로 구분한 것은 아니다.
상기 질의 입력모듈(410)은 사용자에 의해 입력되는 질의어를 입력받아 서버부(500)에 제공하고, 서버부(500)로부터 제공되는 확장된 질의어들중 사용자에 의해 선택된 질의어들을 서버부(500)에 제공한다.
상기 뷰어모듈(420)은 상기 서버부(500)에서 문서들이 제공됨에 따라 제공되는 문서들을 표시한다.
상기 키워드 추출모듈(430)은 사용자에 의해 선택된 관심 문서에서 키워드(또는 숏텀 개념 네트워크(short term concept network))를 추출하고, 추출된 키워드를 상기 사용자 개념 네트워크 관리모듈(530)에 제공한다. 상기 키워드 추출모 듈(430)은 도 1에서 설명된 키워드 추출부에 구비되는 구성요소들을 구비할 수 있다. 이에 대한 상세한 설명은 생략하기로 한다.
상기 서버부(500)는 질의 확장모듈(510), 검색모듈(520), 사용자 개념 네트워크 관리모듈(530)을 포함하고, 사용자의 프로파일을 구성하고 관리한다. 본 실시예에서는 서버부(500)를 질의 확장모듈(510), 검색모듈(520), 사용자 개념 네트워크 관리모듈(530)로 구분하였으나, 이는 논리적으로 또는 기능적으로 구분하였을 뿐 하드웨어적으로 구분한 것은 아니다.
상기 질의 확장모듈(510)은 클라이언트부로부터 질의어가 제공됨에 따라 제공된 질의어에 대응하여 개념 네트워크를 조회하여 확장된 질의어들을 획득하여 클라이언트부에 제공한다.
상기 검색모듈(520)은 클라이언트부에 의해 질의어가 선택됨에 따라, 선택된 질의어에 대응하는 문서들을 네트워크 검색 엔진에 제공하여 검색을 의뢰하고, 의뢰에 상응하는 결과인 문서를 클라이언트부(400)에 제공한다.
상기 사용자 개념 네트워크 관리모듈(530)은 클라이언트부(400)로부터 키워드(또는 숏트 텀 개념 네트워크(short term concept network))가 제공됨에 따라 개념 네트워크(700)에 제공한다.
도 11에서는 상기 질의 입력모듈(410), 상기 뷰어모듈(420), 상기 키워드 추출모듈(430)이 상기 클라이언트부(400)에 구비되는 것이 설명되었으나, 상기 질의 입력모듈(410), 상기 뷰어모듈(420), 상기 키워드 추출모듈(430)중 적어도 하나 이상은 상기 서버부(500)에 구비될 수도 있다.
도 12는 본 발명의 일실시예에 따른 개인화 질의 확장 방법을 설명하기 위한 흐름도이다.
도 12를 참조하면, 사용자가 새로운 질의를 입력하면(단계 S210), 질의 단어들과 웹 페이지들로부터 추출된 키워드들에 의해 세션 인터레스트가 생성된다(단계 S220).
이어, 세션 인터레스트의 텀 벡터와 ODP 카테고리의 텀 벡터들간의 유사도를 계산한다(단계 S230). 여기서, 유사도는 코사인 유사도를 계산하여 이루어진다.
이어, 카테고리 벡터로 표현되는 세션 인터레스트가 생성된다(단계 S240).
이어, 세션 인터레스트의 개념과 기저장된 사용자 프로파일의 개념과의 유사도를 계산하여 서로 비교한다(단계 S250). 이러한 비교를 통해 세션 인터레스트의 개념과 사용자 프로파일의 개념이 동일하거나 유사하다면, 두 개념들을 합쳐서 개념 네트워크에 저장하고, 세션 인터레스트의 개념과 사용자 프로파일의 개념이 서로 다르다고 판단되면, 새로운 개념으로서 개념 네트워크에 추가된다(단계 S260).
그러면, 이하에서, 사용자가 질의한 단어와 방문한 웹 페이지에서 추출한 키워드간의 연관성과 키워드를 추출하기 위한 방법으로 최중요단어출현빈도를 사용이 효율적인지를 검증하기 위한 실험예에 대해서 설명한다.
<실험예>
먼저, 검색사이트에서 특정 단어를 사용하여 질의한 다음, 최중요단어출현빈도를 사용해 키워드를 추출하고 이를 질의어와 비교하는 실험을 하였다. 이 실험은 주제가 확실한 웹 문서들로 문서 집합을 구성하고, 최중요단어출현빈도를 사용하여 추출한 키워드가 그 문서 집합의 주제와 일치하는지 확인하여 최중요단어출현빈도의 성능을 검증하기 위해 실시하였다. 그리고 추출한 키워드를 질의어로 추가하여 질의할 경우 더 나은 검색결과를 보여주는지를 확인하였다.
- 실험 환경
실험에서 사용한 검색 사이트는 구글이며, 검색결과로 얻은 웹 문서를 내려받고, 최중요단어출현빈도를 계산하는 일련의 실험과정을 자바 언어를 사용해 구현하였다, 또한, 최중요단어출현빈도의 기본 가중치인 TF-IDF 가중치를 계산하기 위해서는 단어의 발생횟수를 세는 작업을 많이 하게 되는데 데이터베이스 관리시스템(DBMS)을 사용하여 효율적으로 처리하였다. 여기서, 데이터베이스 관리시스템(DBMS)은 MySQL을 사용하였다. 그리고 수집한 웹 문서에서 단일 명사를 추출하기 위해 KLT(Korean Language Technology) 라이브러리를 사용한다. KLT 라이브러리는 색인어 추출 함수와 형태소분석 함수를 제공한다. 한편, 영어의 경우에는 스탠다드 포스 태거(Standard POS Tagger) 등의 자연어 처리 도구를 사용하여 처리한다.
- 질의어에 대한 키워드 추출부
본 실험에서는 사용자가 질의후 탐색한 웹 문서를 수집하고 키워드를 추출하기 위해 도 1에서 설명된 바와 같이, 프로토 타입의 키워드 추출부를 구성하였다. 도 1에서 설명된 키워드 추출부에 의해 수집된 웹 문서를 저장하고 키워드들을 추출하기 위해, 문서집합, 문서, 사전, 단어 출현사실, IDF, TF-IDF, 최중요단어출현빈도를 위한 테이블을 만든다. 이어, 키워드 추출부는 다음의 순서로 사용자 질의에 대하여 키워드를 추출하게 된다.
-질의에 대한 웹 문서 수집과 단어 출현사실 확인
도 1의 웹 문서 수집모듈(110)은 먼저 질의어를 입력받고 검색엔진(50)에 그 단어를 질의하여 검색결과를 가져온다. 실험자가 웹 문서 수집모듈(110)이 보여준 검색 결과중에서 자신의 의도가 맞는 웹 문서만을 선택한 후에 웹 문서 수집모듈(110)은 실험자가 선택한 웹 문서들을 수집하여 문서 저장소에 저장한다. 이때 웹 문서들은 모두 동일한 문서 집합 번호를 부여받고, 각각 하나의 문서로써 저장된다.
이렇게 저장된 문서들은 한글을 제외한 문자를 제거하고, HTML 태그를 제거하는 등의 전처리 과정을 거친 후에 KTL 라이브러리를 사용하여 단일 명사를 추출한다. 이렇게 추출된 명사들은 단어 출현사실 정보 저장소에 저장된다.
- TF-IDF 가중치 계산과 최중요단어출현빈도 계산
단어 출현 사실 관계를 이용하여 IDF를 먼저 계산하고, 이후 TF-IDF를 계산하게 된다. 상기 IDF와 상기 TF-IDF값은 'INSERT'와 'SELECT' 문을 사용한 간단한 SQL문을 사용해 데이터베이스 관리 시스템에서 계산하여 저장한다. 상기 TF-IDF를 계산하는 과정은 단어의 발생횟수를 세고 더하는 등의 간단한 연산이므로 데이터베이스 관리 시스템을 사용하여 쉽게 계산할 수 있다.
SQL문을 사용하여 TF값과 TF-IDF값을 계산한 다음, 계산된 TF-IDF 가중치를 기준으로 문서내에서 중요하다고 판단되는 단어를 일정 비율로 추출하여 각 단어가 추출된 횟수를 카운트하여 최중요단어출현빈도 값을 계산한다.
- 질의어와 키워드의 비교 실험
본 발명에 따라 개인화된 질의 확장을 하기 위해 사용하는 키워드 추출 기법의 성능을 검증하기 위해, 먼저 특정 질의어로 질의를 하여 결과로 얻은 웹 문서에서 키워드를 측정하여 비교하는 실험을 하였다.
질의어는 '영화', '스릴러', '액션' 등을 사용하였으며, 질의할 때, '영화'는 꼭 포함하고 '스릴러',' 액션'은 둘 중 하나는 포함하여 '스릴러 영화' 또는 '액션 영화'를 검색할 수 있도록 했다, 이렇게 질의하여 얻은 그 검색 결과 전체에 대해서 최중요단어출현빈도를 사용하여 키워드를 추출하여 그 결과를 보인다. 그리고 적절한 키워드를 추출하기 위해 필요한 문서의 수를 확인하기 위해 키워드를 추출하는 문서 집합에 포함시키는 문서의 수를 변화시키고 그 결과를 확인한다.
- 질의확장 실험
본 발명에서는 질의확장을 위한 개인화된 프로파일 모델을 제시하였는데 이 모델에서 질의어는 하나 이상의 개념과 관련되어 있다고 가정한다. 질의 확장 실험에서는 키워드 추출부로 추출한 키워드를 사용하여 단어의 의미를 하나의 개념으로 적절하게 한정할 수 있는지를 확인한다. 그 실험 방법을 도 13a 및 도 13b에 도시하였다.
도 13a는 종래의 질의 방식에 따른 검색된 결과 화면을 설명하기 위한 개념도이고, 도 13b는 본 발명에 따른 질의확장 실험에 의해 검색된 결과 화면을 설명하기 위한 개념도이다.
도 13a를 참조하면, 일반적으로 단어 A를 사용해 검색 엔진에 질의하면, 해당 검색 엔진은 확장되지 않은 질의까지 포함하여 검색을 수행하고, 그 검색 결과 를 사용자에게 제공한다. 여기서, 질의어의 확장이 이루어지지 않았으므로, 사용자에게 제공되는 검색 결과 화면에는 원하지 않은 결과까지 섞여 있다. 따라서, 사용자가 원하지 않은 검색결과까지 제공되므로 사용자는 다시 한전 검색을 수행하거나 불필요한 검색 결과에 대해 인내를 하면서 자신이 원하는 검색 결과를 찾아야하는 불편함이 있다.
하지만, 도 13b를 참조하면, 사용자에게 제공되는 검색 결과 화면에는 원하는 검색 결과만이 표시되었다.
즉, 질의확장 실험을 위해 먼저 실험 대상이 되는 질의어를 정한다. 본 실험에서는 '주식,' '음악', '북한' 등의 단어를 질의어로 정하였다. 그리고 각 단어와 관련된 개념을 정하고 문서 수집을 한다, '주식'에 대해서는 '가치투자'를, '음악'에 대해서는 '인디음악'을, '북한'에 대해서는 '인권 문제'를 각 단어의 개념으로 정하였다.
그 다음에는 각 추상적 개념에 맞는 웹 문서를 수집하여 키워드를 추출한다. 이렇게 얻은 키워드들과 각 질의어를 함께 질의하여 검색되는 웹 문서들의 주제가 지정한 개념과 일치하는지 확인한다.
이러한 실험에서 각 질의어에 지정된 '가치투자', '인디음악', '인권문제' 등의 개념은 질의 확장후에 검색된 문서들이 가져야 하는 정답 주제로 볼 수 있으며, 검색된 문서들의 주제가 지정된 개념과 일치할 경우 키워드를 사용한 질의 확장이 적절하였음을 확인할 수 있다.
본 실험에서는 각 개념에 대한 문서 집합은 4개의 웹 문서들로 구성하였으 며, 해당 문서 집합에서 가장 큰 최중요단어빈도값을 갖는 단어들을 키워드로 선정했다.
<실험 결과>
- 질의어에 따른 키워드 추출 결과
'영화,' '스릴러', '액션' 등의 단어를 질의어로 사용하여 그 검색 결과로 얻은 웹 문서에서 키워드를 추출한 결과가 도 14a 및 도 14b에 도시된다.
도 14a 및 도 14b는 영화, 액션, 스릴러 질의에 대한 키워드 추출 결과를 설명하기 위한 표들이다.
도 14a 및 도 14b를 참조하면, 문서 집합을 구성하는 웹 문서의 수를 2개에서 100개까지 변화시키면서 추출한 키워드를 제시하였다. 도 14a 및 도 14b에 나타난 순위는 최중요단어출현빈도 값에 따른 순위이다.
결과를 보면 8개 이상의 수집된 웹 문서들로 문서집합을 구성하고 최중요단어출현빈도 값을 계산해보면 질의어로 사용된 '영화', '액션', '스릴러' 등의 단어가 상위 순위를 얻었다.
2개, 4개, 6개의 웹 문서를 이용해 추출한 키워드에 '액션'이 빠져있는 이유는 검색사이트에 질의할 때 '액션' 또는 '스릴러'를 포함하도록 하여, 상위 검색 결과에 반환받은 웹 문서에 '스릴러'만 포함되어 있고, '액션'을 포함되어 있지 않았기 때문이다. 이러한 결과를 통해서 적은 수의 웹 문서로 구성된 문서 집합에 대해서도 효과적으로 키워드를 추출할 수 있음을 알 수 있다.
- 질의 확장 실험
먼저 각 개념들에 해당하는 웹 문서들에서 추출한 키워드들을 도 15에 제시하였다.
도 15는 각 개념에 대한 웹 문서집합에서 추출한 키워드를 설명하는 표이다.
도 15를 참조하면, <가치 투자>의 경우를 보면, <투자>, <시장>, <장기>, <주식>, <가치투자>, <투자자> 등이 가장 큰 최중요단어출현빈도 값을 얻어서 키워드로 추출되었다. 상기한 키워드들로부터 <가치투자>는 <장기>적인 투자와 관련이 있음을 알 수 있다.
이렇게 추출한 키워드들을 각 개념이 지정된 질의어와 함께 질의하였을 때의 검색 결과가 지정한 개념에 속하는 비율을 도 16에 제시하였다.
도 16은 질의 확장후 지정한 개념에 속하는 결과의 비율을 설명하기 위한 표이다.
도 16을 참조하면, <주식>이라는 단어를 <가치투자>와 관련된 키워드로 질의한 결과, 모든 검색 결과의 주제가 <가치투자>라는 개념과 일치하는 결과를 보였다.
마찬가지로 <북한>이라는 단어를 <인권문제>와 관련된 웹 문서에서 추출한 키워드를 사용하여 질의 확장했을 때도 같은 결과를 보여주었다.
그리고, <음악>의 경우, 소수의 결과가 지정한 개념에 속해 있지 않았고, 검색 결과의 수도 31개로 적은 수였는데, 이는 추출된 키워드가 너무 많아 질의어가 너무 많아졌지 때문이다. 추출된 키워드가 많은 이유는 가장 높은 최중요단어출현빈도 값을 동일하게 갖는 단어가 많았기 때문이다.
본 발명에 따른 실험에서는 실제 적은 수의 웹 문서로 이루어진 문서 집합에서 키워드를 추출하고 그 결과를 보여 최중요단어출현빈도를 사용한 키워드 추출 방법의 성능을 검증하였다.
이상에서는 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
이상에서 설명한 바와 같이, 본 발명에 따르면, 웹 문서 검색에 있어서, 질의 확장에 사용되는 사전으로 사용하기 위한 개인 프로파일의 기본적인 모델인 개념 네트워크와 그 모델을 구성하는 기본적인 연관 관계를 찾는 방법으로서, 최중요단어출현빈도를 사용한 키워드 추출 방법이 제공된다.
TF-IDF 가중치를 바탕으로 계산하는 최중요단어출현빈도를 사용하면, 주어진 문서 집합에서 중요한 키워드를 찾을 수 있다. 또한, 사용자가 검색엔진에 질의한 후 방문한 웹 문서들로 문서 집합을 구성하여 찾아낸 키워드들은 사용자의 질의어와 연관 관계를 갖는 단어를 찾을 수 있다.
이러한 방식으로 찾은 단어들과 질의어와의 연관 관계를 사용하여 개념 네트워크 기반의 사용자 프로파일을 구성할 수 있다. 그리고 사용자가 실제로 검색 엔진을 사용할 때는 매우 적은 수의 검색 결과만을 방문하므로, 적은 문서의 수로 이루어진 문서 집합에서도 의미있는 키워드를 추출할 수 있다.
도 1a는 본 발명에 일실시예에 따른 개념 네트워크 기반 사용자 프로파일 구성 시스템을 설명하는 블럭도이다.
도 1b는 도 1a에 도시된 키워드 추출부의 일례를 설명하기 위한 블록도이다.
도 2a는 각각의 문서에 대하여 계산된 TF-IDF 가중치를 바탕으로 문서 전체에서 최중요단어출현빈도를 계산하는 방법을 설명하기 위한 흐름도이다.
도 2b는 각 문서에 대응하는 단어 및 TF-IDF 가중치의 일례를 나타낸 표이다.
도 2c는 각 문서에서 단어별 최중요단어출현빈도를 나타낸 표이다.
도 3은 질의 확장을 위한 개인 프로파일의 구성 모델을 설명하기 위한 개념도이다.
도 4a는 사용자 프로파일로 표현되는 개념 네트워크를 설명하기 위한 개념도이다. 도 3b는 사용자 프로파일을 이용한 질의어 추천의 일례를 설명하기 위한 개념도이다. 도 3c는 질의어 추천에 따른 개념 네트워크를 설명하기 위한 개념도이다.
도 5는 개념 네트워크를 구성하는 세션 인터레스트(Session Interest)를 설명하기 위한 개념도이다.
도 6은 세션 인터레스트를 누적하여 사용자 프로파일을 구성하는 일련의 절차를 설명하기 위한 개념도이다.
도 7a는 오픈 디렉토리 프로젝트에서 카테고리들의 계층 구조를 설명하기 위 한 개념도이고, 도 7b는 계층 구조의 깊이에 따른 카테고리와 웹 페이지의 수의 일례를 나타내는 표이다.
도 8은 개념간의 유사도를 ODP 카테고리 차원에서 계산하기 위한 차원 변경을 설명하기 위한 개념도이다.
도 9는 차원 변경을 구체적으로 설명하기 위한 개념도이다.
도 10a 및 도 10b는 키워드 추출 방법을 설명하기 위한 개념도들이다.
도 11은 본 발명의 일실시예에 따른 개인화 질의 확장 시스템을 설명하기 위한 블록도이다.
도 12는 본 발명의 일실시예에 따른 개인화 질의 확장 방법을 설명하기 위한 흐름도이다.
도 13a는 종래의 질의 방식에 따른 검색된 결과 화면을 설명하기 위한 개념도이고, 도 13b는 본 발명에 따른 질의확장 실험에 의해 검색된 결과 화면을 설명하기 위한 개념도이다.
도 14a 및 도 14b는 영화, 액션, 스릴러 질의에 대한 키워드 추출 결과를 설명하기 위한 표들이다.
도 15는 각 개념에 대한 웹 문서집합에서 추출한 키워드를 설명하는 표이다.
도 16은 질의 확장후 지정한 개념에 속하는 결과의 비율을 설명하기 위한 표이다.
<도면의 주요부분에 대한 부호의 설명>
100 : 키워드 추출부 110 : 웹 문서 수집모듈
120 : 단일명사 추출모듈 130 : TF-IDF 가중치 계산모듈
140 : 최중요단어출현빈도 계산모듈 200 : 사용자 프로파일 작성부
210 : 세션 인터레스트 작성모듈 220 : 비교모듈
230 : 사용자 프로파일 갱신모듈 400 : 클라이언트부
410 : 질의 입력모듈 420 : 뷰어모듈
430 : 키워드 추출모듈 500 : 서버부
510 : 질의 확장모듈 520 : 검색모듈
530 : 사용자 개념 네트워크 관리모듈
Claims (18)
- 사용자 프로파일을 작성하기 위해, 사용자가 검색 엔진을 사용하면서 탐색한 문서들을 대상으로 키워드를 추출하는 단계;추출된 키워드들을 이용하여 세션 인터레스트를 생성하고, 생성된 세션 인터레스트를 누적하여 사용자 프로파일을 작성하는 단계;새로운 세션 인터레스트가 생성될 때마다 생성된 세션 인터레스트와 사용자 프로파일의 개념을 비교하는 단계; 및상기 세션 인터레스트가 상기 사용자 프로파일의 개념과 동일 또는 유사할 경우, 상기 세션 인터레스트와 상기 사용자 프로파일의 개념을 서로 합하고, 상이할 경우, 새로운 사용자 프로파일의 개념으로서 추가하는 단계를 포함하되,상기 키워드를 추출하는 단계는,질의어를 검색엔진에 질의하고 그 결과 웹 페이지를 분석하고 저장하는 단계;저장된 웹 페이지들에서 단일명사를 추출하는 단계;TF-IDF(Term Frequency-Inverse Document Frequency) 가중치를 계산하는 단계; 및상기 TF-IDF 가중치에 대하여 최중요단어출현빈도를 계산하여 키워드를 선택하는 단계를 포함하는 것을 특징으로 하는 개념 네트워크 기반 사용자 프로파일 구성 방법.
- 제1항에 있어서, 상기 세션 인터레스트와 상기 사용자 프로파일의 개념간의 유사도 비교는 오픈 디렉토리 프로젝트(ODP)의 웹 디렉토리를 사용하여 이루어지는 것을 특징으로 하는 개념 네트워크 기반 사용자 프로파일 구성 방법.
- 제2항에 있어서, 상기 세션 인터레스트와 상기 사용자 프로파일의 개념을 비교하는 단계는,상기 세션 인터레스트와 상기 사용자 프로파일의 개념 각각을 텀 벡터로 표 현하는 단계;상기 세션 인터레스트에 대응하는 텀 벡터와 상기 사용자 프로파일의 개념에 대응하는 텀 벡터 각각을 상기 ODP의 카테고리를 차원으로 갖는 제1 벡터 및 제2 벡터로 변경하는 단계; 및코사인 유사도를 활용하여 상기 제1 벡터와 상기 제2 벡터를 비교하는 단계를 포함하는 것을 특징으로 하는 개념 네트워크 기반 사용자 프로파일 구성 방법.
- 제3항에 있어서, 상기 제1 벡터 및 제2 벡터로 변경하는 단계는,상기 세션 인터레스트에 대응하는 각 카테고리와 해당 카테고리에 속한 웹 페이지의 문자열을 모아 카테고리별로 슈퍼 문서를 생성하는 단계;상기 슈퍼 문서들에 TF-IDF(Term Frequency-Inverse Document Frequency) 가중치를 매겨 텀 벡터들로 표현하는 단계; 및개념들이 텀 벡터로 표현된 각 카테고리와 유사도를 계산하여 해당 유사도 값을 각 카테고리의 차원 값으로 갖는 벡터로 표현하는 단계를 포함하고,상기 제1 벡터와 상기 제2 벡터를 비교하는 단계는개념에 대응하는 텀 벡터와 카테고리에 대응하는 텀 벡터를 코사인 유사도를 활용하여 카테고리 차원에서 비교하는 단계를 포함하는 것을 특징으로 하는 개념 네트워크 기반 사용자 프로파일 구성 방법.
- 제1항에 있어서, 상기 키워드를 추출하는 단계는,TF-IDF 가중치를 기준으로 각 웹 문서내에서 단어를 추출하는 단계;각 문서에서 추출된 단어들을 하나의 테이블에 저장하고, 등장 회수를 계산하는 단계; 및상기 등장 회수를 기준으로 일정한 임계값 이상의 등장 회수를 갖는 단어들만을 사용하여 세션 인터레스트를 구성하는 단계를 포함하는 것을 특징으로 하는 개념 네트워크 기반 사용자 프로파일 구성 방법.
- 사용자 프로파일을 작성하기 위해, 사용자가 검색 엔진을 사용하면서 탐색한 문서들을 대상으로 키워드를 추출하는 키워드 추출부;추출된 키워드들을 이용하여 세션 인터레스트를 생성하고, 생성된 세션 인터레스트를 누적하여 사용자 프로파일을 작성하는 세션 인터레스트 작성모듈;새로운 세션 인터레스트가 생성될 때마다 생성된 세션 인터레스트와 사용자 프로파일의 개념을 비교하는 비교모듈; 및상기 세션 인터레스트가 상기 사용자 프로파일의 개념과 동일 또는 유사할 경우, 상기 세션 인터레스트와 상기 사용자 프로파일의 개념을 서로 합하고, 상이할 경우, 새로운 사용자 프로파일의 개념으로서 추가하는 사용자 프로파일 갱신모듈을 포함하되,상기 키워드 추출부는,질의어를 검색엔진에 질의하고 그 결과 웹 페이지를 분석하고 저장하는 웹 문서 수집모듈;저장된 웹 페이지들에서 단일명사를 추출하는 단일 명사 추출모듈;TF-IDF(Term Frequency-Inverse Document Frequency) 가중치를 계산하는 TF-IDF 가중치 계산모듈; 및상기 TF-IDF 가중치에 대하여 최중요단어출현빈도를 계산하여 키워드를 선택하는 최중요단어출현빈도 계산모듈을 포함하는 것을 특징으로 하는 개념 네트워크 기반 사용자 프로파일 구성 시스템.
- 제6항에 있어서, 상기 비교모듈은 오픈 디렉토리 프로젝트(ODP)의 웹 디렉토리를 사용하여 상기 세션 인터레스트와 상기 사용자 프로파일의 개념간의 유사도를 비교하는 것을 특징으로 하는 개념 네트워크 기반 사용자 프로파일 구성 시스템.
- 제7항에 있어서, 상기 비교모듈은,상기 세션 인터레스트와 상기 사용자 프로파일의 개념 각각을 텀 벡터로 표현하고,상기 세션 인터레스트에 대응하는 텀 벡터를 상기 ODP의 카테고리를 차원으로 갖는 제1 벡터로 변경하며,상기 사용자 프로파일의 개념에 대응하는 텀 벡터를 ODP의 카테고리로 차원으로 갖는 제2 벡터로 변경한 후,코사인 유사도를 활용하여 상기 제1 벡터와 상기 제2 벡터를 비교하는 것을 특징으로 하는 개념 네트워크 기반 사용자 프로파일 구성 시스템.
- 제6항에 있어서, 상기 키워드 추출부는,TF-IDF 가중치를 기준으로 각 웹 문서내에서 단어를 추출하고,각 문서에서 추출된 단어들을 하나의 테이블에 저장하고, 등장 회수를 계산한 후,상기 등장 회수를 기준으로 일정한 임계값 이상의 등장 회수를 갖는 단어들만을 사용하여 세션 인터레스트를 구성하는 것을 특징으로 하는 개념 네트워크 기반 사용자 프로파일 구성 시스템.
- 삭제
- 제6항에 있어서, 상기 최중요단어출현빈도 계산모듈은문서내의 단어수를 기준으로 상위 특정 비율의 단어를 추출하고, 최중요단어출현빈도를 계산 및 키워드를 선택하는 것을 특징으로 하는 개념 네트워크 기반 사용자 프로파일 구성 시스템.
- 제6항에 있어서, 상기 최중요단어출현빈도 계산모듈은문서내의 최대 TF-IDF 가중치를 기준으로 상위 특정 비율의 단어를 추출하고, 최중요단어출현빈도를 계산 및 키워드를 선택하는 것을 특징으로 하는 개념 네트워크 기반 사용자 프로파일 구성 시스템.
- 개념 네트워크;클라이언트부로부터 질의어가 제공됨에 따라, 제공된 질의어에 대응하여 상기 개념 네트워크를 조회하여 확장된 질의어들을 획득하고, 획득한 확장된 질의어들을 상기 클라이언트부에 제공하는 질의 확장모듈-여기서, 상기 클라이언트부는, 사용자 입력을 받고, 탐색한 웹 페이지에서 키워드를 추출하여 상기 질의 확장모듈에 제공하는 질의 입력모듈과, 검색모듈에서 문서들이 제공됨에 따라 제공되는 문서들을 표시하는 뷰어모듈과, 사용자에 의해 선택된 관심 문서에서 키워드를 추출하고, 추출된 키워드를 상기 사용자 개념 네트워크 관리모듈에 제공하는 키워드 추출모듈을 포함하는 것;상기 클라이언트부에 의해 질의어가 선택됨에 따라, 선택된 질의어에 대응하는 문서들을 검색 엔진에 제공하여 검색을 의뢰하고, 의뢰에 상응하는 결과인 문서를 상기 클라이언트부에 제공하는 검색모듈; 및상기 클라이언트부로부터 세션 인터레스트가 제공됨에 따라 상기 세션 인터레스트와 상기 개념 네트워크에 저장된 사용자 프로파일의 개념을 비교하여, 상기 세션 인터레스트가 상기 사용자 프로파일의 개념과 동일 또는 유사할 경우, 상기 세션 인터레스트와 상기 사용자 프로파일의 개념을 서로 합하여 상기 개념 네트워크에 저장하고, 상이할 경우, 새로운 사용자 프로파일의 개념으로서 추가하여 상기 개념 네트워크에 저장하는 사용자 개념 네트워크 관리모듈을 포함하되,상기 키워드 추출모듈은,질의어를 검색엔진에 질의하고 그 결과 웹 페이지를 분석하고 저장하는 웹 문서 수집모듈;저장된 웹 페이지들에서 단일명사를 추출하는 단일 명사 추출모듈;TF-IDF(Term Frequency-Inverse Document Frequency) 가중치를 계산하는 TF-IDF 가중치 계산모듈; 및상기 TF-IDF 가중치에 대하여 최중요단어출현빈도를 계산하여 키워드를 선택하는 최중요단어출현빈도 계산모듈을 포함하는 것을 특징으로 하는 개인화 질의 확장 시스템.
- 삭제
- 제13항에 있어서, 상기 키워드 추출모듈은TF-IDF 가중치를 기준으로 각 웹 문서내에서 단어를 추출하고,각 문서에서 추출된 단어들을 하나의 테이블에 저장하고, 등장 회수를 계산한 후,상기 등장 회수를 기준으로 일정한 임계값 이상의 등장 회수를 갖는 단어들만을 사용하여 세션 인터레스트를 구성하는 것을 특징으로 하는 개인화 질의 확장 시스템.
- 삭제
- 제13항에 있어서, 상기 최중요단어출현빈도 계산모듈은문서내의 단어수를 기준으로 상위 특정 비율의 단어를 추출하고, 최중요단어출현빈도를 계산 및 키워드를 선택하는 것을 특징으로 하는 개인화 질의 확장 시스템.
- 제13항에 있어서, 상기 최중요단어출현빈도 계산모듈은문서내의 최대 TF-IDF 가중치를 기준으로 상위 특정 비율의 단어를 추출하고, 최중요단어출현빈도를 계산 및 키워드를 선택하는 것을 특징으로 하는 개인화 질의 확장 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090081082A KR101140724B1 (ko) | 2009-08-31 | 2009-08-31 | 개념 네트워크 기반 사용자 프로파일 구성 방법 및 시스템과 이를 이용한 개인화 질의 확장 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090081082A KR101140724B1 (ko) | 2009-08-31 | 2009-08-31 | 개념 네트워크 기반 사용자 프로파일 구성 방법 및 시스템과 이를 이용한 개인화 질의 확장 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110023304A KR20110023304A (ko) | 2011-03-08 |
KR101140724B1 true KR101140724B1 (ko) | 2012-05-04 |
Family
ID=43931445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090081082A KR101140724B1 (ko) | 2009-08-31 | 2009-08-31 | 개념 네트워크 기반 사용자 프로파일 구성 방법 및 시스템과 이를 이용한 개인화 질의 확장 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101140724B1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101401250B1 (ko) * | 2012-07-09 | 2014-05-29 | 주식회사 인프라웨어 | 전자문서에 대한 키워드맵 제공 방법 및 이를 위한 키워드맵 제공 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
KR101700820B1 (ko) * | 2012-07-11 | 2017-02-01 | 한국전자통신연구원 | 사용자 코멘트 기반 개인화 컨텐츠 검색 장치 및 방법 |
KR101418744B1 (ko) * | 2013-06-24 | 2014-07-11 | 한국과학기술정보연구원 | 위크 시그널 탐색 시스템 및 방법 |
KR102617717B1 (ko) | 2016-10-18 | 2023-12-27 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
CN114048386B (zh) * | 2021-11-23 | 2024-04-09 | 中国人民大学 | 一种基于深度学习的融合个性化和多样化的搜索方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003263459A (ja) | 2002-03-08 | 2003-09-19 | Nippon Telegr & Teleph Corp <Ntt> | 情報源類似性処理装置、情報源類似性処理方法、プログラム及び記録媒体 |
KR20060007832A (ko) * | 2004-07-22 | 2006-01-26 | 이원석 | 문서의 스타일 기반으로 추출한 키워드의 마이닝을 통해생성된 프로파일을 이용한 웹 검색방법 |
KR20070037808A (ko) * | 2005-10-04 | 2007-04-09 | 중앙대학교 산학협력단 | 자동화된 통합 프레임워크를 위한 확장된 시멘틱 웹 서비스검색방법 |
KR20070038146A (ko) * | 2004-07-13 | 2007-04-09 | 구글, 인코포레이티드 | 검색 결과에서 배치 내용 정렬의 개인화 |
-
2009
- 2009-08-31 KR KR1020090081082A patent/KR101140724B1/ko not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003263459A (ja) | 2002-03-08 | 2003-09-19 | Nippon Telegr & Teleph Corp <Ntt> | 情報源類似性処理装置、情報源類似性処理方法、プログラム及び記録媒体 |
KR20070038146A (ko) * | 2004-07-13 | 2007-04-09 | 구글, 인코포레이티드 | 검색 결과에서 배치 내용 정렬의 개인화 |
KR20060007832A (ko) * | 2004-07-22 | 2006-01-26 | 이원석 | 문서의 스타일 기반으로 추출한 키워드의 마이닝을 통해생성된 프로파일을 이용한 웹 검색방법 |
KR20070037808A (ko) * | 2005-10-04 | 2007-04-09 | 중앙대학교 산학협력단 | 자동화된 통합 프레임워크를 위한 확장된 시멘틱 웹 서비스검색방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20110023304A (ko) | 2011-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8650483B2 (en) | Method and apparatus for improving the readability of an automatically machine-generated summary | |
US9846744B2 (en) | Media discovery and playlist generation | |
US8001135B2 (en) | Search support apparatus, computer program product, and search support system | |
KR101078864B1 (ko) | 질의/문서 주제 범주 변화 분석 시스템 및 그 방법과 이를 이용한 질의 확장 기반 정보 검색 시스템 및 그 방법 | |
US8108405B2 (en) | Refining a search space in response to user input | |
US20090300046A1 (en) | Method and system for document classification based on document structure and written style | |
US8930822B2 (en) | Method for human-centric information access and presentation | |
US8812508B2 (en) | Systems and methods for extracting phases from text | |
KR101140724B1 (ko) | 개념 네트워크 기반 사용자 프로파일 구성 방법 및 시스템과 이를 이용한 개인화 질의 확장 시스템 | |
JP4569380B2 (ja) | ベクトル生成方法及び装置及びカテゴリ分類方法及び装置及びプログラム及びプログラムを格納したコンピュータ読み取り可能な記録媒体 | |
KR100954842B1 (ko) | 카테고리 태그 정보를 이용한 웹 페이지 분류 방법, 그 시스템 및 이를 기록한 기록매체 | |
Cao et al. | Mashup service recommendation based on usage history and service network | |
JP2011103075A (ja) | 抜粋文抽出方法 | |
JP2009288870A (ja) | 文書重要度算出システム、文書重要度算出方法およびプログラム | |
Musto et al. | STaR: a social tag recommender system | |
CN103942204B (zh) | 用于挖掘意图的方法和设备 | |
KR20110038247A (ko) | 키워드 추출 장치 및 방법 | |
JP4009937B2 (ja) | 文書検索装置、文書検索プログラム及び文書検索プログラムを記録した媒体 | |
Rajkumar et al. | Users’ click and bookmark based personalization using modified agglomerative clustering for web search engine | |
KR101308821B1 (ko) | 검색엔진용 키워드 추출 시스템 및 추출 방법 | |
KR101180371B1 (ko) | 폭소노미 기반 개인화 웹 검색 방법 및 이를 수행하는 시스템 | |
Gueye et al. | STRec: An Improved Graph-based Tag Recommender. | |
CN112100500A (zh) | 范例学习驱动的内容关联网站发掘方法 | |
JP5589009B2 (ja) | 推薦クエリ抽出装置及び方法及びプログラム | |
Siemiński | Fast algorithm for assessing semantic similarity of texts |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160302 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170324 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180323 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |