후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 본 발명에서 첨부된 구성도(블록도)의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있다. 이러한 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 인접하거나 순서에 따라 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
또한 각각의 게시된 실시예 내의 개별 구성요소의 위치 또는 배열은 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 그 청구항들이 주장하는 것과 균등한 모든 범위를 포괄하는 것으로 해석되어야 한다. 또한, 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭하며, 그 형태는 편의를 위하여 과장되어 표현될 수도 있다.
한편, 본 발명에서 사용되는 용어들은 본 발명의 바람직한 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 이해되어야 할 것이다. 명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "부", "모듈" 등의 용어는 적어도 하나 이상의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
[본 발명의 실시예]
전체 시스템의 구성
도 1은 본 발명의 일 실시예에 따른 응집도 점수 기반의 키워드 추출을 이용하여 대화형 형태소 분석을 제공하기 위한 전체 시스템의 구성을 나타내는 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 전체 시스템은 통신망(100), 대화형 형태소 분석시스템(200), 사용자 단말장치(300), 관리자 단말장치(400) 및 서버(500)를 포함하여 구성될 수 있다.
먼저, 본 발명의 일 실시예에 따른 통신망(100)은, 대화형 형태소 분석시스템(200), 사용자 단말장치(300), 관리자 단말장치(400) 및 서버(500) 간의 데이터 전송 및 정보 교환을 위한 일련의 데이터 송수신 동작을 수행할 수 있는 네트워크 망으로, 유선 및/또는 무선과 같은 그 통신 양태를 가리지 않고 구성될 수 있다.
보다 구체적으로, 근거리 통신망(LAN: Local Area Network), 도시권 통신망(MAN: Metropolitan Area Network), 광역 통신망(WAN: Wide Area Network), 종합정보통신망(ISDN: Integrated Services Digital Network), 무선랜(wireless LAN), 이동통신망(mobile communication network), 와이파이(Wireless Fidelity), 블루투스(Bluetooth) 또는 지그비(ZigBee) 등 중에서 어느 하나이거나, 이들의 조합으로 연계되어 구성될 수 있는 다양한 형태의 유/무선 통신망일 수 있으나, 이는 하나의 예를 들어 설명한 것으로, 본 발명이 이에 한정되는 것은 아니며, 공지된 통신기술을 제한없이 채택하여 사용할 수 있다.
바람직하게는, 이러한 본 발명에 의해 구성된 통신망(100)은 월드와이드웹(WWW: World Wide Web) 서비스를 이용할 수 있는 인터넷 망일 수 있다.
다음으로, 본 발명의 일 실시예에 따른 대화형 형태소 분석시스템(200)은, 응집도 점수 기반의 키워드 추출 결과로 얻어진 키워드(단어) 집합에 대하여, 후처리 과정으로 대화형 구성의 형태소 분석과정을 진행하여 입력 데이터가 추가될 때마다 각각의 패턴에 맞는 형태소 분석규칙(변환규칙) 및 단어를 점증적으로 추가하는 기능을 수행할 수 있는 시스템일 수 있다.
보다 구체적으로, 대화형 형태소 분석시스템(200)은 추출된 상기 키워드 집합 중에서 이미 단어사전에 저장되어 있는 단어 집합과 중복되는 단어(키워드)를 제외하고 신규 단어 집합을 추출할 수 있어서, 형태소 분석과정에서 수작업으로 확인해야 하는 단어(키워드)의 수를 줄일 수 있다.
또한, 상기 신규 단어 집합에 포함된 단어를 행단위로 나열하고, 각 행의 단어에 오류가 있을 경우, 이를 보정하여 단어별로 추가된 분석규칙(변환규칙)을 입력하여 저장하고, 저장된 상기 분석규칙을 기반으로 키워드 집합에 대한 형태소 분석과정을 수행하여 보정된 키워드 집합을 제공할 수 있다. 이때, 상기 신규 단어 집합에 포함된 신규 단어를 상기 단어사전에 추가로 저장할 수 있어, 다음 입력 데이터가 주어졌을 때 확인해야 할 단어의 수를 점진적으로 줄여 나갈 수 있다. 이러한 본 발명의 일 실시예에 따른 대화형 형태소 분석시스템(200)은 도 2를 참조한 이하의 상세한 설명에 의해 보다 구체적으로 이해될 수 있을 것이다.
다음으로, 본 발명의 일 실시예에 따른 사용자 단말장치(300)는, 통신망(100) 상에서 키워드를 포함하는 콘텐츠 정보를 입력하거나 공유하는 기능을 수행할 수 있는 사용자(이용자)의 디지털 기기일 수 있다.
보다 구체적으로, 이러한 사용자 단말장치(300)는 온라인(통신망) 상에서 정보를 게시할 수 있고, 사용자(이용자)가 다른 사용자(다른 이용자)와 연계를 맺을 수 있는 SNS(Social Network Service) 등을 통해 사용자 사이의 정보를 공유하고 송수신할 수 있도록 할 수 있다. 이때, 상기 정보는 키워드를 포함하는 콘텐츠 정보일 수 있는데, 상기 콘텐츠는, 유/무선 통신망에서 사용하는 텍스트, 이미지, 오디오 또는 동영상 정보 중에서 하나 또는 다수개로 이루어지거나, 이들의 조합으로 이루어져 디지털기기를 통해 디지털 방식으로 처리되는 사용자가 인식할 수 있는 디지털 정보를 포괄하는 의미로 이해될 수 있다.
따라서, 사용자 단말장치(300)는 대화형 형태소 분석시스템(200)에서 추출되는 키워드를 제공해주는 기능을 수행할 수 있는데, 상기 키워드에는 사용자(이용자) 관점의 의견이나 불만 사항 등이 포함되어 있어, SNS 피드 및 블로그 리뷰 등을 포함한 소셜 빅데이터로 활용될 수 있다. 이때, 소셜 빅데이터는 네이버 및 구글 등의 온라인 포털 업체에서 제공하는 오픈 API를 통해 무료로 제공될 수 있으며, 신용카드, 휴대폰 이용 내역 등 수치로 이루어진 다른 형태의 빅데이터에 비해 사용자(고객)의 의견이나 불만 사항을 텍스트 형식으로 직접적으로 파악할 수 있다.
다음으로, 본 발명의 일 실시예에 따른 관리자 단말장치(400)는, 관리자의 요청에 따라 대화형 형태소 분석시스템(200)에서 대화형 형태소 분석과정을 수행하여 추출된 보정된 키워드 집합을 제공(전송)받는 기능을 수행할 수 있는 디지털 기기일 수 있다.
보다 구체적으로, 이러한 관리자 단말장치(400)는 관리자의 요청에 따라 분석시스템(200)에 접속(예를 들면, 회원가입, 로그인)하여 일정한 조건(예를 들면, 특징 단어, 빈도 등) 및 범위(예를 들면, 기간, 지역 등)에서 키워드 추출과정을 수행할 수 있는데, 본 발명의 일 실시예에서는 응집도 점수 기반의 키워드 추출을 이용하여 대화형 형태소 분석과정을 수행하고, 추출한 보정된 키워드 집합을 제공(전송)받을 수 있다. 또한, 관리자 단말장치(400)는 상기 보정된 키워드 집합을 이용하여, 방대한 소셜 리뷰 및 고객의 상품평을 효과적으로 분석하여 잠재적인 광고 키워드를 추출하거나, 영화 흥행 요인 분석, 온라인 쇼핑몰의 상품평 분류를 통한 감성 분석 등에 활용할 수 있다.
이와 같이 설명된, 사용자 단말장치(300) 및 관리자 단말장치(400)는 도 3을 참조한 이하의 상세한 설명에 의해 보다 명확하게 이해될 수 있다. 한편, 이상에서 설명된 본 발명의 실시예에 따른 사용자 단말장치(300) 및/또는 관리자 단말장치(400)에는, 키워드가 포함된 콘텐츠 정보를 입력(선택)하거나 공유하며, 대화형 형태소 분석시스템(200)으로 일정한 조건과 범위의 키워드 분석을 요청하고, 이에 따른 대화형 형태소 분석과정을 수행하여 보정된 키워드 집합을 제공받을 있는 전용 웹(Web) 또는 앱(App) 프로그램이 더 설치되어 있을 수 있다.
또한, 사용자 단말장치(300) 및/또는 관리자 단말장치(400)는 통신망(100)을 통해 대화형 형태소 분석시스템(200) 및/또는 서버(500)와 접속하여 상술된 대화형 형태소 분석서비스 관련 정보를 송수신할 수 있는 기능을 포함하는 디지털 기기로, 이러한 디지털 기기로는 공지된 모든 이동통신단말장치, 정보통신기기, 멀티미디어 단말장치, 유선 단말장치, 고정형 단말장치 및 IP(Internet Protocol) 단말장치 등의 다양한 단말장치가 적용될 수 있다. 구체적으로, 단말장치는 스마트폰(Smart Phone), PMP(Portable Multimedia Player), 개인 정보 단말기(Personal Digital Assistant: PDA), MID(Mobile Internet Device), 텔레매틱스(Telematics) 단말기, 데스크톱(Desktop), 태블릿 컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net book) 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 디지털 기기로, 유/무선의 통신기능을 포함하고 있다면 얼마든지 본 발명에 따른 단말장치(300, 400)로서 채택될 수 있을 것이다.
이러한 사용자 단말장치(300) 및/또는 관리자 단말장치(400)에는 본 발명에 의한 대화형 형태소 분석 기능(서비스) 및 이와 관련된 정보를 사용자와 관리자에게 시각적으로 디스플레이 할 수 있는 표시수단을 구비할 수 있다. 여기서, 표시수단은 LCD(Liquid Crystal Display), TFT-LCD(Thin Film Transistor LCD), OLED(Organic Light Emitting Diodes), 발광다이오드(LED), AMOLED(Active Matrix Organic LED), 플렉시블 디스플레이(Flexible display) 및 3차원 디스플레이(3 Dimension) 등으로 구성될 수 있다. 이때, 표시수단에 터치스크린(touch screen) 형태가 포함될 수도 있어 입력수단의 기능 중 일부 또는 전부를 수행할 수도 있다.
마지막으로, 본 발명의 일 실시예에 따른 서버(500)는, 소셜 빅데이터 관리, 관리자 단말장치(400)의 접속(예를 들면, 회원가입, 로그인) 관리, 키워드 정보 관리, 분석정보 관리 등의 대화형 형태소 분석서비스 및 이와 관련된 서비스 운영 업무를 수행할 수 있는 운영 서버일 수 있다.
보다 구체적으로, 이러한 서버(500)는 대화형 형태소 분석서비스 운영社의 웹/앱 운영 서버의 기능을 수행할 수 있는데, 관리자가 자신의 관리자 단말장치(400)를 통해 해당 웹/앱에 가입하고 로그인하여 대화형 형태소 분석서비스를 신청할 경우, 관련 서비스를 지원해 줄 수 있다. 이때, 서버(500)는 상술된 대화형 형태소 분석시스템(200)과 사용자 단말장치(300) 및/또는 관리자 단말장치(400)를 통신망(100)을 통해 연결하는 전용 웹(Web) 및/또는 앱(App) 프로그램을 운영하거나, 이를 지원하는 기능을 수행할 수 있다. 또한, 서버(500)는 대화형 형태소 분석시스템(200)과 다른 장치들(300, 400)이 본 발명에 의한 네트워크를 구현하기 위한 애플리케이션이 구동할 수 있도록, 웹/앱 상에서 API(Application Programming Interface)와 같은 애플리케이션을 구축할 수 있도록 필요한 인터페이스를 지원하는 기능을 수행할 수도 있다.
한편, 본 발명의 일 실시예를 나타내는 도 1에서는, 대화형 형태소 분석시스템(200)과 서버(500)가 별개로 구성되어 있는 것으로 도시되어 있지만, 본 발명을 구현하는 당업자의 필요에 따라, 대화형 형태소 분석시스템(200)을 서버(500)에 통합하여 구성할 수 있음은 자명할 것이다.
대화형 형태소 분석시스템(200)의 구성
이하의 상세한 설명에서는, 본 발명의 구현을 위하여 중요한 기능을 수행하는 대화형 형태소 분석시스템(200)의 내부구성 및 각 구성요소의 기능에 대하여 살펴보기로 한다.
도 2는 본 발명의 일 실시예에 따른 대화형 형태소 분석시스템(200)의 내부 구성을 상세하게 도시한 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 대화형 형태소 분석시스템(200)은 키워드 추출기(A)와 대화형 형태소 분석기(B)로 구성될 수 있는데, 키워드 추출기(A)는 키워드 추출부(210)를 포함하며, 대화형 형태소 분석기(B)는 신규단어 추출부(220), 형태소 분석규칙부(230), 형태소 분석부(240), 단어사전부(250), 분석규칙 등록부(260), 통신부(미도시됨) 및 제어부(미도시됨)를 포함하여 구성될 수 있다.
이러한 본 발명의 일 실시예에 따르면, 대화형 형태소 분석시스템(200)의 키워드 추출부(210), 신규단어 추출부(220), 형태소 분석규칙부(230), 형태소 분석부(240), 단어사전부(250), 분석규칙 등록부(260), 통신부(미도시됨) 및 제어부(미도시됨)는 그 중 적어도 일부가 사용자 단말장치(300), 관리자 단말장치(400) 및/또는 서버(500)와 데이터를 송수신하는 프로그램 모듈들일 수 있다. 이러한 프로그램 모듈들은 운영 시스템, 응용 프로그램 모듈 및 기타 프로그램 모듈의 형태로 대화형 형태소 분석시스템(200)에 포함될 수 있으며, 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있는데, 하드웨어적인 구성요소(예를 들면, 범용 프로세서, 전용 프로세서) 및/또는 소프트웨어적인 구성요소(예를 들면, 펌웨어, 애플리케이션, 프로그램 모듈)와 이들의 조합으로 구현될 수 있다. 또한, 이러한 프로그램 모듈들은 대화형 형태소 분석시스템(200)과 통신 가능한 원격 기억 장치에 저장될 수도 있다. 한편, 이러한 프로그램 모듈들은 본 발명에 따라 후술할 특정 업무를 수행하거나 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하지만, 본 발명이 이에 한정되는 것은 아니다.
먼저, 본 발명의 일 실시예에 따른 키워드 추출부(210)는, 사용자 단말장치(300)에서 입력(선택)하거나 공유하는 콘텐츠에서 단어별 빈도수를 기반으로 계산된 응집도 점수를 활용하여 키워드 집합(S)을 추출하는 기능을 수행할 수 있다.
보다 구체적으로, 이러한 키워드 추출부(210)는 사용자 단말장치(300)에서 입력(선택)하거나 공유하는 콘텐츠를 온라인 상에서 수집하고, 수집된 콘텐츠 중에서 관리자 단말장치(400)의 요청에 따라 일정한 조건(예를 들면, 특징 단어, 빈도 등) 및 범위(예를 들면, 기간, 지역 등)에 해당하는 콘텐츠에서 키워드를 추출하는 기능을 수행할 수 있다.
바람직하게는, 단어별 빈도수를 기반으로 계산된 응집도 점수를 활용한 통계적인 키워드 추출 방법을 이용하여 키워드 집합(S)을 추출할 수 있는데, 예를 들면, 소셜 리뷰 집합으로부터 단어별 출현 빈도수를 계산하고, 단어의 포함 관계를 기반으로 하는 단어 그룹에 대한 단어 트리를 구성하여, 상기 단어 트리를 기반으로 응집도 점수(Cohesion Score)를 이용한 대표 단어와 빈도수를 추출할 수 있다. 이렇게 추출된 상기 대표 단어 집합으로부터 상기 빈도수를 기준으로 키워드 추출을 제공할 수 있어서, 높은 정확도를 나타내는 동시에, 실시간 처리가 용이할 수 있다. 이러한 방법은 본 출원인에 의해 선 출원된 한국 특허출원 제10-2021-0036766호를 참고할 수 있다. 다만 본 발명이 이에 한정되는 것은 아니며, 상술된 응집도 점수 기반의 키워드 추출 방법 이외에도, 온라인 상의 다른 키워드를 추출할 수 있는 공지된 기술을 제한없이 채택할 수 있다.
한편, 비록 도 2에서 키워드 추출부(210)는 대화형 형태소 분석시스템(200)의 키워드 추출기(A)에 포함되어 구성되는 것으로 도시되어 있지만, 본 발명을 구현하는 당업자의 필요에 따라, 키워드 추출부(210)를 포함하는 키워드 추출기(A)는 대화형 형태소 분석시스템(200)과 별개로 구성하거나 서버(500)에 포함되도록 구성할 수도 있다.
다음으로, 본 발명의 일 실시예에 따른 신규단어 추출부(220)는, 키워드 추출부(210)에서 추출된 키워드 집합(S) 중에서 단어사전부(250)에 이미 저장되어 있는 단어 집합(D) 과 중복되는 단어(키워드)를 제외하고 신규 단어 집합(R)을 산출하는 기능을 수행할 수 있다.
보다 구체적으로, 이러한 신규단어 추출부(220)는 신규 단어 집합(R)인, R = D - S = {wi}, 1≤i≤K, K≤N 이며, 이때, S = {wi}, 1≤i≤N으로 정의할 수 있는데, 상기 i, K 및 N은 자연수이고, 상기 wi는 i번째 단어를 의미할 수 있다. 즉, 신규 단어 집합(R)은 단어 집합(D)으로부터 키워드 집합(S)을 제외한 차집합으로 구할 수 있는데, 이러한 신규단어 추출과정을 통해 이후 처리되는 단어(키워드)의 범위와 양을 줄일 수 있어, 수작업으로 확인해야 하는 단어의 수를 대폭 줄일 수 있다.
다음으로, 본 발명의 일 실시예에 따른 형태소 분석규칙부(230)는, 신규 단어 집합(R)에 포함된 단어를 행단위로 나열하고, 각 행의 단어에 오류가 있을 경우, 이를 보정하여 단어별로 추가된 분석규칙(변환규칙)을 입력(생성)하여 분석규칙 등록부(260)에 저장하는 기능을 수행할 수 있다.
보다 구체적으로, 이러한 형태소 분석규칙부(230)는 신규 단어 집합(R)이 신규단어 추출부(220)로부터 전송되면, 먼저 신규 단어 집합(R)에 포함된 단어를 행단위로 나열한 파일(예를 들면, 엑셀 파일)을 생성할 수 있다. 이때, 상기 파일의 각 행에서는 단어에 오류가 있을 경우, 이를 보정하기 위한 형태소 분석규칙(변환규칙)과 변환에 필요한 추가 데이터를 정의하기 위한 컬럼을 제공할 수 있다. 이어서, 관리자 단말장치(400)에 의해 상기 파일의 오류 수정을 위한 분석규칙 입력(정의)가 완료되면, 형태소 분석규칙부(230)는 이를 다시 수신하여 오류 수정된 파일에 추가된 상기 분석규칙을 추출한 후, 이를 분석규칙 등록부(260)에 추가하여 저장할 수 있다. 이러한, 형태소 분석규칙부(230)는 표 1을 참조한 상세한 설명에 의해 보다 명확하게 이해될 수 있다.
다음으로, 본 발명의 일 실시예에 따른 형태소 분석부(240)는, 저장된 상기 변환 규칙을 기반으로 키워드 집합(S)에 대한 형태소 분석과정을 수행하여 보정된 키워드 집합(S')을 제공하며, 상기 신규 단어 집합(R)에 포함된 신규 단어를 단어사전부(250)에 추가하는 기능을 수행할 수 있다.
보다 구체적으로, 이러한 형태소 분석부(240)는 분석규칙 등록부(260)의 저장정보(예를 들면, 분석규칙)가 업데이트되면, 이를 기반으로 형태소 분석부(240)가 키워드 집합(S)에 대한 형태소 분석과정을 시작할 수 있는데, 상기 형태소 분석 과정은 일 예로, 상기 신규 단어 집합(R) 중에서, 꾸미는(의미없는) 단어 제거 과정, 명사일 경우 조사 제거 과정, 형용사/동사일 경우 활용 처리 과정 및 유의어 처리 과정 중 어느 하나 또는 이들의 조합으로 상기 형태소 분석과정을 수행할 수 있다.
또한, 상기 형태소 분석과정을 통해 보정된 키워드 집합(S')을 분석결과로 출력(제공)할 수 있는데, 이때 신규 단어 집합(R)에 포함된 신규 단어를 단어사전부(250)에 추가시킴(업데이트)으로써, 이후 다시 입력 데이터[예를 들면, 키워드 집합(S)]가 주어졌을 때 확인해야 할 단어 및 분석규칙의 수를 점진적으로 줄여 나갈 수 있도록 구성할 수 있다. 이러한, 형태소 분석부(240)는 도 4를 참조한 상세한 설명에 의해 보다 명확하게 이해될 수 있다.
다음으로, 본 발명의 일 실시예에 따른 단어사전부(250)는, 이미 추출된 단어(키워드)가 보관되어 단어 집합(D)을 저장하거나, 본 발명의 대화형 형태소 분석과정에서 추출된 신규 단어 집합(R)에 포함된 신규 단어를 더 저장할 수 있는 저장장치일 수 있다.
보다 구체적으로, 이러한 단어사전부(250)는 신규단어 추출부(220)에서 수행되는 이미 저장된 단어 집합(D)에서 추출된 상기 키워드 집합(S) 중에서 이미 저장되어 있는 단어 집합(D)과 중복되는 단어(키워드)를 제외하고 신규 단어 집합(R)을 추출하는데 활용될 수 있으며, 형태소 분석부(240)에서 신규 단어 집합(R)에 포함된 신규 단어를 추가(업데이트)하여 저장할 수도 있다.
다음으로, 본 발명의 일 실시예에 따른 분석규칙 등록부(260)는, 형태소 분석규칙부(230)에서 신규 단어 집합(R)에 포함된 단어 중 오류가 있을 경우, 관리자 단말장치(400)를 통해 보정하여 입력(정의)한 분석규칙(변환규칙)을 저장할 수 있는 저장장치일 수 있다.
보다 구체적으로, 이러한 분석규칙 등록부(260)는 저장된 상기 분석규칙을 기반으로 형태소 분석부(240)에서 키워드 집합(S)에 대한 형태소 분석과정을 수행하여 보정된 키워드 집합(S')을 입력하는데 활용될 수 있다.
한편, 비록 도 2에서 단어사전부(250) 및/또는 분석규칙 등록부(260)는 대화형 형태소 분석시스템(200)에 포함되어 구성되는 것으로 도시되어 있지만, 본 발명을 구현하는 당업자의 필요에 따라, 단어사전부(250) 및/또는 분석규칙 등록부(260)는 대화형 형태소 분석시스템(200)과 별개로 구성하거나 서버(500)에 포함되도록 구성할 수도 있다. 이러한, 단어사전부(250) 및/또는 분석규칙 등록부(260)는 컴퓨터 판독 가능한 기록 매체를 포함하는 개념으로서, 협의의 데이터베이스뿐만 아니라, 파일 시스템에 기반한 데이터 기록 등을 포함하는 넓은 의미의 데이터베이스도 포함하여 지칭하며, 단순한 로그의 집합이라도 이를 검색하여 데이터를 추출할 수 있다면 본 발명에서 말하는 단어사전부(250) 및/또는 분석규칙 등록부(260)에 포함될 수 있다.
다음으로, 본 발명의 일 실시예에 따른 통신부(미도시됨)는, 도 2에 도시되지는 않았지만, 대화형 형태소 분석시스템(200)의 내부 구성들이 사용자 단말장치(300), 관리자 단말장치(400) 및/또는 서버(500) 등과 같은 외부 장치와 데이터(정보)를 송수신할 수 있도록 하는 기능을 수행할 수 있다.
마지막으로, 본 발명의 일 실시예에 따른 제어부(미도시됨)는, 도 2에 도시되지는 않았지만, 키워드 추출부(210), 신규단어 추출부(220), 형태소 분석규칙부(230), 형태소 분석부(240), 단어사전부(250), 분석규칙 등록부(260) 및 통신부(미도시됨) 간의 데이터의 흐름을 제어하는 기능을 수행할 수 있다. 즉, 본 발명에 따른 상기 제어부는 외부로부터의, 또는 대화형 형태소 분석시스템(200)의 각 구성요소 간의 데이터의 흐름을 제어함으로써, 키워드 추출부(210), 신규단어 추출부(220), 형태소 분석규칙부(230), 형태소 분석부(240), 단어사전부(250), 분석규칙 등록부(260) 및 통신부(미도시됨)에서 각각 고유 기능을 수행하도록 제어할 수 있다.
이상에서 설명된 본 발명에 따른 대화형 형태소 분석시스템(200)의 보다 구체적인 구성에 대한 이해를 돕기 위해, 이하의 상세한 설명에서는 형태소 분석규칙부(230) 및 형태소 분석부(240)를 중심으로, 일 예를 들어 설명한다.
형태소 분석규칙부(230)의 예시
이하의 상세한 설명에서는, 본 발명에 의한 응집도 점수 기반의 키워드 추출을 이용하여 대화형 형태소 분석을 제공하는 과정에 대하여, 형태소 분석규칙부(230)의 데이터 처리과정을 중심으로 일 예를 들어 설명한다.
본 발명의 일 실시예에 따른 형태소 분석규칙부(230)는, 신규 단어 집합(R)에 포함된 단어를 행 단위로 나열한 파일(이하, '엑셀 파일'을 일 예로 설명함)을 생성/제공할 수 있다. 상기 엑셀 파일의 각 행에는 단어에 오류가 있을 경우, 이를 보정하기 위한 변환 규칙 번호와, 변환에 필요한 추가 데이터를 함께 정의하기 위한 컬럼을 더 제공할 수 있다.
표 1은 본 발명의 일 실시예에 따른 대화형 형태소 분석을 위한 형태소 분석규칙부(230)에서의 분석규칙(변환규칙)의 예시이다.
word |
type |
val1 |
val2 |
벌써 |
1 |
|
|
월요일은 |
2 |
은 |
|
해돋이 |
2 |
이 |
돋이 |
귀여워 |
3 |
귀여 |
귀여운 |
초콜렛 |
4 |
초콜릿 |
|
표 1을 참조하면, 형태소 분석규칙 입력(정의)을 위한 상기 엑셀 파일의 구성과 입력 예시를 보여준다. 먼저 'type' 컬럼에는 단어의 변환에 필요한 규칙 번호를 지정할 수 있는데, 상기 형태소 분석 과정은 일 예로, 꾸미는(의미없는) 단어 제거 과정, 명사일 경우 조사 제거 과정, 형용사/동사일 경우 활용 처리 과정 및 유의어 처리 과정의 4가지 변환 유형(type) 과정에 응되는 값을 1부터 4까지의 숫자로 나타낼 수 있다. 또한 'val1'과 'val2'컬럼은 상기 유형별로 규칙에 필요한 세부 데이터를 지정(입력)하기 위한 기능을 수행할 수 있어서, 변환 유형별로 활용도가 달라질 수 있다.
예를 들면, 'word' 컬럼 중 '벌써'의 경우, 중립적인 의미를 가지는 부사에 해당하므로 'type 1'로 정의할 수 있으며, 이 경우 해당 단어는 Sneut 항목(name)에 추가될 수 있다. 이와 같이, 'type 1'일 경우 'val1'과 'val2'에는 부가적인 값을 입력하지 않아도 된다. 이에 반해 'type'이 다른 값으로 정의될 경우, 'val1'과 'val2'에 값이 필요할 수 있다.
이어서, 'word' 컬럼 중 '월요일은'의 경우, 명사를 포함하므로 조사를 분리하고 원형을 얻기 위해 'type 2'로 정의할 수 있다. 그리고 분리될 조사를 지정하기 위해 'val1' 컬럼을 이용할 수 있는데, 해당 예시에서는 '은'을 'val1'에 지정함으로써, '월요일'이 원형으로 분리될 수 있다. 이때, 'val1'에 지정된 값은, 앞서 설명된 도 2의 분석규칙 등록부(260)에 업데이트 시 Spost항목(name)에 추가될 수 있다.
이어서, 'word' 컬럼 중 '해돋이'의 경우, 'type 2'의 예외적인 형태로, '이'는 조사로 볼 수 없으며 단어에서 분리될 경우 오류가 발생할 수 있다. 따라서 '돋이'로 끝나는 단어의 경우 '이'가 분리되지 않도록 예외로 지정해야 하며, 이를 위해 'val2'에 '돋이'를 정의할 수 있다. 이때, 'val2'에 지정된 값을 업데이트 시 Spoex항목(name)에 추가될 수 있다.
이어서, 'word' 컬럼 중 '귀여워'의 경우, 형용사의 활용형이므로 원형을 얻기 위해 'type 3'으로 정의할 수 있다. 이때, 'val1'에는 해당 단어의 활용형 여부를 체크하기 위한 패턴을 정의할 수 있고, 'val2'에는 해당 패턴을 만족할 경우 변환될 원형 단어를 정의할 수 있다. 이러한 'val1, val2'에 정의된 값은 업데이트 시 Sconj항목(name)에 추가될 수 있다. 'val1'에는 가급적 다양한 활용형 케이스를 포함할 수 있도록 정의하는 것이 바람직할 수 있다. 예를 들어, 'val1'을 '귀여워'로 정의한다면, 단어가 '귀여워'로 시작되는 경우에 한해 '귀여운'으로 변환할 수 있다. 이에 반해, 'val1'을 '귀여'로 정의하면 '귀여워'뿐만 아니라 '귀여워서', '귀여워도' 등의 다양한 활용형을 포함시킬 수 있으며, 이 경우 규칙의 수를 줄이는 동시에 효율성 향상을 기대할 수 있다.
마지막으로, 'word' 컬럼 중 '초콜렛'의 경우, 보다 대중적으로 이용되는 유의어인 '초콜릿'으로 변환하기 위해 'type 4'로 정의할 수 있다. 이 경우 변환 대상 단어를 'val1'에 정의하며, 'val1'에 지정된 값을 업데이트 시 'word, val1'의 형태로 Ssyn항목(name)에 추가될 수 있다.
따라서, 상기 엑셀 파일에서 단어별 분석규칙(변환규칙) 입력(정의)이 완료되면, 이를 기반으로 앞서 설명된 도 2의 분석규칙 등록부(260)의 업데이트 작업이 수행될 수 있다.
형태소 분석부(240)의 예시
이하의 상세한 설명에서는, 본 발명에 의한 응집도 점수 기반의 키워드 추출을 이용하여 대화형 형태소 분석을 제공하는 과정에 대하여, 형태소 분석부(240)의 데이터 처리과정을 중심으로 일 예를 들어 설명한다.
본 발명의 일 실시예에 따른 형태소 분석부(240)는, 앞서 설명된 바와 같이, 첫째, 꾸미는(의미없는) 단어 제거 과정, 둘째, 명사일 경우 조사 과정, 셋째, 형용사/동사일 경우 활용 처리 과정 및 넷째, 유의어 처리 과정의 중 어느 하나 또는 이들의 조합으로 구성되는 형태소 분석 과정을 수행할 수 있는데, 이러한 4가지 변환 유형(type) 과정에 대하여 구체적으로 설명보면 다음과 같다.
먼저, 첫째 과정은 꾸미는 단어 제거 과정으로, 입력 집합인 신규 단어 집합(R)으로부터 키워드로써 의미가 없는 중립적인 단어를 분석에서 제외시키는 과정일 수 있다. 예를 들어, “거의”, "너무", "더욱" 등의 부사들은 형용사나 동사를 꾸미기 위한 단어에 해당하며, 키워드로는 큰 의미가 없다. 또한, "있다", "하다" 등의 일부 형용사나 동사의 경우 역시 의미 없이 형식적으로 이용될 수 있다. 이들 단어는 키워드로써 의미가 없는 경우가 많으므로, 형태소 분석 및 키워드 추천 과정에서 제외시킬 수 있다.
이어서, 둘째 과정은 명사를 얻기 위해 조사를 제거하는 과정으로, 조사로 구성된 단어 집합을 P라고 하면, P = {pi}, 1≤i≤Np, pi는 i번째 조사일 수 있는데, 이때, 입력으로 주어진 단어 x가 pi로 끝난다면, x - pi를 명사로 간주하고 리턴 할 수 있다. 예를 들어, P = {이, 가, 은, 는}이라고 하면, 이 경우 입력 단어로 “여행이”가 주어질 경우, 해당 단어는 p0 = "이"로 끝나므로 "여행"을 명사로 간주하고 반환할 수 있다. 이때 일부 명사의 경우, 해당 단어 자체에 pi와 동일한 표현이 포함될 수 있다. 예를 들면, 입력 단어가 "물놀이", “해돋이” 등으로 주어진다면, 위 방법에서는 "물놀"과 "해돋” 등이 결과로 반환될 수 있다. 이러한 문제는 간단한 예외 검사를 통해 해결 가능할 수 있는데, 일 예로 입력 단어가 "이"로 끝날 경우, 해당 단어가 "놀이"나 "돋이" 등으로 끝나지 여부를 체크한 후, 해당 조건을 만족하는 경우에 한해 추출된 명사를 반환하는 형식을 취할 수 있다.
이어서, 셋째 과정은 형용사나 동사에 대한 원형을 구하기 위한 과정으로, 형용사 및 동사의 활용 처리 케이스는 매우 다양하므로, 본 발명에서는 간단한 패턴 매칭을 이용하여 원형을 구할 수 있다. 예를 들면, "귀여", "귀엽" 등의 활용형 형태로 시작되는 단어가 주어질 경우, 원형인 "귀엽다"나 가장 대중적으로 언급되는 형태인 "귀여운" 등으로 대체할 수 있다. 본 발명에서는 이하의 표 2에서와 같이 편의상 후자를 원형과 같은 것으로 취급할 수 있다. 이와 동일한 방법으로 "넓게", "넓어" 등의 활용형은 "넓은” 등의 표현으로 대체 가능할 수 있다. 따라서, 자소 단위(자음, 모음)의 복잡한 분석 없이도 간단한 패턴 매칭으로 구현 가능하며, 입력 데이터에 대한 규칙 추가를 지속적으로 진행할 경우 정확도가 점진적으로 향상될 수 있다.
이어서, 넷째 과정은 유의어 처리를 위한 과정으로, 예를 들면, "초콜렛”과 "초콜릿"의 경우 같은 의미를 지님에도 불구하고 별도의 처리가 없을 경우, 두 개의 키워드가 따로 추천될 수 있다. 따라서 다양한 형태의 유의어에 대해 가장 일반적으로 언급되는 일 예로, 리뷰에서 빈도수가 가장 높은 대표 단어를 선정한 후, 이를 중심으로 유의어를 합병하는 작업이 필요할 수 있다. 이러한 경우, "초콜렛"이나 "초컬릿" 등에 대해 가장 일반적인 형태인 "초콜릿"으로 변환시킬 수 있다.
이와 같은 형태소 분석부(240)의 4가지 변환 유형(type) 과정을 구현하기 위해 필요한 분석규칙 카탈로그 구조를 도식화하면 아래 표 2와 같다.
표 2는 본 발명의 일 실시예에 따른 대화형 형태소 분석을 위한 형태소 분석부(240)에서의 분석규칙 카탈로그 구조이다.
Group |
Name |
Data example |
size |
(1) |
Sneut |
[가끔, 가장, 굳이, 그냥, ...나름, 너무, 더욱, ... ] |
1,295 |
(2) |
Spost |
[가, 는, 도, 들, 로, ... 에, 와, 은, 을, 이, ... ] |
66 |
Spoex |
[같은, 같이, 구이, 놀이, ... 데이, 돋이, 레이, 린이, ... ] |
80 |
(3) |
Sconj |
[귀여, 귀여운], [귀엽, 귀여운], [넓게, 넓은], [넓어, 넓은] ... |
246 |
(4) |
Ssyn |
[초컬릿, 초콜릿], [초콜렛, 초콜릿] ... |
27 |
표 2를 참조하면, 상술된 4가지 변환 유형(type) 과정을 구현하기 위해 필요한 분석규칙 등록부(260)에 저장될 수 있는 분석규칙 카탈로그 구조 중에서, 먼저, 'Name' 컬럼 중 'Sneut'의 경우, 'Group' 과정 (1)을 구현하기 위한 데이터 집합을 정의하고 있으며, 해당 집합에는 1,295개의 중립 단어들이 포함되어 있다. 해당 숫자는 온라인에서 수집된 약 6백만 개의 소셜 리뷰를 대상으로 추출된 결과를 제시하였다.
이어서, 'Name' 컬럼 중 'Spost'와 'Spoex'의 경우, 'Group' 과정 (2)를 구현하기 위한 데이터 집합으로, 각각 조사로 구성된 단어 집합과 조사와 동일한 단어로 끝나는 경우 예외 처리를 위한 단어 집합을 정의하고 있으며, 그 수는 각각 66개와 80개로 조사되었다.
이어서, 'Name' 컬럼 중 'Sconj'의 경우, 'Group' 과정 (3)을 구현하기 위한 데이터 집합으로, 각 원소는 활용형과 원형을 포함한 두 개의 단어로 구성되어 있으며, 현재까지 246개 규칙이 파악되었다.
이어서, 'Name' 컬럼 중 'Ssyn' 경우, 'Group' 과정 (4)를 구현하기 위한 데이터 집합으로, 각 원소는 유의어와 이를 대체하기 위한 대표어로 구성되어 있으며, 현재까지 27개의 규칙이 추가되었다.
이러한 카탈로그 구조를 기반으로 주어진 단어에 대한 원형을 추출하기 위한 Java 알고리즘은 아래와 같이 기술될 수 있다. getRoot() 함수는 크게 네 개의 for 문으로 구성될 수 있으며, 각각은 위에서 설명한 'Group' 과정 (1)부터 (4)까지의 처리 과정을 구현할 수 있다.
도 3은 본 발명의 일 실시예에 따른 대화형 형태소 분석을 위한 카탈로그 구조를 기반으로 변환 과정을 제공하기 위한 Java 알고리즘이다.
도 3을 참조하면, 먼저, 첫 번째 for 문의 경우, 과정 (1)을 구현한 것으로, 'neutwords' 변수는 Sneut를 나타낼 수 있다. 이때, 주어진 단어 word가 Sneut의 단어로 시작하면, word를 중립적인 단어로 판단하고 null을 리턴할 수 있다.
이어서, 두 번째 for 문의 경우, 과정 (2)를 구현한 것으로, 'postpose' 변수는 Spost를 나타낼 수 있다. 이때, 해당 for 문에서는 if 문을 통해 주어진 word가 Spost의 단어로 끝나는 동시에, word가 예외 집합 Spoex의 단어로 끝나지 않는 경우, substring 함수를 이용하여 word에서 조사 부분(i.e., postpos[i])을 분리한 후 반환할 수 잇다. 이러한 구현에서 excPost (word) 함수는 word가 Spoex의 단어로 끝나는 경우 true를 반환할 수 있다.
이어서, 세 번째 for 문의 경우, 과정 (3)을 구현한 것으로, 'conjwords' 변수는 Sconj를 나타낼 수 있다. 이때, 주어진 word가 Sconj 요소 중 하나(conjwords[i][0])로 시작된다면, 해당 요소의 원형값(conjwords[i][1])을 반환할 수 있다.
마지막으로, 네 번째 for 문의 경우, 과정 (4)를 구현한 것으로, 'synonyms'변수는 Ssyn을 나타낸다. 이때, word가 Ssyn의 유의어 요소 중 하나(synonyms[i][0])와 일치하면, 해당 요소의 대표어(synonyms[i][1])를 반환할 수 있다.
따라서, 본 발명의 일 실시예에 따른 형태소 분석부(240)에서는, 첫째, 꾸미는(의미없는) 단어 제거 과정, 둘째, 명사일 경우 조사 과정, 셋째, 형용사/동사일 경우 활용 처리 과정 및 넷째, 유의어 처리 과정의 중 어느 하나 또는 이들의 조합으로 구성되는 형태소 분석 과정을 수행할 수 있다.
대화형 형태소 분석을 위한 과정
이하의 상세한 설명에서는, 본 발명에 의한 응집도 점수 기반의 키워드 추출을 이용하여 대화형 형태소 분석을 제공하는 과정에 대하여, 대화형 형태소 분석시스템(200), 사용자 단말장치(300) 및 관리자 단말장치(400) 간에 데이터 처리과정을 중심으로 일 예를 들어 설명하지만, 이는 설명의 편의를 위해 가장 대표적인 과정을 설명한 것으로, 본 발명이 이에 한정되는 것은 아니다.
도 4는 본 발명의 일 실시예에 따른 응집도 점수 기반의 키워드 추출을 이용하여 대화형 형태소 분석을 제공하기 위한 각 구성들 간의 흐름도이다.
도 4를 참조하면, 먼저, 본 발명에 의한 대화형 형태소 분석서비스를 이용하고자 하는 관리자(분석 서비스 이용자)는 자신의 관리자 단말장치(400)를 통해 대화형 형태소 분석시스템(200)에 접속하여 분석을 요청하는 과정(S10)을 수행할 수 있다. 이때, 도시되지는 않았지만, 관리자 단말장치(400)는 대화형 형태소 분석시스템(200)을 운영하는 별도의 서버(500)를 통해 대화형 형태소 분석시스템(200)과 접속하여 로그인하는 과정을 수행할 수 있는데, 본 발명에서는 대화형 형태소 분석시스템(200)과 서버(500)를 설명의 편의를 위해 구분하여 설명하지만, 이를 통합하여 운영할 수도 있다.
이어서, 관리자 단말장치(400)로부터 분석요청을 수신한 대화형 형태소 분석시스템(200)은 온라인 상에서 해당하는 콘텐츠 정보를 수집하는 과정(S20)을 수행할 수 있다. 예를 들면, 사용자(고객)들의 의견을 획득하기 위한 목적으로, 온라인 상에서 뉴스, 블로그, 트위터 등의 소셜 미디어에서 생성되는 방대한 데이터를 콘텐츠 정보로 수집할 수 있는데, 특히, SNS 피드 및 블로그 리뷰 등을 포함한 소셜 빅데이터를 수집할 수 있다. 이러한 소셜 빅데이터는 사용자 단말장치(300)로부터 직접 수집할 수도 있으나, 편의성과 효율성을 위해 이미 구축된 상용 서비스를 이용할 수도 있다. 일 예로, 네이버 및 구글 등의 온라인 포털 업체에서 제공하는 오픈 API를 통해 무료로 해당 콘텐츠(특히, 키워드) 정보의 수집(획득)이 가능한 이미 공지된 기술이므로, 본 발명에서는 상세한 설명을 생략하도록 한다.
이어서, 온라인(통신망) 상에서 수집된 콘텐츠 정보는 대화형 형태소 분석시스템(200)에서 사용자 단말장치(300)에서 입력하거나 공유하는 콘텐츠에서 단어별 빈도수를 기반으로 계산된 응집도 점수를 활용하여 키워드를 추출하는 과정(S30)을 수행할 수 있다. 이러한 키워드를 추출과정(S30)을 통해 생성된 키워드 집합(S)은 이후 과정을 통해 본 발명에 의한 대화형 형태소 분석의 기초 데이터로 사용될 수 있다. 한편, 도시되지는 않았지만 키워드 추출과정(S30)은 대화형 형태소 분석시스템(200)이 아닌 대화형 형태소 분석시스템(200)을 운영하는 별도의 서버(500)를 통해 수행될 수도 있다.
이어서, 대화형 형태소 분석시스템(200)에서는 추출된 상기 키워드 집합(S) 중에서 단어사전부에 이미 저장되어 있는 단어 집합(D)과 중복되는 단어(키워드)를 제외하고 신규 단어 집합(R)을 추출하는 과정(S40)을 수행할 수 있다. 이때, 추출된 상기 키워드 집합(S) 중에서 단어사전부(도2, 250)에 이미 저장되어 있는 단어 집합(D)과 중복되는 단어(키워드)를 제외하고 신규 단어 집합(R)을 추출하는 신규단어 추출과정(S40)을 통해 이후 처리되는 단어(키워드)의 범위와 양을 줄일 수 있어, 수작업으로 확인해야 하는 단어의 수를 대폭 줄일 수 있다. 이러한 신규단어 추출과정(S40)의 구체적인 내용은 도 2를 참조한 상세한 설명과 중복됨으로 생략하도록 한다.
이어서, 대화형 형태소 분석시스템(200)에서는 상기 신규 단어 집합(R)에 포함된 단어를 행단위로 나열하고, 각 행의 단어에 오류가 있을 경우, 이를 관리자 단말장치(400)를 통해 보정하는 과정(S51)을 수행하여 단어별로 추가된 분석규칙을 입력하여 분석규칙 등록부(도2, 260)에 입력(저장)하는 과정(S50)을 수행할 수 있다.
이러한 형태소 분석규칙 입력과정(S50)은 신규 단어 집합(R)이 전송되면, 먼저 신규 단어 집합(R)에 포함된 단어를 행단위로 나열한 엑셀파일을 생성할 수 있다. 이때, 상기 엑셀 파일의 각 행에서는 단어에 오류가 있을 경우, 이를 보정하기 위한 형태소 변환 규칙과 변환에 필요한 추가 데이터를 입력(정의)하기 위한 컬럼을 제공할 수 있다. 또한, 관리자 단말장치(400)에 의해 상기 엑셀 파일의 오류 수정을 위한 변환 규칙(분석규칙)의 보정(정의)이 완료되면, 이를 다시 수신하여(S51) 오류 수정된 엑셀 파일에 추가된 상기 변환 규칙을 추출한 후, 이를 분석규칙 등록부(260)에 추가하여 저장할 수 있다.
이어서, 대화형 형태소 분석시스템(200)에서는 저장된 상기 변환 규칙(분석규칙)을 기반으로 키워드 집합(S)에 대한 형태소 분석과정(S60)을 수행하여 보정된 키워드 집합(S')을 제공할 수 있다. 이러한 형태소 분석과정(S60)은 다음 차례의 신규단어 추출과정(S40)에서 상기 신규 단어 집합(R)에 포함된 신규 단어를 반영(업데이트)할 수 있도록 단어사전부(도2, 250)를 통해 신규단어 추출과정(S40)에 추가할 수 있다.
이때, 저장정보(예를 들면, 분석규칙)가 업데이트되면, 이를 기반으로 키워드 집합(S)에 대한 형태소 분석을 시작할 수 있는데, 상기 형태소 분석 과정은 일 예로, 상기 신규 단어 집합(R) 중에서, 꾸미는(의미없는) 단어 제거 과정, 명사일 경우 조사 제거 과정, 형용사/동사일 경우 활용 처리 과정 및 유의어 처리 과정 중 어느 하나 또는 이들의 조합으로 상기 형태소 분석과정(S60)을 수행할 수 있다.
이어서, 상술된 형태소 분석과정을 통해 분석결과인 보정된 키워드 집합(S')을 관리자 단말장치(400)로 제공될 수 있다(S70). 이러한 분석결과는 표 3 및 도 5를 참조한 이하의 상세한 설명에 의해 보다 구체적으로 이해될 수 있다.
이어서, 상기 분석결과는 관리자 단말장치(400)에 의해 활용되는 과정(S80)을 수행할 수 있는데, 예를 들면, 소셜 빅데이터 분석을 이용하는 대다수의 응용에서 소셜 리뷰로부터 잠재적인 광고 키워드를 추출할 수 있으며, 영화 흥행 요인 분석을 위해 소셜 빅데이터를 이용할 수도 있고, 온라인 쇼핑몰의 상품평 분류를 통한 감성 분석을 주제로 분석할 수 있다. 특히, 메신저, SNS 등을 통해 자주 사용하는 단어(키워드)와 연관된 광고를 노출시키는 마케팅 기법을 위해 인터넷 사용자(이용자)가 메신저, SNS 내용 등에 자주 사용하는 단어(키워드)를 수집/분석하여 이용자가 관심 있어 할 만한 광고를 선정할 수 있다.
이어서, 관리자 단말장치(400)는 사용자에게 적합한 맞춤형 정보를 제공하는 과정(S90)을 수행할 수 있다. 특히, 메신저, SNS 등을 통해 자주 사용하는 단어(키워드) 및 이와 연관되는 것으로 분석된(선정된) 광고를 팝업창 등의 형태로 사용자 단말장치(300)로 노출시킬 수 있다.
대화형 형태소 분석결과 예시
이하의 상세한 설명에서는, 본 발명에 의한 응집도 점수 기반의 키워드 추출을 이용한 대화형 형태소 분석결과를 일 예를 들어 설명하지만, 이는 설명의 편의를 위해 가장 대표적인 과정을 설명한 것으로, 본 발명이 이에 한정되는 것은 아니다. 표 3은 본 발명의 일 실시예에 따른 대화형 형태소 분석결과의 예시이다.
|
남구 |
동구 |
북구 |
울주 |
중구 |
리뷰수 |
6,209 |
5,649 |
4,482 |
4,616 |
4,278 |
키워드수 |
1,242 |
927 |
816 |
464 |
782 |
적용전오류수 |
125 |
117 |
125 |
63 |
54 |
비율 |
10.06% |
12.62% |
15.32% |
13.58% |
6.91% |
적용후 오류수 |
4 |
2 |
8 |
6 |
2 |
비율 |
0.32% |
0.22% |
0.98% |
1.29% |
0.26% |
표 3을 참조하면, 일 예로 울산의 유명 스토어를 대상으로 네이버 검색 API를 통해 리뷰를 수집하였는데, 표 3은 울산의 각 지역구 별로 50개의 스토어를 대상으로 수집된 리뷰수와 형태소 분석 단계 적용 전/후의 키워드 오류 수를 비교한 실험 결과를 보여주고 있다.
이때, 형태소 분석 적용 전의 오류는 크게 두 가지로, 명사로부터 조사가 분리되지 않았거나, "있는", "있어" 등 동사의 활용형에 대한 원형 추출이 제대로 되지 않은 경우가 많았다. 한편 형태소 분석 단계를 적용하여 이를 개선할 경우, 평균 10%에 이르던 오류율이 1% 이내로 개선되었다. 또한, 형태소 분석 적용 후에도 여전히 발견되고 있는 오류케이스는 대부분 "삼산의", "조민석의" 등과 같이 고유명사와 조사가 결합된 형태였다.
도 5는 본 발명의 일 실시예에 따른 응집도 점수 기반의 키워드 추출을 이용하여 대화형 형태소 분석에 대한 키워드 추출 시간과 형태소 분석 시간을 나타내는 그래프이다.
도 5를 참조하면, 이해를 돕기 위해 표 3과 동일한 리뷰 집합에 대한 키워드 추출 시간과 형태소 분석 시간을 비교하였다. 이때, 비교의 편의를 위해 1,000개의 키워드를 처리하는데 걸리는 시간을 기준으로 값을 정규화하여 비교하였다. 여기서, 1,000개의 키워드는 약 5,000개의 리뷰로부터 추출되는 양에 해당할 수 있는데, 실험결과 키워드 추출 시간에 비해 제안 방법의 형태소 분석 시간이 평균 54% 정도 더 차지하는 것으로 조사되었다. 그럼에도 불구하고, 5,000개의 리뷰를 대상으로 합친 평균 처리 시간은 450ms 정도이며, 이는 본 발명에 의한 대화형 형태소 분석이 실시간 처리가 가능한 수준임을 보여주고 있다.
다음으로, 입력 데이터가 주어질 때마다 형태소 분석 규칙을 수작업으로 추가해야 하며, 제안 방법의 효용성을 높이기 위해서는 해당 수작업에 들어가는 노력을 최소화시키는 것이 무엇보다도 중요하다. 따라서 대량의 리뷰를 대상으로 분석규칙에 소요되는 노력을 정량적으로 측정하기 위한 과정과 실험결과에 대해 살펴본다. 표 4는 본 발명의 일 실시예에 따른 대화형 형태소 분석결과의 일 예를 수집한 분석자료이다.
|
스토어수 |
리뷰수 |
토큰수 |
키워드그룹수 |
울산 |
1,106 |
113,356 |
1,616,307 |
25,357 |
제주 |
1,642 |
362,347 |
5,257,494 |
91,217 |
부산 |
3,271 |
451,638 |
6,732,568 |
112,189 |
경남 |
3,039 |
397,454 |
5,977,230 |
101,777 |
강원 |
3,799 |
638,653 |
9,398,253 |
161,625 |
경북 |
3,571 |
450,114 |
6,517,249 |
109,973 |
대구 |
1,484 |
188,790 |
2,881,169 |
48,638 |
인천 |
1,594 |
246,623 |
3,649,798 |
62,553 |
서울 |
5,343 |
874,537 |
13,802,410 |
243,601 |
경기 |
6,517 |
875,603 |
13,494,367 |
224,171 |
충북 |
1,799 |
186,805 |
2,743,566 |
45,098 |
대전 |
1,313 |
120,558 |
1,875,952 |
30,486 |
충남 |
2,758 |
284,940 |
4,172,474 |
69,782 |
전북 |
2,483 |
295,159 |
4,411,005 |
74,649 |
광주 |
871 |
77,296 |
1,110,831 |
17,353 |
전남 |
3,388 |
399,024 |
5,869,071 |
101,504 |
총합 |
43,978 |
5,962,897 |
89,509,744 |
1,519,973 |
표 4를 참조하면, 전국 약 44,000여 개의 유명 스토어를 대상으로 네이버 검색 API를 통해 수집된 광역별 리뷰 수와 해당 리뷰로부터 얻어진 토큰 및 키워드 그룹의 개수를 보여준다. 상기 토큰은 리뷰로부터 공백을 기준으로 분리하여 얻어진 단어 중, 특수문자 등을 제외한 단어에 해당할 수 있으며, 키워드 그룹은 스토어별로 주어진 토큰으로부터 동일한 어근으로 시작되는 토큰들을 묶은 집합일 수 있다. 예를 들면, {"그라파","그라파피자", "그라파피자리아"} 등을 포함한 단어 집합은 "그라파"로 시작하는 키워드 그룹으로 구성될 수 있다.
이어서, 키워드 그룹이 생성되면 응집도 점수를 이용하여 그룹내 단어 중 하나를 대표 키워드로 선정할 수 있다. 이때, 빈도수가 5이하인 키워드 그룹이나, 대표 키워드가 스토어 또는 지역 이름과 동일할 경우 해당 그룹은 키워드 추천에서 제외될 수 있다. 따라서, 응집도 점수 적용 후 실제적으로 추천되는 키워드 수는 키워드 그룹 수에 비해 줄어들 수 있는데, 아래 표 5에서는 해당 값에 대해 '추천 키워드 수'로 표기하였다.
표 5는 본 발명의 일 실시예에 따른 대화형 형태소 분석의 일 예를 적용하여 줄어든 키워드 수를 나타내는 분석자료이다.
|
키워드 그룹수 |
추천 키워드수 |
신규 키워드수 |
신규키 비율 |
울산 |
25,357 |
3,036 |
1,546 |
50.9% |
제주 |
91,217 |
4,149 |
1,455 |
35.1% |
부산 |
112,189 |
8,377 |
2,234 |
26.7% |
경남 |
101,777 |
8,257 |
2,362 |
28.6% |
강원 |
161,625 |
10,063 |
2,626 |
26.1% |
경북 |
109,973 |
8,867 |
2,141 |
24.1% |
대구 |
48,638 |
4,443 |
945 |
21.3% |
인천 |
62,553 |
5,138 |
1,174 |
22.8% |
서울 |
243,601 |
15,539 |
2,999 |
19.3% |
경기 |
224,171 |
20,609 |
3,531 |
17.1% |
충북 |
45,098 |
4,389 |
777 |
17.7% |
대전 |
30,486 |
3,241 |
559 |
17.2% |
충남 |
69,782 |
6,752 |
1,201 |
17.8% |
전북 |
74,649 |
5,419 |
962 |
17.8% |
광주 |
17,353 |
2,399 |
430 |
17.9% |
전남 |
101,504 |
8,110 |
1,565 |
19.3% |
총합 |
1,519,973 |
118,788 |
26,507 |
22.3% |
표 5를 참조하면, 키워드 집합(S)이 주어지면, 이미 저장되어 있는 단어 집합(D)을 이용하여 신규 단어 집합(R)을 추출해 낼 수 있는데, 표 5는 키워드 집합(S)과 신규 단어 집합(R)의 크기를 비교하고 있으며, 신규 단어 집합(R)의 크기에 대해 '신규 키워드 수' 표기하고 있다. 표 5에 표시된 바와 같이, 실험이 진행될수록 신규 단어 집합(R)의 크기가 점차 감소하여, 규칙 추가에 필요한 수작업이 감소함을 알 수 있다.
예를 들면, 울산에서 시작할 때 신규 단어 집합(R)의 비율은 전체의 50.9%인데 반해, 후반부에는 그 비율이 18%대로 줄어든 것을 확인할 수 있다. 즉 사전구조를 통해 신규 키워드만을 확인할 수 있도록 지원함으로써, 키워드 확인에 필요한 노력을 약 80%까지 절감할 수 있음을 알 수 있다.
결과적으로, 전체 리뷰에 대한 형태소 분석 규칙 추가를 위해 확인해야 하는 키워드 수는 약 26,000여 개였으며, 추가된 변환 규칙 수는 상기 표 1에서 보여진 바와 같이 1,700여 개로, 전체 키워드의 6.5% 정도만 분석규칙(변환규칙)을 가지는 것으로 조사되었다. 따라서 키워드 1개당 처리 시간을 5초 정도로 보수적으로 가정할 경우, 전체 키워드 처리에 약 36시간이 필요한 것으로 추정할 수 있다. 이러한, 과정을 통해 초기 사전 및 분석규칙카탈로그가 완성되고 나면, 월별로 업데이트되는 신규 리뷰에 대한 키워드 확인 및 규칙 추가에 소요되는 노력은 대폭 단축될 수 있다.
아래 표 6은 동일한 스토어를 대상으로 최근 8월 업데이트된 리뷰로부터 얻어진 신규 키워드 수와 추가된 형태소 규칙수를 보여준다.
|
기존 키워드수 |
신규 키워드수 |
신규 규칙수 |
신규키 비율 |
울산 |
3,036 |
21 |
1 |
0.69% |
제주 |
4,149 |
50 |
4 |
1.21% |
부산 |
8,377 |
83 |
4 |
0.99% |
경남 |
8,257 |
96 |
2 |
1.16% |
강원 |
10,063 |
121 |
5 |
1.20% |
경북 |
8,867 |
90 |
1 |
1.01% |
대구 |
4,443 |
54 |
2 |
1.22% |
인천 |
5,138 |
31 |
1 |
0.60% |
서울 |
15,539 |
78 |
3 |
0.50% |
경기 |
20,609 |
143 |
4 |
0.69% |
충북 |
4,389 |
112 |
9 |
2.55% |
대전 |
3,241 |
15 |
1 |
0.46% |
충남 |
6,752 |
57 |
4 |
0.84% |
전북 |
5,419 |
43 |
4 |
0.79% |
광주 |
2,399 |
13 |
1 |
0.54% |
전남 |
8,110 |
50 |
2 |
0.62% |
총합 |
118,788 |
1,057 |
48 |
0.89% |
6을 참조하면, 실험 결과, 업데이트로부터 얻어진 신규 키워드 수는 1,057개로 전체의 0.89%에 해당하였으며, 이로부터 추출된 규칙 수는 48개로 신규 키워드 수의 4.5%를 차지하였다. 따라서 키워드 당 5초의 평균 처리 속도를 가정할 경우, 1.5시간 이내에 신규 키워드의 처리가 가능한 것으로 추정할 수 있다. 따라서, 초기 사전 및 카탈로그 완성 후 업데이트된 리뷰를 처리하는데 드는 노력은 비교적 크지 않음을 알 수 있다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 본 발명의 상세한 설명에서는 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다. 따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해지는 것은 아니며, 후술하는 특허청구범위뿐만 아니라 그 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.