KR101828995B1 - 키워드 클러스터링 방법 및 장치 - Google Patents

키워드 클러스터링 방법 및 장치 Download PDF

Info

Publication number
KR101828995B1
KR101828995B1 KR1020170057280A KR20170057280A KR101828995B1 KR 101828995 B1 KR101828995 B1 KR 101828995B1 KR 1020170057280 A KR1020170057280 A KR 1020170057280A KR 20170057280 A KR20170057280 A KR 20170057280A KR 101828995 B1 KR101828995 B1 KR 101828995B1
Authority
KR
South Korea
Prior art keywords
cluster
keyword
clusters
merging
similarity
Prior art date
Application number
KR1020170057280A
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 KR1020170057280A priority Critical patent/KR101828995B1/ko
Application granted granted Critical
Publication of KR101828995B1 publication Critical patent/KR101828995B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F17/30613
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • G06F17/30011
    • G06F17/3069

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)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

키워드 클러스터링 방법이 제공된다. 본 발명의 일 실시예에 따른 키워드 클러스터링 방법은, 키워드 클러스터링 장치에 의해 수행되는 복수의 키워드상에 대한 키워드 클러스터링 방법에 있어서, 상기 복수의 키워드를 이용하여 복수의 클러스터가 포함된 초기 클러스터셋을 구성하는 단계, 상기 초기 클러스터셋에서, 단일 키워드에서 추출된 특징에 기반한 특징 벡터(feature vector) 간 유사도가 임계 값 이상인 클러스터를 병합하는 과정을 반복하여, 중간 클러스터셋을 구성하는 단계 및 상기 중간 클러스터셋에서, 동일 문서에 포함된 복수의 키워드에서 추출된 특징에 기반한 특징 벡터 간 유사도가 임계 값 이상인 클러스터를 병합하는 과정을 반복하여, 최종 클러스터셋을 구성하는 단계를 포함할 수 있다.

Description

키워드 클러스터링 방법 및 장치{Method and Apparatus for clustering keywords}
본 발명은 키워드 클러스터링 방법 및 장치에 관한 것이다. 보다 자세하게는, 각종 디지털 문서(digital document)에 포함된 대량의 키워드로부터 정확도 높은 클러스터를 고속으로 구축하는 키워드 클러스터링 방법 및 장치에 관한 것이다.
대부분의 디지털 문서(e.g. 논문, 특허문헌, 연구보고서 등)에는 문서의 저자가 직접 작성한 키워드가 포함되어 있다. 해당 키워드는 문서의 주제를 함축적으로 나타내는 것이기 때문에, 동일한 키워드를 가지고 있는 문서들은 동일한 주제를 포함하고 있을 가능성이 매우 높다. 따라서, 디지털 문서에 포함되어 있는 키워드를 이용하면 문서의 모든 내용을 분석하지 않더라도 문서 간의 연관성을 쉽고 정확하게 분석할 수 있다.
문서에 대한 연관성 검색, 정보 요약, 정보 시각화 등의 다양한 기능을 제공하기 위한 기반 기술로 키워드 클러스터링 기술이 주로 활용된다. 예를 들어, 문서에 포함된 키워드를 대상으로 키워드 클러스터가 구축되면, 동일 클러스터 내에 포함된 키워드를 공유하는 문서 간에 연관성이 있다는 추론을 할 수 있다.
그러나, 대량의 키워드로부터 정확도 높은 클러스터를 고속으로 구축하는 것은 쉽지 않은 문제이며, 구체적으로 다음과 같은 문제를 해결하여야 한다.
첫 번째는, 이음동의어와 동음이의어로 인해 야기되는 클러스터의 정확도 저하 문제이다. 동음이의어는 실제로 다른 의미를 갖고 있으나, 키워드 문자열이 동일하기 때문에 동일한 클러스터에 소속되어 클러스터의 정확도를 저하시키며, 이음동의어는 실제로 동일한 의미를 갖고 있으나, 문자열이 상이하기 때문에 서로 다른 클러스터에 소속되어 클러스터의 정확도를 저하시키는 문제가 있다.
두 번째는, 띄어쓰기 오류와 오탈자로 인해 야기되는 클러스터의 정확도 저하 문제이다. 디지털 문서에서 포함된 대부분의 키워드는 해당 디지털 문서의 저자에 의해 생성되기 때문에, 키워드 작성 시에 저자의 잘못된 입력으로 인해서 각종 띄어쓰기 오류, 오탈자 등이 존재할 수 있다. 이로 인해, 동일한 키워드가 서로 다른 클러스터에 소속되는 오류가 발생할 수 있다.
세 번째는, 언어의 다양성 문제이다. 논문과 연구 보고서와 같은 디지털 문서에는 대부분 한글 키워드와 그에 대응되는 영어 키워드가 존재한다. 따라서, 서로 다른 언어로 구성된 키워드쌍 리스트가 주어진 경우에도 키워드 클러스터가 정확하게 구축될 필요가 있다.
네 번째는, 클러스터링 성능에 관한 문제이다. 현재, 기 축적된 디지털 문서는 매우 방대하기 때문에, 대량의 키워드를 효율적으로 클러스터링하는 방법이 필수적으로 요구된다. 성능 문제를 해결하기 위해 반복적인 클러스터 합병을 통해 새로운 클러스터를 구축하는 상향식 계층적 클러스터링 알고리즘(bottom-up agglomerative hierarchical clustering algorithm)이 제안된 바 있다. 그러나, 해당 알고리즘을 이용하더라도 클러스터 병합 때마다 모든 클러스터 간의 유사도를 계산해야 하기 때문에 여전히 키워드 클러스터링에 관한 성능 문제는 해결되지 않고 있다.
따라서, 상술한 문제점을 해결하기 위한 키워드 클러스터링 방법이 요구된다.
한국등록특허 105641호 (2010.09.02 공개)
본 발명이 해결하고자 하는 기술적 과제는, 이음동의어 및 동음이의어가 포함된 복수의 키워드에 대하여 정확도 높은 클러스터를 구축하는 키워드 클러스터링 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 띄어쓰기 오류 및 오탈자가 포함된 복수의 키워드에 대하여 정확도 높은 클러스터를 구축하는 키워드 클러스터링 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 서로 다른 언어로 구성된 키워드쌍의 리스트로부터 클러스터를 구축하는 키워드 클러스터링 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 대량의 키워드로부터 클러스터를 효율적으로 구축하는 키워드 클러스터링 방법 및 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 키워드 클러스터링 방법은, 키워드 클러스터링 장치에 의해 수행되는 복수의 키워드상에 대한 키워드 클러스터링 방법에 있어서, 상기 복수의 키워드를 이용하여 복수의 클러스터가 포함된 초기 클러스터셋을 구성하는 단계, 상기 클러스터셋에서, 단일 키워드에서 추출된 특징에 기반한 특징 벡터(feature vector) 간 유사도가 임계 값 이상인 클러스터를 병합하는 과정을 반복하여, 중간 클러스터셋을 구성하는 단계 및 상기 중간 클러스터셋에서, 동일 문서에 포함된 복수의 키워드에서 추출된 특징에 기반한 특징 벡터 간 유사도가 임계 값 이상인 클러스터를 병합하는 과정을 반복하여, 최종 클러스터셋을 구성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 초기 클러스터셋을 구성하는 단계는, 상기 복수의 키워드에 포함된 각각의 키워드를 하나의 클러스터로 생성하는 과정을 반복하여, 복수의 클러스터가 포함된 제1 클러스터셋을 구성하는 단계, 상기 제1 클러스터셋에서, 동일한 키워드를 공유하는 클러스터를 병합하는 과정을 반복하여, 상기 클러스터셋을 구성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 복수의 키워드에 포함된 각각의 키워드는 제1 키워드 및 제2 키워드를 포함하는 키워드쌍이고, 상기 제2 키워드는 상기 제1 키워드와 다른 언어로 표현되고 의미가 대응되는 키워드이되, 상기 중간 클러스터셋을 구성하는 단계는, 상기 초기 클러스터셋에 포함된 각각의 클러스터에 대하여, 상기 제1 키워드를 기초로 제1 특징을 추출하고, 상기 제1 특징을 기초로 제1 특징 벡터를 생성하는 단계, 상기 초기 클러스터셋에 포함된 각각의 클러스터에 대하여, 상기 제2 키워드를 기초로 제2 특징을 추출하고, 상기 제2 특징을 기초로 제2 특징 벡터를 생성하는 단계 및 상기 초기 클러스터셋 중에서, 상기 제1 특징 벡터 간 유사도와 상기 제2 특징 벡터 간 유사도를 기초로 산출된 평균 유사도가 임계 값 이상인 클러스터를 병합하는 과정을 반복하여, 상기 중간 클러스터셋을 구성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 중간 클러스터셋을 구성하는 단계는, 상기 초기 클러스터셋에 포함된 각각의 클러스터에 대하여, 상기 각각의 클러스터에 포함된 키워드로부터 특징을 추출하는 단계, 상기 특징 별로, 각 특징이 포함된 클러스터를 가리키는 역 인덱스(inverted index)을 구축하는 단계, 상기 중간 클러스터셋에서, 아직 선정되지 않은 어느 하나의 클러스터를 병합 기준 클러스터로 선정하는 제1 단계, 상기 역 인덱스를 이용하여, 상기 병합 기준 클러스터의 특징을 공유하는 클러스터를 검색하고, 상기 검색된 클러스터 중에서 병합 후보 클러스터를 선정하는 제2 단계, 상기 병합 후보 클러스터 중에서, 상기 병합 기준 클러스터와 상기 병합 후보 클러스터 간의 제1 유사도가 제1 임계 값 이상인 클러스터를 병합 대상 클러스터로 선정하는 제3 단계, 상기 병합 기준 클러스터와 상기 병합 대상 클러스터를 병합하는 제4 단계 및 상기 제1 단계 내지 상기 제4 단계를 반복하여, 상기 중간 클러스터셋을 구성하는 단계를 포함할 수 있다.
키워드 클러스터링 장치에 의해 수행되는 계층적 클러스터링 기반의 키워드 클러스터링 방법에 있어서, 복수의 키워드를 이용하여, 복수의 클러스터가 포함된 제1 클러스터셋을 구성하는 단계, 상기 제1 클러스터셋에 포함된 각각의 클러스터에 대하여, 상기 각각의 클러스터에 포함된 키워드로부터 특징을 추출하는 단계, 상기 특징 별로, 각 특징이 포함된 클러스터를 가리키는 역 인덱스(inverted index)을 구축하는 단계, 상기 제1 클러스터셋에 포함된 클러스터 중에서, 아직 선정되지 않은 어느 하나의 클러스터를 병합 기준 클러스터로 선정하는 제1 단계, 상기 역 인덱스를 이용하여, 상기 병합 기준 클러스터의 특징을 공유하는 클러스터를 검색하고, 상기 검색된 클러스터 중에서 병합 후보 클러스터를 선정하는 제2 단계, 상기 병합 후보 클러스터 중에서, 상기 병합 기준 클러스터와 상기 병합 후보 클러스터 간의 제1 유사도가 임계 값 이상인 클러스터를 병합 대상 클러스터로 선정하는 제3 단계, 상기 병합 기준 클러스터와 상기 병합 대상 클러스터를 병합하는 제4 단계 및 상기 제1 단계 내지 상기 제4 단계를 반복하여, 제2 클러스터셋을 구성하는 단계를 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 키워드 클러스터링 장치는, 하나 이상의 프로세서, 네트워크 인터페이스, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(Load)하는 메모리 및 복수의 키워드쌍 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 상기 복수의 키워드를 이용하여 복수의 클러스터가 포함된 초기 클러스터셋을 구성하는 오퍼레이션, 상기 클러스터셋에서, 단일 키워드에서 추출된 특징에 기반한 특징 벡터(feature vector) 간 유사도가 임계 값 이상인 클러스터를 병합하는 과정을 반복하여, 중간 클러스터셋을 구성하는 오퍼레이션 및 상기 중간 클러스터셋에서, 동일 문서에 포함된 복수의 키워드에서 추출된 특징에 기반한 특징 벡터 간 유사도가 임계 값 이상인 클러스터를 병합하는 과정을 반복하여, 최종 클러스터셋을 구성하는 오퍼레이션을 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 키워드 클러스터링 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 상기 복수의 키워드를 이용하여 복수의 클러스터가 포함된 초기 클러스터셋을 구성하는 단계, 상기 클러스터셋에서, 단일 키워드에서 추출된 특징에 기반한 특징 벡터(feature vector) 간 유사도가 임계 값 이상인 클러스터를 병합하는 과정을 반복하여, 중간 클러스터셋을 구성하는 단계 및 상기 중간 클러스터셋에서, 동일 문서에 포함된 복수의 키워드에서 추출된 특징에 기반한 특징 벡터 간 유사도가 임계 값 이상인 클러스터를 병합하는 과정을 반복하여, 최종 클러스터셋을 구성하는 단계를 실행시키기 위하여 기록 매체에 저장될 수 있다.
상술한 본 발명에 따르면, 동일 문서에 포함된 복수의 키워드에서 추출된 특징에 기초하여 클러스터 병합이 수행된다. 즉, 동일 문서에 포함된 복수의 키워드로부터 문맥이 반영된 특징이 추출되고, 상기 특징에 기초하여 클러스터 병합이 수행될 수 있다. 이에 따라, 이음동의어 및 동음이의어가 존재하는 경우라도 정확도 높은 클러스터가 구축되는 효과가 있다.
상술한 본 발명에 따르면, 전처리 과정을 통해 키워드에 포함된 부호문자(e.g. 공백 문자, 특수 문자, 구두점 등)가 제거된다. 또한, 키워드에서 q-gram을 이용하여 음절 단위의 특징이 추출되거나 자소 단위로 특징이 추출되고, 상기 특징에 기초하여 클러스터 병합이 수행된다. 이에 따라, 키워드 내에 띄어쓰기 및 오탈자가 존재하는 경우에도 정확도 높은 클러스터가 구축되는 효과가 있다.
상술한 본 발명에 따르면, 서로 다른 언어로 표현된 키워드쌍을 기초로 클러스터가 구축된다. 또한, 제1 키워드 및 제2 키워드 각각에 대한 특징 벡터가 산출되고, 평균적인 특징 벡터의 유사도를 고려하여 클러스터의 병합이 수행된다. 이에 따라, 복수의 언어로 구성된 키워드쌍이 주어진 경우에도 정확도 높은 클러스터가 구축되는 효과가 있다.
상술한 본 발명에 따르면, 클러스터의 초기 병합 단계에 키워드 문자열의 완전 매칭(exact matching)을 통해 별도의 유사도 계산 없이 클러스터 병합이 수행된다. 또한, 역 인덱스(inverse index)를 빠르게 병합 후보 클러스터가 검색되고, 검색된 병합 후보 클러스터에서만 클러스터 유사도 계산이 수행된다. 이에 따라, 대량의 키워드가 주어진 경우에도 고속으로 클러스터가 구축되는 효과가 있다. 또한, 키워드 클러스터링에 소요되는 시간 비용 및 컴퓨팅 비용이 모두 절감되는 효과가 있다.
상술한 본 발명에 따라 구축된 키워드 클러스터는 정보 검색, 자연어 처리, 정보 시각화, 주제 분석 등 다양한 분야에서 활용될 수 있다는 효과가 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명이 적용될 수 있는 예시적인 시스템의 구성도이다.
도 2a 내지 도 2c는 본 발명의 일 실시예에 따른 키워드 클러스터링 장치의 기능 블록도이다.
도 3a 및 도 3c는 키워드 클러스터링 장치의 입력 및 출력 데이터의 예시도이다.
도 4는 본 발명의 다른 실시예에 따른 키워드 클러스터링 장치의 하드웨어 구성도이다.
도 5 내지 도 7은 본 발명의 또 다른 실시예에 따른 키워드 클러스터링 방법을 설명하기 위한 도면이다.
도 8은 도 5에 도시된 키워드 클러스터링 방법을 구성하는 세부 단계(S200)를 설명하기 위한 상세 순서도이다.
도 9a 내지 도 9c는 도 5에 도시된 키워드 클러스터링 방법을 구성하는 세부 단계(S300)를 설명하기 위한 상세 순서도이다.
도 10은 본 발명의 몇몇 실시예에서 참조될 수 있는 역 인덱싱 기법을 설명하기 위한 도면이다.
도 11은 본 발명의 몇몇 실시예에서 참조될 수 있는 특징 벡터의 예시도이다.
도 12는 도 5에 도시된 키워드 클러스터링 방법을 구성하는 세부 단계(S500)를 설명하기 위한 상세 순서도이다.
도 13은 본 발명의 몇몇 실시예에 따라 구축된 키워드 클러스터가 활용되는 예를 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 도면들을 참조하여 본 발명의 몇몇 실시예들을 설명한다.
도 1은 본 발명이 적용될 수 있는 예시적인 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 키워드 클러스터링 장치(100)는 검색 서버(200), 수집 서버(300) 등과 협력하여 검색 시스템을 구성할 수 있다. 또한, 상기 검색 시스템은 사용자 단말(400)의 검색 요청에 응답하여 다양한 검색 결과를 제공할 수 있다. 예를 들어, 상기 검색 시스템은 사용자 단말(400)로부터 특정 주제를 가리키는 검색 키워드의 수신에 응답하여, 상기 특정 주제와 관련된 다양한 디지털 문서를 검색 결과로 제공할 수 있다.
상기 검색 시스템에서, 검색 서버(200)는 키워드 클러스터링 장치(100)가 제공하는 클러스터 기반으로 검색 기능을 제공하는 컴퓨팅 장치이다. 사용자 단말(400)로부터 검색 키워드와 함께 검색 요청을 수신하는 경우, 검색 서버(200)는 키워드 클러스터링 장치(100)가 제공한 클러스터셋을 이용하여 검색 결과를 제공할 수 있다. 이에 대한 간략한 예시는 도 13을 참조하도록 한다.
상기 검색 시스템에서, 수집 서버(300)는 키워드 클러스터링 장치(100)에 입력되는 각종 디지털 문서(digital document)를 수집하는 컴퓨팅 장치이다. 상기 디지털 문서는 예를 들어 논문, 특허문헌, 연구 보고서 등을 포함할 수 있다. 수집 서버(300)는 웹 크롤링(web crawling) 기술을 이용하여 수집 대상 웹 사이트에 게시된 디지털 문서를 자동으로 수집할 수 있다. 또한, 수집 서버(300)는 수집된 디지털 문서에서 자동으로 키워드를 추출할 수 있다. 예를 들어, 수집된 디지털 문서가 제공하는 한글 키워드 및 영문 키워드를 자동으로 추출할 수 있다. 키워드를 별도로 제공하지 않는 경우, 수집 서버(300)는 TF-IDF(Term Frequency-Inverse Document Frequency) 등 당해 기술 분야에서 널리 알려진 적어도 하나의 알고리즘을 이용하여 키워드를 자동으로 추출할 수도 있다.
본 발명의 일 실시예에 따른 키워드 클러스터링 장치(100)는 복수의 키워드를 입력 받고, 키워드 클러스터를 구축하는 컴퓨팅 장치이다. 여기서, 상기 컴퓨팅 장치는 데스크톱(desktop), 랩탑(laptop) 등이 될 수 있으나, 이에 국한되는 것은 아니고, 연산 수단이 구비된 장치라면 어떠한 장치로 구현되더라도 무방하다. 단, 대량의 키워드로부터 고속으로 클러스터를 구축하기 위해서는 고성능의 서버로 구현되는 것이 바람직할 수 있다.
이하 본 발명의 몇몇 실시예들에서, 키워드 클러스터링 장치(100)에 입력되는 개별 키워드는 (제1 키워드, 제2 키워드)와 같이 복수의 키워드로 구성된 키워드쌍이라고 가정한다. 여기서, 상기 제1 키워드 및 상기 제2 키워드는 서로 다른 언어로 표현되고, 의미가 서로 대응되는 키워드이다. 키워드쌍에 대한 예는 도 3a 또는 도 6b를 참조하도록 한다. 참고로, 상기 제1 키워드 및 상기 제2 키워드는 하나의 어절 또는 복수의 어절이 포함된 어구가 될 수도 있다.
별도의 언급이 없는 한, 이해의 편의를 제공하기 위해 상기 제1 키워드는 한글 키워드이고, 상기 제2 키워드는 상기 제1 키워드에 대응되는 영어 키워드라고 가정하여 설명하도록 한다. 단, 당해 기술 분야의 통상의 기술자라면, 본 발명의 기술적 사상은 언어의 종류, 키워드쌍에 포함된 키워드의 개수가 달라지더라도 핵심적인 기술적 사상의 변경 없이 키워드 클러스터를 구축할 수 있음을 이해할 수 있을 것이다. 키워드 클러스터링 장치(100)가 키워드 클러스터를 구축하는 방법에 대한 자세한 설명은 도 5 내지 도 12를 참조하여 후술하도록 한다.
도 1에 도시된 예시적인 시스템에서, 사용자 단말(400)과 검색 시스템은 네트워크를 통해 통신할 수 있다. 또한, 검색 시스템을 구성하는 키워드 클러스터링 장치(100), 검색 서버(200) 및 수집 서버(300) 또한 네트워크를 통해 통신할 수 있다. 여기서, 상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
참고로, 도 1에서 키워드 클러스터링 장치(100)와 검색 서버(200) 및 수집 서버(300)는 물리적으로 상호 독립된 장치로 도시되어 있다. 그러나, 다른 실시예에 따르면, 키워드 클러스터링 장치(100)와 검색 서버(200) 및 수집 서버(300)는 동일한 장치 내에 서로 다른 로직(logic)의 형태로 구현될 수도 있다. 또한, 실시예에 따라, 키워드 클러스터링 장치(100)는 수집 서버(300)가 제공하는 수집 기능 및 검색 서버(200)가 제공하는 검색 기능 중 적어도 하나의 기능을 포함하도록 구현될 수도 있다.
지금까지 도 1을 참조하여 본 발명이 적용될 수 있는 예시적인 시스템의 구성에 대하여 설명하였다. 다음으로, 본 발명의 일 실시예에 따른 키워드 클러스터링 장치(100)의 구성 및 동작에 대하여 도 2a 내지 도 4를 참조하여 설명한다.
도 2a는 본 발명의 일 실시예에 따른 키워드 클러스터링 장치(100)의 기능 블록도이다.
도 2a를 참조하면, 키워드 클러스터링 장치(100)는 키워드 리스트 및/또는 문서 리스트를 입력 받고, 자동으로 키워드 클러스터를 구축할 수 있다. 입력되는 키워드 리스트의 실례는 도 3a를 참조하고, 출력되는 키워드 클러스터의 실례는 도 3b를 참조하도록 한다.
상기와 같은 기능을 수행하기 위해, 키워드 클러스터링 장치(100)는 클러스터 생성부(110), 병합부(130) 및 대표 키워드 선정부(150)를 포함하도록 구성될 수 있다. 다만, 도 2a에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 2a에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
각 구성 요소를 살펴보면, 클러스터 생성부(110)는 키워드 리스트로부터 복수의 클러스터를 포함하는 클러스터셋을 생성한다. 예를 들어, 클러스터 생성부(110)는 키워드 리스트에 포함된 각각의 키워드쌍을 하나의 클러스터로 생성하는 과정을 반복하여, 상기 클러스터셋을 구성할 수 있다.
병합부(130)는 클러스터 생성부(110)에 의해 생성된 복수의 클러스터를 병합하여 최종 클러스터셋을 구성한다. 클러스터 병합의 효율성 및 클러스터링 결과의 정확성을 위해 클러스터 병합부(130)는 제1 클러스터 병합부(131), 제2 클러스터 병합부(133) 및 제3 클러스터 병합부(135)를 포함하도록 구성될 수 있다.
제1 클러스터 병합부(131)는 클러스터 생성부(110)에 의해 구성된 클러스터셋에서 동일한 키워드를 공유하는 클러스터에 대한 병합을 수행한다. 이를 통해, 이후 병합 단계에서 병합 대상이 되는 클러스터의 개수가 줄어들기 때문에, 보다 빠르게 클러스터 병합 과정이 진행될 수 있다. 상기와 같은 동작을 수행하기 위해, 제1 클러스터 병합부(131)는 전처리부(131a), 클러스터 조회부(131b) 및 클러스터 병합부(131c)를 포함하도록 구성될 수 있다.
전처리부(131a)는 각 클러스터에 포함된 키워드에 대한 전처리를 수행한다. 예를 들어, 전처리부(131a)는 각 키워드에서 부호 문자(e.g. 공백 문자, 특수 문자, 구두점 등)를 제거하고, 스테밍(stemming) 기술을 이용하여 어근을 추출한다. 이를 통해, 띄어쓰기 오류, 일부 오탈자가 존재하는 경우에도 키워드 매칭을 통해 동일 키워드를 공유하는 클러스터 간의 병합이 수행될 수 있다.
클러스터 조회부(131b)는 전처리된 키워드를 기초로 동일한 키워드를 공유하는 클러스터를 조회한다. 예를 들어, 클러스터 조회부(131b)는 어느 하나의 클러스터를 기준으로, 해당 클러스터의 키워드와 동일한 키워드를 공유하는 다른 클러스터를 조회할 수 있다. 클러스터에 포함된 키워드가 (한글 키워드, 영어 키워드)와 같이 키워드쌍으로 구성된 경우, 클러스터 조회부(131b)는 한글 및 영어 키워드가 모두 동일한 클러스터, 한글 또는 영어 키워드 중 어느 하나의 키워드가 동일한 클러스터를 조회할 수 있다.
클러스터 병합부(131c)는 클러스터 조회부(131b)에 의해 조회된 클러스터를 병합한다. 제1 클러스터 병합부(131)가 클러스터 병합을 수행하는 동작에 관한 보다 상세한 설명은 도 8을 참조하도록 한다.
제2 클러스터 병합부(133)는 단일 키워드에서 추출된 특징 기반의 특징 벡터의 유사도에 기초하여 클러스터 병합을 수행한다. 키워드쌍이 (한글 키워드 영어 키워드)로 구성된 경우, 제2 클러스터 병합부(133)는 한글 키워드에서 추출된 특징 기반의 특징 벡터의 유사도에 기초하여 제1 클러스터 병합을 수행하고, 영어 키워드에서 추출된 특징 기반의 특징 벡터의 유사도에 기초하여 제2 클러스터 병합을 수행할 수 있다.
이를 위해, 제2 클러스터 병합부(133)는 특징 추출부(133a), 특징 벡터 생성부(133b), 역 인덱스 생성부(133c), 후보 클러스터 선정부(133d) 및 클러스터 병합부(133e)를 포함하도록 구성될 수 있다.
특징 추출부(133a)는 키워드로부터 특징(feature)을 추출한다. 예를 들어, 특징 추출부(133a)는 q-gram 방식으로 특징을 추출할 수 있다. 여기서, 상기 특징은 당해 기술 분야에서 자질 등의 용어와 혼용되어 사용될 수 있으나, 동일한 의미를 지칭하는 것임에 유의하도록 한다.
특징 벡터 생성부(133b)는 특징 추출부(133a)에 의해 추출된 특징을 이용하여 특징 벡터를 생성한다. 예를 들어, 특징 벡터 생성부(133b)는 TF-IDF를 이용하여 각 특징 별로 가중치 값을 부여함으로써, 특징 벡터를 생성할 수 있다. 특징 벡터의 예는 도 11을 참조하도록 한다. 여기서, 상기 특징 벡터는 당해 기술 분야에서 자질 벡터, 센트로이드(centroid) 벡터, 중심 벡터 등의 용어와 혼용되어 사용될 수 있으나, 동일한 의미를 지칭하는 것임에 유의하도록 한다. 또한, TF-IDF는 이미 당해 기술 분야에서 널리 알려진 기술 인바 이에 대한 설명은 생략하도록 한다.
역 인덱스 생성부(133c)는 각 클러스터 별로 추출된 특징을 이용하여, 각 특징이 포함된 클러스터를 가리키는 역 인덱스를 생성한다. 이에 대한 사항은 도 10을 참조하여 후술하도록 한다.
후보 클러스터 선정부(133d)는 병합 기준 클러스터가 선정되면, 상기 역 인덱스를 이용하여 상기 병합 기준 클러스터와 제1 유사도 계산이 수행되는 제1 병합 후보 클러스터를 선정한다. 또한, 후보 클러스터 선정부(133d)는 상기 제1 후보 클러스터 중에서, 상기 제1 유사도가 높은 일부 클러스터를 제2 후보 클러스터로 선정한다. 이에 대한 자세한 설명은 도 9a 내지 도 9c를 참조하여 후술하도록 한다.
클러스터 병합부(133f)는 병합 기준 클러스터와 제2 후보 클러스터 사이의 제2 유사도를 산출하고, 상기 제2 유사도가 가장 높은 후보 클러스터를 병합 대상 클러스터로 결정하며, 상기 병합 기준 클러스터와 상기 병합 대상 클러스터를 병합한다. 이에 대한 자세한 설명은 도 9a 내지 도 9c를 참조하여 후술하도록 한다.
제2 클러스터 병합부(133)가 클러스터 병합을 수행하는 동작에 관한 자세한 설명은 도 9a 내지 도 11을 참조하도록 한다.
제3 클러스터 병합부(135)는 키워드의 문맥을 고려하기 위해 동일 문서에 포함된 복수의 키워드로부터 특징을 추출한다. 예를 들어, 제3 클러스터 병합부(135)는 복수의 키워드로부터 어절 단위로 특징을 추출할 수 있다. 제3 클러스터 병합부(135)의 구성 및 동작은 특징 추출을 제외하고 제2 클러스터 병합부(133)와 동일한 바, 구성에 관해서는 도 2c를 참조하고, 동작에 관해서는 도 9a 내지 도 11을 참조하도록 한다.
대표 키워드 선정부(150)는 최종 클러스터셋에 포함된 클러스터 각각에 대하여, 대표 키워드를 선정하고, 상기 대표 키워드를 해당 클러스터의 레이블(label)로 설정한다. 대표 키워드 선정부(150)가 대표 키워드를 선정하는 동작에 관한 자세한 설명은 도 12를 참조하도록 한다.
한편, 본 발명의 다른 실시예에 따르면, 키워드 클러스터링 장치(100)는 수집부(미도시) 및/또는 키워드 추출부(미도시)를 더 포함하여 구성될 수도 있다. 수집부(미도시)는 네트워크를 통해 각종 디지털 문서를 자동으로 수집한다. 예를 들어, 수집부(미도시)는 웹 크롤링을 이용하여 각종 디지털 문서를 수집할 수 있다.
키워드 추출부(미도시)는 수집부(미도시)에 의해 수집된 디지털 문서 또는 기 저장된 디지털 문서에서 자동으로 키워드를 추출한다. 키워드 추출부(미도시)는 디지털 문서에 저자에 의해 삽입된 키워드가 존재하는 경우, 해당 키워드를 추출하고, 상기 키워드가 존재하지 않는 경우, TF-IDF 등의 기법을 이용하여 키워드를 추출할 수 있다.
본 실시예에서, 키워드 클러스터링 장치(100)는 수집부(미도시) 및 키워드 추출부(미도시)를 이용하여 자동으로 디지털 문서를 수집하고, 키워드를 추출하며, 키워드 클러스터를 구축할 수 있다.
도 2a 내지 도 2c의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
도 4는 본 발명의 또 다른 실시예에 따른 키워드 클러스터링 장치(100)의 하드웨어 구성도이다.
도 4을 참조하면, 키워드 클러스터링 장치(100)는 하나 이상의 프로세서(101), 버스(105), 네트워크 인터페이스(107), 프로세서(101)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(103)와, 키워드 클러스터링 소프트웨어(109a)를 저장하는 스토리지(109)를 포함할 수 있다. 다만, 도 4에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 4에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(101)는 키워드 클러스터링 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(101)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(101)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 키워드 클러스터링 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(103)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(103)는 본 발명의 실시예들에 따른 키워드 클러스터링 방법을 실행하기 위하여 스토리지(109)로부터 하나 이상의 프로그램(109a)을 로드할 수 있다. 도 6에서 메모리(103)의 예시로 RAM이 도시되었다.
버스(105)는 키워드 클러스터링 장치(100)의 구성 요소 간 통신 기능을 제공한다. 버스(105)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
네트워크 인터페이스(107)는 키워드 클러스터링 장치(100)의 유무선 인터넷 통신을 지원한다. 또한, 네트워크 인터페이스(107)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(107)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(109)는 키워드 클러스터링 소프트웨어의 입력 데이터인 키워드셋(109b), 하나 이상의 프로그램(109a) 및 클러스터링 소프트웨어의 출력 데이터인 클러스터셋(109c)을 비임시적으로 저장할 수 있다. 도 4에서 상기 하나 이상의 프로그램(109a)의 예시로 키워드 클러스터링 소프트웨어(109a)가 도시되었다.
스토리지(109)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
키워드 클러스터링 소프트웨어(109a)는 본 발명의 실시예에 따라 복수의 키워드쌍 데이터를 가리키는 키워드셋(109b)을 입력으로 키워드 클러스터링을 수행하고 적어도 하나의 키워드 클러스터를 가리키는 클러스터셋(109c)을 출력할 수 있다.
구체적으로, 키워드 클러스터링 소프트웨어(109a)는 메모리(103)에 로드되어, 하나 이상의 프로세서(101)에 의해, 상기 복수의 키워드를 이용하여 복수의 클러스터가 포함된 클러스터셋을 구성하는 오퍼레이션, 상기 클러스터셋에서, 단일 키워드에서 추출된 특징에 기반한 특징 벡터(feature vector) 간 유사도가 임계 값 이상인 클러스터를 병합하는 과정을 반복하여, 중간 클러스터셋을 구성하는 오퍼레이션 및 상기 중간 클러스터셋에서, 동일 문서에 포함된 복수의 키워드에서 추출된 특징에 기반한 특징 벡터 간 유사도가 임계 값 이상인 클러스터를 병합하는 과정을 반복하여, 최종 클러스터셋을 구성하는 오퍼레이션을 포함할 수 있다.
지금까지, 도 2a 내지 도 4를 참조하여 본 발명의 일 실시예에 따른 키워드 클러스터링 장치(100)의 구성 및 동작에 대하여 설명하였다. 다음으로, 도 5 내지 도 12를 참조하여 본 발명의 다른 실시예에 따른 키워드 클러스터링 방법에 대하여 상세하게 설명한다.
본 발명의 실시예에 따른 키워드 클러스터링 방법의 각 단계는, 컴퓨팅 장치에 의해 수행될 수 있다. 예를 들어, 상기 컴퓨팅 장치는 본 발명의 일 실시예에 따른 키워드 클러스터링 장치(100)일 수 있다. 단, 설명의 편의를 위해, 키워드 클러스터링 방법에 포함되는 각 동작의 수행 주체는 그 기재가 생략될 수 있다. 또한, 키워드 클러스터링 방법의 각 단계는 키워드 클러스터링 소프트웨어(109a)가 프로세서(101)에 의해 실행됨으로써, 키워드 클러스터링 장치(100)에서 수행되는 오퍼레이션일 수 있다.
도 5는 키워드 클러스터링 방법의 순서도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 5를 참조하면, 키워드 클러스터링 장치(100)는 키워드 리스트 및 각 키워드가 포함된 문서 리스트를 입력 받는다(S110). 실시예에 따라, 상기 키워드 리스트 및 문서 리스트는 기 정의된 형식에 맞게 전처리가 수행된 데이터(e.g. 도 3a 참조)일 수 있다. 단, 본 발명의 다른 실시예에 따르면, 키워드 클러스터링 장치(100)는 웹 크롤링을 통해 자동으로 디지털 문서를 수집하고, 상기 디지털 문서에서 자동으로 키워드를 추출하며, 기 정의된 형식에 맞게 전처리를 수행하여 상기 키워드 리스트 및 문서 리스트를 생성할 수도 있다.
본 발명의 실시예에 따르면, 상기 키워드 리스트에 포함된 각각의 키워드(kwd1, kwd2, …)는 도 6a에 도시된 바와 같이 (한글 키워드, 영어 키워드)로 구성될 수 있고, 키워드 식별자(id)가 부가될 수도 있다. 또한, 문서 리스트는 각 키워드가 포함된 문서의 집합으로 구성될 수 있다.
본 발명의 몇몇 실시예들에서, 각 키워드쌍은 도 6b와 같이 한글 키워드와 영어 키워드로 구성된다고 가정한다. 단, 한글 키워드 및 영어 키워드 중 어느 하나의 키워드가 공백 문자로 입력되더라도 무방하다.
다시 도 5를 참조하면, 키워드 클러스터링 장치(100)는 키워드 리스트에 포함된 복수의 키워드쌍을 이용하여 초기 클러스터셋을 구성하고(S200), 상기 초기 클러스터셋에 포함된 클러스터를 상향식으로 병합해가며 최종 클러스터셋을 구성한다. 예를 들어, 도 7을 참조하여 간략히 설명하면, 키워드 클러스터링 장치(100)는 초기 클러스터셋(501)에 포함된 적어도 일부의 클러스터를 병합하여 중간 클러스터셋(503)을 구성하고, 중간 클러스터셋(503)에 포함된 적어도 일부의 클러스터를 병합하여 최종 클러스터셋(505)를 구성하게 된다. 단, 본 발명의 실시예에 따르면, 초기 클러스터셋(501)도 클러스터 병합을 통해 구성된 클러스터셋일 수도 있다.
일 실시예에서, 키워드 클러스터링 장치(100)는 복수의 키워드쌍에 포함된 각각의 키워드쌍을 하나의 클러스터로 생성하는 과정을 반복함으로써, 초기 클러스터셋을 구성할 수 있다.
다른 실시예에서, 키워드 클러스터링 장치(100)는 초기 클러스터셋에 포함된 클러스터의 개수를 최소화하기 위해 동일 키워드를 공유하는 클러스터를 빠르게 병합하여 상기 초기 클러스터셋을 구성할 수 있다. 본 실시예에 대하여 도 8을 참조하여 구체적으로 설명한다.
도 8을 참조하면, 키워드 클러스터링 장치(100)는 상술한 실시예와 같이 각각의 키워드쌍을 하나의 클러스터로 생성하는 과정을 반복하여 제1 클러스터셋을 구성하고(S210), 제1 클러스터셋에서, 한글 키워드 및 영어 키워드를 모두 공유하는, 즉 두 키워드의 문자열이 완전 매칭(exact matching)되는 클러스터를 병합하는 과정을 반복하여, 제2 클러스터셋을 구성할 수 있다(S230). 또한, 키워드 클러스터링 장치(100)는 제2 클러스터셋에서, 한글 키워드를 공유하는, 즉 한글 키워드가 완전 매칭되는 클러스터를 병합하는 과정을 반복하여, 초기 클러스터셋을 구성할 수 있다(S250). 참고로, 단계(S250)에서, 한글 키워드에 대한 클러스터 병합을 수행하였으나, 중심 언어가 영어인 경우에는, 영어 키워드에 대하여 클러스터 병합이 수행될 수 있을 것이다.
본 실시예에서, 키워드 매칭을 수행하기 전에, 키워드 문자열에 포함된 부호문자(e.g. 특수 문자, 공백 문자, 구두점 등)를 제거하고, 스테밍(stemming) 기술을 이용하여 단어의 어근(stem)를 추출하며, 영어의 경우 대문자를 소문자로 변환하는 전처리 과정이 수행될 수 있다. 상기 전처리 과정을 수행함으로써, 사용자 실수로 인해 키워드에 띄어쓰기 오류가 포함된 경우에도 정확하게 키워드 매칭이 수행될 수 있다.
상술한 실시예에 따르면, 동일 키워드를 공유하는 클러스터의 병합을 통해 초기 클러스터셋에 포함되는 클러스터의 개수를 줄일 수 있다. 이에 따라, 이후의 클러스터 병합 단계의 반복 횟수가 감소되고, 클러스터 간의 유사도 계산 또한 최소화될 수 있다. 본 실시예에 따르면, 클러스터 병합 성능이 향상되고, 클러스터 구축에 소요되는 시간 비용 및 컴퓨팅 비용이 크게 절감되는 효과가 있다.
다시 도 5를 참조하면, 키워드 클러스터링 장치(100)는 초기 클러스터셋에 포함된 복수의 클러스터 중에서, 제1 유사도가 임계 값 이상인 클러스터를 병합하여 중간 클러스터셋을 구성한다(S300). 여기서, 상기 제1 유사도는 단일 키워드에서 추출된 특징 기반의 특징 벡터를 이용하여 산출된다. 이에 대한 자세한 설명은 도 9a 내지 도 9c를 참조하여 상세하게 설명하도록 한다.
다음으로, 키워드 클러스터링 장치(100)는 중간 클러스터셋에 포함된 복수의 클러스터 중에서, 제2 유사도가 임계 값 이상인 클러스터를 병합하여 최종 클러스터셋을 구성한다(S400). 여기서, 상기 제2 유사도는 동일 문서에 포함된 복수의 키워드에서 추출된 특징 기반의 특징 벡터를 이용하여 산출된다. 예를 들어, 키워드 클러스터링 장치(100)는 동일 문서 내 포함된 복수의 키워드에 대하여 어절(단어) 단위로 특징을 추출하거나, n-gram 방식으로 특징을 추출할 수 있다. 이에 따라, 해당 키워드와 다른 키워드 관의 관계, 즉 문맥을 고려한 특징 벡터가 생성되기 때문에, 문맥을 고려하여 클러스터의 병합이 수행될 수 있다. 이에 따라, 동음 이의어에 해당하는 두 키워드가 동일한 클러스터에 포함되거나, 이음 동의어에 해당하는 두 키워드가 서로 다른 클러스터에 포함되는 것이 방지될 수 있는 바, 정확도 높은 클러스터가 구축될 수 있다.
단계(S400)는 단계(S300)와 특징 추출 기준이 상이하나, 세부 단계는 동일하게 수행될 수 있다. 따라서, 본 단계(S400)에 대한 상세한 설명 또한 도 9a 내지 도 9c를 참조하도록 한다.
최종 클러스터셋이 구축되면, 키워드 클러스터링 장치(100)는 상기 최종 클러스터셋에 포함된 각각의 클러스터에 대한 대표 키워드를 선정하고, 선정된 대표 키워드를 해당 클러스터의 레이블(label)로 설정한다(S500). 본 단계에 대한 자세한 설명은 도 12를 참조하여 후술하도록 한다.
지금까지, 본 발명의 실시예에 따른 키워드 클러스터링 방법에 대하여 설명하였다. 상술한 바에 따르면, 동일 문서에 포함된 복수의 키워드에서 추출된 특징에 기초하여 클러스터 병합이 수행된다. 즉, 동일 문서에 포함된 복수의 키워드로부터 문맥이 반영된 특징이 추출되고, 상기 특징에 기초하여 클러스터 병합이 수행될 수 있다. 이에 따라, 이음동의어 및 동음이의어가 존재하는 경우라도 정확도 높은 클러스터가 구축되는 효과가 있다.
다음으로, 도 9a 내지 도 11을 참조하여, 중간 클러스터셋 구성 단계(S300)에 대하여 상세하게 설명하도록 한다.
도 9a 내지 도 9c는 중간 클러스터셋 구성 단계(S300)의 상세 순서도이다.
전술한 바와 같이, 중간 클러스터셋 구성 단계(S300)는 단일 키워드에서 추출된 특징 기반의 특징 벡터에 기초하여 클러스터를 병합하는 단계이다. 본 발명의 실시예에 따르면, 키워드쌍에 서로 다른 언어로 표현된 키워드가 포함되므로, 키워드 클러스터링 장치(100)는 각 키워드에 대하여 특징 벡터를 추출하고 클러스터 병합을 수행하게 된다.
예를 들어, 키워드쌍이 한글 키워드 및 영어 키워드로 구성되는 경우, 키워드 클러스터링 장치(100)는 초기 클러스터셋에 포함된 복수의 클러스터 중에서 한글 키워드에서 추출된 특징 기반의 특징 벡터의 유사도가 임계 값 이상인 적어도 일부의 클러스터를 병합하여 제1 클러스터셋을 구성하고(S310), 제1 클러스터셋에 포함된 복수의 클러스터 중에서, 영어 키워드에서 추출된 특징 기반의 특징 벡터의 유사도가 임계 값 이상인 적어도 일부의 클러스터를 병합하여 중간 클러스터셋을 구성한다(S330).
실시예에 따라, 단계(S330)와 단계(S310)의 선후가 변경될 수 있으나, 중심 언어가 한국어인 경우에는 단계(S310)를 먼저 수행하는 것이 바람직할 수 있다. 왜냐하면, 중심 언어가 한국어인 경우 한글 키워드 기준으로 클러스터의 병합이 우선 수행될 필요가 있기 때문이다.
이하에서는, 도 9b 및 도 9c를 참조하여, 단계(S310)의 세부 동작에 대하여 설명하도록 한다. 단계(S330)의 세부 동작은 단계(S310)와 동일한 바, 도 9b 및 도 9c를 참조하도록 한다.
도 9b 및 도 9c를 참조하면, 키워드 클러스터링 장치(100)는 각 클러스터에 포함된 한글 키워드를 이용하여 각 클러스터의 특징을 추출한다(S311).
본 발명의 몇몇 실시예에서, 상기 특징은 q-gram 방식으로 추출될 수 있다. 예를 들어, 한글 키워드가 "우리나라"이고, q가 2인 경우, "우리", "리나", "나라"가 특징으로 추출될 수 있다. q의 값은 기 설정된 고정 값 또는 키워드의 평균 길이에 따라 달라지는 변동 값일 수 있다. 본 실시예에 따르면, q-gram을 통해 음절 단위로 세분화된 특징이 추출되기 때문에, 오탈자에 강인한 특징이 추출되는 장점이 있다. 다만, 본 발명의 다른 실시예에 따르면, 어절 단위로 연속된 n개의 단어를 특징으로 추출하는 n-gram 방식이 이용될 수 있고, 다른 방식으로 특징이 추출될 수도 있다.
다음으로, 키워드 클러스터링 장치(100)는 추출된 특징을 기초로, 각 특징이 포함된 클러스터를 가리키는 역 인덱스를 생성한다. 역 인덱스는 예를 들어 도 10에 도시된 바와 같이 생성될 수 있다. 도 10을 참조하면, 표(511)와 같이, 각 클러스터(C1, C2, …)에 대하여 특징(q1, q2, …)이 추출되었을 때, 역 인덱스는 표(513)와 같이 구축될 수 있다. 표(513)와 같이 역 인덱스가 구축되면, 특징(q1)이 포함된 클러스터를 검색할 때, 상기 역 인덱스를 참조하여 클러스터(C1, C2, C3)가 검색 결과로 빠르게 제공될 수 있다. 예를 들어, 상기 역 인덱스가 해시 테이블과 같은 자료구조로 구축되는 경우, O(1)의 시간 복잡도 클러스터 검색이 가능하므로, 클러스터 검색 속도가 크게 향상될 수 있다.
역 인덱스가 구축되면, 키워드 클러스터링 장치(100)는 초기 클러스터셋에서 임의의 어느 하나의 병합 기준 클러스터를 선정하고(S313), 상기 역 인덱스를 이용하여, 상기 초기 클러스터셋에서 유사도 산출 대상 클러스터를 검색한다(S313).
예를 들어, 도 10을 참조하면, 병합 기준 클러스터가 "C1"인 경우, 병합 기준 클러스터(C1)는 "g1", "g4"를 특징으로 포함한다. 역 인덱스를 참조하면, 클러스터(C1, C2, C3, C6)가 특징(g1, g4)를 포함하는 클러스터로 검색되므로, 클러스터(C1, C2, C3, C6)가 유사도 산출 대상 클러스터로 선정되게 된다. 이와 같이, 키워드 클러스터링 장치(100)는 기 구축된 역 인덱스를 이용하여, 신속하게 유사도 산출 대상 클러스터를 검색할 수 있다.
다시, 도 9b를 참조하면, 키워드 클러스터링 장치(100)는 병합 기준 클러스터와 각각의 유사도 산출 대상 클러스터와의 제1 유사도를 산출한다(S315). 상기 제1 유사도는 예를 들어 하기의 수학식 1과 같이 각 특징 별 IDF 가중치의 합을 이용하여 산출될 수 있다. 하기의 수학식 1에서, ci는 병합 기준 클러스터를 가리키고, cj는 유사도 산출 대상 클러스터를 가리키며, g는 특징을 가리킨다. IDF 가중치를 계산하는 수식은 당해 기술 분야에서 이미 널리 알려진 것이므로 이에 대한 사항은 생략하도록 한다.
Figure 112017043665916-pat00001
상기 제1 유사도를 산출되면, 키워드 클러스터링 장치(100)는 상기 제1 유사도와 기 설정된 임계 값을 비교한다(S316). 비교 결과, 상기 제1 유사도가 임계 값 이상인 경우, 키워드 클러스터링 장치(100)는 해당 클러스터를 병합 후보 클러스터로 선정한다(S317). 단, 실시예에 따라, 키워드 클러스터링 장치(100)는 상대적 기준을 적용하여 상기 제1 유사도가 높은 상위 k개의(단, k는 1 이상의 자연수) 클러스터를 병합 후보 클러스터로 선정할 수 있고, 상기 제1 유사도가 임계 값 이상인 상위 k개의 클러스터를 병합 후보 클러스터로 선정할 수도 있다.
상기 제1 유사도가 임계 값 이상인 클러스터가 존재하지 않는 경우, 키워드 클러스터링 장치(100)는 다른 클러스터를 병합 기준 클러스터로 선정하고, 상술한 단계를 반복할 수 있다(S328). 물론, 클러스터셋 내에 병합 기준 클러스터로 선정되지 않은 클러스터가 존재하지 않는 경우, 단계(S300)는 종료된다.
병합 후보 클러스터가 적어도 하나 존재하는 경우, 키워드 클러스터링 장치(100)는 병합 기준 클러스터와 병합 후보 클러스터 간의 제2 유사도를 산출한다(S321). 상술한 제1 유사도는 병합 후보 클러스터를 선별하여 클러스터 구축의 성능을 향상시키기 위한 목적이라면, 상기 제2 유사도는 클러스터 구축의 정확도를 향상시키기 위한 목적으로 산출하는 것으로 이해될 수 있다.
구체적으로, 키워드 클러스터링 장치(100)는 한글 키워드에서 추출된 특징을 이용하여 제1 특징 벡터를 생성하고, 영어 키워드에서 추출된 특징을 이용하여 제2 특징 벡터를 생성한다. 여기서, 상기 제1 특징 벡터 및 상기 제2 특징 벡터는 하기의 수학식 2와 같이 TF-IDF 가중치를 이용하여 생성될 수 있다. 하기의 수학식 2에서, w(f,c)는 클러스터 c에서 특징 f가 갖는 가중치를 가리키고, tf(f,c)는 클러스터 c에서 특징 f의 빈도를 가리키며, idf(N, nc)는 클러스터의 개수가 N이고, 모든 클러스터에서 특징 f의 빈도가 nc 일 때 산출되는 IDF 가중치를 의미한다. IDF의 수식은 당해 기술 분야에서 이미 널리 알려진 것인 바 생략한다. 특징 벡터의 예는 도 11을 참조하도록 한다.
Figure 112017043665916-pat00002
한글 키워드 및 영어 키워드 각각에 대하여 특징 벡터가 생성되면, 키워드 클러스터링 장치(100)는 예를 들어 하기의 수학식 3을 이용하여 제2 유사도를 산출한다. 하기 수학식 3에서 각 특징 벡터의 유사도를 산출하기 위해 코사인 유사도가 이용되었으나, 실시예에 따라 얼마든지 다른 유사도가 적용될 수 있다. 또한, 하기 수학식 3에서, 상기 제2 유사도는 각 요소에 동일한 가중치가 부여되는 산술 평균으로 산출되는 것을 예로 들었으나, 실시예에 따라 서로 다른 가중치가 부여되는 가중 평균으로 산출될 수도 있다.
Figure 112017043665916-pat00003
제2 유사도가 산출되면, 키워드 클러스터링 장치(100)는 상기 제2 유사도와 기 설정된 제1 임계 값과 비교한다(S322). 비교 결과, 상기 제2 유사도가 상기 제1 임계 값 이상인 경우, 키워드 클러스터링 장치(100)는 해당 클러스터를 저장하고, 저장된 병합 후보 클러스터 중에서, 제2 유사도가 가장 높은 클러스터를 병합 대상 클러스터로 선정하며, 상기 병합 대상 클러스터와 병합 기준 클러스터를 병합한다(S323).
비교 결과, 상기 제2 유사도가 상기 제1 임계 값 미만인 경우, 키워드 클러스터링 장치(100)는 상기 제2 유사도가 상기 제1 임계 값보다 작은 제2 임계 값 이상인지 비교한다. 실제로 두 클러스터에 포함된 키워드는 유사하나, 오탈자 등으로 인해 제2 유사도가 낮게 산출될 수도 있기 때문이다.
비교 결과, 상기 제2 유사도가 상기 제2 임계 값 미만인 경우, 해당 클러스터는 병합 대상 클러스터에서 제외된다(S327).
비교 결과, 상기 제2 유사도가 상기 제2 임계 값 이상인 경우, 키워드 클러스터링 장치(100)는 한글 키워드 및 영어 키워드에서 자소 단위로 특징을 추출하고, 특징 벡터를 다시 생성하여 제2 유사도를 다시 계산한다. 특징의 추출 단위가 작아질수록, 오탈자에 대한 제2 유사도의 신뢰도가 향상될 수 있기 때문이다. 다시 말하면, 본 단계는 키워드에서 더 작은 단위로 특징이 추출되면 오탈자가 존재하더라도 의미가 동일한 두 키워드 사이에 동일한 특징이 더 많이 발견될 수 있다는 점을 고려한 것으로 이해될 수 있다.
제2 유사도가 재산출되면, 키워드 클러스터링 장치(100)는 재산출된 제2 유사도가 상기 제1 임계 값 이상인지 판단하고, 상기 제1 임계 값 이상인 경우 해당 클러스터를 병합 후보 클러스터로 계속 유지하고, 상기 제1 임계 값 미만인 경우 병합 후보 클러스터에서 제외한다(S327).
키워드 클러스터링 장치(100)는 최종적으로 저장된 병합 후보 클러스터 중에서 제2 유사도가 가장 높은 클러스터와 병합 기준 클러스터를 병합하게 된다(S323). 또한, 클러스터 셋에서 병합 기준 클러스터로 선정되지 않은 클러스터가 존재하지 않을 때까지 상술한 단계를 반복하게 된다(S328).
한편, 최종 클러스터셋 구성 단계(S400)는 중간 클러스터셋 구성 단계(S300)와 동일하게 수행된다. 다만, 단계(S400)에서는 키워드의 문맥을 고려하기 위해 동일한 문서에 포함된 복수의 키워드로부터 특징이 추출되는 차이가 있다. 예를 들어, 키워드 클러스터링 장치(100)는 동일한 문서에 포함된 복수의 키워드로부터 어절 단위로 특징을 추출하거나, n-gram 방식으로 특징을 추출할 수 있다. 보다 자세한 예를 들어, 복수의 키워드가 "사과 문제 실수"이고 n-gram 방식(n=2, bigram)으로 특징이 추출되는 경우, "사과 문제", "문제 실수"가 특징으로 추출된다. 또한, 어절 단위로 특징을 추출하는 경우, "사과", "문제", "실수"가 특징으로 추출된다. 이때, 과일의 한 종류를 가리키는 동음이의어 "사과"는 "문제", "실수" 등과 같은 키워드를 수반할 가능성은 매우 적으므로, 동음이의어인 두 "사과"가 동일한 클러스터에 포함되는 것이 예방될 수 있는 것이다.
지금까지, 도 9a 내지 도 11을 참조하여, 중간 클러스터셋을 구성하는 단계(S300)에 대하여 설명하였다. 상술한 바에 따르면, 한글 키워드에서 추출된 특징 기반의 특징 벡터 간의 유사도와 영어 키워드에서 추출된 특징 기반의 특징 벡터 간의 유사도의 평균인 제2 유사도에 기초하여 클러스터의 병합이 수행된다. 이에 따라, 복수의 언어로 구성된 키워드쌍이 주어지더라도 정확하게 클러스터가 구축될 수 있다. 다음으로, 도 12를 참조하여, 클러스터의 대표 키워드를 선정하는 단계(S500)에 대하여 설명하도록 한다.
도 12는 대표 키워드 선정 단계(S500)의 상세 순서도이다. 도 12는 임의의 클러스터에서 한글 키워드를 대표 키워드로 선정하는 것을 가정하여 도시한 순서도이다. 따라서, 도 12에 도시된 단계를 모든 클러스터에 대하여 반복하면, 모든 클러스터에 대표 키워드가 선정될 수 있다. 또한, 영문 키워드를 대표 키워드로 선정하는 경우에는 영문 키워드로 도 12에 도시된 단계가 수행될 수 있다.
도 12를 참조하면, 키워드 클러스터링 장치(100)는 클러스터에 포함된 각각의 한글 키워드로부터 특징을 추출하고, 추출된 특징을 기초로 각각의 한글 키워드에 대한 키워드 특징 벡터를 산출한다(S510). 다음으로, 키워드 클러스터링 장치(100)는 한글 키워드 별로 생성된 키워드 특징 벡터를 평균하여 클러스터 특징 벡터를 산출한다(S530). 다음으로, 키워드 클러스터링 장치(100)는 키워드 특징 벡터 중에서 클러스터 특징 벡터 간의 유사도가 가장 높은 특징 벡터를 대표 키워드 특징 벡터를 선정한다(S550). 상기 유사도는 상술한 바와 같이 코사인 유사도가 이용될 수 있으나, 다른 방식의 유사도가 이용되더라도 무방하다. 마지막으로, 키워드 클러스터링 장치(100)는 대표 키워드 특징 벡터에 대응되는 키워드를 해당 클러스터의 대표 키워드로 결정하고(S570), 상기 대표 키워드를 해당 클러스터의 레이블로 설정할 수 있다.
지금까지 도 12을 참조하여, 대표 키워드 선정 단계(S500)에 대하여 설명하였다. 다음으로, 도 13을 참조하여, 본 발명의 실시예에 따라 구축된 키워드 클러스터를 이용하여 디지털 문서 간의 연관 정보를 제공하는 본 발명의 활용예에 대하여 간략하게 설명한다.
도 13에 도시된 바와 같이, 키워드 클러스터 구축 결과, 클러스터 #1에는 키워드A, 키워드 D가 포함되고, 클러스터 #2에는 키워드 B 및 키워드 C가 포함되었다고 가정하자. 또한, 키워드 A 내지 D는 다양한 디지털 문서(논문 A 내지 논문 C, 리포트 A 내지 C, 특허문헌 A 내지 C)에 삽입된 키워드라고 가정하자.
예를 들어 검색 시스템에서, 키워드 A가 검색어로 주어진 경우, 기 구축된 키워드 클러스터를 이용하여, 키워드 D가 연관 검색어로 제공될 수 있다. 또한, 키워드 A가 포함된 논문 A, 보고서 A 및 특허문헌 A를 검색 결과로 제공하고, 더불어 보고서 B가 연관 디지털 문서로 더 제공될 수 있다.
또 다른 예를 들어 주제 분석 또는 문서 분류를 수행하는 분석 시스템에서, 키워드 A를 이용하여 논문 A, 보고서 A 및 특허문헌 A가 특정 주제를 갖는 문서로 분류될 수 있고, 보고서 B 또한 상기 특정 주제를 갖는 문서로 분류될 수 있다. 또한, 클러스터 #2와 매핑된 논문 B, 논문 C, 보고서 C, 특허문헌 B 및 특허문헌 C가 다른 주제를 갖는 문서로 분류될 수 있다.
이외에도 본 발명의 실시예에 따라 구축된 키워드 클러스터는 자연어 처리, 정보 시각화 등 다양한 분야에서 활용될 수 있다.
지금까지 도 1 내지 도 13을 참조하여 설명된 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (18)

  1. 키워드 클러스터링 장치에 의해 수행되는 키워드 클러스터링 방법에 있어서,
    복수의 문서에 포함된 복수의 키워드를 이용하여 초기 클러스터셋을 구성하는 단계;
    상기 초기 클러스터셋을 구성하는 복수의 초기 클러스터 중에서, 초기 클러스터 간 유사도가 임계 값 이상인 제1 초기 클러스터와 제2 초기 클러스터를 병합하여, 중간 클러스터셋을 구성하는 단계; 및
    상기 중간 클러스터셋을 구성하는 복수의 중간 클러스터 중에서, 중간 클러스터 간 유사도가 임계 값 이상인 제1 중간 클러스터와 제2 중간 클러스터를 병합하여, 최종 클러스터셋을 구성하는 단계를 포함하되,
    상기 제1 초기 클러스터와 상기 제2 초기 클러스터 간의 유사도는,
    상기 제1 초기 클러스터에 소속된 키워드에서 추출된 제1-1 특징과 상기 제2 초기 클러스터에 소속된 키워드에서 추출된 제1-2 특징 간의 유사도에 기초하여 산출되고,
    상기 제1 중간 클러스터와 상기 제2 중간 클러스터 간의 유사도는,
    상기 제1 중간 클러스터에 대한 제2-1 특징과 상기 제2 중간 클러스터에 대한 제2-2 특징 간의 유사도에 기초하여 산출되며,
    상기 제2-1 특징은 상기 제1 중간 클러스터에 소속된 제1-1 키워드 및 상기 제1-1 키워드와 동일 문서에 포함된 제1-2 키워드의 조합으로부터 추출되고,
    상기 제2-2 특징은 상기 제2 중간 클러스터에 소속된 제2-1 키워드 및 상기 제2-1 키워드와 동일 문서에 포함된 제2-2 키워드의 조합으로부터 추출되는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  2. 제1 항에 있어서,
    상기 초기 클러스터셋을 구성하는 단계는,
    상기 복수의 키워드에 포함된 각각의 키워드를 하나의 클러스터로 생성하여, 복수의 클러스터가 포함된 제1 클러스터셋을 구성하는 단계;
    상기 제1 클러스터셋을 구성하는 복수의 클러스터 중에서, 동일한 키워드를 공유하는 클러스터를 병합하여, 상기 초기 클러스터셋을 구성하는 단계를 포함하는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  3. 제2 항에 있어서,
    상기 각각의 키워드는 제1 키워드 및 제2 키워드를 포함하는 키워드쌍이고, 상기 제2 키워드는 상기 제1 키워드와 다른 언어로 표현되고 의미가 대응되는 키워드이되,
    상기 동일한 키워드를 공유하는 클러스터를 병합하여, 상기 초기 클러스터셋을 구성하는 단계는,
    상기 제1 클러스터셋을 구성하는 복수의 클러스터 중에서, 상기 제1 키워드 및 상기 제2 키워드를 모두 공유하는 클러스터를 병합하여, 제2 클러스터셋을 구성하는 단계; 및
    상기 제2 클러스터셋을 구성하는 복수의 클러스터 중에서, 상기 제1 키워드만을 공유하는 클러스터를 병합하여, 상기 초기 클러스터셋을 구성하는 단계를 포함하는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  4. 제1 항에 있어서,
    상기 복수의 키워드에 포함된 각각의 키워드는 제1 키워드 및 제2 키워드를 포함하는 키워드쌍이고, 상기 제2 키워드는 상기 제1 키워드와 다른 언어로 표현되고 의미가 대응되는 키워드이되,
    상기 중간 클러스터셋을 구성하는 단계는,
    상기 초기 클러스터셋을 구성하는 복수의 초기 클러스터 중에서, 상기 제1 키워드에서 추출된 특징 벡터 간의 유사도가 임계 값 이상인 클러스터를 병합하여, 제1 클러스터셋을 구성하는 단계; 및
    상기 제1 클러스터셋을 구성하는 복수의 클러스터 중에서, 상기 제2 키워드에서 추출된 특징 벡터 간의 유사도가 임계 값 이상인 클러스터를 병합하여, 상기 중간 클러스터셋을 구성하는 단계를 포함하는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  5. 제1 항에 있어서,
    상기 제1-1 특징 및 상기 제1-2 특징은 q-gram(단, q는 1이상의 자연수) 기반으로 추출된 것이고,
    상기 제2-1 특징 및 상기 제2-2 특징은 어절 단위로 추출된 것을 특징으로 하는,
    키워드 클러스터링 방법.
  6. 제1 항에 있어서,
    상기 복수의 키워드에 포함된 각각의 키워드는 제1 키워드 및 제2 키워드를 포함하는 키워드쌍이고, 상기 제2 키워드는 상기 제1 키워드와 다른 언어로 표현되고 의미가 대응되는 키워드이되,
    상기 중간 클러스터셋을 구성하는 단계는,
    상기 초기 클러스터셋에 포함된 각각의 초기 클러스터에 대하여, 상기 제1 키워드를 기초로 제1 특징 벡터를 생성하는 단계;
    상기 초기 클러스터셋에 포함된 각각의 초기 클러스터에 대하여, 상기 제2 키워드를 기초로 제2 특징 벡터를 생성하는 단계; 및
    상기 초기 클러스터셋에 포함된 복수의 초기 클러스터 중에서, 상기 제1 특징 벡터 간 유사도와 상기 제2 특징 벡터 간 유사도를 기초로 산출된 평균 유사도가 임계 값 이상인 클러스터를 병합하여, 상기 중간 클러스터셋을 구성하는 단계를 포함하는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  7. 제6 항에 있어서,
    상기 제1 특징 벡터 및 상기 제2 특징 벡터는 TF-IDF(Term Frequency-Inverse Document Frequency) 가중치에 기초하여 생성되는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  8. 제1 항에 있어서,
    상기 중간 클러스터셋을 구성하는 단계는,
    상기 초기 클러스터셋을 구성하는 각각의 초기 클러스터에 대하여, 상기 각각의 클러스터에 포함된 키워드로부터 특징을 추출하는 단계;
    상기 특징 별로, 각 특징이 포함된 초기 클러스터를 가리키는 역 인덱스(inverted index)을 구축하는 단계;
    상기 초기 클러스터셋을 구성하는 복수의 초기 클러스터 중에서, 어느 하나의 클러스터를 병합 기준 클러스터로 선정하는 제1 단계;
    상기 역 인덱스를 이용하여, 상기 병합 기준 클러스터의 특징을 공유하는 초기 클러스터를 검색하고, 상기 검색된 초기 클러스터 중에서 병합 후보 클러스터를 선정하는 제2 단계;
    상기 병합 후보 클러스터 중에서, 상기 병합 기준 클러스터와 상기 병합 후보 클러스터 간의 제1 유사도가 제1 임계 값 이상인 클러스터를 병합 대상 클러스터로 선정하는 제3 단계;
    상기 병합 기준 클러스터와 상기 병합 대상 클러스터를 병합하는 제4 단계; 및
    상기 제1 단계 내지 상기 제4 단계를 반복하여, 상기 중간 클러스터셋을 구성하는 단계를 포함하는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  9. 제8 항에 있어서,
    상기 병합 후보 클러스터를 선정하는 제2 단계는,
    상기 병합 기준 클러스터와 상기 병합 기준 클러스터의 특징을 공유하는 각각의 클러스터 간의 제2 유사도를 산출하는 단계; 및
    상기 병합 기준 클러스터의 특징을 공유하는 각각의 클러스터 중에서, 상기 제2 유사도가 높은 상위 k(단, k는 1 이상의 자연수)개의 클러스터를 상기 병합 후보 클러스터로 선정하는 단계를 포함하는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  10. 제9 항에 있어서,
    상기 제1 유사도는, 상기 병합 기준 클러스터의 모든 특징에 대하여, 상기 병합 기준 클러스터와 다른 클러스터 간의 특징 별 IDF 가중치의 합을 통해 산출되는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  11. 제8 항에 있어서,
    상기 제1 유사도가 상기 제1 임계 값 미만이고 상기 제1 임계 값 보다 작은 제2 임계 값 이상인 병합 후보 클러스터를 유사도 재산출 대상 클러스터로 지정하는 단계;
    상기 병합 기준 클러스터 및 상기 유사도 재산출 대상 클러스터의 특징을 자소 단위로 다시 추출하는 단계;
    상기 다시 추출된 특징을 이용하여, 상기 병합 기준 클러스터와 상기 유사도 재산출 대상 클러스터의 특징 벡터를 다시 생성하고, 상기 제1 유사도를 다시 산출하는 단계; 및
    상기 다시 산출된 제1 유사도가 상기 제1 임계 값 이상인 경우, 상기 병합 기준 클러스터와 상기 유사도 재산출 대상 클러스터를 병합하는 단계를 더 포함하는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  12. 제1 항에 있어서,
    상기 최종 클러스터셋에 포함된 클러스터에 대한 대표 키워드를 결정하는 단계를 더 포함하되,
    상기 대표 키워드를 결정하는 단계는,
    상기 최종 클러스터셋을 구성하는 각각의 클러스터에 대하여, 각각의 클러스터에 포함된 키워드 별로 키워드 특징 벡터를 생성하는 단계;
    상기 키워드 특징 벡터를 평균하여 클러스터 특징 벡터를 생성하는 단계;
    상기 키워드 특징 벡터 중에서, 상기 클러스터 특징 벡터와의 유사도가 가장 높은 키워드 특징 벡터를 대표 키워드 특징 벡터로 선정하는 단계; 및
    상기 선정된 대표 키워드 특징 벡터에 대응되는 키워드를 해당 클러스터의 대표 키워드로 결정하는 단계를 포함하는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  13. 키워드 클러스터링 장치에 의해 수행되는 계층적 클러스터링 기반의 키워드 클러스터링 방법에 있어서,
    복수의 키워드를 이용하여, 복수의 클러스터가 포함된 제1 클러스터셋을 구성하는 단계;
    상기 제1 클러스터셋에 포함된 각각의 클러스터에 대하여, 상기 각각의 클러스터에 포함된 키워드로부터 특징을 추출하는 단계;
    상기 특징 별로, 각 특징이 포함된 클러스터를 가리키는 역 인덱스(inverted index)을 구축하는 단계;
    상기 제1 클러스터셋에 포함된 클러스터 중에서, 어느 하나의 클러스터를 병합 기준 클러스터로 선정하는 제1 단계;
    상기 역 인덱스를 이용하여, 상기 병합 기준 클러스터의 특징을 공유하는 클러스터를 검색하고, 상기 검색된 클러스터 중에서 병합 후보 클러스터를 선정하는 제2 단계;
    상기 병합 후보 클러스터 중에서, 상기 병합 기준 클러스터와 상기 병합 후보 클러스터 간의 제1 유사도가 임계 값 이상인 클러스터를 병합 대상 클러스터로 선정하는 제3 단계;
    상기 병합 기준 클러스터와 상기 병합 대상 클러스터를 병합하는 제4 단계; 및
    상기 제1 단계 내지 상기 제4 단계를 반복하여, 제2 클러스터셋을 구성하는 단계를 포함하는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  14. 제13 항에 있어서,
    상기 병합 후보 클러스터를 선정하는 제2 단계는,
    상기 병합 기준 클러스터와 상기 병합 기준 클러스터의 특징을 공유하는 각각의 클러스터 간의 제2 유사도를 산출하는 단계; 및
    상기 병합 기준 클러스터의 특징을 공유하는 각각의 클러스터 중에서, 상기 제2 유사도가 높은 상위 k(단, k는 1 이상의 자연수)개의 클러스터를 상기 병합 후보 클러스터로 선정하는 단계를 포함하는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  15. 제14 항에 있어서,
    상기 제1 유사도는, 상기 병합 기준 클러스터의 특징 벡터와 상기 병합 후보 클러스터의 특징 벡터 간의 유사도를 기초로 산출되고,
    상기 제2 유사도는, 상기 병합 기준 클러스터의 모든 특징에 대하여, 상기 병합 기준 클러스터와 다른 클러스터 간의 특징 별 IDF(Inverse Document Frequency) 가중치의 합을 통해 산출되는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  16. 제13 항에 있어서,
    상기 제1 클러스터셋을 구성하는 단계는,
    상기 복수의 키워드에 포함된 각각의 키워드를 하나의 클러스터로 생성하여, 복수의 클러스터가 포함된 초기 클러스터셋을 구성하는 단계; 및
    상기 초기 클러스터셋을 구성하는 복수의 클러스터 중에서, 동일한 키워드를 공유하는 클러스터를 병합하여, 상기 제1 클러스터셋을 구성하는 단계를 포함하는 것을 특징으로 하는,
    키워드 클러스터링 방법.
  17. 하나 이상의 프로세서;
    네트워크 인터페이스;
    상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(Load)하는 메모리; 및
    복수의 문서 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    상기 복수의 문서에 포함된 복수의 키워드를 이용하여 초기 클러스터셋을 구성하는 오퍼레이션;
    상기 초기 클러스터셋을 구성하는 복수의 초기 클러스터 중에서, 초기 클러스터 간 유사도가 임계 값 이상인 제1 초기 클러스터와 제2 초기 클러스터를 병합하여, 중간 클러스터셋을 구성하는 오퍼레이션; 및
    상기 중간 클러스터셋을 구성하는 복수의 중간 클러스터 중에서, 중간 클러스터 간 유사도가 임계 값 이상인 제1 중간 클러스터와 제2 중간 클러스터를 병합하여, 최종 클러스터셋을 구성하는 오퍼레이션을 포함하되,
    상기 제1 초기 클러스터와 상기 제2 초기 클러스터 간의 유사도는,
    상기 제1 초기 클러스터에 소속된 키워드에서 추출된 제1-1 특징과 상기 제2 초기 클러스터에 소속된 키워드에서 추출된 제1-2 특징 간의 유사도에 기초하여 산출되고,
    상기 제1 중간 클러스터와 상기 제2 중간 클러스터 간의 유사도는,
    상기 제1 중간 클러스터에 대한 제2-1 특징과 상기 제2 중간 클러스터에 대한 제2-2 특징 간의 유사도에 기초하여 산출되며,
    상기 제2-1 특징은 상기 제1 중간 클러스터에 소속된 제1-1 키워드 및 상기 제1-1 키워드와 동일 문서에 포함된 제1-2 키워드의 조합으로부터 추출되고,
    상기 제2-2 특징은 상기 제2 중간 클러스터에 소속된 제2-1 키워드 및 상기 제2-1 키워드와 동일 문서에 포함된 제2-2 키워드의 조합으로부터 추출되는 것을 특징으로 하는,
    키워드 클러스터링 장치.
  18. 컴퓨팅 장치와 결합되어,
    복수의 문서에 포함된 복수의 키워드를 이용하여 초기 클러스터셋을 구성하는 단계;
    상기 초기 클러스터셋을 구성하는 복수의 초기 클러스터 중에서, 초기 클러스터 간 유사도가 임계 값 이상인 제1 초기 클러스터와 제2 초기 클러스터를 병합하여, 중간 클러스터셋을 구성하는 단계; 및
    상기 중간 클러스터셋을 구성하는 복수의 중간 클러스터 중에서, 중간 클러스터 간 유사도가 임계 값 이상인 제1 중간 클러스터와 제2 중간 클러스터를 병합하여, 최종 클러스터셋을 구성하는 단계를 포함하되,
    상기 제1 초기 클러스터와 상기 제2 초기 클러스터 간의 유사도는,
    상기 제1 초기 클러스터에 소속된 키워드에서 추출된 제1-1 특징과 상기 제2 초기 클러스터에 소속된 키워드에서 추출된 제1-2 특징 간의 유사도에 기초하여 산출되고,
    상기 제1 중간 클러스터와 상기 제2 중간 클러스터 간의 유사도는,
    상기 제1 중간 클러스터에 대한 제2-1 특징과 상기 제2 중간 클러스터에 대한 제2-2 특징 간의 유사도에 기초하여 산출되며,
    상기 제2-1 특징은 상기 제1 중간 클러스터에 소속된 제1-1 키워드 및 상기 제1-1 키워드와 동일 문서에 포함된 제1-2 키워드의 조합으로부터 추출되고,
    상기 제2-2 특징은 상기 제2 중간 클러스터에 소속된 제2-1 키워드 및 상기 제2-1 키워드와 동일 문서에 포함된 제2-2 키워드의 조합으로부터 추출되는, 컴퓨터로 판독 가능한 기록 매체에 저장된,
    컴퓨터 프로그램.
KR1020170057280A 2017-05-08 2017-05-08 키워드 클러스터링 방법 및 장치 KR101828995B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170057280A KR101828995B1 (ko) 2017-05-08 2017-05-08 키워드 클러스터링 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170057280A KR101828995B1 (ko) 2017-05-08 2017-05-08 키워드 클러스터링 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101828995B1 true KR101828995B1 (ko) 2018-02-14

Family

ID=61229559

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170057280A KR101828995B1 (ko) 2017-05-08 2017-05-08 키워드 클러스터링 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101828995B1 (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019208872A1 (ko) * 2018-04-27 2019-10-31 주식회사 텐디 어플리케이션의 대표 키워드 결정 방법 및 어플리케이션의 대표 키워드 결정 시스템
KR20200000789A (ko) * 2018-06-25 2020-01-03 주식회사 딥서치 투자 포트폴리오 구축 방법, 투자 포트폴리오 서비스 제공 방법 및 이를 지원하는 장치
KR20200005910A (ko) * 2018-07-09 2020-01-17 한양대학교 산학협력단 악성 도메인을 판단하는 방법, 이를 이용하는 컴퓨팅 장치, 및 프로그램
CN111507400A (zh) * 2020-04-16 2020-08-07 腾讯科技(深圳)有限公司 应用分类方法、装置、电子设备以及存储介质
CN111930883A (zh) * 2020-07-01 2020-11-13 深信服科技股份有限公司 一种文本聚类方法、装置、电子设备和计算机存储介质
KR20220048698A (ko) * 2020-10-13 2022-04-20 주식회사 한글과컴퓨터 전자 문서를 지식 데이터 문서로 변환하는 전자 장치 및 그 동작 방법
CN116361470A (zh) * 2023-04-03 2023-06-30 北京中科闻歌科技股份有限公司 一种基于话题描述的文本聚类清洗和合并方法
CN116523320A (zh) * 2023-07-04 2023-08-01 山东省标准化研究院(Wto/Tbt山东咨询工作站) 基于互联网大数据的知识产权风险智能分析方法
US11921767B1 (en) * 2018-09-14 2024-03-05 Palantir Technologies Inc. Efficient access marking approach for efficient retrieval of document access data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002230012A (ja) 2000-12-01 2002-08-16 Sumitomo Electric Ind Ltd ドキュメントクラスタリング装置
JP2014120140A (ja) 2012-12-19 2014-06-30 Fujitsu Ltd クラスタ処理方法、クラスタ処理装置およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002230012A (ja) 2000-12-01 2002-08-16 Sumitomo Electric Ind Ltd ドキュメントクラスタリング装置
JP2014120140A (ja) 2012-12-19 2014-06-30 Fujitsu Ltd クラスタ処理方法、クラスタ処理装置およびプログラム

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019208872A1 (ko) * 2018-04-27 2019-10-31 주식회사 텐디 어플리케이션의 대표 키워드 결정 방법 및 어플리케이션의 대표 키워드 결정 시스템
KR102378062B1 (ko) * 2018-06-25 2022-03-24 주식회사 딥서치 투자 포트폴리오 구축 방법, 투자 포트폴리오 서비스 제공 방법 및 이를 지원하는 장치
KR20200000789A (ko) * 2018-06-25 2020-01-03 주식회사 딥서치 투자 포트폴리오 구축 방법, 투자 포트폴리오 서비스 제공 방법 및 이를 지원하는 장치
KR102163562B1 (ko) * 2018-06-25 2020-10-08 주식회사 딥서치 투자 포트폴리오 구축 방법, 투자 포트폴리오 서비스 제공 방법 및 이를 지원하는 장치
KR20200119752A (ko) * 2018-06-25 2020-10-20 주식회사 딥서치 투자 포트폴리오 구축 방법, 투자 포트폴리오 서비스 제공 방법 및 이를 지원하는 장치
KR20200005910A (ko) * 2018-07-09 2020-01-17 한양대학교 산학협력단 악성 도메인을 판단하는 방법, 이를 이용하는 컴퓨팅 장치, 및 프로그램
KR102100393B1 (ko) 2018-07-09 2020-04-13 한양대학교 산학협력단 악성 도메인을 판단하는 방법, 이를 이용하는 컴퓨팅 장치, 및 프로그램
US11921767B1 (en) * 2018-09-14 2024-03-05 Palantir Technologies Inc. Efficient access marking approach for efficient retrieval of document access data
CN111507400A (zh) * 2020-04-16 2020-08-07 腾讯科技(深圳)有限公司 应用分类方法、装置、电子设备以及存储介质
CN111507400B (zh) * 2020-04-16 2023-10-31 腾讯科技(深圳)有限公司 应用分类方法、装置、电子设备以及存储介质
CN111930883A (zh) * 2020-07-01 2020-11-13 深信服科技股份有限公司 一种文本聚类方法、装置、电子设备和计算机存储介质
KR20220048698A (ko) * 2020-10-13 2022-04-20 주식회사 한글과컴퓨터 전자 문서를 지식 데이터 문서로 변환하는 전자 장치 및 그 동작 방법
KR102466721B1 (ko) * 2020-10-13 2022-11-14 주식회사 한글과컴퓨터 전자 문서를 지식 데이터 문서로 변환하는 전자 장치 및 그 동작 방법
CN116361470A (zh) * 2023-04-03 2023-06-30 北京中科闻歌科技股份有限公司 一种基于话题描述的文本聚类清洗和合并方法
CN116361470B (zh) * 2023-04-03 2024-05-14 北京中科闻歌科技股份有限公司 一种基于话题描述的文本聚类清洗和合并方法
CN116523320A (zh) * 2023-07-04 2023-08-01 山东省标准化研究院(Wto/Tbt山东咨询工作站) 基于互联网大数据的知识产权风险智能分析方法
CN116523320B (zh) * 2023-07-04 2023-09-12 山东省标准化研究院(Wto/Tbt山东咨询工作站) 基于互联网大数据的知识产权风险智能分析方法

Similar Documents

Publication Publication Date Title
KR101828995B1 (ko) 키워드 클러스터링 방법 및 장치
Alami et al. Unsupervised neural networks for automatic Arabic text summarization using document clustering and topic modeling
CN104376406B (zh) 一种基于大数据的企业创新资源管理与分析方法
CN110929038B (zh) 基于知识图谱的实体链接方法、装置、设备和存储介质
WO2017063538A1 (zh) 挖掘相关词的方法、搜索方法、搜索***
US20200004790A1 (en) Method and system for extracting sentences
US20160034512A1 (en) Context-based metadata generation and automatic annotation of electronic media in a computer network
Xie et al. Fast and accurate near-duplicate image search with affinity propagation on the ImageWeb
CN108647322B (zh) 基于词网识别大量Web文本信息相似度的方法
US20180046721A1 (en) Systems and Methods for Automatic Customization of Content Filtering
CN106980664B (zh) 一种双语可比较语料挖掘方法及装置
CN108090178B (zh) 一种文本数据分析方法、装置、服务器和存储介质
CN107844493B (zh) 一种文件关联方法及***
CN108875065B (zh) 一种基于内容的印尼新闻网页推荐方法
CN114287000A (zh) 信息检索和/或可视化方法
CN111459977A (zh) 自然语言查询的转换
KR20180129001A (ko) 다언어 특질 투영된 개체 공간 기반 개체 요약본 생성 방법 및 시스템
EP4214617A1 (en) Combining unsupervised and semi-supervised deep clustering approaches for mining intentions from texts
CN111373386A (zh) 相似度指标值计算装置、相似检索装置及相似度指标值计算用程序
CN104871152A (zh) 提供组织的内容
US20140081982A1 (en) Method and Computer for Indexing and Searching Structures
Zanibbi et al. Math search for the masses: Multimodal search interfaces and appearance-based retrieval
WO2008038416A1 (fr) Dispositif de recherche de document et procédé de recherche de document
CN114792246A (zh) 一种基于主题集成聚类的产品典型性特质挖掘方法及***
JP5869948B2 (ja) パッセージ分割方法、装置、及びプログラム

Legal Events

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