KR101543680B1 - 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법 - Google Patents
인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR101543680B1 KR101543680B1 KR1020110123625A KR20110123625A KR101543680B1 KR 101543680 B1 KR101543680 B1 KR 101543680B1 KR 1020110123625 A KR1020110123625 A KR 1020110123625A KR 20110123625 A KR20110123625 A KR 20110123625A KR 101543680 B1 KR101543680 B1 KR 101543680B1
- Authority
- KR
- South Korea
- Prior art keywords
- opinion
- entity
- keyword
- meta information
- information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/156—Query results presentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법에 관한 것으로, 인터넷 상에 존재하는 웹 문서 데이터들을 수집하는 제1 서버와, 상기 제1 서버로부터 수집된 웹 문서 데이터들을 제공받아 개체별 메타 정보들을 추출하고, 상기 개체별 메타 정보들을 이용하여 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 분석하는 데이터 분석서버와, 상기 데이터 분석서버로부터 분석된 개체별 메타 정보들을 비롯한 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 데이터베이스화하여 저장되도록 인덱싱하는 제2 서버와, 인터넷을 통해 접속되어 사용자 단말로부터 전송된 사용자 검색 키워드를 제공받아 상기 제2 서버와 연동되어 상기 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재하는지 판단하고, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재할 경우 해당 사용자 단말의 화면에 해당 메타 정보 또는 대상 키워드와 관련된 개체 리스트 결과를 디스플레이 해주는 웹 서버를 포함함으로써, 특정 사용자 검색 키워드가 지시하는 개체(Entity)를 직접 찾아서 개체 결과 리스트를 비롯한 의견통계 정보들을 손쉽게 한눈에 검색 및 모니터링 할 수 있는 효과가 있다.
Description
본 발명은 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법에 관한 것으로, 보다 상세하게는 인터넷을 이용하는 사용자들에 의해 입력된 특정 검색 키워드가 지시하는 개체(Entity)를 직접 찾아서 문서가 아닌 개체 결과 리스트 및/또는 규칙기반(Rule-Based)과 기계학습(Machine Learning) 방식을 모두 사용하는 하이브리드 기반(Hybrid-Based) 방식으로 추출된 의견통계 정보들을 해당 사용자 단말을 통해 디스플레이 해줌으로써, 인터넷 사용자들은 특정 검색 키워드와 관련된 개체들을 한눈에 검색 및 모니터링 할 수 있도록 한 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법에 관한 것이다.
최근에 인터넷 사용이 점차 활발해 짐에 따라, 많은 사람들이 인터넷에서 예컨대, 블로그(Blog), 위키(Wiki)와 같은 매체를 통해서 자신의 의견을 표현하고 있는 추세이다. 또한, 특정한 정보의 가치를 평가할 때, 이러한 다른 사람들이 인터넷 상에 올려놓은 의견 정보를 참조하고자 하는 수요도 높아지고 있다.
예를 들면, 인터넷 상에는 상품 리뷰(Review)에서 영화 리뷰까지 다양한 사용자들의 의견이 존재한다. 이러한 각 사용자들의 의견들은 일반 사용자들이 물품을 구매하거나, 영화를 보기 전에 다른 사용자들의 의견을 보고자 하는 경우에도 이용될 수 있으며, 마케팅 담당자나 주식 매매자 등이 각 물품이나 회사에 대한 일반 사용자들의 다양한 의견을 알고자 하는 경우에도 사용될 수 있다. 특히, 일반 사용자들은 특정 물품을 구매하기 전에 다른 사용자들의 평가를 먼저 보고 나서 이런 물품을 구매하려는 경향이 크다.
하지만, 이러한 인터넷 상에 존재하는 의견들은 개개의 웹사이트들에만 존재하여, 이러한 의견 정보들을 사용하고자 할 경우에는 사용자가 일일이 이러한 개개의 모든 웹사이트를 수동으로 찾아보아야 하는 번거로움이 존재한다.
이러한 모든 웹사이트들을 사용자들이 모두 찾아보기 어려우며 일반 검색으로 다른 사용자들의 의견을 찾고자 하는 경우에는 의견이 있는 웹 문서, 긍정적인 의견이 있는 웹 문서, 부정적인 의견이 있는 웹 문서 등이 혼재하여 효과적으로 다른 사용자들의 의견을 찾아보기 어려운 문제점이 있다.
이러한 문제점을 해결하기 위하여 국/내외 학계를 중심으로 사용자 의견 추출 기술이 활발하게 연구되고 있으며, 정보 검색 분야에서도 2000년도 초반부터 크게 발전하여 다양한 기술이 연구되고 있다.
그러나, 기존의 정보 검색 기술은 단순히 키워드가 존재하는 정보에 기반한 검색만 제공해주고 있을 뿐이고, 각 키워드가 등장하는 문서나 문장에서 긍정적/부정적으로 평가된 내용을 기반으로 한 좀더 고차원적인 검색까지 제공해주고 있지 못하고 있다. 최근에 사용자 의견 추출 기술을 정보 검색에 적용하려는 시도가 진행되고 있으나 아직도 단순히 긍정, 부정 문서를 나누는 수준에만 머무르고 있는 실정이다.
본 발명은 전술한 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 인터넷을 이용하는 사용자들에 의해 입력된 특정 검색 키워드가 지시하는 개체(Entity)를 직접 찾아서 문서가 아닌 개체 결과 리스트 및/또는 규칙기반(Rule-Based)과 기계학습(Machine Learning) 방식을 모두 사용하는 하이브리드 기반(Hybrid-Based) 방식으로 추출된 의견통계 정보들을 해당 사용자 단말을 통해 디스플레이 해줌으로써, 인터넷 사용자들은 특정 검색 키워드와 관련된 개체들을 한눈에 검색 및 모니터링 할 수 있도록 한 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법을 제공하는데 있다.
전술한 목적을 달성하기 위하여 본 발명의 제1 측면은, 인터넷 상에 존재하는 웹 문서 데이터들을 수집하는 제1 서버; 상기 제1 서버로부터 수집된 웹 문서 데이터들을 제공받아 개체별 메타 정보들을 추출하고, 상기 개체별 메타 정보들을 이용하여 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 분석하는 데이터 분석서버; 상기 데이터 분석서버로부터 분석된 개체별 메타 정보들을 비롯한 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 데이터베이스화하여 저장되도록 인덱싱하는 제2 서버; 및 인터넷을 통해 접속되어 사용자 단말로부터 전송된 사용자 검색 키워드를 제공받아 상기 제2 서버와 연동되어 상기 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재하는지 판단하고, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재할 경우 해당 사용자 단말의 화면에 해당 메타 정보 또는 대상 키워드와 관련된 개체 리스트 결과를 디스플레이 해주는 웹 서버를 포함하는 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법을 제공하는 것이다.
여기서, 상기 제1 서버는 인터넷 상에서 RSS 주소들을 수집 및 저장하고, 상기 저장된 RSS 주소들에 해당하는 RSS 파일들을 제공받아 각 RSS 파일이 제공해주는 링크정보를 이용하여 웹 문서 데이터를 수집함이 바람직하다.
바람직하게, 상기 데이터 분석서버는, 미리 설정된 웹 문서 데이터에서 미리 설정된 형태의 문자열을 나타내는 정규식을 이용하여 개체별 메타 정보들을 추출할 수 있다.
바람직하게, 상기 데이터 분석서버는, 상기 수집된 웹 문서 데이터들에 대해 미리 설정된 분야별 기계학습 모델을 이용하여 분야별로 분류하는 제1 모듈; 상기 수집된 웹 문서 데이터들에 대해 언어처리를 수행하여 의견 문장을 추출하고, 상기 추출된 의견 문장에 대해 긍정/부정 의견표현으로 구분하는 제2 모듈; 상기 수집된 웹 문서 데이터들에 대해 상기 개체별 메타 정보들을 이용하여 어떤 개체에 해당되는지 판별하는 제3 모듈; 및 상기 제2 모듈을 통해 추출된 의견 문장의 주변에 있는 단어 및 품사 정보를 이용하여 어떤 대상에 해당되는지 판별하는 제4 모듈을 포함할 수 있다.
바람직하게, 상기 제2 모듈은, 상기 수집된 웹 문서 데이터에 대해 문장 단위로 분리하고, 상기 분리된 각 문장에 대해 언어처리를 수행하여 언어적인 자질들을 추출하는 언어처리부; 상기 추출된 각 문장의 언어적인 자질들을 이용하여 의견/비의견 문장을 구분하는 의견/비의견 구분부; 및 상기 구분된 의견 문장의 언어적인 자질들에 대해 긍정/부정 의견표현으로 구분하는 의견표현 구분부를 포함할 수 있다.
바람직하게, 상기 제2 모듈은, 상기 추출된 의견 문장에 대해 미리 정의된 규칙이 존재할 경우에 미리 설정된 규칙기반(Rule-Based) 모델을 적용하여 긍정/부정 의견표현으로 구분하고, 상기 추출된 의견 문장에 대해 미리 정의된 규칙이 존재하지 않을 경우에 미리 설정된 기계학습 모델을 적용하여 긍정/부정 의견표현으로 구분할 수 있다.
바람직하게, 상기 제2 모듈은, 상기 추출된 의견 문장에 대해 미리 설정된 규칙기반 모델(Rule-Based) 및 기계학습 모델을 동시에 적용하여 긍정/부정 의견표현을 판단한 후, 상기 규칙기반 모델 및 기계학습 모델을 적용한 결과의 일치여부에 따라 서로 다른 신뢰도 점수를 부여하고, 상기 신뢰도 점수를 바탕으로 긍정/부정 의견표현으로 구분할 수 있다.
바람직하게, 상기 제2 모듈은, 상기 추출된 의견 문장에 대해 미리 정의된 예외처리 규칙후보 문장인지를 판단하고, 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙후보 문장일 경우에 미리 정의된 예외처리 규칙의 존재여부에 따라 미리 정의된 예외처리 규칙기반 모델 또는 기계학습 모델을 적용하여 긍정/부정/중립 의견표현으로 구분할 수 있다.
바람직하게, 상기 제2 모듈은, 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙후보 문장이 아닐 경우에 상기 추출된 의견 문장에 대해 미리 설정된 규칙기반 모델(Rule-Based) 및 기계학습 모델을 동시에 적용하여 긍정/부정 의견표현을 판단한 후, 상기 규칙기반 모델 및 기계학습 모델을 적용한 결과의 일치여부에 따라 서로 다른 신뢰도 점수를 부여하고, 상기 신뢰도 점수를 바탕으로 긍정/부정 의견표현으로 구분할 수 있다.
바람직하게, 상기 제2 모듈은, 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙후보 문장이고, 미리 정의된 예외처리 규칙이 존재할 경우에 미리 정의된 예외처리 규칙기반 모델을 적용하여 긍정/부정/중립 의견표현으로 구분하고, 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙이 존재하지 않을 경우에 미리 설정된 기계학습 모델을 적용하여 긍정/부정/중립 의견표현으로 구분할 수 있다.
바람직하게, 상기 제2 서버에 저장되는 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들은 개체 ID, 대상, 각 개체의 각 대상에 대한 긍정/부정 의견 표현수, 전체 의견 표현수 또는 각 대상을 사용한 의견 표현 내용 중 적어도 어느 하나의 정보로 이루어질 수 있다.
바람직하게, 상기 웹 서버는, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재하지 않을 경우에 개체 매핑이 되어 있는 제2 서버에서 해당 사용자 검색 키워드로 검색하여 관련된 개체 결과 리스트를 디스플레이 해줄 수 있다.
바람직하게, 상기 웹 서버는, 상기 사용자 검색 키워드에 대한 의견 분석 결과에 따라 긍정/부정 의견이 많은 순서로 개체 결과 리스트를 디스플레이 해줄 수 있다.
바람직하게, 상기 웹 서버는, 상기 사용자 단말로부터 전송된 사용자 검색 키워드를 분석하여 상기 제2 서버에 저장된 메타 정보 또는 대상 키워드가 존재하는지 판단하고, 그 판단 결과에 따라 키워드 검색 방식을 분류하는 키워드 분석모듈; 및 상기 키워드 분석모듈로부터 분류된 키워드 검색 방식에 따라 상기 제2 서버와 연동되어 해당 메타 정보 또는 대상 키워드와 관련된 개체들을 검색하여 해당 사용자 단말의 화면에 개체 리스트 결과를 디스플레이 해주는 키워드 검색모듈을 포함할 수 있다.
바람직하게, 상기 웹 서버는, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재할 경우 해당 메타 정보 키워드와 관련된 개체들을 검색한 후, 상기 검색된 개체들에 대해 해당 대상 키워드의 긍정/부정 또는 전체 의견 순서 중 어느 하나의 순서로 개체 결과 리스트를 재정렬하여 디스플레이 해줄 수 있다.
바람직하게, 상기 제2 서버에 저장된 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들은 문서/문단 단위로 각 개체가 매핑되도록 저장되어 있으며, 상기 웹 서버는, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하지 않을 경우 해당 사용자 검색 키워드를 형태소 분석한 후, 상기 형태소 분석된 사용자 검색 키워드와 상기 제2 서버에 저장된 문서/문단들을 비교 분석하여, 상기 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색하고, 상기 검색된 문서/문단 결과 리스트에 매핑된 개체 결과 리스트를 해당 사용자 단말에 디스플레이 해줄 수 있다.
바람직하게, 상기 제2 서버에 저장된 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들은 문서/문단 단위로 각 개체가 매핑되도록 저장되어 있으며, 상기 웹 서버는, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하지 않음과 동시에 미리 저장된 메타 정보 키워드가 존재할 경우 해당 사용자 검색 키워드를 형태소 분석한 후, 해당 메타 정보 키워드를 제외한 형태소 분석된 사용자 검색 키워드와 상기 제2 서버에 저장된 문서/문단들을 비교 분석하여, 해당 메타 정보 키워드를 제외한 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색하고, 상기 검색된 문서/문단 결과 리스트에 매핑된 개체 결과 리스트를 검색한 후, 상기 검색된 개체 결과 리스트에서 해당 메타 정보 키워드와 관련된 개체 결과 리스트를 필터링하여 해당 사용자 단말에 디스플레이 해줄 수 있다.
바람직하게, 상기 제2 서버에 저장된 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들은 문서/문단 단위로 각 개체가 매핑되도록 저장되어 있으며, 상기 웹 서버는, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하지 않음과 동시에 미리 저장된 대상 키워드가 존재할 경우 해당 사용자 검색 키워드를 형태소 분석한 후, 해당 대상 키워드를 제외한 형태소 분석된 사용자 검색 키워드와 상기 제2 서버에 저장된 문서/문단들을 비교 분석하여, 해당 대상 키워드를 제외한 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색하고, 상기 검색된 문서/문단 결과 리스트에 매핑된 개체 결과 리스트를 검색한 후, 상기 검색된 개체 결과 리스트를 해당 대상 키워드의 긍정 또는 전체 의견수가 많은 순서로 개체 결과 리스트를 재정렬하여 해당 사용자 단말에 디스플레이 해줄 수 있다.
바람직하게, 상기 제2 서버에 저장된 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들은 문서/문단 단위로 각 개체가 매핑되도록 저장되어 있으며, 상기 웹 서버는, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하지 않음과 동시에 미리 저장된 메타 정보 및 대상 키워드가 존재할 경우 해당 사용자 검색 키워드를 형태소 분석한 후, 해당 메타 정보 및 대상 키워드를 제외한 형태소 분석된 사용자 검색 키워드와 상기 제2 서버에 저장된 문서/문단들을 비교 분석하여, 해당 메타 정보 및 대상 키워드를 제외한 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색하고, 상기 검색된 문서/문단 결과 리스트에 매핑된 개체 결과 리스트를 검색한 후, 상기 검색된 개체 결과 리스트에서 해당 메타 정보 키워드와 관련된 개체 결과 리스트를 필터링하고, 상기 필터링 된 개체 결과 리스트를 해당 대상 키워드의 긍정 또는 전체 의견수가 많은 순서로 개체 결과 리스트를 재정렬하여 해당 사용자 단말에 디스플레이 해줄 수 있다.
바람직하게, 상기 웹 서버는, 상기 개체 리스트 결과와 함께 각 개체의 의견통계 정보들을 해당 사용자 단말에 디스플레이 해줄 수 있다.
본 발명의 제2 측면은, (a) 인터넷 상에 존재하는 웹 문서 데이터들을 수집하는 단계; (b) 상기 수집된 웹 문서 데이터들을 제공받아 개체별 메타 정보들을 추출한 후, 상기 개체별 메타 정보들을 이용하여 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 분석하는 단계; (c) 상기 분석된 개체별 메타 정보들을 비롯한 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 데이터베이스화하여 저장되도록 인덱싱하는 단계; 및 (d) 인터넷을 통해 접속되어 사용자 단말로부터 전송된 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재하는지 판단한 후, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재할 경우 해당 사용자 단말의 화면에 해당 메타 정보 또는 대상 키워드와 관련된 개체 리스트 결과를 디스플레이 해주는 단계를 포함하는 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법을 제공하는 것이다.
여기서, 상기 단계(b)는, (b-1) 상기 수집된 웹 문서 데이터들에 대해 미리 설정된 분야별 기계학습 모델을 이용하여 분야별로 분류하는 단계; (b-2) 상기 수집된 웹 문서 데이터들에 대해 언어처리를 수행하여 의견 문장을 추출하고, 상기 추출된 의견 문장에 대해 긍정/부정 의견표현으로 구분하는 단계; (b-3) 상기 수집된 웹 문서 데이터들에 대해 상기 개체별 메타 정보들을 이용하여 어떤 개체에 해당되는지 판별하는 단계; 및 (b-4) 상기 단계(b-2)에서 추출된 의견 문장의 주변에 있는 단어 및 품사 정보를 이용하여 어떤 대상에 해당되는지 판별하는 단계를 포함함이 바람직하다.
바람직하게, 상기 단계(b-2)는, 상기 수집된 웹 문서 데이터에 대해 문장 단위로 분리하고, 상기 분리된 각 문장에 대해 언어처리를 수행하여 언어적인 자질들을 추출하는 단계; 상기 추출된 각 문장의 언어적인 자질들을 이용하여 의견/비의견 문장을 구분하는 단계; 및 상기 구분된 의견 문장의 언어적인 자질들에 대해 긍정/부정 의견표현으로 구분하는 단계를 포함할 수 있다.
바람직하게, 상기 단계(b-2)에서, 상기 추출된 의견 문장에 대해 미리 정의된 규칙이 존재할 경우에 미리 설정된 규칙기반(Rule-Based) 모델을 적용하여 긍정/부정 의견표현으로 구분한 후, 상기 추출된 의견 문장에 대해 미리 정의된 규칙이 존재하지 않을 경우에 미리 설정된 기계학습 모델을 적용하여 긍정/부정 의견표현으로 구분할 수 있다.
바람직하게, 상기 단계(b-2)에서, 상기 추출된 의견 문장에 대해 미리 설정된 규칙기반 모델(Rule-Based) 및 기계학습 모델을 동시에 적용하여 긍정/부정 의견표현을 판단한 후, 상기 규칙기반 모델 및 기계학습 모델을 적용한 결과의 일치여부에 따라 서로 다른 신뢰도 점수를 부여하고, 상기 신뢰도 점수를 바탕으로 긍정/부정 의견표현으로 구분할 수 있다.
바람직하게, 상기 단계(b-2)에서, 상기 추출된 의견 문장에 대해 미리 정의된 예외처리 규칙후보 문장인지를 판단한 후, 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙후보 문장일 경우에 미리 정의된 예외처리 규칙의 존재여부에 따라 미리 정의된 예외처리 규칙기반 모델 또는 기계학습 모델을 적용하여 긍정/부정/중립 의견표현으로 구분할 수 있다.
바람직하게, 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙후보 문장이 아닐 경우에 상기 추출된 의견 문장에 대해 미리 설정된 규칙기반 모델(Rule-Based) 및 기계학습 모델을 동시에 적용하여 긍정/부정 의견표현을 판단한 후, 상기 규칙기반 모델 및 기계학습 모델을 적용한 결과의 일치여부에 따라 서로 다른 신뢰도 점수를 부여하고, 상기 신뢰도 점수를 바탕으로 긍정/부정 의견표현으로 구분할 수 있다.
바람직하게, 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙후보 문장이고, 미리 정의된 예외처리 규칙이 존재할 경우에 미리 정의된 예외처리 규칙기반 모델을 적용하여 긍정/부정/중립 의견표현으로 구분한 후, 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙이 존재하지 않을 경우에 미리 설정된 기계학습 모델을 적용하여 긍정/부정/중립 의견표현으로 구분할 수 있다.
바람직하게, 상기 단계(d)에서, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재하지 않을 경우에 개체 매핑이 되어 있는 데이터베이스(DB)에서 해당 사용자 검색 키워드로 검색하여 관련된 개체 결과 리스트를 디스플레이 해줄 수 있다.
바람직하게, 상기 단계(d)에서, 상기 사용자 검색 키워드에 대한 의견 분석 결과에 따라 긍정/부정 의견이 많은 순서로 개체 결과 리스트를 디스플레이 해줄 수 있다.
바람직하게, 상기 단계(d)에서, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재할 경우 해당 메타 정보 키워드와 관련된 개체들을 검색한 후, 상기 검색된 개체들에 대해 해당 대상 키워드의 긍정/부정 또는 전체 의견 순서 중 어느 하나의 순서로 개체 결과 리스트를 재정렬하여 디스플레이 해줄 수 있다.
바람직하게, 상기 단계(c)에서, 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들은 문서/문단 단위로 각 개체가 매핑되도록 저장하고, 상기 단계(d)에서, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하지 않을 경우 해당 사용자 검색 키워드를 형태소 분석한 후, 상기 형태소 분석된 사용자 검색 키워드와 상기 저장된 문서/문단들을 비교 분석하여, 상기 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색하고, 상기 검색된 문서/문단 결과 리스트에 매핑된 개체 결과 리스트를 해당 사용자 단말에 디스플레이 해줄 수 있다.
바람직하게, 상기 단계(c)에서, 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들은 문서/문단 단위로 각 개체가 매핑되도록 저장하며, 상기 단계(d)에서, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하지 않음과 동시에 미리 저장된 메타 정보 키워드가 존재할 경우 해당 사용자 검색 키워드를 형태소 분석한 후, 해당 메타 정보 키워드를 제외한 형태소 분석된 사용자 검색 키워드와 상기 저장된 문서/문단들을 비교 분석하여, 해당 메타 정보 키워드를 제외한 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색하고, 상기 검색된 문서/문단 결과 리스트에 매핑된 개체 결과 리스트를 검색한 후, 상기 검색된 개체 결과 리스트에서 해당 메타 정보 키워드와 관련된 개체 결과 리스트를 필터링하여 해당 사용자 단말에 디스플레이 해줄 수 있다.
바람직하게, 상기 단계(c)에서, 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들은 문서/문단 단위로 각 개체가 매핑되도록 저장하며, 상기 단계(d)에서, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하지 않음과 동시에 미리 저장된 대상 키워드가 존재할 경우 해당 사용자 검색 키워드를 형태소 분석한 후, 해당 대상 키워드를 제외한 형태소 분석된 사용자 검색 키워드와 상기 저장된 문서/문단들을 비교 분석하여, 해당 대상 키워드를 제외한 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색하고, 상기 검색된 문서/문단 결과 리스트에 매핑된 개체 결과 리스트를 검색한 후, 상기 검색된 개체 결과 리스트를 해당 대상 키워드의 긍정 또는 전체 의견수가 많은 순서로 개체 결과 리스트를 재정렬하여 해당 사용자 단말에 디스플레이 해줄 수 있다.
바람직하게, 상기 단계(c)에서, 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들은 문서/문단 단위로 각 개체가 매핑되도록 저장하며, 상기 단계(d)에서, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하지 않음과 동시에 미리 저장된 메타 정보 및 대상 키워드가 존재할 경우 해당 사용자 검색 키워드를 형태소 분석한 후, 해당 메타 정보 및 대상 키워드를 제외한 형태소 분석된 사용자 검색 키워드와 상기 저장된 문서/문단들을 비교 분석하여, 해당 메타 정보 및 대상 키워드를 제외한 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색하고, 상기 검색된 문서/문단 결과 리스트에 매핑된 개체 결과 리스트를 검색한 후, 상기 검색된 개체 결과 리스트에서 해당 메타 정보 키워드와 관련된 개체 결과 리스트를 필터링하고, 상기 필터링 된 개체 결과 리스트를 해당 대상 키워드의 긍정 또는 전체 의견수가 많은 순서로 개체 결과 리스트를 재정렬하여 해당 사용자 단말에 디스플레이 해줄 수 있다.
바람직하게, 상기 단계(d)에서, 상기 개체 리스트 결과와 함께 각 개체의 의견통계 정보들을 해당 사용자 단말에 디스플레이 해줄 수 있다.
바람직하게, 상기 단계(d)에서, 해당 사용자 키워드에 대한 검색 결과를 해당 사용자 단말의 화면에 표시할 때, 각 개체 정보와 개체에 대해서 자동으로 추출한 대상 키워드 통계 정보를 긍정의견, 전체의견 또는 부정의견 중 어느 하나의 의견이 많은 순서로 배열하고, 대상 키워드의 긍정/부정 수치와 이를 나타내는 기호를 표시한 후, 찾은 개체에 대한 긍정/부정 의견을 좌우로 나누어 디스플레이 하거나, 긍정/부정 탭으로 선택할 수 있다.
이상에서 설명한 바와 같은 본 발명의 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법에 따르면, 인터넷을 이용하는 사용자들에 의해 입력된 특정 검색 키워드가 지시하는 대상을 직접 찾아서 문서가 아닌 개체 결과 리스트 및/또는 규칙기반과 기계학습 방식을 모두 사용하는 하이브리드 기반 방식으로 추출된 의견통계 정보들을 해당 사용자 단말을 통해 디스플레이 해줌으로써, 인터넷 사용자들은 특정 검색 키워드와 관련된 개체들을 한눈에 검색 및 모니터링 할 수 있는 이점이 있다.
도 1은 본 발명의 일 실시예에 따른 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템을 설명하기 위한 전체적인 블록 구성도이다.
도 2는 본 발명의 일 실시예에 적용된 데이터 분석서버를 구체적으로 설명하기 위한 블록 구성도이다.
도 3은 본 발명의 일 실시예에 따른 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 방법을 설명하기 위한 전체적인 흐름도이다.
도 4 및 도 5는 본 발명의 일 실시예에 적용된 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 분석하는 과정을 구체적으로 설명하기 위한 흐름도이다.
도 6 내지 도 9는 본 발명의 일 실시예에 따른 하이브리드 기반의 의견분석 방법을 구체적으로 설명하기 위한 흐름도로서, 도 6은 캐스케이딩(Cascading) 의견분석 방법을 나타낸 흐름도이고, 도 7은 보간(Interpolation) 의견분석 방법을 나타낸 흐름도이며, 도 8은 도 7의 각 의견표현에 따른 신뢰도 점수를 나타낸 도면이며, 도 9는 혼합(Mixed) 의견분석 방법을 나타낸 흐름도이다.
도 10 내지 도 14는 사용자 검색 키워드에 따른 다양한 키워드 검색 방법을 설명하기 위한 구체적인 흐름도이다.
도 15 내지 도 19는 본 발명의 일 실시예에 따른 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 방법을 이용하여 사용자 단말의 화면에 디스플레이 되는 키워드 검색 결과 화면을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 적용된 데이터 분석서버를 구체적으로 설명하기 위한 블록 구성도이다.
도 3은 본 발명의 일 실시예에 따른 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 방법을 설명하기 위한 전체적인 흐름도이다.
도 4 및 도 5는 본 발명의 일 실시예에 적용된 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 분석하는 과정을 구체적으로 설명하기 위한 흐름도이다.
도 6 내지 도 9는 본 발명의 일 실시예에 따른 하이브리드 기반의 의견분석 방법을 구체적으로 설명하기 위한 흐름도로서, 도 6은 캐스케이딩(Cascading) 의견분석 방법을 나타낸 흐름도이고, 도 7은 보간(Interpolation) 의견분석 방법을 나타낸 흐름도이며, 도 8은 도 7의 각 의견표현에 따른 신뢰도 점수를 나타낸 도면이며, 도 9는 혼합(Mixed) 의견분석 방법을 나타낸 흐름도이다.
도 10 내지 도 14는 사용자 검색 키워드에 따른 다양한 키워드 검색 방법을 설명하기 위한 구체적인 흐름도이다.
도 15 내지 도 19는 본 발명의 일 실시예에 따른 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 방법을 이용하여 사용자 단말의 화면에 디스플레이 되는 키워드 검색 결과 화면을 나타낸 도면이다.
이하, 첨부 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다. 그러나, 다음에 예시하는 본 발명의 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시예에 한정되는 것은 아니다. 본 발명의 실시예는 당업계에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되어지는 것이다.
먼저, 본 발명의 전반에 걸쳐 언급된 '대상(Sub-theme)'이란 어떠한 개체(Entity)가 가지고 있는 본질적인 성질 즉, 속성(Property)이라고도 칭하며, 주로 의견을 많이 표현하는 부분으로서, 인터넷 검색의 모든 분야(예컨대, 영화, 정치, 경제, 게임, 스포츠 등)에 걸쳐 적용될 수 있는 포괄적인 의미이다.
예를 들면, 영화 분야에서의 대상(Sub-theme)은 감동, 재미, 배우, 연기, 스토리, 반전, 그래픽, 음악, 장면 등으로 이루어질 수 있고, 전자제품 분야에서의 대상(Sub-theme)은 가격, 디자인, 배터리, A/S 등으로 이루어질 수 있으며, 맛집 분야에서의 대상(Sub-theme)은 맛, 가격, 분위기 등으로 이루어질 수 있다.
그리고, 상기 '개체(Entity)'란 상기 대상(Sub-theme)의 상위 개념으로서, 관련 있는 대상들이 모여서 하나의 정보 단위를 나타낸 것이다.
도 1은 본 발명의 일 실시예에 따른 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템을 설명하기 위한 전체적인 블록 구성도이고, 도 2는 본 발명의 일 실시예에 적용된 데이터 분석서버를 구체적으로 설명하기 위한 블록 구성도이다.
도 1 및 도 2를 참조하면, 본 발명의 일 실시예에 따른 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템은, 크게 데이터 수집서버(100), 데이터 분석서버(200), 인덱싱 서버(300), 웹 서버(400) 및 사용자 단말(500) 등을 포함하여 이루어질 수 있다.
여기서, 데이터 수집서버(100)는 인터넷(10) 상에 존재하는 웹 문서 데이터들을 수집하는 서버로서, 인터넷 상에서 RSS 주소들을 수집 및 저장하고, 상기 수집 및 저장된 RSS 주소들에 해당하는 RSS 파일들을 제공받아 각 RSS 파일이 제공해주는 링크정보를 이용하여 웹 문서 데이터를 수집하는 기능을 수행한다.
이러한 데이터 수집서버(100)는 인터넷(10)에 연결되어 통상의 자동적인 확장방식으로 수많은 RSS 주소들을 수집하여 별도의 데이터베이스(DB)에 저장될 수 있도록 전송하는 기능을 수행한다.
이때, 상기 자동적인 확장방식은 대표적인 인터넷 자원(예컨대, RSS 또는 ATOM 등) 주소 표현 형태를 이용하여 인터넷(Internet) 상에 있는 웹(Web)(예컨대, IPv4에서는 일반 웹, IPv6에서는 전자제품을 포함한 웹 등) 문서(HTML 파일)에서 RSS 주소를 자동적으로 추출하고, 해당 웹 문서에 있는 링크(link)에서도 같은 방식으로 RSS 주소를 추출하는 방식이다.
즉, 미리 설정된 주요 포탈이나 블로그 웹 문서를 시작으로 해서 점차적으로 해당 웹 문서들의 외부로 향하는 링크를 따라 방문하면서 RSS 주소를 자동 추출하거나, RSS 주소를 추출할 웹 문서를 주요 메타 사이트들이 제공해주는 최신 RSS 파일을 주기적으로 방문하면서 이에 들어 있는 링크 주소를 방문하여 RSS 주소를 추출하는 방식이다.
또한, 데이터 수집서버(100)는 별도의 데이터베이스(DB)에 미리 저장된 RSS 주소들에 해당하는 RSS 파일들을 제공받아 각 RSS 파일이 제공해주는 링크정보를 이용하여 웹 문서 데이터들을 수집하는 기능을 수행한다.
즉, 데이터 수집서버(100)는 별도의 데이터베이스(DB)와 연동되어 미리 수집 및 저장된 RSS 주소 목록을 주기적으로 제공받아 각 RSS 주소를 방문하면서 해당 RSS 파일을 다운로드(Download)받은 후, 각 RSS 파일이 제공해주는 RSS 정보들(예컨대, 제목(title), 링크(link), 요약설명(description), 카테고리(category), 등록날짜(publication date) 정보 등) 중 소스 링크정보에 존재하는 링크(link)를 방문하여 해당 웹 문서 데이터(예컨대, RSS 주소, 원문 링크, 날짜, 제목, 본문, 태그, 블로그 이름, 카테고리, 썸네일, 이미지, 동영상, 글자수/이미지 개수/동영상 개수 등)를 수집하여 데이터 분석서버(200) 또는 인덱싱 서버(300)의 데이터베이스(DB)에 전송한다.
이때, 상기 소스 링크정보에 존재하는 링크 방문 시 별도의 데이터베이스(DB)에 미리 저장된 RSS 파일 목록과 상기 다운로드(Download)받은 RSS 파일을 비교하여 RSS 파일 내용 중에서 갱신된 RSS 정보의 소스 링크정보에 존재하는 링크를 방문하여 수집함이 바람직하다.
한편, 데이터 수집서버(100)에 의해 웹 문서 데이터를 수집할 경우, 각 RSS 파일이 제공해주는 링크가 활성화되어 있는지를 체크하는 활성화 여부 체크 기능과, 스팸 RSS(예컨대, 광고성 및 성인성 글과 같은 상업적인 RSS, 리포트 샵과 같은 다른 사이트에 대한 링크만 있는 RSS, 글리 너무 빨리 업데이트 되는 RSS 등) 체크 기능과, 중복 RSS(예컨대, 한 블로그에서 RSS1.0, RSS2.0, Atom를 동시에 제공하는 경우, feedburner 혹은 메타 블로그를 통해서 RSS 재발행 하는 경우 등) 체크 기능 등을 수행할 수도 있다.
또한, 데이터 수집서버(100)는 본 출원인에 의해 선출원된 특허출원 제2008-93125호(인터넷을 이용한 의견 검색 시스템 및 그 방법)에 제안된 방식으로 인터넷(10) 상에 존재하는 각 웹사이트(Web Site)들의 HTML(Hyper Text Markup Language) 정보를 실시간으로 다운로드(Download) 받고, 상기 다운로드(Download) 받은 웹 문서 데이터에서 필요한 정보들 예컨대, 텍스트(Text), 이미지(Image) 또는 비디오(Video) 등의 정보들 중 적어도 어느 하나의 정보 데이터를 추출하여 별도의 데이터 저장수단에 저장시킬 수 있다.
또한, 데이터 수집서버(100)는 의견정보 데이터(즉, 일반 문장/문서 데이터와 이에 대한 긍정/부정 평가가 매겨진 정보 데이터)를 포함하는 웹 문서 데이터들을 선별하여 수집할 수도 있다.
이때, 상기 의견정보 데이터를 포함하는 웹 문서 데이터들만을 선별적으로 수집하는 방법으로는, 의견정보 데이터를 포함하는 특정의 웹 문서 데이터를 선별하고, 후술하는 기계학습 알고리즘(예컨대, SVM, K-NN, Bayseian 등)을 사용하여 웹 문서 선별 모델을 생성한 후, 상기 생성된 웹 문서 선별 모델을 사용하여 전체 인터넷 웹 페이지에서 의견정보 데이터가 포함된 웹 문서 데이터들만을 선별적으로 수집할 수 있게 된다.
더욱이, 데이터 수집서버(100)에 의해 수집된 웹 문서 데이터는 바로 사용도 가능하지만, 도메인 분류모듈(미도시)을 적용하여 각 도메인별로 분류한 후 사용하는 방법도 가능하다.
한편, 인터넷(Internet)(10)은 TCP/IP 프로토콜 및 그 상위계층에 존재하는 여러 서비스, 즉 HTTP(Hyper Text Transfer Protocol), Telnet, FTP(File Transfer Protocol), DNS(Domain Name System), SMTP(Simple Mail Transfer Protocol), SNMP(Simple Network Management Protocol), NFS(Network File Service), NIS(Network Information Service) 등을 제공하는 전 세계적인 개방형 컴퓨터 네트워크 구조를 의미하며, 사용자 단말(500)은 후술하는 웹 서버(400)에 용이하게 접속될 수 있게 하는 환경을 제공한다. 한편, 인터넷(10)은 유선 또는 무선 인터넷일 수도 있고, 이외에도 유선 공중망, 무선 이동 통신망, 또는 휴대 인터넷 등과 통합된 코어망 일 수도 있다.
데이터 분석서버(200)는 데이터 수집서버(100)로부터 수집된 웹 문서 데이터들을 제공받아 개체별 메타 정보들을 추출하고, 상기 개체별 메타 정보들을 이용하여 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 분석하는 기능을 수행한다.
이때, 데이터 수집서버(100)는 인터넷 상에서 각 개체에 대한 메타 정보들(예컨대, 영화에 대한 배우, 감독, 출시 날짜 등)을 주기적으로 업데이트 하는 특정 웹사이트(예컨대, http:// movie.daum.net / moviedetail / moviedetailMain.do ? movield = 52800 등)를 미리 지정하여 특정 웹 문서 데이터를 수집하고, 데이터 분석서버(200)는 데이터 수집서버(100)로부터 수집된 특정 웹 문서 데이터에서 미리 설정된 형태의 문자열을 나타내는 정규식(Regular Expression)을 이용하여 개체별 메타 정보들을 추출한다.
그리고, 상기 정규식은 어떤 형태의 문자열을 지칭하는 기호로서, 예를 들어서 『a href="(.*?)"』 이런 식으로 정규식을 만들면, 여기서 『( )』는 문자열 그룹을 나타내고, 『.』은 임의의 문자열을 지칭하고, 『*』는 그 문자열이 0개 이상 나옴을 나타내고, 『?)"』 이라고 나타낸 것은 『"』문자열이 나오기 전까지의 문자열을 의미한다.
따라서, <a href="http://test.com">이라는 문자열에서 『http://test.com』이란 스트링을 찾을 수 있게 된다. 이런 정규식을 이용하여 각 개체(Entity)에 대한 메타 정보들을 추출할 수 있게 된다. 이때, 상기 추출한 정보들은 인덱싱 서버(300)로 전송하여 바로 저장될 수 있도록 한다.
또한, 본 발명의 일 실시예에서는 데이터 분석서버(200)에서 개체별 메타 정보들을 추출하여 인덱싱 서버(300)로 전송하였지만, 이에 국한하지 않으며, 데이터 수집서버(100)에서 개체별 메타 정보들을 추출하여 바로 인덱싱 서버(300) 또는 별도의 데이터베이스(DB)에 저장되도록 전송할 수도 있다.
또한, 데이터분석서버(200)는 데이터 수집서버(100)로부터 수집된 웹 문서 데이터들에 대해 미리 설정된 분야별(예컨대, 영화, 정치, 경제, 게임, 스포츠 등) 기계학습(Machine Learning) 모델을 이용하여 분야별로 분류하는 제1 모듈(210)과, 데이터 수집서버(100)로부터 수집된 웹 문서 데이터들에 대해 언어처리를 수행하여 의견 문장을 추출하고, 상기 추출된 의견 문장에 대해 긍정/부정 의견표현으로 구분하는 제2 모듈(220)과, 데이터 수집서버(100)로부터 수집된 웹 문서 데이터들에 대해 상기 추출된 개체별 메타 정보들을 이용하여 어떤 개체에 해당되는지 판별하는 제3 모듈(230)과, 제2 모듈(220)을 통해 추출된 의견 문장의 주변에 있는 단어 및 품사 정보 등을 이용하여 어떤 대상(Sub-theme)에 해당되는지 판별하는 제4 모듈(240)과, 상기 추출된 개체별 메타 정보들과 함께 제1 내지 제4 모듈(210 내지 240)로부터 출력된 정보들을 이용하여 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 분석하는 제5 모듈(250) 등을 포함할 수 있다.
여기서, 제2 모듈(220)은 언어처리부(221), 의견/비의견 구분부(222) 및 의견표현 구분부(223) 등을 포함할 수 있다.
언어처리부(221)는 데이터 수집서버(100)로부터 수집되거나 별도의 데이터베이스(DB)에 저장된 웹 문서 데이터에 대해 문장 단위로 분리하고, 분리된 각 문장에 대해 언어처리를 수행하여 언어적인 자질(Feature)들을 추출하는 기능을 수행한다.
이때, 상기 언어처리는 예컨대, 형태소 분석(Morpheme Analyze) 또는 띄어쓰기(Segmentation) 처리로 수행됨이 바람직하지만, 이외에도 자질(또는 색인어) 추출을 위한 조사 처리, 한국어 굴절 처리, 또는 원형 복귀 처리 등을 수행할 수도 있다.
그리고, 의견/비의견 구분부(222)는 언어처리부(221)로부터 추출된 각 문장의 언어적인 자질(Feature)들을 이용하여 의견/비의견 문장을 구분하는 기능을 수행한다.
즉, 언어처리부(221)로부터 추출된 문장들은 의견이 있는 문장들도 있고, 의견이 존재하지 않은 일반 문장도 있다. 이러한 문장들은 의견/비의견 구분부(222)를 이용하여 의견이 존재하는 문장과 의견이 존재하지 않은 문장으로 구분할 수 있게 된다.
이러한 의견/비의견 구분부(222)는 상술한 통상의 기계학습 알고리즘을 이용하여 용이하게 구현될 수 있다. 이를 구체적으로 설명하면, 먼저, 의견으로 이루어진 데이터 집합과 사실 정보로만 이루어진 데이터 집합을 수집한다. 이후에, 예컨대, 형태소 분석(Morpheme Analyze)이나 띄어쓰기(Segmentation) 등을 수행하여 적절한 언어적인 자질(Feature)을 추출한다.
여기서, 상기 띄어쓰기(Segmentation)라 함은 입력 문장을 의미를 가지는 단위로 나누는 과정이다. 예를 들면, 입력 문장이 "나는 영화를 재밌게 봤다"라고 한다면, 결과 문장은 "나 는 영화 를 재밌 게 보 았 다"로 변환된다.
그리고, 상기 형태소 분석(Morpheme Analyze)이라 함은 상기 각 나뉘어진 단위에 대하여 어떤 품사(Part Of Speech) 정보를 지니고 있는지 찾아주는 작업이다. 예를 들면, 입력 문장이 "나는 영화를 재밌게 봤다"라고 한다면, 결과 문장은 "나(CTP1 1인칭 대명사) + 는(fjb 보조사) 영화(CMCN 비서술 보통명사) + 를(fjco 목적격조사) 재밌(YBDO 일반동사) + 게(fmoca 보조 연결어미) 보(YBDO 일반동사) + 았(fmbtp 과거시제 선어말어미) + 다(fmofd 평서형 종결어미)"로 변환된다.
다음으로, 상기 추출한 언어적인 자질(Feature)을 이용하여 통상의 기계학습 알고리즘인 예컨대, Naㅿve Baysian, SVM, K-NN 이나 기타 모델을 선택하여 학습을 수행한다.
이렇게 학습이 끝나고 나면, 임의의 문장이나 문서가 입력이 되면, 해당 데이터가 의견 데이터인지 사실 데이터인지 구분할 수 있는 의견/비의견 구분모델 즉, 의견/비의견 구분부(222)가 구현될 수 있다.
그리고, 의견표현 구분부(223)는 의견/비의견 구분부(222)로부터 구분된 의견 문장의 언어적인 자질(Feature)들에 대해 긍정/부정 의견표현으로 구분하는 기능을 수행한다.
즉, 의견표현 구분부(223)는 입력된 의견 문장 중에서 긍정적/부정적 의견인 부분을 찾아서 그 부분을 표시해준다. 한편, 의견/비의견 구분부(222)를 사용하지 않고 바로 의견표현 구분부(223)를 사용하여 입력된 문장에서 긍정적/부정적 표현 부분을 표시해 줄 수도 있다.
이러한 의견표현 구분부(223)는 연어뿐만 아니라 일반적인 자립어, 어절 등 모든 단어들의 긍정/부정 정도를 수량화하여 하나의 자원으로 활용하고, 문장 내에서 긍정/부정 표현을 찾아내기 위한 기계학습 모델을 생성하는데 사용될 수 있다.
또한, 제2 모듈(220)은 상기 추출된 의견 문장에 대해 긍정/부정 의견표현 구분 시 규칙기반(Rule-Based) 모델 및/또는 기계학습(Machine Learning) 모델의 적절한 적용에 따라 하이브리드(Hybrid) 의견분석(Opinion Mining)(예컨대, 캐스케이딩(Cascading), 보간(Interpolation) 및 혼합(Mixed) 의견분석 등) 방식을 수행할 수 있다.
여기서, 상기 캐스케이딩(Cascading) 의견분석 방식은 정확도가 매우 높은 규칙 집합을 정의한 후 데이터 수집서버(100)로부터 크롤링(Crawling)된 웹 문서 데이터에 대하여 먼저 규칙을 적용하여 의견을 판단한 후 규칙에 적용되지 않는 예제의 경우 학습방법을 적용하는 선규칙 후통계 방법이다. 즉, 상기 캐스케이딩 방법은 규칙으로 커버될 수 없는 예외적인 경우를 기계학습을 통하여 해결하는 방법으로 실질적인 상황에서 유용도가 높은 효과가 있다.
이러한 캐스케이딩(Cascading) 의견분석 방식을 적용할 경우, 제2 모듈(220)은 상기 추출된 의견 문장에 대해 미리 정의된 규칙이 존재할 경우에 미리 설정된 규칙기반(Rule-Based) 모델을 적용하여 긍정/부정 의견표현으로 구분하고, 상기 추출된 의견 문장에 대해 미리 정의된 규칙이 존재하지 않을 경우에 미리 설정된 기계학습 모델을 적용하여 긍정/부정 의견표현으로 구분할 수 있다.
그리고, 상기 보간(Interpolation) 의견분석 방식은 서로 다른 두 방법 즉, 규칙기반(Rule-Based) 및 기계학습(Machine Learning) 방법을 통하여 의견문서의 긍정극성, 부정극성 여부를 판단한 후에 두 방법의 극성이 일치할 경우, 높은 신뢰도를 부여하는 방법으로 서로 다른 방법을 통하여 의견의 긍정, 부정 판단결과의 신뢰도를 높이는 방법이다. 즉, 상기 보간 방법을 통하여 높은 신뢰도를 갖는 의견극성을 먼저 제시함으로써 높은 사용자들로부터 높은 신뢰도를 얻을 수 있는 효과가 있다.
이러한 보간(Interpolation) 의견분석 방식을 적용할 경우, 제2 모듈(220)은 상기 추출된 의견문장에 대해 미리 설정된 규칙기반 모델(Rule-Based) 및 기계학습 모델을 동시에 적용하여 긍정/부정 의견표현을 판단한 후, 상기 규칙기반 모델 및 기계학습 모델을 적용한 결과의 일치여부에 따라 서로 다른 신뢰도 점수를 부여하고, 상기 신뢰도 점수를 바탕으로 긍정/부정 의견표현으로 구분할 수 있다.
그리고, 상기 혼합(Mixed) 의견분석 방식은 규칙을 적용하면 높은 성능을 올릴 수 있는 예외적인 상황에서 규칙을 먼저 적용하는 캐스케이딩 방법을 사용하고, 일반적인 규칙 상황에서 서로 다른 두 방법(규칙기반 및 기계학습 방법)을 이용하는 보간 방법을 사용하는 방식으로서, 기계학습 방법으로 처리하기 힘들고, 확실한 규칙을 정할 수 있는 부분에서 강점을 가지면서 신뢰도 개념도 그대로 사용할 수 있는 방법이다.
이러한 상기 혼합(Mixed) 의견분석 방식을 적용할 경우, 제2 모듈(220)은 상기 추출된 의견 문장에 대해 미리 정의된 예외처리 규칙후보 문장인지를 판단하고, 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙후보 문장일 경우, 미리 정의된 예외처리 규칙의 존재여부에 따라 미리 정의된 예외처리 규칙기반 모델 또는 기계학습 모델을 적용하여 긍정/부정/중립 의견표현으로 구분할 수 있다.
만약, 제2 모듈(220)은 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙후보 문장이 아닐 경우, 상기 추출된 의견 문장에 대해 미리 설정된 규칙기반 모델(Rule-Based) 및 기계학습 모델을 동시에 적용하여 긍정/부정 의견표현을 판단한 후, 상기 규칙기반 모델 및 기계학습 모델을 적용한 결과의 일치여부에 따라 서로 다른 신뢰도 점수를 부여하고, 상기 신뢰도 점수를 바탕으로 긍정/부정 의견표현으로 구분할 수 있다.
또한, 제2 모듈(220)은 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙후보 문장이고, 미리 정의된 예외처리 규칙이 존재할 경우에 미리 정의된 예외처리 규칙기반 모델을 적용하여 긍정/부정/중립 의견표현으로 구분하고, 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙이 존재하지 않을 경우에 미리 설정된 기계학습 모델을 적용하여 긍정/부정/중립 의견표현으로 구분할 수 있다.
인덱싱 서버(300)는 데이터 수집서버(100) 및/또는 데이터 분석서버(200)로부터 수집 및/또는 분석된 개체별 메타 정보들을 비롯한 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 데이터베이스(DB)화하여 저장되도록 인덱싱(Indexing)하는 기능을 수행한다.
여기서, 상기 인덱싱(Indexing) 처리는 일반적으로 검색 엔진에서 많이 쓰이는 방법으로서, 하기의 랭크(Rank)는 해당 웹 페이지에 대한 역 링크와 외부 링크 개수 등을 이용한 정보 검색 알고리즘을 사용한다. 이 알고리즘은 많은 역 링크를 가지는 링크가 더 유리하고 각 링크들은 자신이 가지고 있는 점수를 자신에서 뻗어 가는 링크들에게 나누어주는 방식이다.
그리고, 단일 검색키워드가 아닌 합성 검색키워드의 경우에는 사용자가 입력한 검색키워드의 각 형태소들이 가지고 있는 링크들 중에서 공통으로 들어 있는 링크들을 추출한 후에 각 형태소들이 각 링크 문서 중에서 얼마나 가까이 존재하는지 정보와 해당 링크의 랭크 정보들을 종합해서 계산한 후 점수 순서대로 해당 사용자에게 보여주게 된다.
이를 간단히 설명하면, 각 링크(Link)별 형태소들에 대해서 형태소를 중심으로 역 리스트(Inverted List)를 만들어 랭크(Rank) 순서대로 저장한 후에 사용자가 검색키워드를 입력하면, 해당 검색키워드에 해당되는 링크(Link)들을 역 리스트(Inverted List)에서 얻어 온 후에 불(boolean) 연산, 거리(Distance) 연산, TF(Term Frequency), IDF(Inversed Document Frequency) 등을 이용하여 계산한 점수 순서대로 사용자에게 보여주게 된다.
또한, 인덱싱 서버(300)에 저장되는 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들은 예컨대, 개체 ID, 대상(Sub-theme), 각 개체의 각 대상에 대한 긍정/부정 의견 표현수, 전체 의견 표현수 또는 각 대상을 사용한 의견 표현 내용 중 적어도 어느 하나의 정보로 이루어질 수 있다.
또한, 인덱싱 서버(300)는 각 대상(Sub-theme)을 클러스터링을 통해서 그룹화하여 저장할 수 있다. 이때, 상기 클러스터링은 각 대상(Sub-theme)이 어떤 의견표현과 같이 등장했는지 정보를 이용하여 클러스터링을 수행한다. 예컨대, 이야기, 내용, 스토리, 플롯 등과 같은 각 대상(Sub-theme)을 "스토리"로 그룹화하고, 액션, 볼거리, 장면 등과 같은 각 대상(Sub-theme)을 "장면"으로 그룹화하여 저장할 수 있다.
또한, 인덱싱 서버(300)에 저장된 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들은 문서/문단 단위로 각 개체가 매핑되도록 저장될 수도 있다.
그리고, 웹 서버(400)는 인터넷(10)을 통해 각 사용자 단말(500)로부터 전송된 사용자 검색 키워드들을 제공받아 인덱싱 서버(300)와 연동되어 해당 사용자 검색 키워드에 미리 저장된 메타 정보 및/또는 대상 키워드가 존재하는지 판단하고, 해당 사용자 검색 키워드에 미리 저장된 메타 정보 및/또는 대상 키워드가 존재할 경우 해당 사용자 단말(500)의 화면에 해당 메타 정보 및/또는 대상 키워드와 관련된 개체 리스트 결과를 디스플레이(Display) 해주는 기능을 수행한다.
또한, 웹 서버(400)는 해당 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재하지 않을 경우에 개체 매핑이 되어 있는 인덱싱 서버(300)에서 해당 사용자 검색 키워드로 검색하여 관련된 개체 결과 리스트를 디스플레이 해줄 수 있다.
이러한 웹 서버(400)는 사용자 단말(500)로부터 전송된 사용자 검색 키워드를 분석하여 인덱싱 서버(300)에 저장된 메타 정보 또는 대상 키워드가 존재하는지 판단하고, 그 판단 결과에 따라 키워드 검색 방식을 분류하는 키워드 분석모듈(410)과, 키워드 분석모듈(410)로부터 분류된 키워드 검색 방식에 따라 인덱싱 서버(300)와 연동되어 해당 메타 정보 또는 대상 키워드와 관련된 개체들을 검색하여 해당 사용자 단말(500)의 화면에 개체 리스트 결과를 디스플레이 해주는 키워드 검색모듈(420) 등을 포함할 수 있다.
또한, 웹 서버(400)는 사용자 단말(500)로부터 전송된 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재할 경우, 인덱싱 서버(300)와 연동되어 해당 메타 정보 키워드와 관련된 개체들을 검색한 후, 상기 검색된 개체들에 대해 해당 대상 키워드의 긍정/부정 또는 전체 의견 순서 중 어느 하나의 순서로 개체 결과 리스트를 재정렬하여 디스플레이 해줄 수 있다.
또한, 웹 서버(400)는 사용자 단말(500)로부터 전송된 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하지 않을 경우, 해당 사용자 검색 키워드를 형태소 분석한 후, 상기 형태소 분석된 사용자 검색 키워드와 인덱싱 서버(300)에 저장된 문서/문단들을 비교 분석하여, 상기 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색하고, 상기 검색된 문서/문단 결과 리스트에 매핑된 개체 결과 리스트를 해당 사용자 단말(500)에 디스플레이 해줄 수 있다.
또한, 웹 서버(400)는, 사용자 단말(500)로부터 전송된 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하지 않음과 동시에 미리 저장된 메타 정보 키워드가 존재할 경우 해당 사용자 검색 키워드를 형태소 분석한 후, 해당 메타 정보 키워드를 제외한 형태소 분석된 사용자 검색 키워드와 인덱싱 서버(300)에 저장된 문서/문단들을 비교 분석하여, 해당 메타 정보 키워드를 제외한 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색하고, 상기 검색된 문서/문단 결과 리스트에 매핑된 개체 결과 리스트를 검색한 후, 상기 검색된 개체 결과 리스트에서 해당 메타 정보 키워드와 관련된 개체 결과 리스트를 필터링(Filtering)하여 해당 사용자 단말(500)에 디스플레이 해줄 수 있다.
또한, 웹 서버(400)는 사용자 단말(500)로부터 전송된 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하지 않음과 동시에 미리 저장된 대상 키워드가 존재할 경우, 해당 사용자 검색 키워드를 형태소 분석한 후, 해당 대상 키워드를 제외한 형태소 분석된 사용자 검색 키워드와 인덱싱 서버(300)에 저장된 문서/문단들을 비교 분석하여, 해당 대상 키워드를 제외한 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색하고, 상기 검색된 문서/문단 결과 리스트에 매핑된 개체 결과 리스트를 검색한 후, 상기 검색된 개체 결과 리스트를 해당 대상 키워드의 긍정 또는 전체 의견수가 많은 순서로 개체 결과 리스트를 재정렬하여 해당 사용자 단말(500)에 디스플레이 해줄 수 있다.
또한, 웹 서버(400)는 사용자 단말(500)로부터 전송된 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하지 않음과 동시에 미리 저장된 메타 정보 및 대상 키워드가 존재할 경우 해당 사용자 검색 키워드를 형태소 분석한 후, 해당 메타 정보 및 대상 키워드를 제외한 형태소 분석된 사용자 검색 키워드와 인덱싱 서버(300)에 저장된 문서/문단들을 비교 분석하여, 해당 메타 정보 및 대상 키워드를 제외한 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색하고, 상기 검색된 문서/문단 결과 리스트에 매핑된 개체 결과 리스트를 검색한 후, 상기 검색된 개체 결과 리스트에서 해당 메타 정보 키워드와 관련된 개체 결과 리스트를 필터링하고, 상기 필터링 된 개체 결과 리스트를 해당 대상 키워드의 긍정 또는 전체 의견수가 많은 순서로 개체 결과 리스트를 재정렬하여 해당 사용자 단말(500)에 디스플레이 해줄 수 있다.
또한, 웹 서버(400)는 상기 개체 리스트 결과와 함께 각 개체의 의견통계 정보들을 해당 사용자 단말(500)에 디스플레이 해줄 수 있다.
또한, 웹 서버(400)는 사용자 단말(500)로부터 전송된 사용자 검색 키워드에 대한 의견 분석 결과에 따라 긍정/부정 의견이 많은 순서로 개체 결과 리스트를 디스플레이 해줄 수 있다.
그리고, 사용자 단말(500)은 예컨대, 네트워크(Network) 또는 인터넷(Internet) 등과 같은 유선 또는 무선 통신망을 통해 웹 서버(400)에 접속되며, 통상적인 웹 브라우저(Web Browser)를 통해 웹 서버(400)에서 제공하는 각종 서비스를 제공받을 수 있게 된다.
이러한 사용자 단말(500)은 개인용 퍼스널 컴퓨터(Personal Computer, PC)로 구현됨이 바람직하지만, 이에 국한하지 않으며, 인터넷에 연결하여 통신할 수 있는 노트북(Notebook), 개인 휴대용 단말기(Personal Digital Assistant, PDA), PDA폰 또는 통신기능이 있는 DMB(Digital Multimedia Broadcasting)폰 등과 같이 통신기능을 가지는 모든 장치로 구현할 수도 있다.
이하에는 본 발명의 일 실시예에 따른 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 방법에 대하여 상세하게 설명하기로 한다.
도 3은 본 발명의 일 실시예에 따른 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 방법을 설명하기 위한 전체적인 흐름도이고, 도 4 및 도 5는 본 발명의 일 실시예에 적용된 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 분석하는 과정을 구체적으로 설명하기 위한 흐름도이다.
도 3 내지 도 5를 참조하면, 인터넷을 이용하는 사용자들이 특정 사용자 검색 키워드에 대한 개체 결과 리스트 및 의견통계 정보들을 제공받기 위해서는 먼저, 각 개체(Entity)에 대한 메타 정보들{예컨대, 영화에 대한 배우(송강호, 이병헌 등), 감독(봉준호, 강제규 등), 출시 날짜 등}을 비롯한 대상(Sub-theme)에 대한 키워드를 미리 추출하여 저장되어 있어야 한다.
이때, 각 개체에 대한 메타 정보들은 인덱싱 서버(300, 도 1 참조)의 데이터베이스(DB)의 각 필드(field)에 있는 값들을 미리 모두 추출해서 저장되어 있는 정보들이다. 상기 대상(Sub-theme)은 클러스터링을 수행할 때 가지고 있던 정보들이다.
즉, 데이터 수집서버(100, 도 1 참조)를 통해 인터넷 상에 존재하는 웹 문서 데이터들을 수집하고(S100), 상기 단계S100에서 수집된 웹 문서 데이터들은 데이터 분석서버(200, 도 1 참조)를 통해 개체별 메타 정보들을 추출한 후, 상기 개체별 메타 정보들을 이용하여 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 분석한다(S200).
이때, 상기 개체별 메타 정보들은 데이터 수집서버(100)의 웹 크롤러가 인터넷 상에서 이런 정보를 주기적으로 업데이트 하는 웹사이트를 미리 지정하여, 상기 지정된 웹사이트에서 정규식(Regular Expression)을 사용하여 정보를 업데이트 한다.
또한, 상기 각 개체의 각 대상(Sub-theme)에 대한 긍정/부정 의견통계 정보들의 구축 방법은, 먼저, 데이터 수집서버(100)를 통해 웹 문서 데이터를 수집한 후, 데이터 분석서버(200)를 통해 상기 수집한 웹 문서 데이터가 어떤 분야(예컨대, 영화, 정치, 경제, 게임, 스포츠 등)에 속하는지 미리 설정된 기계학습 기반의 자동분류 모델을 사용하여 분류하고, 상기 수집한 웹 문서 데이터를 의견분석(Opinion Mining)을 통해서 각 문장에서 긍정/부정 의견표현을 찾아낸다.
또한, 데이터 분석서버(200)를 통해 상기 수집한 웹 문서 데이터가 어떤 개체(Entity)를 가리키는지 판별한다. 즉, 각 개체(Entity)가 가지는 메타(Meta) 정보(예컨대, 영화 - 감독, 배우 등)들을 이용하여 어떤 개체(Entity)에 가까운지 판별한다.
예를 들면, 개체(Entity) A에 대하여 메타 정보가 "a, b, c"가 있다고 할 때 수집한 웹 문서 데이터(Doc 1)에서 개체(Entity) 이름과, 각 메타 정보들의 출현 빈도 정보 등을 이용하여 해당 웹 문서 데이터(Doc1)가 상기 개체(Entity) A를 가리킬 확률을 구한다.
한편, 상기와 같이 문서 단위로 비교했다면, 웹 문서 데이터(Doc1)를 각 문장/문단/임의의 구절 단위로 나눈 후에 각 단위 데이터들이 임의의 개체(Entity) 일 확률을 전술한 바와 같이 메타 정보를 활용하여 구할 수도 있다.
상기 각 단위 데이터(문서/문장/문단/임의의 구절) 단위로 가리키는 개체(Entity) 후보들을 구한 다음에 가장 높은 확률의 개체(Entity)를 선택하거나, 확률 상으로 가장 높은 상위 N개의 개체(Entity)를 선택할 수 있다.
그리고, 각 단위 데이터 단위로 선택한 개체(Entity)에 대해서 그 단위 데이터 안에 나타난 의견 정보를 해당 개체(Entity)에 대한 의견 정보로 간주하고, 의견 정보를 인덱싱 서버(300)의 데이터베이스(DB)에 저장하게 된다.
또한, 데이터 분석서버(200)를 통해 상기 수집한 웹 문서 데이터에서 각 의견이 어떤 대상(Sub-theme)을 가리키는지 찾아낸다. 이때, 해당 대상 주변에 있는 메타 정보들 또는 단어 및 품사 정보 등을 이용하여 대상(Sub-theme)을 분류해 낸다.
예를 들면, 『이번/NNG 영화/NNG + 는/JX 스토리/NNG + 가/JKS 정말/MAG <positive>괜찮/VA + 았/EP + 다/EF</positive>』라는 문장에서 의견인 "괜찮았다" 의 대상(Sub-theme)을 찾아야 하는데, 이때 주격조사 『가(JKS)』 앞에 있는 명사 "스토리/NNG"가 대상(Sub-theme)인 것을 주격조사 『가(JKS)』를 통해서 추측할 수 있다.
좀더 구체적인 예를 들어보면, "신기전"이라는 영화 개체(Entity)에 대해서, "감독: 김유진", "배우: 정재영 , 한은정 , 허준호"라는 메타 정보가 총 4개 존재하면, 이때, 문서/문단 A에서 "신기전", [신기전], '신기전', 영화 신기전, 신기전 후기, 신기전 감상 등 어떠한 개체를 나타내는 주변 단어들이 있는지를 파악하여 일단 "신기전"이라는 개체를 언급할 가능성이 있는 문서/문단인지 결정한다.
그런 다음, "신기전"을 어느 정도 가리킨다고 위와 같은 주변 문맥을 통해서 파악한 후에는 위에서 가지고 있는 4개의 메타 정보가 얼마나 존재하는지 파악한다. 만약, "정재영, 김유진" 2개의 메타 정보가 존재하면 전체 4개 중에서 2개가 존재한다고 파악하게 된다. 즉, 50%가 존재한다고 파악한다. 그래서, 어떠한 임의의 문턱값(Threshold)을 정해서 그 이상일 경우 해당 개체(Entity)를 가리키는 문서/문단으로 파악하게 된다.
상기와 같이 대상(Sub-theme)은 의견 표현과 그 주변에 있는 품사 정보들을 보고 예측이 가능하며, 이렇게 각 경우에 대해서 직접적으로 지정해 주는 규칙기반(Rule-Based) 방법과, 특정한 문맥 하에서 대상(Sub-theme)일 확률이 높은 단어를 찾아내는 기계학습(Machine Learning) 방법 모두 가능하다.
또한, 의견통계 정보를 저장하기 전에 먼저 각 대상(Sub-theme)을 클러스터링을 통해서 그룹화 할 수 있다. 예를 들면, 이야기, 내용, 스토리, 플롯 등과 같은 대상(Sub-theme)을 "스토리"로 그룹화 할 수 있다. 이때, 상기 클러스터링은 각 대상(Sub-theme)이 어떤 의견 표현과 같이 등장했는지 정보를 이용하여 클러스터링을 수행한다.
한편, 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들은 예컨대, 개체 ID, 대상(Sub-theme), 각 개체의 각 대상에 대한 긍정/부정 의견 표현수, 전체 의견 표현수 또는 각 대상을 사용한 의견 표현 내용 중 적어도 어느 하나의 정보로 이루어질 수 있다.
예를 들면, 개체(Entity) A 에 대한 "감동" 부분에서 긍정(Positive) 의견을 가진 표현을 찾았다면, 해당 개체(Entity) A에 대한 데이터베이스(DB)의 "감동"에 대한 대상(Sub-theme)에서 긍정 의견 표현수(Positive Count)를 1 증가해서 저장하게 된다.
즉, 도 4 및 도 5에 도시된 바와 같이, 상기 단계S200은, 상기 단계S100에서 수집된 웹 문서 데이터들에 대해 미리 설정된 분야별 기계학습 모델을 이용하여 분야별로 분류하는 단계(S210)와, 상기 단계S100에서 수집된 웹 문서 데이터들에 대해 언어처리를 수행하여 의견 문장을 추출하고, 상기 추출된 의견 문장에 대해 긍정/부정 의견표현으로 구분하는 단계(S220)와, 상기 단계S100에서 수집된 웹 문서 데이터들에 대해 개체별 메타 정보들을 이용하여 어떤 개체에 해당되는지 판별하는 단계(S230)와, 상기 단계S220에서 추출된 의견 문장의 주변에 있는 단어 및 품사 정보를 이용하여 어떤 대상에 해당되는지 판별하는 단계(S240)를 포함할 수 있다.
여기서, 상기 단계S220은, 상기 단계S100에서 수집된 웹 문서 데이터에 대해 문장 단위로 분리하고, 분리된 각 문장에 대해 언어처리를 수행하여 언어적인 자질들을 추출하는 단계(S220-1)와, 상기 단계S220-1에서 추출된 각 문장의 언어적인 자질들을 이용하여 의견/비의견 문장을 구분하는 단계(S220-2)와, 상기 단계S220-2에서 구분된 의견 문장의 언어적인 자질들에 대해 긍정/부정 의견표현으로 구분하는 단계(S220-3)를 포함할 수 있다.
또한, 상기 단계S220에서, 상기 추출된 의견 문장에 대해 긍정/부정 의견표현 구분 시 규칙기반(Rule-Based) 모델 및/또는 기계학습(Machine Learning) 모델의 적절한 적용에 따라 하이브리드(Hybrid) 의견분석(Opinion Mining)(예컨대, 캐스케이딩(Cascading), 보간(Interpolation) 및 혼합(Mixed) 의견분석 등) 방식을 수행할 수 있다.
도 6 내지 도 9는 본 발명의 일 실시예에 따른 하이브리드 기반의 의견분석 방법을 구체적으로 설명하기 위한 흐름도로서, 도 6은 캐스케이딩(Cascading) 의견분석 방법을 나타낸 흐름도이고, 도 7은 보간(Interpolation) 의견분석 방법을 나타낸 흐름도이며, 도 8은 도 7의 각 의견표현에 따른 신뢰도 점수를 나타낸 도면이며, 도 9는 혼합(Mixed) 의견분석 방법을 나타낸 흐름도이다.
도 6을 참조하면, 상기 단계S220에서 추출된 의견 문장에 대해 미리 정의된 규칙이 존재하는지 판단하고(S221), 상기 단계S221에서의 판단 결과, 상기 추출된 의견 문장에 대해 미리 정의된 규칙이 존재할 경우, 미리 설정된 규칙기반(Rule-Based) 모델을 적용하여 긍정/부정 의견표현으로 구분한다(S222).
예를 들면, "이 영화는 더 좋을 수 없다."라는 의견 문장에 대해 미리 설정된 규칙기반 모델(더 + 긍정어 + 없 → 긍정)을 통해 긍정 의견으로 구분하게 된다.
그렇지 않고, 상기 단계S221에서의 판단 결과, 상기 추출된 의견 문장에 대해 미리 정의된 규칙이 존재하지 않을 경우, 미리 설정된 기계학습 모델을 적용하여 긍정/부정 의견표현으로 구분한다(S223).
예를 들면, "이 영화는 그냥 뭐 그렇다."라는 의견 문장에 대해 미리 정의된 규칙이 존재하지 않을 경우, 미리 설정된 기계학습 모델을 통해 구 단위로 의견 분석한 후, 상기 기계학습 모델을 통해 의견의 긍정/부정에 대한 확률추출 방식으로 부정 의견으로 구분하게 된다.
도 7 및 도 8을 참조하면, 상기 단계S220에서 추출된 의견 문장에 대해 미리 설정된 규칙기반 모델(Rule-Based) 및 기계학습 모델을 동시에 적용하여 각각 긍정/부정 의견표현을 판단한 후(S224a 및 S224b), 상기 규칙기반 모델 및 기계학습 모델을 적용한 결과의 일치여부에 따라 서로 다른 신뢰도 점수를 부여하고(S225), 상기 신뢰도 점수를 바탕으로 긍정/부정 의견표현으로 구분한다(S226).
예를 들면, "이번에 본 영화 A는 전반적인 스토리가 너무 괜찮았다."라는 의견 문장에 대해 미리 설정된 규칙기반 모델을 통해 긍정 의견으로 구분하고(예, 이번에 본 영화 A는 전반적인 스토리가 너무 <positive>괜찮았다</positive>.), 미리 설정된 기계학습 모델을 통해 구 단위로 의견 분석한 후, 상기 기계학습 모델을 통해 의견의 긍정/부정에 대한 확률추출 방식으로 긍정 의견으로 구분한다(예, 이번에 본 영화 A는 전반적인 스토리가 <positive>너무 괜찮았다</positive>.).
다음으로, 도 8에 도시된 바와 같이, 상기 규칙기반 모델 및 기계학습 모델을 적용한 결과의 일치여부에 따라 서로 다른 신뢰도 점수{Positive-Positive 나, Negative-Negative(예제에서는 "괜찮았다")에 대해서는 2점, 중립과 일치하는 결과 Positive-Objective, Negative-Objective(예제에서는 "너무")에 대해서는 1점, 그리고 두 모델이 완전히 상반되는 결과를 내놓는 경우 Positive-Negative, Negative-Positive에 대해서는 -1점)를 부여한 후, 상기 신뢰도 점수를 바탕으로 특정 신뢰도 점수 이상인 경우에만 긍정/부정 의견표현으로 구분할 수 있게 된다.
도 9를 참조하면, 상기 단계S220에서 추출된 의견 문장에 대해 미리 정의된 예외처리 규칙후보 문장인지를 판단한 후(S227), 상기 단계S227에서의 판단 결과, 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙후보 문장(예컨대, ~이보다 좋을수 없어∼, 영화 "우리 생애 최고의 순간"을 봤다, ~~~~주인공 A는 이러한 상황을 즐겼다. ~~~~ 등)일 경우, 미리 정의된 예외처리 규칙의 존재여부에 따라 미리 정의된 예외처리 규칙기반 모델 또는 기계학습 모델을 적용하여 긍정/부정/중립 의견표현으로 구분할 수 있다.
만약, 상기 단계S227에서의 판단 결과, 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙후보 문장이고, 미리 정의된 예외처리 규칙이 존재할 경우, 미리 정의된 예외처리 규칙기반 모델을 적용하여 긍정/부정/중립 의견표현으로 구분한 후, 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙이 존재하지 않을 경우에 미리 설정된 기계학습 모델을 적용하여 긍정/부정/중립 의견표현으로 구분한다(S228).
한편, 상기 단계S227에서의 판단 결과, 상기 추출된 의견 문장이 미리 정의된 예외처리 규칙후보 문장이 아닐 경우에 상기 추출된 의견 문장에 대해 미리 설정된 규칙기반 모델(Rule-Based) 및 기계학습 모델을 동시에 적용하여 긍정/부정 의견표현을 판단한 후, 상기 규칙기반 모델 및 기계학습 모델을 적용한 결과의 일치여부에 따라 서로 다른 신뢰도 점수를 부여하고, 상기 신뢰도 점수를 바탕으로 긍정/부정 의견표현으로 구분한다(S229).
다음으로, 상기 단계S200에서 분석된 개체별 메타 정보들을 비롯한 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 인덱싱 서버(300, 도 1 참조)를 통해 데이터베이스화하여 저장되도록 인덱싱한다(S300).
이때, 상기 단계S300에서, 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들은 문서/문단 단위로 각 개체가 매핑되도록 저장할 수 있다. 즉, 인덱싱 서버(300)를 통해 예컨대, 문서/문단 ID, 제목, 내용, 태그, 분류(예컨대, 영화, 정치, 경제 등), 개체 이름 리스트 등으로 데이터베이스(DB)화 하여 저장할 수 있다.
마지막으로, 웹 서버(400)를 통해 사용자 단말(500, 도 1 참조)로부터 전송된 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재하는지 판단한 후, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재할 경우 해당 사용자 단말(500)의 화면에 해당 메타 정보 또는 대상 키워드와 관련된 개체 리스트 결과를 디스플레이 해준다(S400). 이때, 상기 단계S400에서, 상기 사용자 검색 키워드에 대한 의견 분석 결과에 따라 긍정/부정 의견이 많은 순서로 개체 결과 리스트를 디스플레이(Display) 해줄 수 있다.
예를 들면, 영화명, 배우이름, 제작연도, 장르, 국가 등 각 필드명 즉, 메타 정보 키워드를 중심으로 검색할 수 있다. 즉, 사용자가 "봉준호 감독 영화"라고 검색하게 되면, "봉준호"라는 메타 정보 키워드가 존재함을 판단하여, 봉준호 감독 영화들을 인덱싱 서버(300)에서 검색하게 된다.
마찬가지로, "송강호 영화"라고 검색하게 되면, "송강호"라는 메타 정보 키워드가 존재함을 판단하여, "송강호" 출연 영화를 인덱싱 서버(300)에서 검색하게 된다.
한편, 총평, 스토리, 연기, 배우, 재미, 감동, 반전, 음악 등과 같은 대상 키워드를 중심으로 각 대상별 긍정/부정 의견별로 정렬하여 검색할 수 있다. 즉, "감동"에 대해서 가장 긍정적인 의견이 많은 영화나, "재미"에 대해서 가장 부정적인 의견이 많은 영화 등을 검색할 수 있게 된다.
예를 들면, "스토리 영화"라고 검색하게 되면, "스토리"라는 대상 키워드가 존재함을 판단하여, 인덱싱 서버(300)에서 "스토리"부분에서 의견이 많은 영화 또는 긍정/부정 의견이 많은 영화를 검색하게 된다. 또한, 검색 시 "스토리" 전체 의견/긍정/부정 의견 개수로 정렬해서 검색하게 된다.
마찬가지로, "스토리가 좋은 영화"라고 검색하게 되면, "스토리"라는 대상 키워드가 포함되어 있음을 판단하고, 검색 문장 자체를 의견 분석을 통해서 긍정적인 의견이 담겨져 있음을 파악한다. 따라서, 인덱싱 서버(300)에서 "스토리" 부분에서 긍정적인 의견이 많은 영화 순으로 검색하게 된다.
또한, "스토리가 엉망인 영화"라고 검색하게 되면, "스토리"라는 대상 키워드가 포함되어 있음을 판단하고, 검색 문장 자체를 의견 분석을 통해서 부정적인 의견이 담겨져 있음을 파악한다. 따라서, 인덱싱 서버(300)에서 "스토리" 부분에서 부정적인 의견이 많은 영화 순으로 검색하게 된다.
도 10 내지 도 14는 사용자 검색 키워드에 따른 다양한 키워드 검색 방법을 설명하기 위한 구체적인 흐름도이다.
도 10을 참조하면, 웹 서버(400, 도 1 참조)를 통해 사용자 단말(500, 도 1 참조)로부터 전송된 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 복합되어 존재하는지 판단한 후(S401), 상기 단계S401에서의 판단 결과, 해당 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재할 경우, 인덱싱 서버(300, 도 1 참조)를 이용하여 해당 메타 정보 키워드와 관련된 개체들을 검색한 후(S402), 상기 단계S402에서 검색된 개체들에 대해 해당 대상 키워드의 긍정/부정 또는 전체 의견 순서 중 어느 하나의 순서로 개체 결과 리스트를 재정렬하여 해당 사용자 단말(500)의 화면에 디스플레이 해준다(S403).
예를 들면, "이병헌의 감동적인 영화"라고 검색하게 되면, "이병헌"이라는 메타 정보 키워드와 "감동"이라는 대상(Sub-theme)이 복합되어 있는 경우로서, 인덱싱 서버(300)에서 "이병헌"이 출연한 개체(Entity)들을 먼저 검색한 후, 해당 개체들에 대해서 "감동"이라는 대상의 긍정/부정 또는 전체 의견 순서 중 어느 하나의 순서로 개체 결과 리스트를 재정렬하여 해당 사용자 단말(500)의 화면에 디스플레이한다.
도 10 및 도 11을 참조하면, 웹 서버(400)를 통해 사용자 단말(500)로부터 전송된 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 복합되어 존재하는지 판단한 후(S401), 상기 단계S401에서의 판단 결과, 해당 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 모두 존재하지 않을 경우, (A)단계로 진행하여 해당 사용자 검색 키워드를 형태소 분석한다(S404).
이후에, 상기 단계S404에서 형태소 분석된 사용자 검색 키워드와 문서/문단 단위로 개체 후보 리스트가 매핑(mapping)되어 있는 인덱싱 서버(300)에 저장된 문서/문단들을 비교 분석한다(S405).
그런 다음, 상기 단계S404에서 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색한 후(S406), 상기 단계S406에서 검색된 문서/문단 결과 리스트에 매핑(mapping)된 개체 결과 리스트를 해당 사용자 단말(500)의 화면에 디스플레이 해준다(S407).
예를 들면, "쫓고 쫓기는 영화"라고 검색하게 되면, 메타 정보 키워드나 대상 키워드가 모두 포함되어 있지 않은 경우로서, 전술한 바와 같이 문서/문단 단위로 개체 후보 리스트가 매핑되어 있는 데이터베이스(DB) 상에서 검색을 수행한다.
즉, 이러한 데이터베이스(DB)에서 예컨대, 제목, 태그, 본문의 검색 키워드와 상기 사용자 검색 키워드가 형태소 분석된 키워드(쫓/VV + 고/EC 쫓기/VV + 는/ETM 영화/NNG)를 검색하게 된다. 이때, 해당 사용자 검색 키워드와 해당 문서/문단과의 관련도에 따라서 랭킹이 된다.
이를 상세하게 설명하면, "쫓고 쫓기는 영화"라는 사용자 검색 키워드가 있으면, 이 각 단어 "쫓고", "쫓기는", "영화"들이 많이 들어 있는 문서가 더 관련도가 높고(TF: Term Frequency - 문서에서 해당 Term이 나온 빈도수), 거기에 더해서 "쫓고", "쫓기는"처럼 "영화"보다는 자주 나오지 않는 단어들이(IDF: Inverse Document Frequency - 전체문서/Term이 나온 문서) 더 많이 들어 있으면 더 가중치를 주게 된다.
상기와 같이 사용자 검색 키워드와 관련된 문서/문단들을 검색하게 되고, 그 문서/문단 결과 리스트에서 해당 결과에 매핑되어 있는 개체 리스트를 개체 검색 결과로 반환하게 된다.
이때, N개의 문서/문단이 검색되고 나서 그 각 N개의 결과에 매핑되어 있는 개체들을 첫째, 순서대로 검색 결과로 반환하는 제1 방법과 둘째, 상위 K개 내에서 각 개체의 빈도수를 계산하여 빈도수 높은 순서로 반환하는 제2 방법과 셋째, 검색 결과 랭크(rank) 점수와 빈도수를 보간(Interpolation)하여 반환하는 제3 방법이 가능하다.
여기서, 상기 제3 방법은 예컨대, 랭크(rank) 점수를 정규화 하여 반환할 수 있다. 이때, 랭크 점수 정규화는 "(Entity[i]의 rank점수 - 최저rank점수)/(최고 rank점수 - 최저 rank 점수)"로 정규화 하여 [0 - 1] 사이 값으로 변환할 수 있다.
또한, 빈도수 점수 정규화는 "(Entity[i]의 빈도수 - 빈도수가 최저인 Entity의 빈도수)/(빈도수가 최고인 Entity의 빈도수 - 빈도수가 최저인 Entity의 빈도수)"로 정규화 하여 [0 - 1] 사이 값으로 변환할 수 있다.
또한, "Score(Entity[i]) = (1-lambda)*(정규화된 Entity[i]의 rank점수) + lambda*(정규화된 Entity[i]의 빈도수)"로 정규화 하여 변환할 수 있다.
도 12를 참조하면, 웹 서버(400)를 통해 사용자 단말(500)로부터 전송된 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하는지 판단한 후(S408), 상기 단계S408에서의 판단 결과, 해당 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 모두 존재하지 않을 경우, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 키워드가 존재하는지 판단한다(S409).
상기 단계S409에서의 판단 결과, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 키워드가 존재할 경우, 해당 사용자 검색 키워드를 형태소 분석한 후(S410), 해당 메타 정보 키워드를 제외한 상기 단계S410에서 형태소 분석된 사용자 검색 키워드와 문서/문단 단위로 개체 후보 리스트가 매핑(mapping)되어 있는 인덱싱 서버(300)에 저장된 문서/문단들을 비교 분석한다(S411).
그런 다음, 해당 메타 정보 키워드를 제외한 상기 단계S410에서 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색한 후(S412), 상기 단계S412에서 검색된 문서/문단 결과 리스트에 매핑(mapping)된 개체 결과 리스트를 검색한다(S413).
이후에, 상기 단계S413에서 검색된 개체 결과 리스트에서 해당 메타 정보 키워드와 관련된 개체 결과 리스트를 필터링(Filtering)하여 해당 사용자 단말(500)에 디스플레이 해준다(S414).
예를 들면, "쫓고 쫓기는 하정우 영화"라고 검색하게 되면, "하정우"라는 메타 정보 키워드가 존재하고 있음을 파악하고, "쫓고 쫓기는"이라는 다른 검색 키워드가 있음을 파악하게 된다. 한편, "영화"는 영화 개체 검색에서는 흔한 단어라서 예외 단어 리스트에 포함할 수 있다.
먼저, "쫓고 쫓기는"으로 개체 검색을 수행하여 개체 결과 리스트를 획득한 후, 상기 획득된 개체 결과 리스트에서 "하정우"라는 메타 정보 키워드로 개체 결과 리스트를 필터링 한다. 마지막으로, 상기 필터링 된 결과를 반환한다.
도 12 및 도 13을 참조하면, 웹 서버(400)를 통해 사용자 단말(500)로부터 전송된 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하는지 판단한 후(S408), 상기 단계S408에서의 판단 결과, 해당 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 모두 존재하지 않을 경우, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 키워드가 존재하는지 판단한다(S409).
상기 단계S409에서의 판단 결과, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 키워드가 존재하지 않을 경우, (B)단계로 진행하여 해당 사용자 검색 키워드에 미리 저장된 대상 키워드가 존재하는지 판단한다(S415).
상기 단계S415에서의 판단 결과, 해당 사용자 검색 키워드에 미리 저장된 대상 키워드가 존재할 경우, 해당 사용자 검색 키워드를 형태소 분석한 후(S416), 해당 대상 키워드를 제외한 상기 단계S416에서 형태소 분석된 사용자 검색 키워드와 문서/문단 단위로 개체 후보 리스트가 매핑(mapping)되어 있는 인덱싱 서버(300)에 저장된 문서/문단들을 비교 분석한다(S417).
그런 다음, 해당 대상 키워드를 제외한 상기 단계S416에서 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색한 후(S418), 상기 단계S418에서 검색된 문서/문단 결과 리스트에 매핑(mapping)된 개체 결과 리스트를 검색한다(S419).
이후에, 상기 단계S419에서 검색된 개체 결과 리스트를 해당 대상 키워드의 긍정 또는 전체 의견수가 많은 순서로 개체 결과 리스트를 재정렬하여 해당 사용자 단말(500)의 화면에 디스플레이 해준다(S420).
예를 들면, "감동적인 전쟁영화"라고 검색하게 되면, "감동"이라는 대상(Sub-theme)이 있음을 파악하고, "전쟁"이라는 개체(Entity) 검색 요소가 포함되어 있음을 파악한다. 즉, 메타 정보 키워드나 대상 키워드가 아닌 경우가 개체 검색할 키워드들이다.
먼저, "전쟁"이라는 단어로 개체(Entity) 검색을 수행한 후, 결과로 나온 개체 결과 리스트를 "감동"이라는 대상으로 전체 의견수 또는 긍정 의견수가 많은 개체 리스트 순으로 다시 재정렬한다. 마지막으로, 상기 재정렬된 결과를 반환한다.
도 12 및 도 14를 참조하면, 웹 서버(400)를 통해 사용자 단말(500)로부터 전송된 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재하는지 판단한 후(S408), 상기 단계S408에서의 판단 결과, 해당 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 모두 존재하지 않을 경우, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 키워드가 존재하는지 판단한다(S409).
상기 단계S409에서의 판단 결과, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 키워드가 존재할 경우, (C)단계로 진행하여 해당 사용자 검색 키워드에 미리 저장된 대상 키워드가 존재하는지 판단한다(S421).
상기 단계S421에서의 판단 결과, 해당 사용자 검색 키워드에 미리 저장된 대상 키워드가 존재할 경우, 해당 사용자 검색 키워드를 형태소 분석한 후(S422), 해당 메타 정보 및 대상 키워드를 제외한 상기 단계S422에서 형태소 분석된 사용자 검색 키워드와 문서/문단 단위로 개체 후보 리스트가 매핑(mapping)되어 있는 인덱싱 서버(300)에 저장된 문서/문단들을 비교 분석한다(S423).
그런 다음, 해당 메타 정보 및 대상 키워드를 제외한 상기 단계S422에서 형태소 분석된 사용자 검색 키워드를 문서/문단 결과 리스트에서 검색한 후(S424), 상기 단계S424에서 검색된 문서/문단 결과 리스트에 매핑(mapping)된 개체 결과 리스트를 검색한다(S425).
이후에, 상기 단계S425에서 검색된 개체 결과 리스트에서 해당 메타 정보 키워드와 관련된 개체 결과 리스트를 필터링(Filtering)한 후(S426), 상기 단계S426에서 필터링 된 개체 결과 리스트를 해당 대상 키워드의 긍정 또는 전체 의견수가 많은 순서로 개체 결과 리스트를 재정렬하여 해당 사용자 단말(500)의 화면에 디스플레이 해준다(S427).
예를 들면, "감동적인 정재영의 전쟁 영화"라고 검색하게 되면, "감동"이라는 대상(Sub-theme)이 있음을 파악하고, "정재영"이라는 메타 정보 키워드가 있음을 파악한다. 그리고, "전쟁"이라는 개체(Entity) 검색 요소도 포함되어 있음을 파악한다.
먼저, "전쟁"이라는 단어로 개체(Entity) 검색을 수행한 후, "정재영"이라는 메타 정보 키워드로 개체 결과 리스트를 필터링 한다. 그런 다음, 상기 필터링 된 개체 결과 리스트를 "감동"이라는 대상으로 전체 의견수 또는 긍정 의견이 많은 개체 결과 리스트 순으로 다시 재정렬한다.
도 15 내지 도 19는 본 발명의 일 실시예에 따른 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 방법을 이용하여 사용자 단말의 화면에 디스플레이 되는 키워드 검색 결과 화면을 나타낸 도면이다.
도 15 및 도 16을 참조하면, "트랜스포머" 및 "하정우"라는 메타 정보 키워드에 대한 검색 결과를 나타낸 화면으로서, 상기 검색 결과 화면상에는 검색된 기본 영화 정보들(예컨대, 포스트, 제목, 감독, 배우 등)을 표현하는 제1 표시창(1000)과, 대상 항목별(예컨대, 총평, 장면, 스토리, 재미, 배우, 감동, 연기 등) 의견통계 정보들(예컨대, 총평점, 대상항목별 평점 및 평점 표현 방법(ex, 그래프) 등)을 표현하는 제2 표시창(2000)과, 검색된 개체 결과 리스트와 이와 관련된 이미지, 동영상 및 긍정/부정 의견통계 정보 등을 표현하는 제3 표시창(3000)과, 검색된 기본 영화(예컨대, 가장 전체 의견이 많은 영화)에 대한 의견의 원문을 표현하는 제4 표시창(4000)을 포함할 수 있다.
여기서, 제3 표시창(3000)에서 검색된 개체 결과 리스트를 가장 전체 의견이 많은 순서 또는 가장 긍정/부정 의견이 많은 순서로 재정렬하여 보여줄 수 있다.
한편, 도 17을 참조하면, 전술한 도 16에 도시된 바와 달리 "하정우"라는 메타 정보 키워드에 대한 검색 결과를 나타낸 다른 화면으로서, 좀더 간략하고 보기 쉽게 구성한 디스플레이 화면이다.
도 18을 참조하면, "반전이 있는 영화"라는 대상(Sub-theme) 키워드에 대한 검색 결과를 나타낸 화면으로서, "반전"이라는 대상에 대한 전체 의견 또는 긍정 의견이 많은 순서대로 검색 결과를 정렬하여 개체 결과 리스트를 보여줄 수 있다. 도 17에서는 "반전"에 대한 긍정 의견이 많은 순서로 정렬한 디스플레이 화면이다.
도 19를 참조하면, "쫓고 쫓기는 영화"라는 사용자 검색 키워드에 대한 개체 검색 결과를 나타낸 화면으로서, 좌측 화면에 해당 사용자 검색 키워드에 대해서 개체 검색 리스트(예컨대, 추격자, 싸움의 기술, 노인을 위한 나라는 없다, 놈놈놈 등)가 표시되어 있다.
전술한 본 발명에 따른 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법에 대한 바람직한 실시예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 특허청구범위와 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 본 발명에 속한다.
100 : 데이터 수집서버,
200 : 데이터 분석서버,
300 : 인덱싱 서버,
400 : 웹 서버,
500 : 사용자 단말
200 : 데이터 분석서버,
300 : 인덱싱 서버,
400 : 웹 서버,
500 : 사용자 단말
Claims (10)
- 인터넷 상에 존재하는 웹 문서 데이터들을 수집하는 제1 서버;
상기 제1 서버로부터 수집된 웹 문서 데이터들을 제공받아 개체별 메타 정보들을 추출하고, 상기 개체별 메타 정보들을 이용하여 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 분석하는 데이터 분석서버;
상기 데이터 분석서버로부터 분석된 개체별 메타 정보들을 비롯한 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 데이터베이스화하여 저장되도록 인덱싱하는 제2 서버; 및
인터넷을 통해 접속되어 사용자 단말로부터 전송된 사용자 검색 키워드를 제공받아 상기 제2 서버와 연동되어 상기 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재하는지 판단하고, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재할 경우 해당 사용자 단말의 화면에 해당 메타 정보 또는 대상 키워드와 관련된 개체 리스트 결과를 디스플레이 해주는 웹 서버를 포함하되,
상기 데이터 분석서버는, 미리 설정된 웹 문서 데이터에서 미리 설정된 형태의 문자열을 나타내는 정규식을 이용하여 개체별 메타 정보들을 추출하는 것을 특징으로 하는 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템.
- 삭제
- 제1 항에 있어서,
상기 제2 서버에 저장되는 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들은 개체 ID, 대상, 각 개체의 각 대상에 대한 긍정/부정 의견 표현수, 전체 의견 표현수 또는 각 대상을 사용한 의견 표현 내용 중 적어도 어느 하나의 정보로 이루어진 것을 특징으로 하는 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템.
- 제1 항에 있어서,
상기 웹 서버는, 상기 사용자 검색 키워드에 대한 의견 분석 결과에 따라 긍정/부정 의견이 많은 순서로 개체 결과 리스트를 디스플레이 해주는 것을 특징으로 하는 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템.
- 제1 항에 있어서,
상기 웹 서버는, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재할 경우 해당 메타 정보 키워드와 관련된 개체들을 검색한 후, 상기 검색된 개체들에 대해 해당 대상 키워드의 긍정/부정 또는 전체 의견 순서 중 어느 하나의 순서로 개체 결과 리스트를 재정렬하여 디스플레이 해주는 것을 특징으로 하는 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템.
- 제1 항에 있어서,
상기 웹 서버는, 상기 개체 리스트 결과와 함께 각 개체의 의견통계 정보들을 해당 사용자 단말에 디스플레이 해주는 것을 특징으로 하는 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템.
- (a) 인터넷 상에 존재하는 웹 문서 데이터들을 수집하는 단계;
(b) 상기 수집된 웹 문서 데이터들을 제공받아 개체별 메타 정보들을 추출한 후, 상기 개체별 메타 정보들을 이용하여 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 분석하는 단계;
(c) 상기 분석된 개체별 메타 정보들을 비롯한 각 개체의 각 대상에 대한 긍정/부정 의견통계 정보들을 데이터베이스화하여 저장되도록 인덱싱하는 단계; 및
(d) 인터넷을 통해 접속되어 사용자 단말로부터 전송된 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재하는지 판단한 후, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 또는 대상 키워드가 존재할 경우 해당 사용자 단말의 화면에 해당 메타 정보 또는 대상 키워드와 관련된 개체 리스트 결과를 디스플레이 해주는 단계를 포함하되,
상기 개체별 메타 정보 추출은, 미리 설정된 웹 문서 데이터에서 미리 설정된 형태의 문자열을 나타내는 정규식을 이용하여 추출하는 것 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 방법.
- 제7 항에 있어서,
상기 단계(d)에서, 상기 사용자 검색 키워드에 대한 의견 분석 결과에 따라 긍정/부정 의견이 많은 순서로 개체 결과 리스트를 디스플레이 해주는 것을 특징으로 하는 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 방법.
- 제7 항에 있어서,
상기 단계(d)에서, 상기 사용자 검색 키워드에 미리 저장된 메타 정보 및 대상 키워드가 존재할 경우 해당 메타 정보 키워드와 관련된 개체들을 검색한 후, 상기 검색된 개체들에 대해 해당 대상 키워드의 긍정/부정 또는 전체 의견 순서 중 어느 하나의 순서로 개체 결과 리스트를 재정렬하여 디스플레이 해주는 것을 특징으로 하는 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 방법.
- 제7 항에 있어서,
상기 단계(d)에서, 상기 개체 리스트 결과와 함께 각 개체의 의견통계 정보들을 해당 사용자 단말에 디스플레이 해주는 것을 특징으로 하는 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110123625A KR101543680B1 (ko) | 2011-11-24 | 2011-11-24 | 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110123625A KR101543680B1 (ko) | 2011-11-24 | 2011-11-24 | 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20090102129A Division KR101100830B1 (ko) | 2009-10-27 | 2009-10-27 | 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120003834A KR20120003834A (ko) | 2012-01-11 |
KR101543680B1 true KR101543680B1 (ko) | 2015-08-11 |
Family
ID=45610676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110123625A KR101543680B1 (ko) | 2011-11-24 | 2011-11-24 | 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101543680B1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101964230B1 (ko) | 2013-12-16 | 2019-04-02 | 한화테크윈 주식회사 | 데이터 처리 시스템 |
KR101662791B1 (ko) * | 2015-01-29 | 2016-10-14 | 주식회사 포워드벤처스 | 상품 평가 관련 정보 디스플레이 시스템 및 상품 평가 관련 정보 디스플레이 방법 |
KR101879735B1 (ko) * | 2017-03-15 | 2018-07-18 | (주)넥셀 | 자동적인 학습데이터 생성 방법 및 장치와 이를 이용하는 자가 학습 장치 및 방법 |
US11455325B2 (en) | 2018-08-22 | 2022-09-27 | Samsung Electronics, Co., Ltd. | System and method for dialogue based file index |
KR102203320B1 (ko) * | 2018-09-27 | 2021-01-15 | 주식회사 스위트케이 | 인공지능 기반의 학습데이터셋 제공 시스템 |
KR102546690B1 (ko) | 2021-04-09 | 2023-06-22 | 주식회사 디지북 | 맞춤형 문서 파일 검색 및 검색 키워드 중심 선별정보 시스템 및 그 구동방법 |
-
2011
- 2011-11-24 KR KR1020110123625A patent/KR101543680B1/ko active IP Right Grant
Non-Patent Citations (1)
Title |
---|
"모니터링 검색엔진을 위한 웹 콘텐츠 마이닝 시스템 설계", 주해종외 1인, 한국통신학회논문지, vol.34, no.2, pp.53-60, 2009년2월28일* |
Also Published As
Publication number | Publication date |
---|---|
KR20120003834A (ko) | 2012-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101100830B1 (ko) | 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법 | |
Kaddoura et al. | A systematic literature review on spam content detection and classification | |
US8402036B2 (en) | Phrase based snippet generation | |
Moussa et al. | A survey on opinion summarization techniques for social media | |
Eirinaki et al. | Feature-based opinion mining and ranking | |
Venugopalan et al. | Exploring sentiment analysis on twitter data | |
US8417713B1 (en) | Sentiment detection as a ranking signal for reviewable entities | |
US8135739B2 (en) | Online relevance engine | |
US20130110839A1 (en) | Constructing an analysis of a document | |
Moghaddam et al. | AQA: aspect-based opinion question answering | |
KR101543680B1 (ko) | 인터넷을 활용한 개체 검색과 이를 위한 하이브리드 기반의 의견분석 시스템 및 그 방법 | |
Chelaru et al. | Analyzing, detecting, and exploiting sentiment in web queries | |
Roy et al. | Discovering and understanding word level user intent in web search queries | |
Bhatia et al. | Opinion mining in information retrieval | |
KR101074820B1 (ko) | 인터넷을 활용한 추천 검색 시스템 및 그 방법 | |
JP2008059442A (ja) | 文書集合分析装置,文書集合分析方法,その方法を実装したプログラム及びそのプログラムを格納した記録媒体 | |
Wegrzyn-Wolska et al. | Tweets mining for French presidential election | |
Guo et al. | An opinion feature extraction approach based on a multidimensional sentence analysis model | |
JP6250833B2 (ja) | 文書検索システム、ディベートシステム、文書検索プログラム | |
Hu et al. | Embracing information explosion without choking: Clustering and labeling in microblogging | |
Vidulin et al. | Multi-label approaches to web genre identification | |
Bhatnagar et al. | A novel aspect based framework for tourism sector with improvised aspect and opinion mining algorithm | |
CN112527963A (zh) | 基于词典的多标签情感分类方法及装置、设备、存储介质 | |
Yu et al. | An adaptive model for probabilistic sentiment analysis | |
Thakkar | Twitter sentiment analysis using hybrid naive Bayes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180529 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190805 Year of fee payment: 5 |