KR101494795B1 - 문서를 매트릭스로 표현하는 방법 - Google Patents

문서를 매트릭스로 표현하는 방법 Download PDF

Info

Publication number
KR101494795B1
KR101494795B1 KR20140078416A KR20140078416A KR101494795B1 KR 101494795 B1 KR101494795 B1 KR 101494795B1 KR 20140078416 A KR20140078416 A KR 20140078416A KR 20140078416 A KR20140078416 A KR 20140078416A KR 101494795 B1 KR101494795 B1 KR 101494795B1
Authority
KR
South Korea
Prior art keywords
concept
word
document
matrix
vector
Prior art date
Application number
KR20140078416A
Other languages
English (en)
Inventor
김한준
Original Assignee
서울시립대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울시립대학교 산학협력단 filed Critical 서울시립대학교 산학협력단
Priority to KR20140078416A priority Critical patent/KR101494795B1/ko
Application granted granted Critical
Publication of KR101494795B1 publication Critical patent/KR101494795B1/ko
Priority to US14/749,885 priority patent/US20160004701A1/en

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/35Clustering; Classification
    • 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/34Browsing; Visualisation therefor

Abstract

본 발명의 실시예에 따른 프로세서 및 상기 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스에서 문서를 매트릭스(matrix)로 표현하는 방법은, 상기 문서 내의 적어도 하나의 단어를 포함하는 단어 벡터(term vector)를 생성하는 단계, 상기 적어도 하나의 단어가 상기 문서 내에서 갖는 의미인 개념(concept)에 대하여, 상기 적어도 하나의 단어가 적어도 하나의 개념에 대하여 갖는 강도(weight)를 상기 적어도 하나의 개념마다 각각 산출하는 단계 및 상기 문서가 포함하는 상기 적어도 하나의 단어를 상기 매트릭스의 행(row)과 열(column) 중 어느 하나에 맵핑(mapping)하고, 상기 적어도 하나의 개념을 상기 매트릭스의 행과 열 중 다른 하나에 맵핑하여, 상기 문서를 상기 매트릭스로 표현하는 단계를 포함하며, 상기 매트릭스는 상기 적어도 하나의 단어가 상기 문서 내에서 상기 적어도 하나의 개념마다 갖는 강도를 구성요소로 포함할 수 있다.

Description

문서를 매트릭스로 표현하는 방법{METHOD FOR REPRESENTING DOCUMENT AS MATRIX}
본 발명은 문서(document)를 매트릭스(matrix)로 표현하는 방법에 관한 것으로, 보다 상세하게는 문서를 표현하는 방법에 있어, 문서가 포함하고 있는 단어 및 해당 단어가 해당 문서에서 갖는 개념을 매트릭스로 표현하는 방법에 관한 것이다.
시장 조사 업체인 IDC(International Data Corporation)가 최근에 발표한 디지털 유니버스 보고서(Digital Universe Study)에 따르면, 2011년에 생성된 데이터의 양은 약 1.8 제타바이트(1.8 zettabytes = 1.8조 기가바이트)로 추정되며, 향후 10년간 그 규모는 50배를 초과할 것이고, 이 중에서 비정형적(unstructured) 또는 반정형적(semi-structured) 데이터가 약 90%에 달할 것으로 전망하고 있다. 이를 기초로 살펴보면, 의미 있는 대다수의 정보는 비정형/반정형적 데이터의 형태로 존재할 것으로 예상할 수 있다.
텍스트마이닝(Text Mining)은 이러한 비정형적 또는 반정형적 데이터를 포함하는, 비정형적/반정형적인 대규모의 문서에서 의미있는 정보를 추출하여 가공하는 기술을 의미한다.
텍스트마이닝은 세부적으로 자동문서분류, 문서클러스터링, 연관관계분석, 지능형 정보검색, 정보추천, 개념망 등의 기술을 포함할 수 있으며, 이러한 텍스트마이닝의 세부 기술들은 비정형석/반정형적인 문서의 표현 형태를 기초로 실행된다. 따라서, 비정형적/반정형적 문서를 표현하는 방법은 텍스트마이닝의 세부 기술의 성능에 영향을 끼칠 수 있다.
문서를 표현하는 방법에 있어, 문서가 어떠한 단어를 포함하고 있는지 및 해당 단어가 문서 내에서 어떠한 개념(의미)을 갖는지는 표현될 수 있어야 한다. 이에 관하여 구체적으로 살펴보면, 문서는 다수의 단어를 포함하는 단어의 집합이라는 점에서 기본적으로 적어도 하나의 단어를 이용하여 표현(represent)될 수 있어야 한다. 이와 더불어, 문서 내에 포함된 단어는 문맥에 따라 다양한 개념(의미)으로 해석될 수 있으므로, 문서를 표현하는 각 단어에 대한 개념 또한 문서를 표현하는 단어와 함께 표현될 수 있어야 한다.
그러나, 종래에 문서를 표현하는 방법은, 문서가 어떠한 단어를 포함하고 있는지 및 해당 단어가 어떠한 개념(의미)을 갖는지를 동시에 표현하지 않는다. 예를 들면, Bag-of-Words 모델은 문서를 단어로 표현하고 있지만 해당 단어가 어떠한 개념(의미)을 갖는지는 표현하지 않으며, 다만 해당 단어가 갖는 중요도를 출현 빈도수를 기초로 표현할 뿐이다. 또 다른 예로써, 문서에 포함된 단어나 단어의 부분 집합을 개념(concept)으로 맵핑(mapping)함으로써 문서를 개념으로 표현하는 방법은, 문서를 단어로 표현하는 것이 아니라 문서를 개념으로 표현하고 있으며, 따라서 문서가 갖는 개념은 표현할 수 있지만 문서 내에 포함된 단어가 갖는 개념을 단어마다 표현할 수는 없다.
따라서, 문서를 표현하는 방법에 있어, 문서가 어떠한 단어를 포함하고 있는지를 표현하면서, 이와 동시에 해당 단어가 문서 내에서 어떤 개념을 갖는지를 해당 단어별로 각각 표현할 수 있는 방법이 요구된다.
특허문헌 : 한국공개특허 제2008-0035248호 (2008.04.23. 공개)
본 발명의 목적은 상술한 문제점을 모두 해결하는 것이다.
또한, 본 발명의 목적은, 문서가 어떠한 단어를 포함하고 있는지를 표현하면서, 이와 동시에 해당 단어가 문서 내에서 어떤 개념을 갖는지를 해당 단어별로 각각 표현하는 문서를 표현하는 방법을 제공하는 것을 그 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 실시예에 따르면, 프로세서 및 상기 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스에서 문서를 매트릭스(matrix)로 표현하는 방법으로써, 상기 문서에 대한 단어 벡터(term vector)가 상기 문서 내의 적어도 하나의 단어를 포함하도록 생성하는 단계, 상기 적어도 하나의 단어가 상기 문서 내에서 갖는 의미인 개념(concept)에 대하여, 상기 적어도 하나의 단어가 적어도 하나의 개념에 대하여 갖는 강도(weight)를 상기 적어도 하나의 개념마다 각각 산출하는 단계 및 상기 문서가 포함하는 상기 적어도 하나의 단어를 상기 매트릭스의 행(row)과 열(column) 중 어느 하나에 맵핑(mapping)하고, 상기 적어도 하나의 개념을 상기 매트릭스의 행과 열 중 다른 하나에 맵핑하여, 상기 문서를 상기 매트릭스로 표현하는 단계를 포함하며, 상기 매트릭스는 상기 적어도 하나의 단어가 상기 문서 내에서 상기 적어도 하나의 개념마다 갖는 강도를 구성요소로 포함할 수 있다.
또한, 상기 방법은 상기 적어도 하나의 개념을 포함하는 개념 공간(concept space)을 생성하는 단계를 더 포함할 수 있다.
또한, 상기 개념 공간은 온톨로지(ontology)를 이용하여 생성될 수 있다.
또한, 상기 개념에는 온라인 백과사전을 구성하는 웹페이지가 할당될 수 있다.
또한, 상기 개념에 상기 웹페이지가 할당됨에 있어서, 상기 웹페이지의 페이지 분량, 백링크(backlink) 갯수 또는 상기 웹페이지의 제목(title)에 특수문자가 포함되었는지 여부 중 적어도 하나를 기초로 상기 웹페이지가 상기 개념으로 할당될지 여부가 결정될 수 있다.
또한, 상기 개념은 상기 개념에 할당된 상기 웹페이지에 포함된 단어에 tf*idf((Term Frequency * Inverse Document Frequency) 방법을 적용하여 산출된 적어도 하나의 키워드를 포함할 수 있다.
또한, 상기 방법은, 상기 단어 벡터에 포함된 상기 적어도 하나의 단어의, 상기 적어도 하나의 개념 각각에 대한 강도를 포함하는 개념 벡터(concept vector)를 생성하는 단계를 더 포함하며, 상기 개념 벡터는 상기 단어 벡터에 포함된 상기 적어도 하나의 단어마다 생성될 수 있다.
또한, 상기 강도는 상기 적어도 하나의 단어의 상기 적어도 하나의 개념 각각에 대한 근접성을 정량적으로 나타낼 수 있다.
또한, 상기 단어 벡터에 포함된 상기 적어도 하나의 단어 중 제1 단어에 대한 상기 개념 벡터를 생성하는 단계는, 상기 제1 단어를 중심 단어(center word)로 설정하는 단계, 상기 제1 단어를 기준으로 상기 단어 벡터에서 기 지정된 반경(radius) 내에 있는 단어를 주변 단어로 설정하는 단계, 상기 제1 단어와 상기 주변 단어 각각이 상기 적어도 하나의 개념 각각에 포함되는지 여부를 상기 적어도 하나의 개념마다 각각 판단하는 단계 및 상기 판단하는 단계에서 판단한 결과를 기초로, 상기 제1 단어의 상기 적어도 하나의 개념 각각에 대한 강도를 산출하는 단계를 포함할 수 있다.
또한, 상기 적어도 하나의 개념 각각은 해당 개념을 나타내는 적어도 하나의 키워드를 포함할 수 있다.
또한, 상기 제1 단어와 상기 주변 단어 각각이 상기 적어도 하나의 개념 각각에 포함되는지 여부를 상기 적어도 하나의 개념마다 각각 판단하는 단계는, 상기 제1 단어와 상기 주변 단어 각각이, 상기 적어도 하나의 개념이 포함하는 상기 적어도 하나의 키워드 중 적어도 하나와 일치하는지 여부에 기초하여 상기 적어도 하나의 개념마다 각각 판단할 수 있다.
또한, 상기 제1 단어의 상기 적어도 하나의 개념 각각에 대한 강도를 산출하는 단계는, 상기 제1 단어와 상기 주변 단어 각각이 상기 개념에 포함되면 해당 단어의 상기 개념에 숫자 '1'을 할당하고 포함되지 않으면 숫자 '0'을 할당하며, 상기 할당된 숫자를 상기 적어도 하나의 개념마다 각각 합산한 값을 상기 제1 단어의 상기 개념에 대한 강도로 산출할 수 있다.
또한, 상기 제1 단어의 상기 적어도 하나의 개념 각각에 대한 강도를 산출하는 단계에서, 상기 합산한 값을 상기 제1 단어 및 상기 주변 단어의 갯수로 나눈 값을 상기 강도로 산출할 수 있다.
본 발명에 따르면, 문서를 표현하는 방법에 있어, 문서가 어떠한 단어를 포함하고 있는지를 표현할 수 있으며, 이와 동시에 단어가 해당 문서 내에서 어떤 개념을 갖는지를 표현할 수 있다.
도 1은 본 발명의 실시예에 따라 문서를 매트릭스로 표현한 것을 도시한 도면이다.
도 2a는 본 발명의 실시예에 따라 문서 집합을 단어 공간, 개념 공간 및 문서 공간으로 이루어진 단어-문서-개념의 3차 텐서(큐보이드 모델)를 이용하여 표현한 것을 도시한 도면이다.
도 2b는 본 발명의 실시예에 따른 큐보이드 모델에서 단어 공간, 개념 공간 및 문서 공간의 관계를 도시한 도면이다.
도 2c는 본 발명의 실시예에 따른 큐보이드 모델을 도시한 도면이다.
도 3은 본 발명의 실시예에 따라 개념 벡터의 생성에 관하여 도시한 도면이다.
도 4는 본 발명의 실시예에 따라 개념 벡터를 생성하는 과정을 예시적으로 도시한 도면이다.
도 5는 본 발명의 실시예에 따라 문서 집합을 단어-문서-개념의 3차 텐서로 표현하는 방법을 도시한 도면이다.
도 6은 본 발명의 실시예에 따라 개념 벡터를 생성하는 방법을 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
한편, 본 발명의 실시예로써 제시되는 문서를 매트릭스로 표현하는 방법들 중 적어도 일부나 전부는, 적어도 프로세서 및 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스 또는 컴퓨터 프로그램에 의해 선택적으로 활성화 또는 재구성되는 프로그래밍 가능한 머신(machine)상에서, 일부의 소프트웨어와 하드웨어의 하이브리드 구현 방식으로 구현될 수 있다.
또한, 본 발명의 실시예에서 문서를 매트릭스로 표현하는 방법들 중 적어도 일부나 전부는, 컴퓨터, 네트워크 서버 또는 서버 시스템, 모바일 컴퓨팅 디바이스(예를 들어, PDA(personal digitalassistant), 모바일 전화기, 스마트폰, 랩탑, 태블릿 컴퓨터 또는 그와 유사한 것), 소비자 전자 디바이스, 또는 임의의 다른 적합한 전자 디바이스 또는 그들의 임의의 조합과 같은 하나 이상의 범용 네트워크 호스트 머신에서 등에서 구현될 수 있다.
또한, 본 발명의 실시예에서 문서를 매트릭스로 표현하는 방법들 중 적어도 일부나 전부는, 하나 이상의 가상화된 컴퓨팅 환경(예를 들어 네트워크 컴퓨팅 클라우드 또는 그와 유사한 것)에서 구현될 수 있다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예에 대해 설명하기로 한다.
다만, 설명하기에 앞서 본 발명의 실시예의 설명에 있어서 매트릭스(matrix)는 2차 텐서(2-order tensor)와 동일한 의미로 사용될 수 있다.
또한, 본 발명의 실시예에 있어서 '단어'는 '용어' 또는 'term'과 동일한 의미로 사용될 수 있으며, '개념'은 '시멘틱(semantic)' 또는 '컨셉(concept)'과 동일한 의미로 사용될 수 있고, '문서'는 '텍스트(text)', 'document' 또는 '텍스트 문서'와 동일한 의미로 사용될 수 있다.
또한, 문서 집합(document corpus)은 다수의 문서들을 지칭하는 의미이다.
도 1은 본 발명의 실시예에 따라 특정 문서를 단어 공간과 개념 공간으로 이 루어진 단어-개념 매트릭스에서 표현한 것을 도시한 도면이다.
도 1을 참조하여 보다 구체적으로 살펴보면, 본 발명의 실시예에 따른 문서 표현 방법은, 특정 문서(di)를 단어 공간(10)과 개념 공간(20)으로 이루어진 단어-개념 매트릭스(term-concept matrix)(100)에서 표현할 수 있다.
여기서, 단어 공간(10)은 특정 문서(di)가 포함하고 있는 적어도 하나의 단어를 표현하는 공간일 수 있다. 예를 들면, 도 1에서 특정 문서(di)에 포함된 적어도 하나의 단어는 단어(t1 내지 tT)로 이루어진 단어 공간(10)에서 표현될 수 있다. 여기서, 특정 문서(di)는 단어 공간(10)에서 벡터의 형태로 표현될 수 있는데, 이러한 벡터를 단어 벡터(term vector)라고 지칭할 수 있다.
또한, 개념 공간(20)은 특정 문서(di) 내에 포함된 적어도 하나의 단어가 가질 수 있는 개념을 표현하는 공간일 수 있다. 예를 들면, 도 1에서 특정 문서(di)에 포함된 단어가 갖는 적어도 하나의 개념은 개념(c1 내지 cC)으로 이루어진 개념 공간(20)에서 표현될 수 있다. 여기서, 특정 문서(di) 내에 포함된 단어가 갖는 개념을 개념 공간(20)에 벡터 형태로 표현할 수 있는데, 이러한 벡터를 개념 벡터(concept vector)라고 지칭할 수 있다.
이 때, 단어 공간(10)과 개념 공간(20)은 서로 동등하며(equated) 별개인(distinct) 벡터 공간일 수 있다.
한편, 단어 공간(10)과 개념 공간(20)은 단어-개념 매트릭스(100)를 형성할 수 있다. 예를 들면, 도 1에 도시된 바와 같이 단어 공간(10)과 개념 공간(20)은 각각 단어-개념 매트릭스(100)에서 각각 행과 열로 구성될 수 있다. 다만, 이는 하나의 예시적인 것에 불과하며, 단어 공간(10)이 열로, 개념 공간(20)이 행으로 구성되는 실시예를 배제하는 것은 아니다.
이러한 단어-개념 매트릭스(100)는, 전술한 바와 같이 단어 공간(10)에서 특정 문서(di)가 갖는 단어를 표현할 수 있으며, 개념 공간(20)에서 특정 문서(di) 내에 포함된 단어가 갖는 개념을 각각의 단어마다 표현할 수 있다.
이에 관하여 보다 구체적으로 살펴보면, 단어-개념 매트릭스(100)는 특정 문서(di)에 포함된 적어도 하나의 단어가 어떤 개념에 가깝게 해석되는지를, 즉 단어의 개념에 대한 근접성을 단어의 강도(w11 내지 wTC)(50)로 표현할 수 있다.
예를 들면, 특정 문서(di)에서 단어가 개념(c1)보다 개념(c2)에 더 가까울 경우, 강도는 개념(c1)보다 개념(c2)에서 더 큰 값을 가질 수 있다.
이상에서 살펴본 바와 같이, 본 발명의 실시예에 따르면 문서는 단어 공간과 개념 공간으로 이루어진 단어-개념 매트릭스로 표현될 수 있다. 여기서, 이러한 단어 공간과 개념 공간은 서로 동등하며 별개인 벡터 공간이라는 점에 기초하여 살펴보면, 문서에 대한 단어-개념 매트릭스는 평면상에서 표현될 수 있다.
따라서, 문서를 단어-개념 매트릭스를 이용하여 평면상에 표현하는 경우, 이와 같이 표현된 문서의 집합(document corpus)은 도 2a 및 2c를 참조하면 단어 공간, 문서 공간 및 개념 공간으로 이루어진 공간상에서의 3차 텐서(3-order tensor)로 표현될 수 있다.
도 2a 및 2c를 참조하면, 문서의 집합(d1 내지 dD)(30)은 단어 공간(10)과 개념 공간(20) 및 문서 공간(30)으로 이루어진 3차 텐서(3-order tensor)(200)로 표현될 수 있다. 이하에서는, 이와 같이 문서 집합(30)을 개념 공간(20) 및 문서 공간(30)으로 이루어진 3차 텐서를 이용하여 표현하는 모델을 큐보이드(cuboid) 모델(200)이라 지칭하기로 한다.
큐보이드 모델(200)에서, 단어 공간(10)은 문서 공간(30)에 포함된 문서가 어떠한 단어를 포함하고 있는지를 표현하는 공간일 수 있다. 또한, 개념 공간(20)은 문서 공간(30)에 포함된 문서에 대하여, 해당 문서 내에 포함된 단어가 어떠한 개념을 가질 수 있는지를 표현하는 공간일 수 있다.
또한, 문서 공간(30)은 큐보이드 모델(200)을 통하여 표현하고자 하는 문서의 집합을 표현하는 공간일 수 있다. 따라서, 문서 공간(30)은 문서의 집합(d1 내지 dD)(30)과 동일한 것으로 표시되었다. 다만, 이는 예시적인 것에 불과하며 이와 달리 문서 공간(30)은 표시하고자 하는 문서의 집합(d1 내지 dD)이 아닌, 다른 문서의 집합을 지칭할 수도 있다.
이 때, 단어 공간(10)과 개념 공간(20) 및 문서 공간(30)은 서로 동등하며(equated) 별개인(distinct) 벡터 공간일 수 있다. 즉, 도 2b를 참조하면, 큐보이드 모델에서는, 단어와 개념 및 문서가 서로 동등하면서 별개의 관계를 갖는다.
큐보이드 모델(200)에서 단어는 공간과 문서로 표현될 수 있으며, 공간은 문서와 개념으로 표현될 수 있고, 개념은 단어와 문서로 표현될 수 있다. 이러한 특징은 텍스트마이닝의 세부적인 기술 분야에 다양하게 활용 가능한데, 예를 들면, 단어를 개념-문서 매트릭스를 이용하여 표현할 경우, 해당 단어가 해당 문서 집합에서 갖는 개념의 종류에 대하여 분석할 수 있다.
이상에서는, 단어-개념 매트릭스를 이용하여 단어 공간에서 특정 문서가 갖는 단어를 표현할 수 있으며, 개념 공간에서 특정 문서 내에 포함된 단어가 갖는 개념을 각각의 단어마다 강도로 표현할 수 있고, 이러한 단어-개념 매트릭스를 문서의 집합에 대해 확장할 경우 문서의 집합을 단어 공간과 문서 공간 및 개념 공간으로 이루어진 단어-문서-개념의 3차 텐서, 즉 큐보이드 모델로 표현할 수 있음에 대하여 살펴보았다.
여기서, 개념 공간에서 특정 문서 내에 포함된 단어가 갖는 개념을 각각의 단어마다 강도로 표현하기 위해서는, 특정 문서를 단어 공간에서 표현할 수 있어야 하며, 단어 공간에 표현된 각 단어가 특정 문서 내에서 가질 수 있는 개념을 개념 공간에서 강도로 산출할 수 있어야 하므로, 이에 관하여 도 1을 참조하면서 순차적으로 살펴보기로 한다.
도 1을 다시 참조하면, 특정 문서(di)는 단어 공간(10)에서 단어 벡터의 형태로 표현될 수 있으며, 이 때 단어 벡터에 포함된 단어는 특정 문서(di)에 관한 정보를 포함하는 단어(informative word)일 수 있으며, 예를 들면 수학식 1과 같이 표현될 수 있다.
Figure 112014059768611-pat00001
여기서, tv(di)는 특정 문서(di)에 대한 단어 벡터이며, 단어(t1 내지 tT)는 특정 문서(di)에 관한 정보를 포함하는 단어를 의미할 수 있다.
또한, 단어 벡터 상에서 단어의 거리는 문서 내에서 단어가 위치해 있는 거리에 비례할 수 있다. 예를 들면, 수학식 1에서 t1과 t2의 문서 내에서의 거리는, t1과 t3의 거리보다 가까울 수 있다. 다만, 이는 예시적인 것에 불과하며 이와 다른 형태인 것을 배제하는 것은 아니다.
다만, 이와 같이 문서 중에서 정보를 포함하는 단어를 추출하고 이를 벡터로 표현하는 것은 관련 분야에서 공지된 기술이므로 이에 관한 자세한 설명은 생략하기로 한다.
다음으로, 특정 문서(di) 내에 포함된 단어가 갖는 개념에 대한 강도(wjk)(50)는, 특정 문서(di)에 대하여 생성된 단어 벡터에 포함된 단어 각각에 대한 개념 벡터를 이용하여 표현할 수 있다. 여기서 이러한 단어 각각에 대한 개념 벡터는 예를 들면 수학식 2의 형태일 수 있다.
Figure 112014059768611-pat00002
이 때, cv(tj,di)는 특정 문서(di)에서 특정 단어(tj)가 갖는 각 개념(c1 내지 cC)에 대한 강도를 개념 공간(20)에서 벡터 형태로 표현한 개념 벡터이며, w(ck,tj,di)는 특정 문서(di)에서 특정 단어(tj)가 갖는 특정 개념(ck)에 대한 강도를 표현한 값이다.
여기서, 개념 공간(20)에서는 특정 문서(di)에 대하여 생성된 단어 벡터에 포함된 각각의 단어(t1 내지 tT)가 가질 수 있는 개념을 표현할 수 있으며, 이러한 개념 공간(20)은 특정 문서(di) 뿐만 아니라 특정 문서(di)를 포함하는 문서 집합을 전체적으로 포괄할 수 있어야 한다. 이를 위하여, 본 발명의 실시예에서 개념 공간(20)은, World Knowledge 수준의 온톨로지(ontology)를 활용하여 설정될 수 있다.
이 때, 개념 공간(20)을 설정하는 방법으로 온톨로지를 활용하는 것은 하나의 예시적인 것에 불과하며, 본 발명의 사상은 이와 다른 방법으로 개념 공간을 설정하는 실시예를 배제하는 것은 아니다. 예를 들면, 본 발명의 사상은 특정한 문서 집합(text corpora)이나 유의어 사전(thesauri) 또는 기타 다른 형태의 자료 등을 활용하여 개념 공간을 설정하는 실시예, 관리자에 의해 임의로 개념 공간이 설정되는 실시예, 텍스트 문서에 출현하는 주요 단어(예를 들면, 명사)들을 개념 공간으로 설정하는 실시예 등 다양한 방법으로 개념 공간을 설정하는 실시예를 포함할 수 있다. 다만, 이하에서는 온톨로지를 활용하여 개념 공간을 설정하는 것을 기준으로 설명하기로 한다.
온톨로지를 활용하여 개념 공간(20)을 설정함에 있어, 활용 가능한 온톨로지에는 World Knowledge 수준의 온톨로지, 예를 들면 위키피디아(Wikipedia), ODP(Open Directory Project), 또는 UMLS(Unified Medical language System) 등 기타 다양한 온톨로지가 있으며 이하에서는 위키피디아를 활용하는 것을 기준으로 설명할 것이지만, 활용 가능한 온톨로지의 종류가 전술한 예로 제한되는 것은 아니다. 또한, 경우에 따라서는 문서 집합에 포함된 문서의 종류에 따라 온톨로지를 선별하여 활용하거나, 2가지 이상의 온톨로지를 결합하여 활용할 수도 있다.
본 발명의 실시예에서는 온라인 백과사전을 활용하여 개념 공간(20)을 설정할 수 있으며, 예를 들면 온라인 백과사전을 구성하는 웹페이지(예를 들면, 온라인 백과사전 중 하나인 위키피디아의 웹페이지, 이하 위키페이지라 지칭)를 활용하여 개념 공간(20)을 설정할 수 있다.
보다 구체적으로 살펴보면, 위키피디아를 활용하여 개념 공간(20)을 설정함에 있어서, 위키페이지 자체를 개념 공간(20)을 구성하는 개념으로 각각 설정할 수 있으며, 해당 위키페이지의 타이틀(title)을 해당 개념의 명칭으로 할당할 수 있다. 예를 들면, "http://en.wikipedia.org/wiki/Graphics"를 URL로 갖는 위키페이지가 있는 경우, 이러한 위키페이지 자체가 하나의 개념으로 설정될 수 있으며, 이 때 해당 위키페이지의 타이틀인 'Graphics'는 해당 개념의 명칭으로 할당될 수 있다.
다만, 위키페이지를 개념으로 설정하고 해당 위키페이지의 타이틀을 해당 개념의 명칭으로 할당하는 방법은 하나의 예시적인 것에 불과하며, 이와 다른 방법으로 개념을 설정하고 개념의 명칭을 할당하는 방법을 배제하는 것은 아니다.
여기서, 개념 공간(20)은 개념으로 설정된 위키페이지가 적정 수준의 포괄성 및 품질을 가질 때 신뢰성을 가질 수 있다. 예를 들면, 위키페이지가 고유명사에 해당되는 등 지나치게 구체적인 개념을 포함하거나 또는 위키페이지의 내용이 부실한 경우, 이러한 위키페이지는 개념으로 설정되지 않도록 선별될 수 있어야 한다.
따라서, 본 발명의 실시예에서는 예를 들면 위키페이지의 페이지 분량이 기 설정된 기준 미만인지 여부, 백링크(backlink)의 갯수가 기설정된 기준 미만인지 여부 또는 타이틀에 특수문자가 포함되어 있는지 여부 등을 기초로 위키페이지를 선별할 수 있으며, 다만 이와 다른 기준에 기초하여 위키페이지를 선별하는 방법을 배제하는 것은 아니다.
이상에서는, 특정 문서(di)에 대한 단어 벡터를 생성하는 방법 및 특정 문서(di)에 대하여 생성된 단어 벡터에 포함된 각각의 단어가 가질 수 있는 개념에 대한 개념 공간(20)을 설정하는 방법에 대해 살펴보았으므로, 이하에서는 특정 문서(di)에 대한 단어 벡터에 포함된 각 단어가 개념 공간(20)에 포함된 각 개념에 대하여 갖는 강도(50)를 산출하는 방법에 대해 살펴보기로 한다.
앞서 살펴본 바와 같이, 특정 문서(di) 내에 포함된 특정 단어(tj)가 개념 공간(20)에 포함된 각 개념(c1 내지 cC)에 대하여 갖는 강도(50)는 개념 벡터의 형태로 표현될 수 있다. 따라서, 개념 벡터는 예를 들면 특정 문서(di)에 대한 단어의 강도(50)를 개념(c1)부터 개념 (cC)까지 순차적으로 구함으로써 산출될 수 있다. 다만, 이는 예시적인 것에 불과하며 특정 문서(di)에 대한 단어의 강도(50)를 모든 개념(c1 내지 cC)에 대하여 동시에 구하는 실시예를 배제하는 것은 아니나, 이하에서는 순차적으로 구하는 것을 기준으로 설명하기로 한다.
먼저, 도 4를 참조하여 살펴보면, 단어 벡터에 포함된 단어 중에서 강도(50)를 산출하고자 하는 단어를 중심 단어(또는 제1 단어)(t0)(501)라고 하면, 중심 단어(t0)(501)의 강도는 예를 들면 중심 단어(t0)(501) 및 단어 벡터 상에서 중심 단어(t0)(501)에 인접해 있는 단어(t-r 내지 tr, 이하에서는 이를 주변 단어라고 지칭함)(502)가 각각 특정 개념(c1)(31)과 관련되었는지 여부를 기초로 산출될 수 있다.
여기서, 중심 단어(t0)(501)는 예를 들면 단어 벡터를 구성하는 모든 단어에 대하여 순차적으로 이동하면서 선정될 수 있다. 또한, 주변 단어(t-r 내지 tr)(502)는 예를 들면 해당하는 중심 단어(t0)(501)으로부터 단어 벡터 상에서 앞뒤로 반경 r(503)의 거리 내에 있는 단어로 선정될 수 있다. 여기서, 반경 r(503)은 중심 단어(t0)(501)를 기준으로 주변 단어(t-r 내지 tr)(502)를 선정하는 기준이며, 이러한 반경 r(503)의 값은 기지정된 값일 수 있으며 변경 가능하다.
이 때, 중심 단어(t0)(501)가 단어 벡터의 첫번 째 단어이거나 또는 마지막 단어인 경우, 이 때의 주변 단어(502)의 개수는 변동될 수 있다. 예를 들면, 중심 단어(t0)(501)가 단어 벡터의 첫번 째 단어인 경우에는 중심 단어의 앞쪽에는 주변 단어(502)가 없을 수 있다.
한편, 중심 단어(t0)(501) 및 해당 중심 단어(t0)(501)로부터 반경 r(503)만큼 떨어져있는 주변 단어(t-r 내지 tr)(502)를 선정하기 위한 개념으로 개념 윈도우(concept window, CW)(500)가 설정될 수 있다. 중심 단어(t0)(501)에 대한 개념 윈도우(500)는 해당 중심 단어(t0)(501) 및 해당 중심 단어(t0)(501)로부터 앞뒤로 반경 r(503)의 거리를 갖는 주변 단어(t-r 내지 tr)(502)를 포함하므로, 개념 윈도우(500)는 중심 단어(t0)(501)를 포함하여 총 2*r+1의 갯수의 단어를 포함할 수 있으며, 이 때 2*r+1을 개념 윈도우(500)의 크기라고 지칭할 수 있다. 다만, 이러한 개념 윈도우(500)에 대한 정의는 예시적인 것에 불과하며, 이와 다른 정의를 가질 수 있다. 이 때, 중심 단어(t0)(501)가 단어 벡터의 첫번 째 단어이거나 또는 마지막 단어인 경우,개념 윈도우(500)의 크기는 2*r+1이 아니며, 이 경우에는 중심 단어(t0)(501)와 주변 단어(502)의 갯수를 합한 값일 수 있다.
한편, 중심 단어(t0)(501)와 주변 단어(t-r 내지 tr)(502)가 특정 개념(c1)(31)과 관련되는지 여부를 기초로 중심 단어(t0)(501)가 갖는 특정 개념(c1)(31)에 대한 강도를 산출하는 방법은, 예를 들면 중심 단어(t0)(501)와 주변 단어(t-r 내지 tr)(502) 각각이 특정 개념(c1)(31)의 위키페이지에 포함되는지 여부를 조사하여, 포함되는 경우를 '1', 포함되지 않는 경우를 '0'으로 두고, 이러한 '1' 또는 '0'의 값을 합산한 값을 강도로 산출하거나, 또는 이와 같이 합산된 값을 중심 단어와 주변 단어의 갯수인 2*r+1의 값으로 나눈 값을 강도로 산출할 수 있다.
다만, 이와 같이 중심 단어의 특정 개념에 대한 강도가 산출되는 방법은 하나의 예시적인 것에 불과하며, 본 발명의 사상은 이와 다른 방법으로 강도를 산출하는 방법을 포함하는 실시예를 배제하는 것은 아니다.
여기서, 중심 단어(t0)(501)와 주변 단어(t-r 내지 tr)(502) 각각이 특정 개념(ck)(31)의 위키페이지에 포함되는지 여부는, 예를 들면 중심 단어(t0)(501)와 주변 단어(t-r 내지 tr)(502) 각각이 특정 개념(ck)(31)에 포함되는지, 더 구체적으로는 특정 개념(ck)(31)의 위키페이지에 대한 키워드(32)(예를 들면, 키워드1, 2 등)와 일치하는지 여부로 판단될 수 있으나, 이는 예시적인 것에 불과하며 이와 다른 방법, 예를 들면 특정 개념(ck)(31)의 위키페이지에 포함된 전체 단어와의 일치 여부, 특정 개념(ck)(31)의 위키페이지의 타이틀에 포함된 단어와의 일치 여부 또는 특정 개념(ck)(31)의 위키페이지에 포함된 모든 단어와의 일치 여부 등을 통해 판단하는 방법 등을 포함할 수 있다. 다만 이하에서는 특정 개념(ck)(31)의 위키페이지에 포함된 키워드(32)와의 일치 여부로 판단하는 것을 전제로 설명하기로 한다.
이 때, 특정 개념(ck)의 위키페이지에 포함된 키워드(32)는, 해당하는 위키페이지의 특성을 대표하는 단어로 선정될 수 있다. 예를 들면, 키워드(32)는 해당하는 위키페이지에 tf*idf(Term Frequency * Inverse Document Frequency) 방법을 적용하여 선정할 수 있으며, 여기서 tf*idf 방법은 관련 분야에서 공지된 기술이므로 이에 관한 자세한 설명은 생략하기로 한다. 다만, it*idf 방법은 예시적인 것에 불과하므로 이와 다른 방법으로 키워드를 선정하는 것을 배제하는 것은 아니다.
이상에서는, 특정 문서(di) 내에 포함된 특정 단어(tj)(여기서는 중심 단어(t0))(501)가 특정 개념(c1)(31)에 대하여 갖는 강도를 구하는 방법에 대해 살펴보았다. 따라서, 특정 문서(di) 내에 포함된 특정 단어(tj)가 개념 공간(20)에 포함된 각 개념(c1 내지 cC)에 대하여 갖는 강도(50)인 개념 벡터는, 이러한 방법을 나머지 개념(c2 내지 cC)에 대하여 순차적으로 실행한다면 산출될 수 있을 것이다. 다만, 이와 같이 순차적으로 실행하는 것은 전술한 바와 같이 예시적인 것에 불과하다.
한편, 특정 문서(di) 내에 포함된 특정 단어(tj)에 대한 개념 벡터가 생성된 경우, 중심 단어(t0)(501)를 이동(예를 들면 tj에서 tj +1로 이동)(따라서 개념 윈도우(500) 또한 이동된다)하여 새로운 특정 단어에 대한 강도 산출 과정을 진행하고 이에 따라 새로운 특정 단어에 대한 개념 벡터를 생성할 수 있다.
따라서, 이러한 과정을 반복할 경우 단어 벡터에 포함된 단어 전체에 대하여 개념 벡터를 생성할 수 있을 것이나, 다만 이러한 방법은 예시적인 것에 불과하며 이와 다른 방법으로 단어 벡터에 포함된 단어 전체에 대한 개념 벡터를 생성하는 방법을 배제하는 것은 아니다.
한편, 전술한 특정 문서(di) 내에 포함된 특정 단어(tj)가 특정 개념(c1)(31)에 대하여 갖는 강도 w(ck,tj,di)를 수식으로 표현하면, 예를 들면 수학식 3과 같은 형태로 표현될 수 있다.
Figure 112014059768611-pat00003
여기서, |CWd(tj)|는 개념 윈도우(500)의 크기이며, ECWd(tj)는 특정 문서(di)의 단어 벡터에 포함된 단어 중에서 개념 윈도우(500)에 의해 특정된 단어가 어떤 단어인지를 나타내는 매트릭스이고, C는 특정 문서(di)의 단어 벡터에 포함된 단어가 개념 공간(20)의 각 개념에 포함된 키워드(32)와 일치하는지 여부를 나타내는 매트릭스이며, ck()는 ck()의 괄호 안을 계산한 행렬에서 k번째 열(column) 벡터를 의미하며, 기호 '|| ||'는 열(column) 벡터에 존재하는 모든 행에 대한 값의 절대값을 합산한 값을 의미한다.
이에 관하여 보다 구체적으로 살펴보면, ECWd(tj)는 특정 문서(di)의 단어 벡터에 포함된 단어 중에서 개념 윈도우(500)에 의해 특정된 단어가 어떤 단어인지를 나타내는 매트릭스로써, 행은 개념 윈도우(500)에 의해 특정된 단어와 관련되어 있으며 열은 단어 벡터(100)에 포함된 단어와 관련되어 있다.
또한, C는 특정 문서(di)의 단어 벡터에 포함된 단어가 개념 공간(20)의 각 개념에 포함된 키워드(32)와 일치하는지 여부를 나타내는 매트릭스로써, 행은 단어 벡터에 포함된 단어와 관련되어 있으며 열은 각 개념에 포함된 키워드(32)와 관련되어 있다.
또한, 특정 문서(di) 내에 포함된 특정 단어(tj)가 개념 공간(20)에 대하여 갖는 개념 벡터 cv(tj,di)(20)는, 특정 문서(di) 내에 포함된 특정 단어(tj)가 개념 공간(20)에 포함된 각 개념(c1 내지 cC)에 대하여 갖는 강도(50)(수학식 3)를 결합한 것이므로, 예를 들면 수학식 3을 참조하여 수학식 4로 표현될 수 있다.
Figure 112014059768611-pat00004
이하에서는, 도 4를 참조하여 전술한 개념 벡터를 구하는 방법을 예로 들어 설명하기로 한다. 여기서, 도 4에서의 예는, 특정 단어의 특정 개념에 대한 강도를 구하고 나머지 개념에 대한 강도를 순차적으로 구하는 전술한 방법과는 다르게, 특정 단어의 전체 개념에 대한 강도를 동시에 구하는 방법을 이용한다.
도 4를 참조하면, 본 발명의 실시예에 따라 문서에 포함된 단어에 대한 개념 벡터를 산출하기 위하여, 먼저 해당 문서에 대한 단어 벡터(11)를 생성한다. 예를 들면, 해당 문서에 대하여 생성된 단어 벡터(11)는 9개의 단어를 포함할 수 있다.
이 때, 해당 문서에 대한 개념 공간이 포함하는 개념 및 각 개념에 포함된 키워드는 예를 들면 도 5의 테이블(21)을 참조한다. 도 5를 참조하면, 개념 공간(22)은 COMPUTER, CULTURE, SCIENCE를 개념으로 포함하고 있고, 이들은 각각 (computer, graphics, programming, system, openGL), (culture, human, science), (computer, human, science, system)인 키워드(23)를 포함하고 있다.
이후, 강도를 산출하고자 하는 단어인 중심 단어를 programming으로 설정하고 각 개념(COMPUTER, CULTURE, SCIENCE)에 대한 강도를 산출하는 방법에 대하여 살펴보기로 한다. 먼저, 반경 r이 2인 것을 전제로 개념 윈도우(101)는 5개의 단어를 포함하며, 이 때 주변 단어는 library, openGL, science 및 system을 포함한다.
COMPUTER, CULTURE 및 SCIENCE의 각 개념(22)에 대한 키워드(23)와 전술한 중심 단어와 주변 단어의 일치 여부를 테이블(24)의 25에 1과 0으로 표시할 수 있다. 예를 들면, 도 4에 도시된 바와 같이, COMPUTER 개념에 포함된 키워드와, 중심 단어 및 주변 단어는 openGL, programming 및 system에 대하여 일치함을 알 수 있다.
이후, 각 개념에 대하여 테이블(24)에 기재된 값을 합산하고 이를 개념 윈도우의 크기인 5로 나눌 수 있다. 테이블(24)에 도시된 바와 같이, 이 값은 각 개념에 대하여 각각 3/5, 1/5 및 2/5임을 알 수 있다(26).
따라서, 중심 단어 programming에 대한 개념 벡터는 (3/5, 1/5, 2/5)(27)로 산출된다.
이후, 개념 윈도우(101)를 슬라이딩 하여 중심 단어를 programming에서 science로 옮긴 뒤 전술한 과정을 수행하고, 이러한 과정을 반복함으로써 단어 벡터(101)에 포함된 모든 단어에 대하여 개념 벡터를 생성할 수 있으며, 따라서, 해당 문서를 단어 벡터로 표현함과 동시에, 단어 벡터에 포함된 모든 단어에 대한 개념 벡터로 표현할 수 있으며, 따라서 해당 문서를 단어-개념 매트릭스를 이용하여 표현할 수 있다.
이 때, 중심 단어가 단어 벡터의 첫번 째 단어이거나 또는 마지막 단어인 경우, 이 때의 주변 단어의 개수는 변동될 수 있다. 예를 들면, 도 4에서 중심 단어가 library인 경우 주변 단어는 openGL 및 programming으로 2개일 수 있으며 이 때 개념 윈도우의 크기는 3이 될 수 있고, 마찬가지로 중심 단어가 system인 경우 주변 단어는 programming 및 science일 수 있으며 이 때 개념 윈도우의 크기는 3이 될 수 이다.
도 5 및 도 6은 본 발명의 실시예에 따라 문서를 단어-개념 매트릭스에서 표현하고, 이와 같이 표현된 문서의 집합인 문서 집합을 단어-문서-개념의 3차 텐서로, 즉 큐보이드 모델로 표현하는 방법을 도시한 도면이다.
도 5 및 도 6을 함께 참조하면, 문서에 대한 단어 벡터를 생성하고(S100), 해당 단어 벡터에 포함된 각 단어에 대한 개념 벡터를 생성한다(S200).
여기서, 각 단어에 대한 개념 벡터를 생성하는 과정은, 먼저 개념 벡터를 생성하고자 하는 단어를 중심 단어로 설정하고, 이러한 중심 단어를 기준으로 반경 r에 의해 특정된 개념 윈도우 내에 있는 단어들을 주변 단어로 특정한다(S210).
이후, 중심 단어와 주변 단어에 대하여, 개념 공간에 포함된 각각의 개념에 대한 강도를 산출하고(S220), 이와 같이 산출된 강도를 기초로 개념 벡터를 생성한다(S230).
여기서, 개념 공간은 예를 들면 위키피디아와 같은 온톨로지를 기초로 설정될 수 있으며, 보다 구체적으로는 위키피디아의 위키페이지가 개념으로 설정될 수 있다. 또한, 위키페이지는 예를 들면 해당 위키페이지를 대표하는 키워드를 포함할 수 있다.
개념에 대한 강도 산출은, 예를 들면 개념에 포함된 키워드와 해당 중심 단어 및 주변 단어의 일치 여부에 기초한 값을 개념 윈도우의 크기로 나눠서 산출할 수 있다. 여기서, 개념에 포함된 키워드와 해당 중심 단어 및 주변 단어가 일치하면 '1'을, 일치하지 않으면 '0'을 설정할 수 있다.
이 후, 중심 단어를 단어 벡터에 포함된 다른 단어로 설정하고, 전술한 강도 산출 과정을 수행하며, 이와 같이 중심 단어를 재설정하고 강도를 산출하는 과정을 단어 벡터에 포함된 모든 단어에 대하여 반복함으로써 단어 벡터에 포함된 모든 단어에 대한 개념 벡터를 생성할 수 있다(S240).
이와 같이 단어 벡터에 포함된 모든 단어에 대한 개념 벡터가 생성되면, 이를 기초로 해당 문서를 단어-개념 매트릭스를 이용하여 표현할 수 있고(S300), 이와 같이 단어-개념 매트릭스를 이용하여 표현된 문서에 대하여 이러한 문서의 집합을 단어-문서-개념의 3차 텐서를 이용하여 표현할 수 있다(S400).
이상에서 살펴본 바와 같이, 본 발명의 실시예에 따르면, 문서를 표현하는 방법에 있어, 문서가 어떠한 단어를 포함하고 있는지를 표현할 수 있고, 이와 동시에 단어별로 단어가 해당 문서 내에서 어떤 개념을 갖는지를 단어 공간과 개념 공간에서 표현할 수 있다.
본 발명의 일부 단계들은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, CD-RW, 자기테이프, 플로피디스크, HDD, 광 디스크, 광자기 저장장치 등이 있을 수 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10: 단어 공간 20: 개념 공간
30: 문서 공간
100: 단어-개념 매트릭스 200: 단어-문서-개념의 3차 텐서
500: 개념 윈도우

Claims (13)

  1. 프로세서 및 상기 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스에서 문서를 매트릭스(matrix)로 표현하는 방법으로써,
    상기 문서 내의 적어도 하나의 단어를 포함하는 단어 벡터(term vector)를 생성하는 단계;
    상기 적어도 하나의 단어가 상기 문서 내에서 갖는 의미인 개념(concept)에 대하여, 상기 적어도 하나의 단어가 적어도 하나의 개념에 대하여 갖는 강도(weight)를 상기 적어도 하나의 개념마다 각각 산출하는 단계; 및
    상기 문서가 포함하는 상기 적어도 하나의 단어를 상기 매트릭스의 행(row)과 열(column) 중 어느 하나에 맵핑(mapping)하고, 상기 적어도 하나의 개념을 상기 매트릭스의 행과 열 중 다른 하나에 맵핑하여, 상기 문서를 상기 매트릭스로 표현하는 단계를 포함하며,
    상기 매트릭스는,
    상기 적어도 하나의 단어가 상기 문서 내에서 상기 적어도 하나의 개념마다 갖는 강도를 구성요소로 포함하는
    문서를 매트릭스로 표현하는 방법.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 개념을 포함하는 개념 공간(concept space)을 생성하는 단계를 더 포함하는
    문서를 매트릭스로 표현하는 방법.
  3. 제 2 항에 있어서,
    상기 개념 공간은,
    온톨로지(ontology)를 이용하여 생성되는
    문서를 매트릭스로 표현하는 방법.
  4. 제 3 항에 있어서,
    상기 개념에는,
    온라인 백과사전을 구성하는 웹페이지가 할당되는
    문서를 매트릭스로 표현하는 방법.
  5. 제 4 항에 있어서,
    상기 개념에 상기 웹페이지가 할당됨에 있어서,
    상기 웹페이지의 페이지 분량, 백링크(backlink) 갯수 또는 상기 웹페이지의 제목(title)에 특수문자가 포함되었는지 여부 중 적어도 하나를 기초로 상기 웹페이지가 상기 개념으로 할당될지 여부가 결정되는
    문서를 매트릭스로 표현하는 방법.
  6. 제 4 항에 있어서,
    상기 개념은,
    상기 개념에 할당된 상기 웹페이지에 포함된 단어에 tf*idf((Term Frequency * Inverse Document Frequency) 방법을 적용하여 산출된 적어도 하나의 키워드를 포함하는
    문서를 매트릭스로 표현하는 방법.
  7. 제 1 항에 있어서,
    상기 적어도 하나의 단어가 상기 적어도 하나의 개념 각각에 대하여 갖는 강도를 포함하는 개념 벡터(concept vector)를 생성하는 단계를 더 포함하며,
    상기 개념 벡터는 상기 단어 벡터에 포함된 상기 적어도 하나의 단어마다 생성되는
    문서를 매트릭스로 표현하는 방법.
  8. 제 1 항에 있어서,
    상기 강도는,
    상기 적어도 하나의 단어의 상기 적어도 하나의 개념 각각에 대한 근접성을 정량적으로 나타내는
    문서를 매트릭스로 표현하는 방법.
  9. 제 7 항에 있어서,
    상기 단어 벡터에 포함된 상기 적어도 하나의 단어 중 제1 단어에 대한 상기 개념 벡터를 생성하는 단계는,
    상기 제1 단어를 중심 단어(center word)로 설정하는 단계;
    상기 제1 단어를 기준으로 상기 단어 벡터에서 기 지정된 반경(radius) 내에 있는 단어를 주변 단어로 설정하는 단계;
    상기 제1 단어와 상기 주변 단어 각각이 상기 적어도 하나의 개념 각각에 포함되는지 여부를 상기 적어도 하나의 개념마다 각각 판단하는 단계; 및
    상기 판단하는 단계에서 판단한 결과를 기초로, 상기 제1 단어의 상기 적어도 하나의 개념 각각에 대한 강도를 산출하는 단계를 포함하는
    문서를 매트릭스로 표현하는 방법.
  10. 제 9 항에 있어서,
    상기 적어도 하나의 개념 각각은,
    해당 개념을 나타내는 적어도 하나의 키워드를 포함하는
    문서를 매트릭스로 표현하는 방법.
  11. 제 10 항에 있어서,
    상기 제1 단어와 상기 주변 단어 각각이 상기 적어도 하나의 개념 각각에 포함되는지 여부를 상기 적어도 하나의 개념마다 각각 판단하는 단계는,
    상기 제1 단어와 상기 주변 단어 각각이, 상기 적어도 하나의 개념이 포함하는 상기 적어도 하나의 키워드 중 적어도 하나와 일치하는지 여부에 기초하여, 상기 적어도 하나의 개념마다 각각 판단하는
    문서를 매트릭스로 표현하는 방법.
  12. 제 9 항에 있어서,
    상기 제1 단어의 상기 적어도 하나의 개념 각각에 대한 강도를 산출하는 단계는,
    상기 제1 단어와 상기 주변 단어 각각이 상기 개념에 포함되면 해당 단어의 상기 개념에 숫자 '1'을 할당하고 포함되지 않으면 숫자 '0'을 할당하며,
    상기 할당된 숫자를 상기 적어도 하나의 개념마다 각각 합산한 값을 상기 제1 단어의 상기 개념에 대한 강도로 산출하는
    문서를 매트릭스로 표현하는 방법.
  13. 제 12 항에 있어서,
    상기 제1 단어의 상기 적어도 하나의 개념 각각에 대한 강도를 산출하는 단계에서,
    상기 합산한 값을 상기 제1 단어 및 상기 주변 단어의 갯수로 나눈 값을 상기 강도로 산출하는
    문서를 매트릭스로 표현하는 방법.
KR20140078416A 2014-06-25 2014-06-25 문서를 매트릭스로 표현하는 방법 KR101494795B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20140078416A KR101494795B1 (ko) 2014-06-25 2014-06-25 문서를 매트릭스로 표현하는 방법
US14/749,885 US20160004701A1 (en) 2014-06-25 2015-06-25 Method for Representing Document as Matrix

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20140078416A KR101494795B1 (ko) 2014-06-25 2014-06-25 문서를 매트릭스로 표현하는 방법

Publications (1)

Publication Number Publication Date
KR101494795B1 true KR101494795B1 (ko) 2015-02-23

Family

ID=52594098

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20140078416A KR101494795B1 (ko) 2014-06-25 2014-06-25 문서를 매트릭스로 표현하는 방법

Country Status (2)

Country Link
US (1) US20160004701A1 (ko)
KR (1) KR101494795B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180020552A (ko) * 2016-08-18 2018-02-28 에스케이텔레콤 주식회사 문서 분류 장치 및 방법
KR20190038240A (ko) * 2017-09-28 2019-04-08 한국과학기술원 개체명 임베딩 시스템 및 방법
KR102066215B1 (ko) * 2019-08-29 2020-01-14 비큐리오 주식회사 온톨로지 매트릭스를 이용한 정보의 의미 패턴 수치화 방법 및 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248718B2 (en) * 2015-07-04 2019-04-02 Accenture Global Solutions Limited Generating a domain ontology using word embeddings

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6510406B1 (en) * 1999-03-23 2003-01-21 Mathsoft, Inc. Inverse inference engine for high performance web search
US6633868B1 (en) * 2000-07-28 2003-10-14 Shermann Loyall Min System and method for context-based document retrieval
US20070294223A1 (en) * 2006-06-16 2007-12-20 Technion Research And Development Foundation Ltd. Text Categorization Using External Knowledge
US7899666B2 (en) * 2007-05-04 2011-03-01 Expert System S.P.A. Method and system for automatically extracting relations between concepts included in text
US9367608B1 (en) * 2009-01-07 2016-06-14 Guangsheng Zhang System and methods for searching objects and providing answers to queries using association data
US8768960B2 (en) * 2009-01-20 2014-07-01 Microsoft Corporation Enhancing keyword advertising using online encyclopedia semantics
US20130007020A1 (en) * 2011-06-30 2013-01-03 Sujoy Basu Method and system of extracting concepts and relationships from texts
US10509814B2 (en) * 2014-12-19 2019-12-17 Universidad Nacional De Educacion A Distancia (Uned) System and method for the indexing and retrieval of semantically annotated data using an ontology-based information retrieval model

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Deng Cai외4. Support Tensor Machines for Text Categorization. 2006.4. *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180020552A (ko) * 2016-08-18 2018-02-28 에스케이텔레콤 주식회사 문서 분류 장치 및 방법
KR102594011B1 (ko) 2016-08-18 2023-10-24 에스케이텔레콤 주식회사 문서 분류 장치 및 방법
KR20190038240A (ko) * 2017-09-28 2019-04-08 한국과학기술원 개체명 임베딩 시스템 및 방법
KR102024300B1 (ko) 2017-09-28 2019-09-24 한국과학기술원 개체명 임베딩 시스템 및 방법
KR102066215B1 (ko) * 2019-08-29 2020-01-14 비큐리오 주식회사 온톨로지 매트릭스를 이용한 정보의 의미 패턴 수치화 방법 및 장치

Also Published As

Publication number Publication date
US20160004701A1 (en) 2016-01-07

Similar Documents

Publication Publication Date Title
US10360307B2 (en) Automated ontology building
US9104657B2 (en) Using lexical analysis and parsing in genome research
US9135240B2 (en) Latent semantic analysis for application in a question answer system
EP2866421B1 (en) Method and apparatus for identifying a same user in multiple social networks
US10572473B2 (en) Optimized data visualization according to natural language query
US20170177180A1 (en) Dynamic Highlighting of Text in Electronic Documents
CN108140018A (zh) 创作用于基于文本的文档的视觉表示
US20120233160A1 (en) System and method for assisting a user to identify the contexts of search results
JP7358003B2 (ja) 複数のクエリ解釈に基づくファセットベースのクエリ絞り込み
KR101494795B1 (ko) 문서를 매트릭스로 표현하는 방법
CN111522886B (zh) 一种信息推荐方法、终端及存储介质
CN110612522A (zh) 实体模型的建立
Hoppe et al. Corporate Semantic Web–Applications, Technology, Methodology: Summary of the Dagstuhl Workshop 2015
CN109672706B (zh) 一种信息推荐方法、装置、服务器及存储介质
US11651013B2 (en) Context-based text searching
CN109582967B (zh) 舆情摘要提取方法、装置、设备及计算机可读存储介质
US11157532B2 (en) Hierarchical target centric pattern generation
Rouhani et al. What do we know about the big data researches? A systematic review from 2011 to 2017
CN109471969A (zh) 一种应用搜索方法、装置及设备
US11734602B2 (en) Methods and systems for automated feature generation utilizing formula semantification
JP6228909B2 (ja) 行動ネットワーク情報抽出装置、行動ネットワーク情報抽出方法及び行動ネットワーク情報抽出プログラム
KR101769940B1 (ko) 문서를 검색하는 방법
KR101096431B1 (ko) 도서 분류 방법 및 도서 분류 시스템
CN109857838B (zh) 用于生成信息的方法和装置
US11036936B2 (en) Cognitive analysis and content filtering

Legal Events

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

Payment date: 20180124

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190201

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200203

Year of fee payment: 6