자연언어 처리와 오피니언 마이닝 플랫폼 소개

본 포스팅에서는 이 분야에 생소한 분들을 위해 자연어 처리 기술에 대해 간단히 소개하고, SK플래닛에서 추진하고 있는 자연어 처리 기술 및 오피니언 마이닝 기술 개발 현황에 대해 간단히 소개하고자 합니다.

먼저, 자연어(Natural language)란 프로그래밍 언어와 같은 형식언어와는 대조되는 개념으로 인간이 일상적으로 사용하고 있는 언어를 의미하고,  자연어 처리(Natural language processing) 기술이란 인간의 언어를 이해하고 생성하는 문제를 다루는 기술입니다. 즉, 인간이 발화한 언어현상을 기계적으로 분석해서 컴퓨터가 이해할 수 있는 형태로 만들거나 혹은 컴퓨터가 처리한 결과를 인간이 이해할 수 있는 언어로 표현하는 제반 기술을 자연어 처리기술이라고 합니다.

자연어 처리의 핵심기술은 1) 형태소 분석기술, 2) 구문분석 기술, 3) 의미분석 기술, 4) 담화분석 기술, 5) 단어 및 문장 생성기술 이라고 할 수 있습니다.  형태소 분석이 가장 기초적인 분석기술로 단어 단위에서 이루어지며,  형태소 분석결과를 기반으로 문장단위, 문서단위의 구문분석, 의미분석, 담화분석이 수행됩니다. 그래서 단어단위 분석결과를 기반으로 하는 문장단위, 문서단위의 구문/의미/담화분석이 더욱 복잡도가 높고 어려운 기술이라고 할 수 있습니다.  각 언어처리 단계별 핵심 기술들에 대해 간략하게 살펴보면 다음과 같습니다.

1) 형태소 분석(Morphological Analysis):  형태소란 의미기능을 부여하는 언어의 형태론적 수준에서의 최소 단위를 말합니다. 그래서 형태소 분석 기술은 문장을 구성하는 단어 열들로부터 최소 의미단위인 형태소들을 분리해 내고 각 형태소들의 문법적 기능에 따라 적절한 품사(Part-of-speech:  명사, 동사, 부사, 형용사, 관사 등)를 부착해 주고, 필요하다면 단어의 원형도 복원하는 기술입니다.  예를 들어 “I bought an apple.”과 같은 영어 문장이 주어진 경우 문장을 구성하는 각 단어 “I”, “bought”, “an”, “apple”이  형태소가 되고 각 단어에 대한 품사를 결정하고 원형을 복원하면 “I/대명사/I” , “bought/동사/buy”, “an/관사/an”, “apple/명사/apple”과 같이  됩니다. 그런데 영어와는 달리 한국어 형태소 분석은  훨씬 복잡합니다. 왜냐하면, 한국어는 교착어적 특성을 지닌 언어로 하나 이상의 형태소가 결합되어 한 어절(한국어 띄어쓰기 단위를 지칭하는 용어로 영어의 phrase에 해당할 수 있음)을 형성할 수 있기 때문입니다. 즉,  영어에서의 형태소 분석에서는 하나의 단어가 하나의 형태소에 해당하므로 형태소를 분리하는 일이 없는데, 한국어에서는  어절을 구성하는 형태소들을 분리해 내고 각 형태소의 품사를 결정해야 하므로  분석의 복잡도가 상당히 높아집니다.  예를 들어 “그가 산 사과를 다시 샀다.”와 “초고속열차를 타보았다.” 라는 한국어 문장에 대한 형태소 분석 결과 중 “산” 과 “초고속열차를”이란 어절에 대한 형태소 분석결과를 살펴보면 다음과 같이 다양한 형태소 분석  결과가 가능합니다.  이와 같은 다수의 형태소 분석 결과 중 가장 적절한 형태소 열(Morpheme sequence)과 각 형태소에 대해 품사부착 결과를 찾으면 다음과 같으며, 이는 규칙 혹은 통계 모델에 의해 가능하게 됩니다.

  •  예문1)  그가 산 사과를 다시 샀다.
    • 산   사(다)/동사+ㄴ/어미;  형태소분석 후보(1)- 최적의 형태소 분석 및 품사부착 결과
    • 살(다)/동사+ㄴ/어미; 형태소분석 후보(2)
    • 산/명사; 형태소 분석 후보(3)
  • 예문2)  초고속열차를 타보았다.
    • 초고속열차를   초/접두어+고속/명사+열차/명사+를/목적격조사; 형태소 분석 후보(1) – 최적의 형태소 분석 및 품사부착결과
    •  초고/명사+속/명사+열차/명사+를/목적격조사; 형태소 분석 후보(2)

2) 구문분석(Syntactic Parsing):  구문분석은 형태소분석 결과를 기반으로 문장을 이루고 있는 명사구, 동사구, 부사구 등의 구문들을 묶어주는 것 뿐만 아니라, 주어, 술어, 목적어 등과 같은 주요한 문장 구성성분을 밝혀내고 그들 사이의 구문관계를 분석하여 문장의 문법적 구조를 결정하는 기술입니다.  즉,  형태소 분석된 문장이 주어지면 구문구조 및 문장성분에 대한 문법(Syntactic grammar)을 적용하여 분석 가능한 모든 구문구조(Parse tree)를  만들고, 생성된 구문구조들 중 가장 적합한 구문구조 하나를 선택하는 과정을 구문분석이라고 합니다.  예를 들어 “그가 산 사과를 다시 샀다.”란 문장에 대해 아래와 같은 구문구조 후보들이 생성될 수 있으며, 규칙 혹은 통계모델 기반의 구문 중의성 해소 알고리즘을 적용하면 가장 적합한 구문구조 하나가 선택됩니다.

  • 예문) 그가 산 사과를 다시 샀다.
    • (((그가/주어 산/술어) 사과를)/목적어 다시 샀다/술어) — 가장 적합한 구문구조
    • ((그가/주어 (산 사과를)/목적어) (다시 샀다)/술어)
    • ((그가/주어 산) (사과를/목적어 (다시 샀다)/술어))

3) 의미분석(Semantic Analysis): 단편적으로는 문장을 구성하는 단어들의 의미를 구분하고,  통합적으로는 문장 구성 성분들 사이의 의미적 관계(agent-predicate-object)를 논리적으로 밝혀내어 문장의 전체적 의미를 파악하는 기술입니다.  특히 단어의 의미 구분은 한 단어가 둘 이상의 의미를  가지는 경우에 적용되며, 문맥상에 사용된 단어의 의미를 결정하는 것을 단어의미 중의성 해소(Word sense disambiguation)라고 합니다. 예를 들어 “밤”이라는 단어는 “열매로 먹는 밤/chestnut”도 있고, “어두운 밤/night”이란 뜻도 있는데, “밤을 삶아 먹었다”란 문장이 주어진다면 여기서는 “밤”이란 단어가 “열매로서 먹는 밤”이란 의미로 사용되었음을 밝혀내는 것입니다.  또한 앞의 형태소 분석, 구문분석에서 살펴보았던 예문에 나타난 단어 중 “사과”란 단어를 보면 “과일로 먹는 사과”란 의미도 있고 “잘못을 인정하고 용서를 비는 의미의 사과”란 뜻도 있는데 이 중에서 어느 의미로 사용된 것인지를 밝혀내는 게 문제입니다.  이러한 단어의미 중의성 해소는 여러 의미를 지닌 단어와 함께 출현한 주변 단어들 가운데에서 의미결정에 핵심적인 역할을 하는 특징(단어 혹은 구문)을 찾아내어 통계적으로 혹은 규칙적으로 모델링하여 적용함에 의해 가능합니다.

  • 예)  산 사과
    • 산: buy, live/alive, mountain
    • 사과: apple, apology

4) 담화분석(Discourse Analysis): 담화 분석은 주로 문서단위로 이루어지는 것이 보편적이며, 여러 문장 간의 연관관계 및 전후 문맥을 고려하여 문장간의 의미관계를 분석하는 기술이라고 볼 수 있습니다. 이는  전후 문맥을 참조하여 해당 문장에 쓰인 대용어들(이것, 그것, this, that, it등)이 구체적으로 가리키는 것을 찾아내는 것 뿐만 아니라 해당 문서 내에서 문장의 의도를 파악하는 기술을 포함합니다.  예를 들어 앞의 예문 “그가 산 사과를 다시 샀다”에서 “그”는 누구인가에 대해,  ‘사과를 산 주체는 누구인가’ 등에 파악하는 기술이 대용어 처리 기술인데, 이는 앞에 출현했던 문장들의 구문분석/의미분석 결과 등을 이용하여 이전에 사과를 샀던 주체를 찾고 대용어의 구체적인 내용을 찾아내는 방법입니다. 더 나아가서는 이유, 근거제시, 결론제시 등과 같이 여러 문장이 유기적으로 엮여 의미/의도를 전달하는 경우,  문맥구조를 파악하고 사용자 의도를 분석할 필요가 있습니다. 이러한 경우 전체적인 의미를 파악하기 위해 문장들 간의 연관관계들을 분석하는데 이것을 우리는 문맥 구조 분석이라고 합니다.

지금까지 자연어 처리의 핵심기술들에 대해 간단히 개념적으로 살펴보았습니다. 이러한 자연어 처리 기술에 해당하는 각 단계를 인간이 처리한다면 모국어에 대해서는 어려운 일이 아닐 것입니다. 그러나 인간이 하듯이 컴퓨터가 처리하도록 한다는 것은 인간의 언어학습 및 인지/분석 능력을 컴퓨터에게 심어주어야 하는 것이기 때문에 상당히 어려운 일이 됩니다. 특히 영어나 유럽 언어들에 비해 한국어는 1) 교착어적 특성으로 인해 단어의 생산성이 상당히 높아 형태소 분석 복잡도가 높고, 2) 문장에서의 생략이 많아 문장의 의미 모호성이 높으며, 3) 어순이 자유로워 구문구조 및 의미구조를 밝혀내는 분석 복잡도가 더욱 증가하며,  4) 동음이의어(예: 사과, 배, 눈 등)가 많아 특히 의미분석이 어렵습니다.

그러나, 일단 자연어 처리 기술이 확보되면 웹과 SNS등에 존재하는 대용량의 텍스트 데이터를 수집, 형태소분석, 구문분석, 더 나아가서는  의미분석을 수행함에 의해 오피니언 마이닝을 포함한 텍스트 마이닝이 가능해지며, 정보검색, 정보추출, 문서요약, 자동번역 등과 같은 인간 생활에 유용한 응용 기술의 개발이 가능해 집니다. 또한 음성기술과의 결합을 통해 자동차나 로봇제어를 포함,  자동통역, Siri와 같은 지능형  agent 및 의미기반의 검색/자연어 질의응답 같은 서비스가 가능해집니다.

SK플래닛에서는 기술기반의 핵심 사업 경쟁력을 확보하기 위해 2007년부터 중장기적인 관점에서 자연언어처리 기술 및 관련 응용기술들을 개발해 왔습니다.  현재는 한국어, 영어, 중국어에 대한 형태소분석과 구문분석 기술이 개발되어 번역, 검색, 추천, 및 텍스트 마이닝 등의 기술개발에 활용되고 있습니다.  이 가운데 번역기술은 2008년부터 개발되어 현재 상용수준에 근접한 영/중/한 자동번역 기술을 확보되어 있는 상태이고,  오피니언 마이닝을 포함한 텍스트 마이닝 기술은 e-Commerce 사업에서 상품평 분석에 기반한 가치비교 및 구매가이드  서비스(Basket: www.basket.co.kr) 및 LBS기반의 장소추천/검색 서비스(모바일 앱: pick@t)에 연동되어 상용 서비스 되고 있는 상황입니다. 다음의 그림1.에서는 자연어 처리의 단계별 기술이 확보되었을 때 적용 가능한 응용 서비스 기술들의 예와 SK플래닛에서 확보한 기술 수준을 대략 보여주고 있습니다.

그림1. SK플래닛의 자연어 처리 기반 기술 및 응용기술 확보 수준

이 글을 읽게 되는 분들 가운데에는 SK플래닛에서 자연어 처리 기술을 활용하여 개발/상용화한 오피니언 마이닝과 텍스트 마이닝 기술은 어떤 것일까 궁금해 하는 분들도 있을 것 같습니다.  그래서 SK플래닛의 오피니언 마이닝과 텍스트 마이닝 기술을 간단히 소개하고자 합니다.

먼저 오피니언 마이닝(Opinion Mining)이란 무엇인가에 대해 정의하고 시작할까요? 오피니언 마이닝은 텍스트 마이닝(Text Mining)의 한 분야로  리뷰, 포럼, SNS, 블로그 등 대표되는 사용자 생성 컨텐츠로부터  제품이나 서비스에 대한 사용자 의견과 긍정적/부정적 평가와 같은  sentiment를 분석하고 그로부터 소비자의 의견/트랜드를 분석하고 더 나아가서 소비자의 감성에 적합한 제품/서비스를 추천하거나 사업적 인사이트(insight)을 도출하는 기술을 말합니다.  예를 들면 “The tilt and swivel LCD of PowerShot S3 is awesome.” 이란 사용자가 작성한 리뷰 문장으로부터  주제 상품은 “PowerShot S3″이고, 이 상품에 대해 사용자가 언급하고 있는 속성은 “tilt and swivel LCD”이며, 해당 속성에 대해 사용자는 “awesome”하다고 표현했으며, 이는 긍정적인 의견이라는 것을 밝혀내는  것, 또는 “삼성 햅틱폰은 전면 풀터치와 와이드 LCD가 시원시원해서 맘에 듭니다.”란 사용자 리뷰로부터 주제 상품은 “상성 햅틱폰”이고, 이 상품의 “전면 풀터치와 와이드 LCD” 속성이 “시원시원해서 맘에 든다”고 표현했으며, 이는 긍정적인 평가에 해당한다는 것을 밝혀내는 기술이 오피니언 마이닝입니다.

  • 예1)  The tilt and swivel LCD of PowerShot S3 is awesome.
    • <object:PowerShot S3, feature:tilt and swivel LCD, expr:awesome, polarity:positive>
  • 예2) 삼성 햅틱폰은 전면 풀터치와 와이드 LCD가 시원시원해서 맘에 듭니다.
    • <object:햅틱폰, feature:풀터치와 와이드 LCD, expr:시원시원하다, polarity:positive>;
    • <object:햅틱폰, feature:LCD, expr:맘에든다, polarity:positive>

이러한 오피니언 마이닝 기술은 상품구매 및 정보획득에 있어서 평판의 중요성이 더욱 증대되고,  트위터, 페이스북과 같은 소셜기반 서비스와 블로깅 등을 통해 사용자가 자신의 경험을 바탕으로 작성한 이용후기나 평가내용을 공유하는 리뷰 관련 시장이 활성화되면서 그 가치가 더욱 높아지고 있습니다.  특히 온라인 쇼핑, 영화/e-Book/게임 등의 디지털 컨텐츠 소비, 스마트폰을 통한 모바일 웹 혹은 위치기반 지역 서비스들이 점점 다양화/활성화 되면서 다양한 소스로부터 사용자들의 리뷰가 방대하게 생성되고 있습니다. 이에 사용자의 경험을 토대로 사용자가 직접 작성한 리뷰를 수집하고 사용자들의 니즈에 맞는 리뷰만을  검색/요약하여 제공함에 의해 사용자들의 의사결정을 지원하는 서비스는 사용자 관점에서 상당히 유용한 고부가가치 서비스에 해당한다고 볼 수 있습니다.

이에 SK플래닛에서는 2007년 OMS(Opinion mining system) 개발을 시작으로, 2010년 OMS2.0 시스템을 완성, SK텔레콤 사업부에서 B2B 대상으로 Smart Insight란 서비스를 제공하고 있습니다.

그리고, 2011년부터 한국어와 영어 자연언어 처리 기술을 포함하여 OMS를 구성하는 핵심기반 기술의 전면적인 개선을 시행하였습니다. 또한 더 나아가서 Hadoop기반의 병렬/분산 처리 환경에서 비정형 Big Data 를 대상으로 이슈키워드, 연관키워드 분석 및 문서자동분류,  평판요약과 같은 텍스트 마이닝이 가능하도록 함은 물론,  다양한 서비스에서의 활용 및 결합을 고려하여 수집/분석/색인/검색에 기반한 다양한 API를 개발, 오피니언 마이닝 플랫폼(OMP:Opinion mining platform)을 구축하는 작업을 추진해 왔습니다.

한마디로 SK플래닛에서 개발한 오피니언 마이닝 플랫폼은 “한 곳에서 편하게 다양한 채널로부터의 믿을 만한 평판정보를 얻을 수 없을까?”라는  일반 사용자의 니즈를 만족시키는 것을 전제로 사용편의성과 다양성 및 신뢰도를 제고하고 대용량 처리를 지원하여 사용자에게 신뢰도 높은 종합적 평판정보를 제공하는 것을 목표로 삼아 개발되었습니다.  전체적인 플랫폼의 아키텍쳐와 특징은 다음 그림2.와 같이 구성되어 있습니다.

그림2. SK 플래닛의 오피니언 마이닝 플랫폼 구성도

첫째, 사용편의성의 경우는 사용자 관심 주제를 대상으로 최근 이슈키워드, 연관키워드, 주제 속성별 평판분석 정보 등의 원하는 정보를 한곳에 모아서 일목요연하게 요약 정리하여 제공함으로써  “원하는 리뷰 문서를 찾기 어렵다”, “찾아진 리뷰 문서가 너무 방대하여 모두 읽기 귀찮다”, “한곳에서 원하는 리뷰정보만 보아서 원하는 특징 별로 요약 정리된 형태로 보고 싶다”라는 일반 사용자들의 요구를 만족시키고자 하였습니다. 또한  개발자나 사업자들을 위해서는  직관적이고 쉬운 UI 구성이 가능한 APIs를 제공하며, 더 나아가서 효율적으로 리소스와 품질 관리가 가능하도록 수작업이 최소화 될 수 있는 도구들을 제공하고 있습니다.

둘째 다양성과 신뢰도 제고를 위해 특정 사이트만을 대상으로 하기 보다는 제휴정보를 포함하여, 뉴스, 블로그, 카페, 전문 커뮤니티, SNS 등으로 채널을 다양화 하여 국내 외 수집 가능한 사이트들로 부터 데이터를 수집, 분석할 수 있도록 하였습니다. 또한 한국어 뿐만 아니라 다른 언어로 작성된 글들에 대해서도 수집, 분석하여 통합할 수 있도록 하였는데, 현재는 영어에 대해서도 수집, 분석이 가능합니다.  예를 들어 스마트폰을 구매하고자 하는 사용자 중에는 국내 뿐만 아니라 해외 사용자들의 리뷰를 종합하여 의견을 보고자 할 수도 있습니다.  이와 같은 경우를 위해 향후  한국어와 영어로 작성된 스마트폰 관련 리뷰들을 수집, 분류, 분석하여 개별 언어별 분석결과 뿐만 아니라 언어통합적 분석 정보도 제공할 예정입니다.

이때 사용자 관점에서 무엇보다 중요한 점은 ‘분석정보를 신뢰할 수 있는가’입니다. 이는 다양한 소스로부터의 데이터들이 정확히 분석되어 제공될 때 가능한 얘기라고 할 수 있는데,   평판 분석의 정확성 이슈는 분석대상 분야에 종속적인 지식과 밀접한 관련을 갖습니다. 즉,  화면이 큰 TV는 일반적으로 긍정적으로 평가되지만,  핸드폰은 큰 것보다는 작은 것이 긍정적으로 평가될 수 있습니다.  이와 같은 상황에서 분석대상 리뷰가 어느 카테고리에 속한 것인지를 판단하는 것이 중요하고, 이후 분석을 위해 해당 카테고리의 지식과 정교한 텍스트 분석을 통해 분석이 이루어져야 합니다.  이를 고려하여 SK플래닛 오피니언 마이닝 플랫폼에서는 다양한 채널을 통해 수집되는 문서들의 카테고리 자동분류와 카테고리 별 지식구축 및 관리, 또한 정교한 언어처리 분석 기술을 개발하여 제공합니다.

셋째, 대용량 처리와 관련  Hadoop 기반의 병렬/분산 처리 기술을 도입하여 대용량 데이터 저장 및 분석이 가능하도록 하고, 영어와 같은 외국어로 작성된 텍스트에 대해서도 처리될 수 있도록 함에 의해 Scalability와 Globality를 제고하고자 하였습니다.  개발환경의 경우만 보더라도 Hadoop 기반 병렬/분산 처리는 40여대의 서버들로 Hadoop cluster를 구성하고,  hdfs와 hbase 기반 위에서 실시간 수집, 분류, 분석, 저장이 일어나도록 하고 있습니다.

이상은 SK 플래닛에서 개발한 오피니언 마이닝 플랫폼과 자연어처리 기술에 대한 소개글이었습니다.

황영숙 Data platform팀

1. 2008.3 SK텔레콤으로 입사하여 한국어, 영어, 중국어 자연어처리 기술과 그 응용기술로 자동번역을 개발하였으며,
2. 2011년 SK플래닛으로 분사한 이래로 자연어처리 기술과 오피니언 마이닝 및 텍스트 마이닝 기술을 개발하고 있습니다.
* 그 이전에는 일본 NICT-ATR 연구소와 ETRI에서 통계기반의 한/중/일/영 자동통번역 시스템을 개발하였습니다.

공유하기