KR20090124301A - 검색어 연관 네트워크 서비스 방법 - Google Patents

검색어 연관 네트워크 서비스 방법 Download PDF

Info

Publication number
KR20090124301A
KR20090124301A KR1020080050432A KR20080050432A KR20090124301A KR 20090124301 A KR20090124301 A KR 20090124301A KR 1020080050432 A KR1020080050432 A KR 1020080050432A KR 20080050432 A KR20080050432 A KR 20080050432A KR 20090124301 A KR20090124301 A KR 20090124301A
Authority
KR
South Korea
Prior art keywords
word
association
words
list
search
Prior art date
Application number
KR1020080050432A
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 KR1020080050432A priority Critical patent/KR20090124301A/ko
Publication of KR20090124301A publication Critical patent/KR20090124301A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files

Abstract

본 발명은 신규한 검색어 연관 네트워크 서비스 방법에 관한 것이다.
본 발명은, 클라이언트가 특정 검색어를 입력하기 전에, 웹 사이트가 웹상의 문서들을 미리 수집하여 단어 연관 정보 데이터베이스를 구축한다. 그리고 클라이언트가 상기 웹 사이트에서 특정 단어를 입력하여 검색 질의를 전송하면, 상기 웹 사이트가, 상기 기구축된 단어 연관 정보 데이터베이스에 저장된 단어 연관 정보를 조회하고 상기 특정 단어와 연관성이 있는 연관 단어들을 추출하여 연관 단어 리스트를 생성하고, 또한, 상기 연관 단어 리스트에서 얻어지는 복수의 연관 단어들과 상기 특정 단어와의 상호 연관도를 도식화하여 표현한 데이터(연관 네트워크)를 생성하며, 상기 특정 단어에 대한 연관 네트워크를, 상기 클라이언트로 전송하여 클라이언트의 모니터 화면에 시각적으로 표출한다.

Description

검색어 연관 네트워크 서비스 방법{KEYWORD CONNECTION NETWORK SERVICE METHOD}
본 발명은 웹 기반의 검색 서비스 기술과 관련한다. 이 기술은 클라이언트가 인터넷으로 연결된 웹 사이트를 통해서 특정 키워드를 입력하여 검색을 요청하는 경우, 해당 웹 사이트가 웹에서 검색된 결과를 클라이언트에게 제공하는 프로세스를 갖는다.
웹 기반의 검색 요청과 검색 결과 제공 프로세스 자체는 일반적으로 채택되는 공지의 영역이지만, 웹 서버 측에서 어떻게 정보를 찾고 이를 어떻게 가공하며 어떻게 효과적으로 클라이언트에게 제공할 것이냐에 따라서 다양한 기술 발전이 진행되고 있다. 이와 같은 검색 기술의 핵심은 클라이언트가 얻고자 하는 목적에 적합한 정보를 신속하고 정확하게 제공하는 데 있다. 그런데 수많은 사용자가 웹에서 정보를 확대 재생산을 함으로써 정보의 양이 더욱 광범위해졌다. 더욱이 사회적인 관심과 트렌드의 변화, 새로운 기술이나 이론의 등장, 새로운 사건의 발생 등 으로 정보 자체도 시간에 따라서 다양한 내용적 변화를 일으킨다. 따라서 웹상에 존재하는 광범위한 정보는 시간이 흐를수록 더욱 복잡해지는 경향을 보인다. 이러한 환경에서 전통적인 키워드 검색은 효과적인 정보 검색의 열쇠로서 기능하지 못하게 되는 상황도 발생하였다. 결과적으로, 소망하는 정보를 얻기 위해서, 사용자는 검색어 선택에 더 유의해야 하며, 키워드를 다양하게 바꾸어가며 다수의 반복 검색을 시도하는 횟수가 증가하였다.
도 1에서 보는 바와 같이, 수많은 클라이언트(1)들이 인터넷 사이트(2)에 접속하여 키워드 검색을 통해 원하는 정보를 요청하면, 해당 사이트의 서버(3)가 대용량의 데이터베이스(4)에 저장된 정보와 인터넷상에서 흩어져 있는 정보를 검색 로봇 프로그램을 이용하여 검색하여 클라이언트(1)에게 제공한다. 문제는 클라이언트가 얻고자 하는 정보(I) 자체가 단순하게 특정되어 있지 않으며, 정보를 얻기 위한 수단으로 이용되는 키워드도 소망하는 정보(I)의 극히 일부분과 관련될 수 있다는 것이다.
이를 개념적으로 설명하자면, 도 2에서 보는 바와 같이, 정보(I)를 파악하기 위한 어떤 검색어 k1, k2, k3, k4는 각각 정보(I)의 극히 일부분에 불과하기 때문에, 사용자가 정보(I)를 보다 명확하게 파악하기 위해서는 k1 하나보다는 k1, k2 2개를 이용하는 것이, 또한, k1, k2 2개 보다는 k1, k2, k3 3개를 이용하는 것이 유용하다는 것이다. 만일 사용자가 kn(n은 3보다 큰 정수)을 키워드로서 이용하여 정보(I) 를 파악하고자 한다면 더욱 유용할 것이다. 그러나 그 경우, 각 검색어 k1, k2, k3, …, kn을 이용한 웹 페이지 검색 결과가 모두 상이하기 때문에, 사용자는 n회만큼 정보검색을 요청하여야 한다. 이에 대해서는 도 3이 개념적으로 도시하고 있다.
즉, 더 많은 키워드를 이용하여 검색하는 것이 효과적임에도 불구하고, 사용자는 더 많은 시간과 노력을 투자할 수밖에 없고, 이는 신속한 정보검색이라는 특징의 인터넷 검색 서비스에서는 바람직하지 않은 문제점이 있다.
또한, k1, k2, k3, …, kn 이라는 키워드들이 소망하는 정보에 적합한 것인지도 불명확하다는 문제점도 있다. 비록 k1, k2, k3, …, kn들이 정보(I)와 연관성을 갖고 있기 때문에, 결국 위 검색어들도 모두 연관성을 갖는다고 결론을 내려도 좋지만, 사용자가 각각의 연관성을 미리 파악하는 것은 어려운 일이다. 예컨대, k1을 키워드로 지정하여 정보(I)를 얻고자 하는 사용자가, 'k1'과 연관성을 갖는다고 여겨지는 'k2, k3, …, kn'의 존재를 사전에 용이하게 파악하는 것이 어렵다는 것이다.
더욱이, 위에서 설명한 바와 같이, 사회적인 관심과 트렌드의 변화, 새로운 기술이나 이론의 등장, 새로운 사건의 발생 등으로 정보 자체도 시간에 따라서 다양한 내용적 변화를 일으키고 있기 때문에, 위 키워드들의 상호 연관성도 당연히 변하게 마련이어서 사용자가 상기 연관성을 미리 파악하는 것은 대단히 어려운 일 이다. 위와 같은 상황은 종래기술에 대한 평가이다.
한편, 웹 사이트가, 사용자의 키워드 검색시에, 해당 키워드와 관련성이 있는 소정의 검색어들을 사용자에게 제공하는 서비스가 있다. 예컨대, 'k1' 검색어를 사용한 사람들이 'k+1, kk, k2' 등과 같은 검색어도 함께 사용한 경우가 많았다면, 이를 데이터베이스에 저장해 둔 다음에, 만일 다른 사용자가 k1를 검색어로 사용하여 웹 검색을 요청하는 경우에, 웹 사이트에서 'k+1, kk, k2'와 같은 검색어도 사용자에게 제시하여 효과적인 검색을 유도하는 방법이다. 그러나 이러한 종래 서비스는, 단순히 수많은 사람이 동일한 또는 유사한 정보를 얻고자 하는 경우가 많고 이 경우 관련되는 키워드를 사용한다는 점에 착안한 것에 불과하여, 정보 자체에서 상호 연관성을 객관적으로, 직접 추출한 것이 아니다. 이는 정보를 얻기 위한 시도(사용자의 키워드 지정 경향)에서 유추한 것이기 때문에, 정보의 효과적인 검색과는 거리가 있다. 또한, 정보 자체는 시간에 따라서 다양한 내용적 변화를 일으키고 이로 말미암아 정보 자체의 키워드의 상호 연관성도 크게 변화하는데, 위와 같은 종래기술은 이러한 정보 자체의 속성에 부합하지는 않는다.
본 발명가는 위와 같은 종래기술의 문제점을 해결하기 위하여 예의 연구 노력하여 본 발명을 완성하였다. 또한, 위와 같이 지적된 사항뿐만 아니라, 본 발명이 독창적으로 추구하는 과제에 의해서, 종래기술이 제시하지 못했던 사항을 포함하게 될 것이다.
본 발명은 검색어 연관 네트워크 서비스 방법을 개시하며, 이는 검색어 연관 네트워크 분석 엔진에 의하여 수행된다.
본 발명은 시스템이 광범위한 웹 문서 수집을 통해 획득한 다양한 문장에서 추출된 키워드의 연관성을 가시적인 네트워크로서 사용자에게 직접적으로 제공하는 것을 목적으로 한다. 이를 통하여 특정 정보를 얻고자 하는 사용자가 보다 종합적으로 정보에 접근할 수 있는 신규한 서비스를 개시한다.
또한, 본 발명의 다른 목적은 특정 단어(사용자가 지정하는 단어 및/또는 사용자가 지정하는 단어에 기초하여 서버 측에서 검색하여 추출한 단어를 포함한다)와 관련된 연관 단어의 "연관성"이 시간 흐름에 따라 변화한다는 사실에 기초하여, 그 연관성의 시간 흐름에 따른 변화 추이를 사용자에게 직접적으로 표시해 줌에 있다. 이러한 목적에는 특정한 날짜 또는 일정한 기간 동안의 특정 단어와 관련된 연관 단어의 추이를 시각적으로 보여주는 것이 포함된다.
또한, 특정한 날짜 또는 일정한 기간 동안의 특정 단어와 관련된 연관 단어들의 추이를 알 수 있고, 이러한 '연관성'은, 그 당시의 사회적 이슈, 트렌드, 중요한 사건, 사용자들의 주된 관심사 등을 용이하게 파악할 수 있는 기반을 제공한다. 따라서, 본 발명의 또 다른 목적은, 그와 같은 기반 위에서, 시간에 흐름에 따른, 특정 단어와 관련된 정보의 사회사적인 변화 추이를 파악할 수 있도록 특정 단어 이력을 제공함에 있다.
또한, 본 발명의 또 다른 목적은, 사용자가 특정 단어를 지정하여 웹 검색을 하고자 할 때, 연관 단어의 특정 단어와 관련된 연관도의 크기를 사용자가 용이하게 파악하도록 가시적으로 표시해줌으로써, 소망하는 정보에 더욱 근접하는 키워드를 선택할 수 있는 서비스를 제공함에 있다.
한편, 본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 것이다.
위와 같은 목적을 달성하기 위하여, 본 발명의 검색어 연관 네트워크 서비스 방법은, 웹 사이트가 웹상의 문서들을 미리 수집하여 단어 연관 정보 데이터베이스를 구축하는 단계와;
클라이언트가 상기 웹 사이트에서 특정 단어를 입력하여 검색 질의를 전송하는 단계와;
상기 웹 사이트가, 상기 기구축된 단어 연관 정보 데이터베이스에 저장된 단어 연관 정보를 조회하고 상기 특정 단어와 연관성이 있는 연관 단어들을 추출하여 연관 단어 리스트를 생성하는 단계와;
상기 연관 단어 리스트에서 얻어지는 복수의 연관 단어들과 상기 특정 단어와의 상호 연관도를 도식화하여 표현한 데이터(연관 네트워크)를 생성하는 단계; 및
상기 특정 단어에 대한 연관 네트워크를, 상기 클라이언트로 전송하여 클라 이언트의 모니터 화면에 시각적으로 표출하는 단계;를 포함하는 것을 특징으로 한다.
또한, 바람직하게는, 상기 클라이언트의 모니터 화면에 표시되는 상기 연관 네트워크는, 상기 복수의 연관 단어들이 위치하는 영역과 상기 특정 단어가 위치하는 영역이 상호 분리되어 있으며, 상호 연관이 있는 영역들이 연결선으로 연결되도록 함으로써 연관 네트워크를 시각화하는 것이 좋다.
또한, 더 바람직하게는, 상기 복수의 연관 단어들의 글자 색 및/또는 글자의 크기는 상기 특정 단어와의 연관도 크기에 따라 상이하게 표출하는 것이 좋다.
또한, 바람직하게는, 상기 클라이언트가 상기 복수의 연관 단어들 중 어느 하나를 클릭하는 경우, 해당 연관 단어 및 상기 특정 단어가 함께 검색어로 지정되거나, 또는 해당 단어만이 검색어로 지정되어, 상기 웹 사이트가 자동으로 연관 네트워크 및/또는 웹 문서 검색을 수행하도록 하는 것이 좋다.
또한, 상기 단어 연관 정보 데이터베이스를 구축하는 단계는,
미리 수집된 문서에서 단어간 연관도를 추출하는 단계; 및 추출된 연관도를 색인하여 저장하는 단계를 포함하는 것이 바람직하다.
또한, 상기 단어 연관 정보 데이터베이스를 구축하는 단계에서, 미리 수집된 문서들을 문장 단위로 분리하여 분석함으로써 단어 연관 정보를 생성하는 것이 바람직하다.
또한, 바람직한 실시예에서는, 상기 단어 연관 정보 데이터베이스를 구축하는 단계는,
미리 수집된 문서들을 문장 단위로 분리하는 단계와;
분리된 문장에서 형태소 분석을 통해 단어 리스트를 생성하는 단계와;
생성된 단어 리스트에서 단어 쌍들을 추출하여 임시 단어 쌍 정보 파일을 기록하는 단계와;
상기 임시 단어 쌍 정보 파일에서 데이터를 독출하여 단어별 단어 연관도 리스트를 추출하는 단계와;
추출된 상기 단어별 단어 연관도 리스트에 대하여, 단어 빈도 분석기에 의해 빈도지수를 연산하여 가공하고, 일정한 개수의 단어 연관도 리스트를 생성하는 단계; 및
생성된 단어 연관도 리스트를 단어별로 색인하여 저장하는 단계;를 포함하는 것을 특징으로 한다.
또한, 바람직하게는, 상기 추출된 단어별 단어 연관도 리스트에서, 상기 단어 빈도 분석기가 분석한 고빈도 불용어를 제거하는 단계를 더 포함하는 것이 좋다.
또한, 바람직하게는, 상기 단어 빈도 분석기에 의한 빈도지수는, 다음 식에 의하여 연산 되는 것을 특징으로 한다.
Figure 112008038683482-PAT00001
(Tf: 하루 동안 발견된 해당 단어의 빈도수, Wf: 해당 단어를 사용한 문서 작성자의 수, TcN: N일간 발견된 모든 단어의 수. TfN: N일간 발견된 해당 단어의 수, N: 빈도지수 통계구간)
또한, 바람직하게는, 상기 미리 수집되는 문서들은 문서의 작성 시점 및/또는 문서작성자가 기록된 것일 것이다.
또한, 본 발명의 검색어 연관 네트워크 서비스는, 상기 연관 단어 리스트 중 연관도가 가장 높은 일정 개수의 최상위층 연관 단어 리스트를, 일정한 날짜 간격으로 구분하여, 테이블 또는 그래프의 형태로, 연관 단어 리스트 추이를 표출하는 단계를 더 포함하는 것이 최적의 실시예의 일 특징이 될 것이다.
또한, 바람직하게는, 상기 클라이언트의 화면에 표출되는 상기 연관 네트워크는 검색일을 기준으로 추출한 데이터이며, 상기 클라이언트가 날짜 또는 상기 검색일로부터의 날짜 간격을 지정하는 경우, 상기 지정되는 날짜 또는 날짜 간격에 의하여 상기 연관 네트워크를 변경하는 단계를 더 포함하는 것이 좋다.
또한, 바람직하게는, 상기 클라이언트가 지정하는 날짜에 의해서, 상기 특정 단어에 대한 특정 단어 이력 데이터를 검색 결과로서 클라이언트에게 표출하는 것을 포함하는 것이 좋다.
또한, 상기 빈도지수는, 하루 동안 발견된 해당 단어의 빈도수, 해당 단어를 사용한 문서 작성자의 수, 특정 기간(예컨대 100일) 내에 발견된 모든 단어의 수, 특정 기간 발견된 해당 단어의 수에 관한 정보를 포함하는 것으로 이해될 수 있다.
본 발명의 검색어 연관 네트워크 서비스 방법에 따르면, 광범위한 웹 문서 수집 및 분석을 통해 획득한 다양한 단어들의 연관성을 가시적인 네트워크로서 사용자에게 직접적으로 제공되는 효과가 있다. 이를 통하여 특정 정보를 얻고자 하는 사용자가 보다 종합적으로 정보에 접근할 수 있게 되는 장점이 있다.
또한, 사용자가 선택한 특정 단어와 연관 단어의 "연관성"을 시간 흐름에 따라 파악할 수 있기 때문에, 특정한 날짜 또는 일정한 기간 동안의 특정 단어와 관련된 연관 단어의 추이를 파악함으로써, 해당 키워드에 대한 시간적인 스펙트럼을 얻을 수 있다.
이를 통해 사용자는, 정보에 대한 보다 종합적인 접근뿐만 아니라, 해당 정보에 관련하여, 그 당시의 사회적 이슈, 트렌드, 중요한 사건, 사용자들의 주된 관심사 등을 용이하게 파악할 수 있는 장점이 있는 것이다.
더욱이, 본 발명에 따르면, 특정 단어와 관련된 연관도의 크기가 가시적이고도 상이하게 표시됨으로써, 소망하는 정보에 더욱 용이하게 근접할 수 있다.
본 발명의 명세서에서 구체적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급됨을 첨언한다.
본 발명에서 사용되는 몇 가지 용어들은 다음과 같이 정의된다.
'특정 단어'는 사용자가 웹에서 검색어로 입력하여 지정하는 단어를 의미한다. 단, 사용자에 의해 지정된 단어를 서버측에서 검색하여 분석한 결과 다수의 연관 단어끼리의 연관성이 파생되는 경우 그 중 어느 한 연관 단어가 특정 단어로 포함될 수 있다.
'연관 단어'는 특정 단어와 연관성을 갖는 단어이며, 상호 연관도의 크기에 의해 특정 개수의 단어만이 사용자의 화면(웹 페이지)에 직접 표시된다.
'연관 네트워크'는 특정 단어와 연관 단어의 상호 연관도를 연결선과 구분 영역을 갖도록 도식화하여 표현한 데이터를 의미하며, 사용자의 화면에 직접 표시된다.
'단어 연관도 리스트'는 어떤 단어와 연관도를 갖는 다른 단어들의 리스트를 의미하며, 특정 단어 입력 전에 미리 수집ㆍ분석ㆍ저장 된다.
'연관 단어 리스트'는 특정 단어와 연관성을 갖는 단어의 리스트를 의미한다.
'검색어 연관 네트워크 분석 엔진'은 본 발명의 검색어 연관 네트워크 서비스를 실현하는 소프트웨어이다.
'특정 단어 이력'은 특정 단어 및 연관 단어를 매개로 한 정보의 시간적인 스펙트럼을 의미한다.
'불용어'는 관리자가 지정한 의미 없는 단어로 분석 대상이 아닌 것으로 설정한 리스트에 기록되어 있는 단어를 의미한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 내용을 설명한다. 그리고 본 발명을 설명함에 있어서, 관련된 공지기능 등 이 분야의 기술자에게 자명한 사항으로서 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
도 4는, 본 발명의 검색어 연관 네트워크 분석 엔진의 전체 모듈을 개략적으로 도시하고 있다. 검색어 연관 네트워크 분석 엔진은 크게 분석 모듈과 서비스 모듈로 나누어지며, 분석 모듈에는 단어들의 빈도를 분석하는 단어 빈도 분석기(100)와 단어들 사이의 연관도를 분석하는 단어 연관도 분석기(200)가 포함되며, 서비스 모듈에는 단어들의 유일성이나 불용어 등을 처리하는 단어 관리기(300)와 외부 모듈로부터 특정 단어를 입력받아 해당 단어에 대한 연관 단어 리스트와 연관 네트워크를 생성하여, 사용자 단말(전체 시스템 관점에서의 '클라이언트' 단말)에게 보여주는 연관 네트워크 생성기(400)가 포함된다. 4개의 상이한 데이터베이스는 상기 분석 모듈과 서비스 모듈에 의하여 접근되며, 그 상세한 내용은 아래에서 설명될 것이다.
도 5는 본 발명의 단어 빈도 분석기(100)의 개략적인 모듈 구성예를 나타낸다. 단어 빈도 분석기(100)는 고빈도 불용어를 제거해 주고, 각 단어의 빈도를 정해줌으로써 단어 연관도 분석기(200)가 보다 정확한 연관단어를 추출할 수 있도록 도와준다. 이를 위하여 예컨대 최근 100일간의 웹 문서에서 추출한 단어들의 빈도 를 빈도지수 공식에 의하여 계산된 결과를 단어 빈도 정보 데이터베이스(20)에 저장하며, 빈도지수 공식은 아래와 같다.
Figure 112008038683482-PAT00002
Tf는 하루 동안 발견된 해당 단어의 빈도수를 의미하며, Wf는 해당 단어를 사용한 문서 작성자의 수를 의미한다. 이 공식에서 N을 100으로 지정하는 경우 TCN( Tc100)은 100일간 발견된 모든 단어의 수, TfN(Tf100)는 100일간 발견된 해당 단어의 수를 의미한다. 즉, N=100(통계구간을 100일)로 하여 최근 100일간의 해당 단어에 대한 빈도지수 트렌드를 반영한다. 즉, N은 빈도지수를 계산하는 시점의 트렌드를 반영하기 위한 빈도지수 통계구간을 의미한다.
단어 빈도 분석기(100)의 단어추출 모듈(101)은 분석 대상 데이터베이스의 미리 수집한 웹문서(10)에서 불특정 단어들을 추출한다. 단어 빈도 병합 모듈(102)은 분석 대상 데이터베이스(10)에서 추출된 단어 정보를 분석하여 단어 빈도 정보 데이터베이스(20)를 생성하고, 다시 단어정보와 단어 빈도 정보 데이터베이스(20)에서 추출되는 빈도 정보와 병합한다. 단어 빈도 계산 모듈(103)은 위 빈도지수 공식에 기초하여 해당 단어에 대한 빈도를 계산한다. 새로운 단어의 빈도 분석 결과는 단어 빈도 정보 데이터베이스(20)에 저장된다. 상기 빈도 정보는, 하루 동안 발견된 해당 단어의 빈도수, 해당 단어를 사용한 문서 작성자의 수, 특정 기간(예컨대 100일) 내에 발견된 모든 단어의 수, 특정 기간 발견된 해당 단어의 수에 관한 정보를 포함한다.
도 6은 단어 연관도 분석기(200)의 개략적인 모듈 구성예를 도시한다. 본 발명의 단어 연관도 분석기(200)는 분석 대상 데이터베이스(10)의 미리 수집한 웹문서를 문장 단위로 분리하여 분석한다. 이와 같은 문장 단위 분석은, 분리된 문장에서 발견된 단어들은 서로 연관이 있다는 사실에 기초한다. 결과적으로 많은 문장에서 동일하게 추출되는 단어 쌍이 많을수록 두 단어는 상호 연관도가 높을 것이다. 단어 연관도 분석기(200)의 문장 추출 모듈(201)은 분석 대상 데이터베이스(10)의 미리 수집한 웹문서에서 다수의 문장을 추출하고, 단어 쌍 추출 모듈(203)은 추출된 다수의 문장에서 단어 쌍을 추출한다. 이때 단어 쌍이 용이하게 추출되도록 하기 위해서, 형태소 분석 모듈(202)이 다수의 문장의 형태소를 분석하여 단어 리스트를 생성한다. 추출된 단어 쌍은 임시 단어 쌍 정보 파일(60)로 저장되며, 단어별 단어 연관도 리스트 추출 모듈(204)에 의해 단어별로 단어 연관도 리스트가 추출된다. 단어 연관도 리스트 빈도 계산 모듈(205)은 단어 빈도 정보 데이터베이스(20)로부터 단어 빈도 정보를 받아 단어 연관도 리스트별 빈도를 연산하여 고빈도 불용어를 제거하고 최종적인 연관 단어 리스트를 생성한다. 그리고, 그 리스트를 하루 기준으로 나누어 날짜별 단어 연관 정보 데이터베이스(30)에 저장한다.
상기 날자별 단어 연관 정보 데이터베이스(30)에 기록되는 단어 연관도 리스트를 이용하여, 시간의 변화에 따른 특정 단어와 연관된 연관 단어의 리스트 정보 를 얻을 수 있으며, 이는 연관 네트워크 생성기(400)가, 상기 단어 연관 분석기(200)가 생성한 상기 단어 연관도 리스트를 가공함으로써 얻어진다.
도 7은 본 발명의 연관 네트워크 생성기(400)의 개략적인 모듈 구성도를 나타낸다. 연관 네트워크 생성기(400)는 쿼리 분석 모듈(401), 단어 조회 모듈(402), 단어 연관 정보 생성 모듈(403), 연관 단어 리스트 생성 모듈(404), 연관 네트워크 생성 모듈(405) 및 최종 결과 생성 모듈(406)을 포함한다. 통신모듈(12)은 클라이언트(11)로부터 쿼리를 수신하고 연관 네트워크 생성기(400)에 의해 최종 생성된 결과를 클라이언트(11)에게 전송한다. 쿼리 분석 모듈(401)은 클라이언트(11)로부터 입력된 쿼리를 분석하여 조회할 단어, 조회 기간, 조회 형태(연관 네트워크인지 연관 단어 리스트인지) 등을 분석한다. 쿼리 분석 모듈(401)에서 분석된 결과는 단어 조회 모듈(402)로 전달되며, 단어 조회 모듈(402)은 날짜별 단어 연관 정보 데이터베이스(30)에서 조회 대상 단어들과 단어 연관도 리스트를 단어 연관 분석기(200)가 생성한 결과 파일에서 날짜 별로 읽어 온다. 단어 연관 정보 생성 모듈(403)이 단어별 연관 정보에 기초하여 상호 연관도의 크기에 따라 내림차순으로 리스트를 정리하여 연관 단어 리스트를 추출하면, 연관 단어 리스트 생성 모듈(404)은 특정 단어에 대한 최상위층 연관 단어 리스트 및 날짜별 추이를 생성하고, 연관 네트워크 생성모듈(405)은 특정 단어에 대한 연관 네트워크를 생성한다. 또한, 최종 결과 생성 모듈(406)은 클라이언트에게 전송할 연관 네트워크와 연관 단어 리스트 추이를 XML 문서로 생성한다. 연관 네트워크 생성기(400)의 상 기 모듈들이 수행하는 조회와 연산 작업은 실제 단어가 아닌 단어 관리기(300)가 제공하는 단어의 키(KEY)로 연산 된다.
도 8은 본 발명에 따른 단어 관리기(300)의 내부 모듈 구성예를 개략적으로 나타내고 있다. '문자열(단어)'의 연산 속도 보다 '숫자(KEY)'의 연산 속도가 월등히 빠르기 때문에, 본 발명의 시스템의 모듈들은 단어 관리기(300)를 통하여 '문자열(단어)'을 '숫자(KEY)'로 변환하여 연산한다. 모든 연산이 종료된 후 최종적인 결과를 사용자에게 보여줄 때에는 단어 관리기(300)를 통하여 '숫자(KEY)'를 '문자열(단어)'로 변환하여 보여준다. 즉, 시스템 내부의 모든 모듈에서 사용하는 단어(불용어 포함)를 관리하는 단어 관리기(300)는 각 모듈들이 연산하기 쉽도록 단어를 숫자형 유일 키로 변환 및 관리한다.
단어 관리기(300)는 통신모듈(13)을 통해 단어 빈도 분석기(100), 단어 연관 분석기(200) 및 연관 네트워크 생성기(300)와 통신하며 각 주요 모듈들에게 단어 정보를 제공한다. 여기서 단어 정보는 특정 단어에 대한 키값 요청, 특정 키에 대한 대응 단어의 요청, 또는 불용어 처리에 대한 요청에 관한 정보이다.
각 모듈들이 단어 관리기(300)에 단어 정보를 요청하는 경우, 단어 관리기(300)의 단어 분석 모듈(301)이 이를 처리한다. 단어 분석 모듈(301)은 외부 모듈로부터 수신된 데이터가 단어인지 키값인지를 판단하고, 입력이 단어일 경우에는 불용어 검사 모듈(304)을 통해서, 단어 정보 데이터베이스(40)에 있는 불용어 리스트에서, 입력된 단어가 불용어인지 여부를 조회하며, 해당 단어가 불용어인 경우 불용어 키값인 숫자 '0'을 전송한다. 불용어가 아닌 단어의 경우, 단어 탐색 모듈(303)은 상기 단어 정보 데이터베이스(40)에서 해당 단어의 키값을 조회하며, 대응하는 키값이 있다면 조회된 키값을 결과로 전송한다. 단어 관리 데이터베이스에 조회한 단어의 키값이 없는 경우에는 단어 추가 모듈(302)을 통해서 해당 단어를 추가한 다음에 새로운 키값을 할당 받아 결과로 전송한다. 키값이 입력된 경우, 단어 분석 모듈(301)은 단어 정보 데이터베이스(40)에서 키값에 해당하는 단어를 조회하여 조회된 단어를 결과로 전송한다.
한편, 웹 문서를 수집하여, 수집된 웹 문서에서 단어를 추출함에 있어서, 분석 대상이 되는 유의미한 단어뿐만 아니라 웹 문서의 URL 코드값과 같은 무의미한 단어나 숫자도 함께 추출된다. 따라서 정확한 분석을 위해서는 이러한 무의미한 단어나 숫자를 제거할 필요가 있고, 이를 위해 사전에 단어 정보 데이터베이스(40)에 불용어 리스트를 저장하고, 웹 문서에 불용어 리스트에 기재된 단어가 포함되어 있으면 이를 분석대상에서 제외한다. 관리자에 의해 미리 작성된 불용어 리스트의 예시는 도 9와 같다.
이상으로 본 발명의 주요 구성 부분에 대해 상세히 설명하였다. 다음으로 본 발명의 검색어 연관 네트워크 서비스 방법의 구체적인 프로세스와 내용에 대해서 상세히 살펴보기로 한다.
도 10은 본 발명의 검색어 연관 네트워크 서비스 방법에 대한 실시예의 전체 프로세스를 나타낸다. 웹 사이트는 웹상의 문서들을 수집하여 단어 연관 정보 데 이터베이스(30)를 구축한다(S10). 이 S10 단계는 클라이언트가 검색어를 입력하여 질의를 요청하기 이전에 수행된다. 이 단계에서는 미리 수집된 웹문서에서 단어간의 연관도를 추출하며, 추출된 연관도를 날짜별로 색인하여 저장하여 단어 연관정보 데이터베이스(30)를 구축하는 것이다. 이에 대해서는 도 11이 구체적으로 도시하고 있으며 후술한다.
다음으로, 클라이언트는 인터넷을 통해 본 발명의 서비스를 제공하는 웹 사이트에 접속하여 특정 단어를 입력하여 검색을 요청한다(S20). 클라이언트의 검색 요청에 의해서 웹 사이트의 서버로 검색 질의가 전송되며, 검색 질의는 검색어 연관 네트워크 분석 엔진에 전달된다. 웹 사이트는 단어 연관도 분석기(200)에 의하여 생성된 단어 연관정보 데이터베이스(30)를 이용하여 상기 특정 단어가 포함된 단어 연관도 리스트를 조회하고 수집한다(S30). 그리고 수집된 단어들에서 상기 특정 단어와 연관있는 단어들을 추출하여 연관 단어 리스트를 생성한다(S40).
다음으로 연관 네트워크 생성기(400)가 상기 특정 단어의 연관 단어 리스트에서 얻어지는 복수의 단어들과의 연관 네트워크 및/또는 연관 단어 리스트 추이를 생성하며(S50), 생성된 연관 네트워크 생성 프로세스는 도식화된 데이터이기 때문에 도식화된 상태로 클라이언트의 모니터 화면에 표출됨으로써(S60), 클라이언트는 자신이 입력한 검색어에 관한 도식화된 연관 네트워크 및/또는 연관 단어 리스트 추이를 자신의 모니터에서 한눈으로 파악할 수 있게 된다. 클라이언트의 사용자 화면에 대해서는 후술한다. 웹 사이트의 서비스가 검색어에 대한 연관 네트워크 및/또는 연관 단어 리스트 추이만을 생성하여 제공하는 서비스라면, 연관 네트워크 및 /또는 연관 단어 리스트 추이만을 클라이언트에게 전송하지만, 바람직하게는, 통상적인 검색 작업을 병행하기 때문에, 통상적인 검색 결과와 더불어 연관 네트워크 및/또는 연관 단어 리스트 추이를 함께 전송하게 된다.
상기 분석 대상 데이터베이스(10)에는 웹상에 존재하는 광범위한 웹 문서, 즉 신문기사, 블로그에 저장된 문서, 웹 게시판에 기록된 문서 등의 문서 등이 기록되어 있으며, 워드나 PDF 파일 등의 텍스트에 제한되지 않고, 동영상이나 그림 파일의 제목 부분의 텍스트도 포함되어 분석 대상 데이터로 특정될 수 있다. 또한, 빈도지수 공식을 이용하여 고빈도 불용어를 제거하기 위해서, 분석 대상 데이터베이스(10)의 분석 대상 데이터는 작성시점이나 수집 시점 및 작성자가 특정되어 있을 것이다.
도 11은 상기 단어 연관 정보 데이터베이스(30)를 구축하는 단계(S10)를 보다 구체적으로 도시하고 있다. 이 단계는 단어 연관도 분석기(200)에 의해 수행되기 때문에, 도 11은 단어 연관도 분석기(200)의 상세한 분석 과정을 설명한다.
웹 사이트의 단어 연관도 분석기(200)는 분석대상 데이터베이스(10)에서 이미 수집된 문서들을 문장 단위로 분리한다(S11). 예컨대 표 1과 같은 웹 문서가 존재한다면, 표 2와 같이 문장 단위로 분리하는 것이다. 본 실시예에서 분석되는 ‘박지성’은 수많은 단어 중에서 임의로 예를 들어 분석한 것이며, 이는 상기 S20 단계에 선행되어 미리 수행되는 것이기 때문에, 클라이언트에 의해 향후 입력되는 특정 단어와 구별됨을 첨언해 둔다. 이하의 표들은 이러한 예로서 설명한 것이다.
박지성은 2일(이하 한국시각) 이탈리아 AS로마와의 2007~2008 시즌 유럽챔피언스리그 8강 1차전에서 알렉스 퍼거슨 감독이 야심 차게 뽑아든 '히든카드'였다. 아무도 그의 선발 출전을 예상치 못했다. 부상에도 불구하고 긱스가 원정에 합류했기 때문이다. 그래서 우려가 많았다. 하지만 박지성은 최고의 활약으로 의심의 눈초리를 잠재웠다. 공수에 걸친 90분간의 활약은 흠이 없었다.
박지성은 2일(이하 한국시각) 이탈리아 AS로마와의 2007~2008 시즌 유럽챔피언스리그 8강 1차전에서 알렉스 퍼거슨 감독이 야심 차게 뽑아든 '히든카드'였다.
아무도 그의 선발 출전을 예상치 못했다.
부상에도 불구하고 긱스가 원정에 합류했기 때문이다.
그래서 우려가 많았다.
하지만 박지성은 최고의 활약으로 의심의 눈초리를 잠재웠다.
공수에 걸친 90분간의 활약은 흠이 없었다.
다음으로 분리된 문장에서 형태소 분석을 통해 문법상 또는 문맥상 의미 없는 단어를 제외하여 단어 리스트를 생성한다(S12). 예컨대 표 2의 첫 번째 문장을 형태소 분석하면 아래의 표 3와 같다. '은', '와의'. '에서', '이', '였다' 등의 조사, '뽑아든', '시즌'과 같은 단어들이 제외되었다.
박지성은 2일(이하 한국시각) 이탈리아 AS로마와의 2007~2008 시즌 유럽챔피언스리그 8강 1차전에서 알렉스 퍼거슨 감독이 야심 차게 뽑아든 '히든카드'였다.
박지성, 2일, 한국시각, 이탈리아, AS로마, 유럽챔피언스리그, 8강, 1차전, 알렉스, 퍼거슨, 감독, 야심, 히든카드
다음으로 표 3과 같이 추출된 단어 리스트를 예컨대 표 4와 같이 각각 쌍으로 연결하고, 대용량 처리를 위하여 임시 단어 쌍 정보 파일을 기록한다(S13).
박지성-2일, 박지성-한국시각, 박지성-이탈리아, 박지성-AS로마, … 2일-한국시각, 2일-이탈리아, 2일-AS로마, 2일-유럽챔피언스리그, … 한국시각-이탈리아, 한국시각-AS로마, 한국시각-유럽챔피언스리그, …
다음으로, 상기 임시 단어 쌍 정보 파일에서 데이터를 독출하여 단어 별로 연관 단어 리스트를 추출한다(S14). 예컨대, 아래의 표 5와 같다.
박지성(2일, 한국시각, 이탈리아, AS로마, …) 2일(한국시각, 이탈리아, AS로마, 유럽챔피언스리그, …) 한국시각(이탈리아, AS로마, 유럽챔피언스리그, …) …
다음으로, 추출된 단어별 단어 연관도 리스트에서 일정 개수의 단어 연관도 리스트를 생성한다(S15). 이때, 단어 연관도 리스트의 정확성을 위하여 소정의 필터링을 수행하며, 이는 추출된 단어 연관도 리스트에서 단어 빈도 분석기가 분석한 각 단어의 빈도정보를 사용하여 필터링을 하며, 특히 상기 빈도지수 공식에 의한 연산을 통해서 고빈도 불용어를 제거한다. 예컨대 여러 문서에서 공통으로 사용되는 단어는, 분석 대상의 단어와 무관하게 일반적으로 많이 사용되는 단어로 간주될 수 있기 때문에, 이를 제외하는 것이다. 즉, 위 빈도지수 공식에서, 고빈도 불용어의 경우, TfN (N=100) 변수가 커지기 때문에, 결과적으로 빈도지수(빈도점수)가 낮아진다. 그 결과, 위 표 5에서 일반적인 문서에서도 고빈도로 사용되는 '2일'과 '한국시각'이 제거된다. 예컨대 표 6과 같다.
박지성(이탈리아, AS로마, …) …
최종 추출된 단어 리스트를 하루 기준으로 나누어 날짜별로 색인된 단어 연관 정보 데이터베이스에 기록된다. 이렇게 저장된 데이터는 단어 연관도 분석기(400)에서 시간 변화에 따른 특정 단어와 연관되어 가공된다.
한편, 연관 네트워크 생성기(400)는 단어 연관도 분석기(200)가 위와 같이 분석한 결과에서, 이후 입력되는 질의어에 대한 기본 정보를 가공하여 '연관 단어 리스트 추이'와 '연관 네트워크'를 생성하여 그 결과를 반환한다. 연관 네트워크는 입력된 특정 단어와 연관성이 있다고 분석되는 단어들을 도식적으로 보여주며, 네트워크를 생성하는 기준 날짜를 1일부터 N일까지 변경하면서 연관 네트워크를 확인할 수 있도록 한다. 또한, 연관 네트워크 생성기(400)는 단어 연관도 분석기(200)에 의해 입력된 단어들과 연관성이 있다고 추출된 단어들 간의 연관도도 계산하여 단어 간에 서로 연관성이 있다고 판단되는 단어들을 묶어서 보여준다. 따라서 연관 네트워크는 연관성을 갖는 단어들이 연결선으로 연결되어 도식화된다.
연관 단어 리스트 추이는 입력된 단어와 연관성이 있다고 분석되는 단어들의 리스트를 특정 날짜를 기준으로 합하여 일정한 개수의 리스트를 보여 준다. 즉, 기준 날짜가 1일이면 1일 단위로 5일 동안 연관 단어가 어떻게 변화하였는지를, 10일이면 10일 단위로 50일 동안 연관 단어가 어떻게 변화하였는지를 보여준다. 연관 네트워크와 마찬가지로 하나의 리스트는 1일부터 N일까지 변경이 가능하며 연관 단어 리스트 추이는 다양한 기간별 연관 단어의 변화 리스트를 확인할 수 있다.
상술한 연관 네트워크 생성기(400)의 동작 과정을, 클라이언트에 의하여 질의어로서 입력되는 특정 단어 ‘박지성’에 대하여, 표 1 내지 표 6에서 분석된 '박지성'에 대한 단어 연관도 분석기(200)의 분석 결과(‘단어 연관도 리스트’)에 기초하여 예시하여 반복 설명한다. 연관 네트워크 생성기(400)는 먼저 클라이언트로부터 입력된 특정 단어에 대한 입력된 쿼리에 대하여 분석하며, 단어 연관도 분석기(200)에서 생성한 결과 파일에서 단어 연관도 리스트들을 표 7과 같이 날짜별로 읽어온다. 특정 단어에 대응하는, 기저장된 단어 연관도 리스트를 추출하면 이는 곧 특정 단어에 대한 연관 단어 리스트로 특정된다. 단, 해당 단어에 대한 단어 연관도 리스트가 사전에 데이터베이스에 저장되어 있지 않으면, 연관 단어 리스트가 특정되지 않기 때문에, 결국 후술하는 연관 네트워크 및 연관 단어 리스트 추이 결과는 생성되지 않을 것이다.
박지성에 대한 결과
2008. 04. 07 이탈리아(100), AS로마(50)
2008. 04. 06 퍼거슨(80), 공격포인트(30)
2088. 04. 03 맨유(200), 퍼거슨(30), 부상(10)
2008. 04. 02 유럽챔피언스리스(70)
다음으로, 날짜별 조회된 단어 연관도 리스트를 하나의 리스트로 만든다. 이때 각 단어의 연관도 점수를 내림차순으로 리스트를 재정렬하여, 특정 단어 ‘박지성’에 대한 연관 단어 리스트를 생성한다. 아래의 표 8과 같다.
박지성에 대한 결과
2008. 04. 07 ~ 2008. 04. 02 맨유(200), 퍼거슨(110), 이탈리아(100), 유럽챔피언스리그(70), AS로마(50), 공격포인트(30), 부상(10)
다음으로 연관 네트워크를 생성하기 위하여, 질의어인 특정 단어와 위 표 8의 우측 연관 단어 중 어느 하나를 묶고, 이를 검색어로 자동으로 지정한 후, 이 검색어와 연관성이 있는 연관 단어 중 가장 상호 연관도가 높은 하나를 추출한다. 그 결과가 아래의 표 9와 같다.
순번 검색어 연관단어 원본리스트 비고
1 박지성, 맨유 퍼거슨 맨유 2번 단어와 일치
2 박지성, 퍼거슨 감독 퍼거슨 일치 없음
3 박지성, 이탈리아 AS로마 이탈리아 5번 단어와 일치
4 박지성, 유럽챔피언스리그 이탈리아 유럽챔피언스리그 3번 단어와 일치
5 박지성, AS로마 출전 AS로마 일치 없음
6 박지성, 공격포인트 출전 공격포인트 일치 없음
7 박지성, 부상 골절 부상 일치 없음
위 표 9에서의 연관 단어는 검색어와 연관 단어 리스트의 단어를 동시에 만족하는 단어 중 가장 높은 연관도를 갖는 단어를 추출한 것이지만, '감독'. '출전', '골절'의 경우, 연관 단어 리스트에 일치하는 단어가 없다. 추출된 연관 단어들 중에서 서로 연관도가 있는 경우 자식 노드로 변경하고, 연관 단어 리스트에 일치하는 단어가 없는 경우에는 자식 노드를 생성하지 않는다. 부모 단어와 자식 단어는 연결선으로 연결하여 연관도를 표출한다. 이에 대해서는 후술한다.
박지성에 대한 결과
부모 단어 자식 단어
맨유 퍼거슨
이탈리아 AS로마, 유럽챔피언스리그
공격포인트 없음
부상 없음
연관 단어 리스트는 총 N개의 리스트가 있기 때문에, 위 표 8의 단어 연관 정보를 날짜에 따라 N번 수행함으로써 최종 결과를 생성한다. 위의 모든 작업은 실제 단어가 사용되지 않고 단어 관리기(300)가 제공하는 단어의 키로 연산된다. 연산을 마친 후 키에 해당하는 단어를 단어 관리기(300)에 조회해서 받아 온 다음에 클라이언트에 전송할 연관 단어 리스트 추이 및 연관 네트워크를 XML 문서로 생성한다. 박지성에 대한 연관 단어 리스트 추이 및 연관 네트워크의 XML 문서는 각각 도 12 및 도 13으로 예시되어 있다.
클라이언트의 모니터에 표시되는 사용자 화면은 연관 네트워크 생성기(400)로부터 수신한 XML 데이터를 웹 사이트의 서버가 사용자가 이해하기 쉽게 표현한 것이다. 도 14은 사용자 화면에 표시되는 연관 단어 리스트 추이를 나타내며, 테이블 형식으로 표시되며, 날짜별로 변화하는 연관 단어의 추이를 시각적으로 용이하게 확인할 수 있다. 특히, 모든 날짜별 연관 단어 리스트에 포함되어 있는 연관 단어('맨유')는 특별하게 표시하며, 이를 선으로 연결하여 표시하면 연관 단어의 추이 그래프가 된다. 따라서 사용자는 자신이 검색어로 지정한 특정 단어와 관련하여, 연관도를 갖는 연관 단어의 변화를 알 수 있다. 또한, 날짜별로 변화하는 연관 단어 리스트에, 전혀 연관도가 없는 것으로 보이는 단어가 날짜별로 각각 추출되는 경우가 있다. 이를 통해 특정 단어에 대한 사회적인 관심이나 트렌드의 변화, 특정한 사건의 발생 여부 등을 알 수 있으며, 이러한 '특정 단어 이력(history)' 정보는 본 발명이 신규하게 제공하는 서비스인 것이다.
도 15는 사용자 화면에 표시되는 본 발명에 따른 연관 네트워크의 일예를 도시한다. 연관 네트워크는 특정 단어와 연관된 단어들 간의 연관도를 네트워크 형태로 도식화하여 각각의 단어들이 연관된 모습을 시각적으로 보여준다. 도 15에서 보는 바와 같이, 특정 단어가 위치하는 구분 영역과 이 특정 단어와 연관도를 갖는 연관 단어가 위치하는 구분 영역은 상호 분리되어 있으며, 이때 서로 연관성이 있는 단어들끼리 해당 구분 영역들을 연결선으로 연결하고 특정 단어와의 연관도 점수를 글자의 크기로 표현하여 단어 간의 연관도를 더 이해하기 쉽게 도와준다.
연관도의 크기(점수)에 따라서 연관 네트워크에 표시되는 복수의 연관단어들의 글자 색 및/또는 글자의 크기를 달리할 수 있으며, 바람직하게는 구분 영역의 크기나 색깔을 달리하여 표시한다.
또한, 클라이언트가 도 15의 연관 네트워크에 표시된 "맨유"라는 문자(구분 영역)을 클릭하는 경우, 웹 사이트의 시스템이 자동으로 검색어로서 특정 단어를 "박지성+맨유"로 지정되도록 함으로써, "박지성+맨유"에 대한 도 10과 같은 연관 단어 검색 프로세스를 진행한다("박지성+맨유"를 검색어로 하는 웹 검색을 함께 병행할 수 있다), 그 결과, "박지성+맨유"에 대한, 도 14 및 도 15와 같은, 새로운 연관 단어 리스트 추이와 연관 네트워크 데이터를 갱신하여 사용자에게 제공한다. 다른 실시예에서는, 클라이언트가 도 15의 연관 네트워크에 표시된 "맨유"라는 문자(구분 영역)을 클릭하는 경우, "맨유"만을 특정 단어로 자동 지정하여 "맨유"만의 연관 네트워크 검색 프로세스를 진행할 수 있다.
한편, 본 발명의 보호범위가 이상에서 명시적으로 설명한 실시례에 의해 제한되는 것은 아니다. 또한, 본 발명이 속하는 기술분야에서의 자명한 변경이나 치환으로 말미암아 본 발명의 보호범위가 제한될 수도 없음을 첨언한다.
도 1 내지 도 3은 종래의 검색어 기반 웹 검색 시스템과 방법에 대한 개략적인 개념을 설명하는 도면이다.
도 4는 본 발명에 따른 검색어 연관 네트워크 분석 엔진의 전체 모듈을 개략적인 구성을 예시하는 도면이다.
도 5는 본 발명에 따른 단어 빈도 분석기의 개략적인 구성을 예시하는 도면이다.
도 6은 본 발명에 따른 단어 연관도 분석기의 개략적인 구성을 예시하는 도면이다.
도 7은 본 발명에 따른 연관 네트워크 생성기의 개략적인 구성을 예시하는 도면이다.
도 8은 본 발명에 따른 단어 관리기의 개략적인 구성을 예시하는 도면이다.
도 9는 관리자가 미리 지정하여 저장해 둔 불용어 리스트의 예를 나타내는 도면이다.
도 10은 본 발명의 일 실시예에 따른 검색어 연관 네트워크 서비스 방법의 전체 프로세스를 나타내는 도면이다.
도 11은 도 10의 S10 단계의 보다 상세한 프로세스를 예시하는 도면이다.
도 12는 본 발명에 따른 연관 네트워크 생성기(400)가 최종적으로 생성한 연관 단어 리스트 추이 결과의 XML 문서의 일 예이다.
도 13은 본 발명에 따른 연관 네트워크 생성기(400)가 최종적으로 생성한 연 관 네트워크 결과의 XML 문서의 일 예이다.
도 14는 사용자 화면에 표시되는 본 발명에 따른 연관 단어 리스트 추이의 일 예를 나타내는 도면이다.
도 15는 사용자 화면에 표시되는 본 발명에 따른 연관 네트워크의 일 예를 나타내는 도면이다.
<도면의 주요부분에 대한 부호의 설명>
10 : 분석 대상 데이터베이스
20 : 단어 빈도 정보 데이터베이스
30 : 단어 연관 정보 데이터베이스
40 : 단어 정보 데이터베이스
60 : 임시 단어 쌍 정보 파일 데이터베이스
100 : 단어 빈도 분석기 101: 단어 추출 모듈
102 : 단어 빈도 병합 모듈 103 : 단어 빈도 계산 모듈
200 : 단어 연관도 분석기 201 : 문장 추출 모듈
202 : 형태소 분석 모듈 203 : 단어 쌍 추출 모듈
204 : 단어별 단어 연관도 리스트 추출 모듈
205 : 단어 연관도 리스트 빈도 계산 모듈
300 : 단어 관리기 301 : 단어 분석 모듈
302 : 단어 추가 모듈 303 : 단어 탐색 모듈
304 : 불용어 검사 모듈
400 : 연관 네트워크 생성기 401 : 쿼리 분석 모듈
402 : 단어 조회 모듈 403 : 단어 연관 정보 생성 모듈
404 : 연관 단어 리스트 생성 모듈 405 : 연관 네트워크 생성 모듈
406 : 최종 결과 생성 모듈
※ 첨부된 도면은 본 발명의 기술사상에 대한 이해를 위하여 참조로서 예시된 것임을 밝히며, 그것에 의해 본 발명의 권리범위가 제한되지는 아니한다.

Claims (14)

  1. 웹 사이트가 웹상의 문서들을 미리 수집하여 단어 연관 정보 데이터베이스를 구축하는 단계;
    클라이언트가 상기 웹 사이트에서 특정 단어를 입력하여 검색 질의를 전송하는 단계;
    상기 웹 사이트가, 상기 기구축된 단어 연관 정보 데이터베이스에 저장된 단어 연관 정보를 조회하고 상기 특정 단어와 연관성이 있는 연관 단어들을 추출하여 연관 단어 리스트를 생성하는 단계;
    상기 연관 단어 리스트에서 얻어지는 복수의 연관 단어들과 상기 특정 단어와의 상호 연관도를 도식화하여 표현한 데이터(연관 네트워크)를 생성하는 단계; 및
    상기 특정 단어에 대한 연관 네트워크를, 상기 클라이언트로 전송하여 클라이언트의 모니터 화면에 시각적으로 표출하는 단계;를 포함하는, 검색어 연관 네트워크 서비스 방법.
  2. 제 1 항에 있어서,
    상기 클라이언트의 모니터 화면에 표시되는 상기 연관 네트워크는, 상기 복수의 연관 단어들이 위치하는 영역과 상기 특정 단어가 위치하는 영역이 상호 분리되어 있으며, 상호 연관이 있는 영역들이 연결선으로 연결되도록 함으로써 연관 네 트워크를 시각화하는 것인, 검색어 연관 네트워크 서비스 방법.
  3. 제 2 항에 있어서,
    상기 복수의 연관 단어들의 글자 색 및/또는 글자의 크기는 상기 특정 단어와의 연관도 크기에 따라 상이하게 표출하는, 검색어 연관 네트워크 서비스 방법.
  4. 제 1 항에 있어서,
    상기 클라이언트가 상기 복수의 연관 단어들 중 어느 하나를 클릭하는 경우,
    해당 연관 단어 및 상기 특정 단어가 함께 검색어로 지정되거나, 또는 해당 단어만이 검색어로 지정되어, 상기 웹 사이트가 자동으로 연관 네트워크 및/또는 웹 문서 검색을 수행하는, 검색어 연관 네트워크 서비스 방법.
  5. 제 1 항에 있어서,
    상기 단어 연관 정보 데이터베이스를 구축하는 단계는,
    미리 수집된 문서에서 단어간 연관도를 추출하는 단계; 및
    추출된 연관도를 색인하여 저장하는 단계를 포함하는, 검색어 연관 네트워크 서비스 방법.
  6. 제 1 항에 있어서,
    상기 단어 연관 정보 데이터베이스를 구축하는 단계에서,
    미리 수집된 문서들을 문장 단위로 분리하여 분석함으로써 단어 연관 정보를 생성하는 것인, 검색어 연관 네트워크 서비스 방법.
  7. 제 1 항에 있어서,
    상기 단어 연관 정보 데이터베이스를 구축하는 단계는,
    미리 수집된 문서들을 문장 단위로 분리하는 단계;
    분리된 문장에서 형태소 분석을 통해 단어 리스트를 생성하는 단계;
    생성된 단어 리스트에서 단어 쌍들을 추출하여 임시 단어 쌍 정보 파일을 기록하는 단계;
    상기 임시 단어 쌍 정보 파일에서 데이터를 독출하여 단어별 단어 연관도 리스트를 추출하는 단계;
    추출된 상기 단어별 단어 연관도 리스트에 대하여, 단어 빈도 분석기에 의해 빈도지수를 연산하여 가공하고, 일정한 개수의 단어 연관도 리스트를 생성하는 단계; 및
    생성된 단어 연관도 리스트를 단어별로 색인하여 저장하는 단계;를 포함하는, 검색어 연관 네트워크 서비스 방법.
  8. 제 7 항에 있어서,
    상기 추출된 단어별 단어 연관도 리스트에서, 상기 단어 빈도 분석기가 분석한 고빈도 불용어를 제거하는 단계를 더 포함하는, 검색어 연관 네트워크 서비스 방법.
  9. 제 7 항에 있어서,
    상기 단어 빈도 분석기에 의한 빈도지수는, 다음 식에 의하여 연산 되는 것을 특징으로 하는, 검색어 연관 네트워크 서비스 제공 방법.
    Figure 112008038683482-PAT00003
    (Tf: 하루 동안 발견된 해당 단어의 빈도수, Wf: 해당 단어를 사용한 문서 작성자의 수, TcN: N일간 발견된 모든 단어의 수. TfN: N일간 발견된 해당 단어의 수, N: 빈도지수를 계산하는 시점의 트렌드를 반영하기위한 빈도지수 통계구간)
  10. 제 1 항에 있어서,
    미리 수집되는 문서들은 문서의 작성 시점 및/또는 문서작성자가 기록된 것인, 검색어 연관 네트워크 서비스 방법.
  11. 제 1 항에 있어서,
    상기 연관 단어 리스트 중 연관도가 가장 높은 일정 개수의 최상위층 연관 단어 리스트를, 일정한 날짜 간격으로 구분하여, 테이블 또는 그래프의 형태로, 연관 단어 리스트 추이를 표출하는 단계를 더 포함하는, 검색어 연관 네트워크 서비 스 방법.
  12. 제 1 항에 있어서,
    상기 클라이언트의 화면에 표출되는 상기 연관 네트워크는 검색일을 기준으로 추출한 데이터이며, 상기 클라이언트가 날짜 또는 상기 검색일로부터의 날짜 간격을 지정하는 경우, 상기 지정되는 날짜 또는 날짜 간격에 의하여 상기 연관 네트워크를 변경하는 단계를 더 포함하는, 검색어 연관 네트워크 서비스 방법.
  13. 제 1 항에 있어서,
    상기 클라이언트가 지정하는 날짜에 의해서, 상기 특정 단어에 대한 특정 단어 이력 데이터를 검색 결과로서 클라이언트에게 표출하는 것을 포함하는, 검색어 연관 네트워크 서비스 방법.
  14. 제 7 항에 있어서,
    상기 빈도지수는, 하루 동안 발견된 해당 단어의 빈도수, 해당 단어를 사용한 문서 작성자의 수, 특정 기간(예컨대 100일) 내에 발견된 모든 단어의 수, 특정 기간 발견된 해당 단어의 수에 관한 정보를 포함하는 것인, 검색어 연관 네트워크 서비스 방법.
KR1020080050432A 2008-05-29 2008-05-29 검색어 연관 네트워크 서비스 방법 KR20090124301A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080050432A KR20090124301A (ko) 2008-05-29 2008-05-29 검색어 연관 네트워크 서비스 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080050432A KR20090124301A (ko) 2008-05-29 2008-05-29 검색어 연관 네트워크 서비스 방법

Publications (1)

Publication Number Publication Date
KR20090124301A true KR20090124301A (ko) 2009-12-03

Family

ID=41686249

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080050432A KR20090124301A (ko) 2008-05-29 2008-05-29 검색어 연관 네트워크 서비스 방법

Country Status (1)

Country Link
KR (1) KR20090124301A (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101035039B1 (ko) * 2010-11-02 2011-05-19 한국과학기술정보연구원 질의에 따른 연관정보 제공 장치 및 방법
KR20150111612A (ko) * 2014-03-26 2015-10-06 삼성전자주식회사 사용자단말기 및 그 제어방법
KR20160033563A (ko) 2014-09-18 2016-03-28 경북대학교 산학협력단 데이터베이스 구축 방법, 이를 수행하기 위한 기록매체
KR20160066216A (ko) * 2014-12-02 2016-06-10 세종대학교산학협력단 사용자 검색어 연관 이슈패턴 검출 방법, 이를 수행하는 이슈패턴 검출 서버 및 이를 저장하는 기록매체
KR101651780B1 (ko) * 2015-04-15 2016-08-29 한양대학교 에리카산학협력단 빅 데이터 처리 기술을 이용한 연관 단어 추출 방법 및 그 시스템
KR20210090930A (ko) * 2020-01-13 2021-07-21 에스케이 주식회사 지식 그래프 기반 정보 검색 시스템 및 정보 검색 방법
CN114938477A (zh) * 2022-06-23 2022-08-23 阿里巴巴(中国)有限公司 视频话题确定方法、装置及设备

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101035039B1 (ko) * 2010-11-02 2011-05-19 한국과학기술정보연구원 질의에 따른 연관정보 제공 장치 및 방법
WO2012060526A1 (ko) * 2010-11-02 2012-05-10 한국과학기술정보연구원 질의에 따른 연관정보 제공 장치 및 방법
KR20150111612A (ko) * 2014-03-26 2015-10-06 삼성전자주식회사 사용자단말기 및 그 제어방법
KR20160033563A (ko) 2014-09-18 2016-03-28 경북대학교 산학협력단 데이터베이스 구축 방법, 이를 수행하기 위한 기록매체
KR20160066216A (ko) * 2014-12-02 2016-06-10 세종대학교산학협력단 사용자 검색어 연관 이슈패턴 검출 방법, 이를 수행하는 이슈패턴 검출 서버 및 이를 저장하는 기록매체
KR101651780B1 (ko) * 2015-04-15 2016-08-29 한양대학교 에리카산학협력단 빅 데이터 처리 기술을 이용한 연관 단어 추출 방법 및 그 시스템
KR20210090930A (ko) * 2020-01-13 2021-07-21 에스케이 주식회사 지식 그래프 기반 정보 검색 시스템 및 정보 검색 방법
CN114938477A (zh) * 2022-06-23 2022-08-23 阿里巴巴(中国)有限公司 视频话题确定方法、装置及设备
CN114938477B (zh) * 2022-06-23 2024-05-03 阿里巴巴(中国)有限公司 视频话题确定方法、装置及设备

Similar Documents

Publication Publication Date Title
US6401118B1 (en) Method and computer program product for an online monitoring search engine
US8346764B1 (en) Information retrieval systems, methods, and software with content-relevancy enhancements
KR101060594B1 (ko) 문서 데이터의 키워드 추출 및 연관어 네트워크 구성 장치 및 방법
US20090077065A1 (en) Method and system for information searching based on user interest awareness
US7454398B2 (en) Support for object search
US20080086453A1 (en) Method and apparatus for correlating the results of a computer network text search with relevant multimedia files
KR20090124301A (ko) 검색어 연관 네트워크 서비스 방법
JP5084858B2 (ja) サマリ作成装置、サマリ作成方法及びプログラム
CA2404319A1 (en) Method and system for gathering, organizing, and displaying information from data searches
US20080243835A1 (en) Program, method and apparatus for web page search
US20100179953A1 (en) Information presentation system, information presentation method, and program for information presentation
US11232137B2 (en) Methods for evaluating term support in patent-related documents
JP2009271799A (ja) 企業相関情報抽出システム
JP4875911B2 (ja) コンテンツ特定方法及び装置
JP2002245061A (ja) キーワード抽出
Yoshinaga et al. Open-domain attribute-value acquisition from semi-structured texts
EP2181400A1 (en) Method and apparatus for generating search keys based on profile information
JP2009122807A (ja) 連想検索システム
JP2003173352A (ja) 検索ログ解析方法および装置、文書情報検索方法および装置、検索ログ解析プログラム、文書情報検索プログラム、および記録媒体
JP4759600B2 (ja) 文章検索装置、文章検索方法、文章検索プログラムおよびその記録媒体
JP4853915B2 (ja) 検索システム
KR20080028031A (ko) 키워드 및 키워드에 관련된 각종 콘텐츠를 자동으로추출하고 디스플레이하는 시스템 및 방법
JP2010286888A (ja) 情報収集システムおよび情報収集方法ならびにそのプログラム
US20020062341A1 (en) Interested article serving system and interested article serving method
KR102428046B1 (ko) 유사 발명 기술 문서를 통합한 가상 복합 기술문서를 이용한 발명 기술 검색 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application