text에서 감정을 찾는 방법은 크게 다음의 4가지 방법으로 분류할 수 있다.
Keyword spotting, lexical affinity, statistical natural language processing, 그리고 hand-crafted
model이다. 이 네 가지 방법의 장단점에 대해서 자세히 살펴보자.
1.Keyword spotting
Keyword spotting 방법은 감정을 분명하게 드러내는 단어들(예를 들면 happy, sad같은)을 text에서 찾아내고 이를 통해 text에 담겨진 감정을 찾는 방법이다.
이와 관련한 연구 중에 Elliot's affective Reasoner라는 연구가 있었다. 이 연구에서는 198개의 강한 감정이 드러나는 단어들을 정의하고 extremly, somewhat같은 정도를 나타내는 단어와 did that, wanted to같은 힌트나 근거가 담긴 말들을 찾아 text의 감정을 분석한다.
다른 연구로는 Ortony's affective Lexicon이라는 연구가 있었다. 이 연구에서는 자주 사용되는 감정언어들을 그룹화하였다.
이런 Keyword spotting 방법은 다음과 같은 두가지 문제를 안고 있다.
첫번째는, 부정이 포함될때 인식하기 어렵다는 점이다.
예를 들면, I am happy라는 말은 행복하다고 인식하지만
I am not happy at all. 같은 말은 인식이 용이 하지 않다는 점이다.
특히 우리나라 말처럼 부정의 말이 여러 방법으로 사용되는 경우엔 더욱 어려울 수 있다.
두번째는, 두드러진 감정 언어가 실제 text의 감정이 아닐 수도 있고, 두드러진 감정 언어를 사용하지 않고 감정을 표현하는 문장이 많다는 점이다.
예를 들면 '동생은 나에게 화해를 원했지만, 나는 기쁘게 법정으로 향하기를 결심했다.'라는 문장은 고소의 대상이 누가 되느냐에 따라 감정의 해석은 천차 만별이 될수 있다. 기쁘게 라는 단어는 반어적인 용도로 쓰였을지도 모른다.
이런 문제들을 지녔음에도 불구하고 쉽게 알고리즘을 구현할 수 있고 부담이 없는 장점이 있기 때문에 종종 사용된다.
2.Lexical affinity
Lexical affinity는 임의의 단어에 특정한 감정의 확률적 affinity를 정하는 방법이다.
예를 들면, accident라는 단어는 75% 정도가 negative affect를 가리키는 용도로 쓰인다고 assign될 수 있다. 따라서 이러한 확률적 affinity가 단어마다 미리 정해져야 하는데, 이를 위해 linguistic corpus들로 부터 train되어 진다.
이 방법은 keyword spotting보다 약간 복잡하지만, 조금 향상된 성능을 보여준다.
이 방법 역시 2가지 단점을 보인다.
첫번째는, 순수하게 Lexical affinity를 word-level에서 사용하면, 부정문이나 다른 의미로 사용된 경우에서 오작동을 할 수 있다.
예를 들면, I avoided an accident같은 부정의 의미를 담고 있는 문장에서 적절한 감정을 잡아내지 못한다. 또한 I met my girlfriend by accident 같은 다른 뜻으로 사용된(우연히라는) 경우에 대해서도 적절하게 대처하지 못한다.
두번째는, lexical affinity probabilities가 사용된 source(text)의 장르 등에 의해 bias되는 영향이 있다는 점이다. 이로 인해 domain에 상관없는 모델을 만들기가 어렵기 때문에 재사용 가능한 모델을 개발하기란 대단히 힘이 든다.
3.Statistical Natural Language Processing
Statistical Natural Language Processing은 감정에 대해서 주석이 달린 text들의 corpus들을 이용해 training하는 machine learning algorithm을 이용하는 것이다.
이 방법은 keyword spotting에서 처럼 감정을 명확히 전달하는 단어들의 affective valence(valence는 정도라고 해석하면 될 듯 하다)를 learning하며 lexical affinity에서 처럼 임의의 단어에 대한 valence역시 learning되고 구두점 같은 요소들에 대해서도 learning하여 많은 feature들을 통해 적절한 감정 인식을 수행할 수 있다.
그러나 이러한 statistical 한 방법 때문에 문장 단위의 감정 해석에는 문제가 있다. 적어도 한 문단에서 페이지 단위의 글에서 뽑아낼 수 있을 정도의 정보가 필요하기 때문이다.
이를 이용한 방법으로는 Goertzel's Webmind 프로젝트나 Cellia Ovesdotter의 Emotions from text등을 들 수 있다.
4.Hand-Crafted Models
Dyer와 Schand와 같은 사람들은 affect sensing을 깊은 통찰력에 관한 문제로 보았다. 특히 Dyer의 DAYDREAMER는 affective state를 인간의 필요, 목적, 욕구에 대한 심리학적 이론들을 토대로 hand-crafted model로 모델링하였다. 이러한 모델들은 text 분석에 있어서 깊은 통찰력을 요구한다. 이러한 모델링 방식은 최신의 semantic parsing 기법들이 제공할 수 있는 정보들 보다는 보다 더 깊은 통찰력을 요구한다.
최근엔 이러한 4가지 문제의 접근 방식과는 전혀 다른 방식으로 text로 부터 emotion을 찾아내려는 연구가 있다. Hugo 등이 제안한 A model of textual affect sensing using real-world knowledge가 대표적인 것이다.
이 연구는 글자 그대로, 우리가 알고 있는 상식(common sense)을 통해서 sentence로 부터 emotion을 찾아 내자는 목표를 가진다. MIT에 있던 그들은 MIT내의 ConceptNet이나 Open Mind Common Sense와 같은 프로젝트를 통해서 이와 같은 영감을 가진 것으로 보인다.
먼저 OMCS database에서 Ortony's Affective Lexicon이 밝힌 emotion을 두드러지게 나타내는 단어들을 통해서 emotion grounds라는 subset을 만들어 낸다. 이 단어들은 어떤 문맥에서도 비교적 비슷한 의미를 갖기 때문에 emotion grounds라고 하기에 부족함이 없다는 이유이다.
subset을 만들어낸 이후에는 text로 부터 감정을 뽑아내기 위한 분석을 수행할 수 있는 commonsense affect model이라는 것을 만들어 적용한다. 이것은 commonsense affect model이 서로 경쟁하고 보완하는 모델들의 집합일 수 있을 것이라는 생각에서 나온 것이다.(이 부분의 이해가 약간 석연치 않아 잘못 이해하고 있는 듯 하지만...)이러한 모델들은 공통된 구조화된 entry들을 갖고 있으며, 각각은 다음과 같은 형태의 값을 갖는다. 이 값들은 0.0 이상의 값을 갖는다.
[a happy, b sad, c anger, d fear, e disgust, f surprise]
또한 모델들은 다음과 같다.
1) Subject-Verb-Object-Object Model
예로 Getting into a car accident can be scary를 생각해보자.
->Model ==> Subject : 일반 사람, Verb : get into, Object1 : car accident, Object2 : ...
value ==> 0 happy, 0 sad, 0 anger, 1.0 fear, 0 disgust, 0 surprise
로 된다. 이때 negation은 subject, object, verb의 수식어구로 처리되고 multiple SVOO가 있는 경우는 휴리스틱한 방법으로 가장 적절한 것들만 남기고 나머지는 버린다.
이 모델의 장점은 문장 단위의 event context를 그대로 보존한다는 점에서 정확성 측면의 강점이 있다.
2) Concept-level Unigram Model
3) Concept-level Valence Model
4) Modifier Unigram Model
Moldy bread is disgusting, Fresh bread is delicious와 같은 문장에서 보이는 것처럼, 부사구가 감정을 전달하는데 중요한 역할을 하는 경우가 있다는 점에 주목한 모델이다.
2007년 7월 30일 월요일
textual affect sensing
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기