DOI QR코드

DOI QR Code

Actantial Model-based Character Role Recognition using Emotional Flow Graph among Characters in Text Stories

텍스트 스토리에서 등장인물간 감정 흐름 그래프를 이용한 행위소 모델 기반의 등장인물 역할 인식

  • Yu, Hye-Yeon (Department of Electrical and Computer Engineering, Sungkyunkwan University) ;
  • Kim, Moon-Hyun (Department of Electrical and Computer Engineering, Sungkyunkwan University) ;
  • Bae, Byung-Chull (Department of Games, Hongik University)
  • Received : 2020.11.17
  • Accepted : 2020.12.07
  • Published : 2021.02.28

Abstract

Identifying characters who appear in a story and analyzing their relationships is essential to understanding the story. This paper aims to identify the two actants (or character roles) as Helper and Opponent in Greimas's Actantial model by identifying Subject (i.e., protagonist) and analyzing the emotional interactions between the Subject and the two actants (Helper/Opponent). Our proposed method consists of three steps. First, we identify objects (i.e., characters) appearing in the text story. Next, we extract relational information through the interaction of the characters, and then classify emotions in the text expressed as relational information. Finally, we represent the flow of emotional relations among characters as a directed graph. The node with the highest degree is considered as the Subject because it includes the most relational information. The node that sends the most positive/negative emotions to the Subject is considered as the Helper/Oppenent, respectively. Our research contributes to the computer-based narrative understanding by providing a computational method that automatically extracts the three key character roles (Subject, Helper, and Opponent) from the text story.

스토리에서 등장하는 인물들을 식별하고 인물들 간의 관계를 분석하는 것은 스토리 이해를 위해 중요한 과정이다. 본 논문은 그레마스의 행위소 모델(Actantial model)에 기반하여 스토리 속에서 등장하는 인물들 중에서 주체자(Subject,또는 주인공)를 식별하고, 등장인물들간의 상호작용으로 생성되는 관계에 기반한 감정 흐름을 분석하여 조력자(Helper)/반대자(Opponent)의 관계를 자동으로 식별하는 것을 목표로 한다. 본 논문에서 제안하는 방법은 3단계로 구성된다. 먼저, 텍스트 스토리에서 등장하는 객체(인물)를 식별한다. 다음으로, 이들의 상호관계를 통한 관계 정보를 추출하여 관계정보로 표현되는 텍스트에서 감정을 분류한다. 마지막으로, 등장인물들간 감정의 흐름을 방향성 그래프로 도출한다. 그래프에서 차수가 가장 높은 노드 (즉, 가장 많은 관계 정보를 형성하는 노드)는 주체자로 간주하며, 주체자에 긍정적/부정적인 감정을 가장 많이 보내는 노드를 조력자/반대자로 각각 간주한다. 본 연구는 텍스트 스토리로부터 행위소 모델의 세 가지 구성요소들(즉, 주체자, 조력자, 반대자)을 자동으로 추출하는 계산 모델을 제공함으로써 컴퓨터를 이용한 서사 이해에 기여한다.

Keywords

1. 서론

서사(narrative)는 인공지능 분야에서 철학, 인지과학, 언어학과 같은 다양한 분야와 연관 관계를 형성하며 연구되어 왔다. 텍스트로 구성된 서사를 컴퓨터가 읽고, 스토리를 이해하며, 서사 생성을 위한 다양한 시도 등을 " 서사 지능 (narrative intelligence)[1]"이라 하며, 컴퓨터를 이용한 서사 생성과 이해, 그리고 서사에 대한 독자의 감성적 반응을 예측하는 능력이라고 정의할 수 있다 [2].

서사 지능의 역사는 1970년대 Schank & Abelson의 스크립트 기반 텍스트 스토리 이해를 위한 지식 구조에 대한 이론[3]을 초기 연구로 볼 수 있으며, 이후에는 서사 요약 시스템[4], 대화형(interactive) 서사 생성[5]과 같은 다양한 연구가 진행되고 있다.

서사에서 스토리를 이끌어가는 등장인물의 식별 및 등장인물의 목표 인식은 서사 지능의 근간이 되는 도전적 과제이다. 컴퓨터가 텍스트 기반의 서사를 이해한다는 것은 "사람이 서사를 이해하는 과정"을 모델링하며, 서사에서 명시적으로 표현되지 않은 스토리에 대한 질문에 대답할 수 있는 지능 또는 스토리를 재생성 (paraphrase)하거나 요약할 수 있는 능력을 말한다[1].

다시 말해서, 서사 지능은 스토리를 구성하는 등장인물, 이벤트, 등장인물들간의 관계에 대한 식별과 감정의 흐름 등을 구조적으로 나열하고 재구성할 수 있어야 한다고 말할 수 있다. 본 논문은 텍스트 코퍼스에서 스토리를 구성하는 등장인물과 이들간의 관계를 식별하고, 등장인물들 간의 감정의 흐름을 분석하여 주인공을 인지하고, 이들의 관계를 그래프로 표현하여 컴퓨터 기반의 스토리 이해 시스템의 서사 지능을 구성하는 방식을 제안한다.

논문의 구성은 다음과 같다. 2장에서는 스토리 구조의 선행 연구에 대해 설명하며, 3장에서는 이론적 배경인 행위소 모델과 제안 방법을 설명한다. 4장에서는 제안하는 방법의 실험 및 결과에 대해 설명하고, 마지막 5장에서는 결론을 제시한다.

2. 관련 연구

텍스트 기반 서사에서 서사의 이해와 관련한 항목들을 자동으로 추출하는 것은 어려운 문제이다. 최근 자연어 처리(NLP, Natural Language Processing)는 텍스트에서 구문 및 의미 정보를 자동으로 추출하는 자동화된 주석 도구를 통해서 상당한 발전을 이루었으나 의미론적 구조와 서술적 구조를 자동으로 추출하는 연구는 많지 않았다.

Schank와 Wilensky의 스토리 이해 연구[6]는 사람이 스토리에 대해 이해하고 기억하며, 추론하기 위해 사용하는 높은 수준의 스토리 구조에 집중하였으나 자연어처리 기반의 연구는 아니었다.

Finlayson[7]은 스토리 워크벤치(Story Workbench)를 통해 서술적 요소를 수동으로 주석을 생성하는 도구 (annotation tool)를 만들었다. Elson[8]은 주석 처리된 텍스트에서 서술 구조를 도출하는 데 도움을 주기 위해 기계학습과 AI 알고리즘을 사용하였다. Calix[9]은 오디오 또는 텍스트에서 문자를 자동으로 추출하는 기계학습 접근방식을 제시하였고, Goyal[10]는 텍스트로 표현되는 서술구조와 그 영향 관계를 텍스트에서 직접 자동으로 추출하는 연구를 하였다.

텍스트 서사는 장르와 같은 규칙을 따르며, 반복되는 패턴을 가지기도 한다. 프로프의 민담형태론[11]에 따르면, 모든 이야기는 여러 개의 작은 이야기로 구성되어 있으며 변화가 발생할 수 있다. 다양한 스토리에서 등장인물의 외모나 직업 등의 속성은 달라질 수 있지만, 그 행위는 줄거리가 전개되는 과정에서 “기능”이나 “역할”에 의해 결정된다. 프로프의 민담형태론은 러시아의 100개의 민담에서 31가지의 짧은 스토리 구조로 정의한 기능과 7가지 -영웅, 악당, 파견자, 증여자, 조력자, 공주, 가짜 영웅- 등장인물의 역할로 분류하여 민담 스토리의 구조를 일반화하였다. 프로프의 민담형태론에 기반하여 자연어처리와 도메인 지식을 결합하여 텍스트 기반 서사의 등장인물 역할을 자동으로 지정하는 연구[12]가 있었지만, 영웅(hero)의 역할을 먼저 정의한 후 다른 등장인물의 역할을 지정하였고, 러시아 민담이라는 한정된 장르에 기반한다.

Labatut과 Bost[13]에 따르면, 픽션은 다음과 같은 몇 가지 구조적 특징을 갖는다. 첫째, 이야기 등장인물은 비인간적인 존재이거나 무생물로 나타날 수 있으며, 매체 (media)에 따라서 다양한 형태의 정보를 포함할 수 있다. 둘째, 이야기 속 등장 인물의 모든 행동은 작가나 감독에 의해 제어되며, 플롯에 따라 정렬할 수 있다.

본 논문은 텍스트 기반 서사에서 등장인물의 정보와 그들 간의 관계 정보를 추출하고, 그레마스의 행위소 모델에 기반하여 등장인물의 역할을 자동으로 구분하는 연구를 제안한다.

3. 이론적 배경 및 제안 방법

3.1 제안 방법에 대한 개요

이야기를 전개하는 과정에서 등장인물 (특히 주인공) 은 주어진 환경에서 다양한 성격의 인물들과 협력과 갈등 등의 관계를 형성하며, 사건을 발생시키거나 경험하는 주체이다. 등장인물의 역할 비중이 높을수록 다수의 등장인물들과 관계를 형성하는 경우가 많고, 등장인물 간의 관계는 이야기에서 사건의 원인이 되거나 사건을 해결하는 과정과 깊게 연관된다.

본 논문은 텍스트 기반 서사에서 등장인물들을 식별하고, 이들간의 관계에서 발생하는 감정의 흐름을 통해 스토리에서 등장인물들의 역할을 인지하는 방법을 다음과 같은 3단계의 방법으로 제안한다. 첫 번째 단계에서는 텍스트 스토리 코퍼스로부터 등장인물 정보와 각 문장에서 관계 정보를 추출한다. 두 번째 단계에서는 추출한 등장인물별로 정보를 식별하고, 등장인물 중심으로 관계정보를 분류하여 관계 정보에 기반한 감정 정보를 추출한다. 마지막으로 등장인물 중심으로 감정 관계의 흐름을 그래프로 표현한다.

텍스트 스토리 코퍼스로부터 생성된 그래프에서는 주요 등장인물인 주체자를 구분할 수 있고, 주체자에 가장 긍정적인 영향을 주는 인물과 가장 부정적 영향을 주는 인물을 식별할 수 있다. 본 논문은 텍스트 기반 서사에서 감정적 영향에 기반하여 다음 절에서 소개하는 구조 언어학의 행위소 모델[14]을 기반으로 등장인물의 역할을 정의한다. 그림 1은 텍스트 스토리 코퍼스로부터 등장인물 간의 감정 흐름을 표현하는 그래프 생성 과정에 대한개요도이다.

OTJBCD_2021_v22n1_51_f0001.png 이미지

(그림 1) 텍스트 스토리 코퍼스로부터 등장인물간의 감정 흐름을 표현하는 그래프 생성 프로세스

(Figure 1) Graph generation process which expresses the emotional flow among characters from the text story corpus

3.2 서사구조에서의 행위소 모델

구조 언어학자 A.J. 그레마스(A. J. Greimas)의 행위소 모델(actantial model)[14]은 프로프의 민담 형태론[11]을 기반으로 서로 대립하는 요소들의 관계에서 등장인물과 서사의 의미가 시작된다고 설명한다.

그레마스의 행위소 모델은 그림 2에 나타난 바와 같이 6개의 행위소와 그들간의 관계를 통해 서사 구조를 분석하기 위해 주로 이용된다. 여기에서 행위소(actant)는 “특정 이야기에서 행동을 수행”하며, “일반적인 코퍼스로부터 확립된 Actor 유형”을 의미한다[14].

OTJBCD_2021_v22n1_51_f0002.png 이미지

(그림 2) 그레마스의 행위소 모델의 6가지 행위소[14]

(Figure 2) Six actants of Greimas's Actantial model[14]

OTJBCD_2021_v22n1_51_f0003.png 이미지

(그림 3) 동사를 중심으로 기술한 문장의 구조[15]

(Figure 3) A sentence structure described in terms of a verb[15]

행위소는 동사를 중심으로 문장의 구조를 기술한다. 예를 들어 “이브가 아담에게 사과를 준다”라는 문장을 분석하면, ‘이브’는 1차 행위소로 주체자(subject), ‘사과’ 는 2차 행위소로 대상(object), ‘아담’은 3차 행위소로 수신자(receiver)에 해당한다고 볼 수 있다[15].

행위소 모델을 기반으로 픽션 또는 이야기를 한 줄로 요약한다면, “주체자”가 “조력자”의 도움과 “반대자”와의 갈등과 방해를 겪으면서 “대상”을 획득하고자 하는 구조로 단순화할 수 있다. 행위소 모델의 6가지 행위소 중에서 발신자와 수신자의 관계는 서사학자에 따라서 다양하게 (또는 모호하게) 해석된다. 동화 신데렐라를 예로 들면 “주체자”는 신데렐라, 그리고 “대상”은 왕자로 생각할 수 있다[16]. 이 때, 신데렐라는 대상을 얻는 수신자이기도 하며, 발신자는 쉽게 정의할 수 없다.

본 논문에서는 그레마스의 모델을 기반으로 텍스트 기반 서사 이해 모델을 제시한다. 주체자(subject)의 행동을 설명하는 원인으로 감정의 흐름을 분석하고 행위 소를 인식하는데 초첨을 맞춘다. 또한, 발신자와 수신자의 구분은 제외하고, 등장인물간의 관계 분석을 위해 조력자와 주체자, 반대자를 자동으로 추출하는 모델을 제시한다.

3.3 등장인물의 식별과 상호 참조 문제

텍스트 기반 서사에서 등장인물을 식별하는 것은 어떤 문자로 표현되는지와 언제 이야기에 등장하는지를 감지하는 것으로, 고유명사와 대명사로 나타낼 수 있다 [8][17]. 등장인물을 자동으로 식별하는 것은 어려운 과제로 상호참조(coreference) 태깅 도구를 사용하는 접근 방식으로 수행하는 경우가 많지만, 본 논문에서는 자동으로 등장인물을 식별하는 방법을 제시한다. 등장인물 식별을 위해 다음의 두 가지를 가정한다: 첫째, 등장인물은 명사로 표현된다. 둘째, 주요 등장인물은 텍스트에서 다수에 걸쳐 표현된다.

자연어에서 앞서 표현됐던 명사구가 다시 등장할 때, 생략되거나 축약 또는 대명사의 형태로 나타나는 경우가 많다. 또한, 동일한 대상을 여러 번 표현하면서 단어가 변형되어 표현될 수 있으며, 이를 ‘참조’라 하고 대응하는 참조 관계를 설명하는 과정을 ‘상호 참조 문제 해결 (Co-reference Resolution)’이라고 정의한다. [18]에서는 TV 프로그램의 대본에서 등장인물의 언급에 대해 기계학습 방법을 통해 자동으로 주석을 달아 등장인물을 식별하고 상호 참조 문제를 해결하였으며, [19]에서는 Stanford NER tagger[20]를 사용하여 사람 또는 조직으로 분류된 명사구에서 사람으로 분류된 대상의 상호 참조 해결을 통해 등장인물을 식별하였다. 본 논문에서 제안하는 방법 역시 상호 참조 문제 해결을 통해 등장인물을 식별한다.

3.4 등장인물간의 관계 그래프와 감정 추출

등장인물간 관계 그래프는 스토리를 단순화하고, 이벤트를 직관적으로 표현하며, 등장인물의 역할을 식별할 수 있어서 서사를 구조적으로 분석하기 위한 가치를 가진다. 이를 분석하기 위해 표준 개발 도구를 적용하거나 [19], 수동으로 추출되는 경우가 많다. 이를 자동화하기 위해서 인공지능 알고리즘을 적용하여 역할 감지, 장르 분류, 줄거리 감지, 스토리 분할, 영화 장면 분할에 사용되기도 한다[13].

3.4.1 등장인물들간의 관계 추출

일반적으로 정보 추출의 두 단계는 명명된 객체(entity) 의 인식과 인식된 객체간의 관계를 추출하는 것으로 나눌 수 있다. 객체 인식은 사람, 조직, 장소와 같은 실체의 이름을 찾는 것을 포함하며, 관계 추출에서는 객체들 간의 다양한 의미적 관계를 찾는다[21]. 본 논문에서는 자바 언어 기반의 Open IE 5.1[22][23][24][25]을 이용하여 객체들 간의 관계 정보를 추출하며, 이에 더하여 관계에서 감정을 분류하고, 감정의 흐름에 대한 방향을 기반으로 등장인물들간의 감정적 상호관계를 정의하는 관계 그래프를 도식화한다. 관계 그래프의 노드는 상호 참조 문제 해결 방식을 이용하여 인식된 등장인물을 의미하고, 노드와 노드를 연결하는 간선(edge)은 등장인물간 감정 관계를 나타낸다.

3.4.2 관계 정보 기반 감정 추출

관계 그래프에서 간선으로 표현되는 등장인물들간 관계정보는 다른 등장인물에 긍정적인 영향과 부정적인 영향을 주는 관계로 분류할 수 있다. 관계정보를 기반으로 감정 정보를 분류하는 다음의 3가지 모델을 통해 각 등장인물들 간의 감정 관계를 표현한다.

(1) NLTK Sentiment VADER 기반의 감정 분류

감정 분류를 위해서 NLTK(Natural Language Toolkit)에서 제공하는 VADER(Valence Aware Dictionary and Sentiment Reasoner)[26] 툴을 사용한다. NLTK-VADER는 감성 분석을 위한 규칙 기반 모델로서, 텍스트 문장을 입력으로 받아서 긍정(pos), 부정(neg), 중립(neu), 그리고 복합 값(compound)에 해당하는 –1에서 1 사이의 실수값을 각각 제공한다. 입력 문장에 대해서 하나의 값을 사용하는 경우에는 복합값을 측정기준으로 할 수 있다. 복합 값을 기준으로 긍정(pos), 중립(neu), 부정(neg)으로 분류하기 위해서 사용하는 일반적인 임계값의 범위는 0.5 이상일 때 긍정, -0.5 이하일 때 부정, -0.5 초과이고 0.5 미만일 때는 중립으로 분류한다. 다음에 소개되는 두 가지의 감정 분류 모델에서 긍정과 부정으로 분류되기 때문에 복합 값을 기준으로 문장에서 추출한 각 동화 코퍼스의 관계 데이터에서 중립을 제외하고 긍정, 부정으로 분류하며, compound의 값이 0.5 미만이면 부정, 이외의 값은 긍정으로 포함하여 분류하였다.

(2) BERT 언어 모델 기반의 감정 분류 모델

등장인물간의 감정 추출을 위한 두 번째 방법으로 영어 대문자와 소문자를 구별하지 않는 BERT Base (Uncased) 모델을 사용한다. BERT(Bidirectional Encoder Representation from Transformers)는 영어 기반의 위키백과 및 책 말뭉치(book corpus)와 같은 대용량 데이터로부터 양방향성을 가진 트랜스포머(transformer)로 학습된 언어 모델이다[27]. 이를 통해서 감정 레이블된 데이터를 학습하고, 감정정보에 대한 학습을 마친 모델을 기반으로 관계 정보 데이터의 감정을 분류한다.

학습 데이터는 100, 000개의 영화 텍스트 리뷰로 구성되어 있는 Internet Movie Database(IMDB) review sentiment dataset[28]을 사용하였다. 이 중에서, 50, 000개의 리뷰는 테스트 데이터로서 감정 레이블이 없으며, 레이블된 50, 000개의 데이터는 학습 데이터셋(train dataset)과 평가데이터셋(validation dataset) 각각 25, 000개씩 나뉘어져 있고, 긍정과 부정의 12, 500개씩 분류되어 있다. 학습을 위한 epochs 수는 10, 학습 배치 크기는 8, 평가 배치 크기는 4로 학습하였으며, torch의 신경망에서 최적화 함수는 AdamW을 적용하였다[29]. 학습 모델의 정확도는 0.85이다.

(3) 양방향 LSTM 기반의 감정 분류 모델

감정을 추출하는 세 번째 방법으로 양방향 LSTM (Bidirectional Long Short-Term Memory)[30]을 사용한다. 양방향 LSTM은 기존의 LSTM에서 데이터 길이가 길고 층이 깊으면 앞서 학습된 정보가 손실되는 단점을 보완하기 위해 역방향 LSTM 계층이 추가된 학습 모델로, 위에 기술한 방법 (2)에서와 같이 감정 레이블된 데이터를 기반으로 학습하여 감정을 분류하였다. 레이블된 학습데이터는 방법 (2)에서와 같이 IMDb dataset을 사용하였으며, 케라스 프레임워크에서 제공하는 모듈에서 128차원으로 Embedding한 후, 양방향 LSTM 으로 학습한다 [31]. 활성화 모델로는 ReLU를 사용하며, 드롭아웃 (dropout) 이후 시그모이드(sigmoid) 활성화 함수를 적용한다. 학습모델의 최적화 함수는 adam을 사용하였고, 학습의 배치 크기는 100, epochs 수는 3, 그리고 학습된 모델의 정확도는 0.94이다.

4. 실험 및 결과

4.1 동화 코퍼스에서 등장인물 정의

실험을 위해서 사용되는 텍스트 스토리 코퍼스는 구텐베르크 프로젝트[32]에서 제공하는 아동을 위한 영어 동화 데이터를 사용한다.

동화 코퍼스의 전처리 과정으로 특수 문자를 제거하고, 문장을 기준으로 분류한 후, 전처리된 텍스트 코퍼스를 상호 참조 해결을 위한 입력으로 한다. 본 실험에서 선택한 동화는 모두 다섯 편으로 ‘신데렐라(Cinderella; T1)’, ‘아기돼지 삼형제 이야기 (The Story of the Three Little Pigs; T2)’, ‘개구리 왕(Frog King; T3)’, ‘미녀와 야수 (Beauty and the Beast; T4)’, ‘잠자는 숲속의 공주 (The Sleeping Beauty in the Woods; T5)’ 이다. 표 1은 각 동화에서 문장의 수, 단어 수, 글자 수와 상호 참조 관계 해결의 결과로 검출된 객체(entities)의 수를 나타낸다.

(표 1) 동화 코퍼스들의 구성과 검출된 객체

OTJBCD_2021_v22n1_51_t0001.png 이미지

(Table 1) The composition of the fairy tale corpus

표 1에서 T1 (신데렐라) 스토리를 예로 들면, 코퍼스에서 검출된 객체는 50개이고, 주요 등장인물로서 신데렐라, 새엄마, 왕자, 두 언니, 요정이 객체로 검출되었고, 그 외에 호박 마차, 왕, 신데렐라의 아버지, 마차의 말이 된 쥐 등이 검출되었다. 상호 참조 해결은 사물과 동물 객체에 대해서도 검출한다. 동화의 특성상 사물이나 동물이 등장인물로서의 역할을 하는 경우가 종종 나타나기 때문에 더 많은 객체가 검출되며, 오탐지로 인해 동일한 객체가 둘로 나누어지거나, 다른 인물이 하나의 객체로 검출되기도 하였다.

그림 4는 신데렐라 코퍼스에서 상호 참조 해결을 통해 객체로 검출된 단어 또는 구문 영역에 식별되는 각 객체마다 번호가 부여되는 것을 보여준다. 동일한 번호가 부여된 객체의 번호는 텍스트에서 동일한 객체이며, 부여된 번호는 텍스트에서 식별된 객체의 순서로 부여된다.

OTJBCD_2021_v22n1_51_f0004.png 이미지

(그림 4) 신데렐라 스토리 코퍼스에서 상호 참조 해결 결과 예

(Figure 4) An example of co-reference resolution results in Cinderella story corpus

상호 참조 문제 해결을 위해서 사용된 모듈[33]은 [34]에 기초하였다. GloVE 임베딩이 SpanBERT 임 베딩으로 대체되었으며, Ontonotes 5.0 데이터셋에 대해서 F1 score 는 0.789이다.

4.2 등장인물간 관계 분석

등장인물간 관계 분석을 위해 OpenIE 5.1.0이 포함된 Python Wrapper[35]를 사용하였다. 문장이 입력으로 주어지면 extraction(arg1, rel, arg2s, context, negated, passive) 의 값을 얻을 수 있다. 예를 들면, T1 코퍼스의 첫 번째 문장은 “Once upon a time there was a gentleman who took for a second wife the haughtiest and proudest woman that had ever been seen.” 으로서, 124글자로 이루어진 문장이며 정보를 추출한 결과는 주체와 관계, 대상을 한 쌍으로 3 개의 관계 정보가 추출된다. 주어진 문장에서 주체는 the proudest woman, the haughtiest woman, a gentleman 이고 각 관계는 had been seen과 took이다. passive의 값은 문장의 수동태 여부에 대한 불리언(boolean) 값으로 True/False 의 값을 가진다. passive 인자의 값이 False일 때, 추출된 관계의 방향을 “주체에서 대상을 향한다“고 정의하며, True일 때 관계의 방향을 역으로 정의한다(예: the oranges / had given / to her).

4.1 절에서 추출한 등장인물의 객체 정보와 각 문장에서 추출한 관계 정보를 비교하고 일치하는 텍스트를 중심으로 그래프로 표현한다. 등장인물의 객체 정보는 관계 정보에서 주체 또는 대상에 해당하는 텍스트와 비교하여 대응하는 표현에 대해 등장인물의 관계 정보로 정의된다.

주체와 대상에 해당하는 단어는 등장인물로서 그래프에서 노드로 표현되고, 등장인물간의 관계 정보는 간선 (edge)으로 표현된다. 주체와 대상이 동일한 등장인물의 표현일 경우 그래프에서 루프 (self loop)로 표현된다. 그림 5는 신데렐라 스토리의 관계 그래프를 나타낸다.

신데렐라에서는 노드가 50개이며, 간선으로 연결되지 않은 노드도 있다. 간선이 없는 노드는 텍스트에서 언급이 되었지만 관계 정보와 상호 참조 해결 결과에서 일치하는 정보를 얻지 못한 노드이거나 상호참조해결 문제에서 일부 누락되어 간선을 갖지 못하게 된다. 그림 5의 그래프에서 노드 2는 가장 많은 노드와 관계 정보를 가진다. 등장인물(노드)간의 관계의 빈도에 기반하여 간선이 없거나 작은 노드는 의미 없는 노드로서 소거하였으며, 이 때 소거되는 간선의 기준은 2 이하로 하였다.

OTJBCD_2021_v22n1_51_f0005.png 이미지

(그림 5) 신데렐라(T1)에서 등장인물간의 관계 그래프

(Figure 5) A graph of the relationship between the characters in Cinderella(T1)

동화 코퍼스의 관계 그래프를 그리는 것만으로도 스토리의 주체자를 찾을 수 있다. 가장 많은 간선을 가지며, 다양한 노드들과 관계를 가지는 노드 2가 주인공이라고 가정할 수 있다. 노드 2로 표현된 단어들을 정리하면 ‘she’로 66회, ‘Cinderella’로 40회, ‘her’로 16회 표현되었다. 오검출의 경우는 ‘he’가 5회 표현되었는데 이는 상호참조 해결 구문에서 검출된 단어 중 일부가 포함된 결과이다. 예를 들면, “a long time since he had seen so amiable a person” 구문을 상호참조해결 문제에서 노드 2에 해당하는 Cinderella로 검출하였는데, 관계 정보를 매칭하는 과정에서 일부의 단어만 매칭되었기 때문이다.

그래프에서 간선 연결이 많은 노드에서 표현되는 단어들을 중심으로 그림 6과 같이 워드 클라우드로 표현하면 노드 2는 ‘신데렐라(Cinderella)’, 노드 0은 ‘계모 (stepmother)’, 노드 3은 ‘신데렐라의 두 자매(Cinderella’s two sisters)’, 노드 36은 ‘왕자(prince)’와 ‘왕의 아들(King’s son)’, 노드 16은 ‘대모(godmother)’의 인물로 표현되었음을 알 수 있다. 노드 3의 경우 두 언니는 종종 신데렐라의 언니로 표현되었기 때문에 신데렐라(Cinderella)와 두 자매(two sisters)가 동일하게 나타난다.

OTJBCD_2021_v22n1_51_f0006.png 이미지

(그림 6) 신데렐라 스토리 (T1)의 주요 노드들을 표현한 워드 클라우드

(Figure 6) Word clouds that represent the main nodes of Cinderella Story (T1)

4.3 등장인물간 감정 흐름 그래프

본 절에서는 등장인물들을 표현한 노드와 노드 간의 관계정보에서 추출한 감정을 3가지 방법으로 분류하여 실험 결과를 비교한다. 먼저, 각 동화 코퍼스에서 추출한 감정 관계 데이터를 통해서 등장인물로 표현된 노드들 간의 관계를 그래프로 표현한다. 그 다음에는, 주체자에게 긍정적인 관계 정보를 가장 많이 보내는 노드를 조력자로 선별하고, 주체자에게 부정적인 관계 정보를 가장 많이 보내는 노드를 반대자로서 선별한다.

그림 7은 T1(신데렐라)에서 NLTK Sentiment VADER 기반의 감정 추출을 통해 관계의 감정을 긍정과 부정으로 분류하고 감정의 방향을 표시한 그래프로서, 그림 5의 등장인물들 간 관계 정보를 기반으로 주체자를 노드 2로 선별하고, 노드 2를 중심으로 긍정의 관계 그래프와 부정의 관계 그래프를 각각 표현한다. 그림 7의 (a)에서 노드 2에 가장 긍정적인 관계를 형성하는 노드는 3으로 관계의 수는 5이다. (b)에서 노드 2에 가장 부정적인 관계를 형성하는 노드는 (a)와 마찬가지로 노드 3으로서, 총 15 회로 가장 부정적인 노드가 된다. 노드간의 감정 흐름 관계 그래프를 통해 주체자 노드 2를 중심으로 조력자와 반대자를 모두 노드 3으로 간주할 수 있다.

OTJBCD_2021_v22n1_51_f0007.png 이미지

(그림 7) 신데렐라(T1)에서 노드간의 감정 관계(긍정/부정)를 표현한 감정 관계 그래프 (SC1)

(Figure 7) Emotional relationship graph representing the relations(positive/negative) among the nodes in Cinderella(T1)

그림 8은 동일한 동화 코퍼스 T1에서 BERT Embedding 과 양방향 LSTM 기반의 감정 분류를 이용하여 표현한 감정 흐름 그래프이다. 그림 7과 8의 그래프에서 노드 간의 관계에 동일한 임계치를 주어 2 이하인 노드에 대해서는 표현하지 않았으며 그래프에서 제외시켰다. 다른 동화 텍스트에 대해서도 동일한 방법을 적용하였으며, 그 결과는 표 2에서 확인할 수 있다.

OTJBCD_2021_v22n1_51_f0008.png 이미지

(그림 8) 신데렐라(T1)에서 SC2와 SC3를 통해 표현한 감정 관계 그래프

(Figure 8) Emotional relationship graph expressed by SC2 and SC3 in Cinderella(T1)

(표 2) 각 동화 코퍼스에서 추출한 캐릭터들의 역할(노드)

OTJBCD_2021_v22n1_51_t0002.png 이미지

(Table 2) Role of characters extracted from

표 2에서 SC1은 NLTK Sentiment VADER 기반의 감정분류를 의미하며, SC2는 BERT Embedding 기반의 감정분류 모델, 그리고 SC3은 양방향 LSTM 기반의 감정 분류 모델을 의미한다. 주체자, 조력자, 반대자의 숫자는 그래프의 노드에 가중치로 표현하였으며, 각 숫자를 그림 6과 같이 워드 클라우드로 표현했을 때, 각 동화에서 역할을 가장 유사하게 검출한 결과에 굵은 글씨로 표현하였다. 신데렐라(T1)에서 노드 2는 신데렐라를, 노드 3은 신데렐라의 두 자매를, 노드 16은 대모(godmother)로 표현되었으며, 등장인물의 역할을 가장 잘 찾은 모델은 SC2 라고 할 수 있다.

개구리 왕(T3)에서 노드 1은 왕의 딸 (King’s Daughter), 노드 5는 황금 공 (golden ball), 노드 6은 개구리(Frog)를 의미한다. 노드 5의 황금 공은 스토리에서 어떠한 성격을 가진 등장인물로서의 역할은 아니지만, 왕의 딸과 개구리를 연결하는 매개체로 대화에서 자주 등장하며 조력자의 역할로 검출되었다.

잠자는 숲속의 공주(T5)의 경우 노드 1은 공주 (Princess), 노드 16은 사람들(People), 노드 49는 왕비 (Queen), 노드 2는 요정들(Fairies)이다. SC1의 경우 조력자가 다수 표현되었는데 노드 31은 아버지(Father), 노드 41은 왕(King), 노드 42에서는 다시 왕비(Queen)로 중복해서 나타난다. 노드 16은 스토리에서 사람들(People)로 표현된다.

아기돼지 삼형제 이야기(T2)와 미녀와 야수(T4)는 SC1, SC2, SC3 모두 동일한 노드를 주체자로 구분한다. T2에서노드 4는 아기 돼지 (Little pig)이며, 노드 6은 늑대(Wolf), 노드 3은 남자(Man), 노드 24는 장터(The fair)로 표현된다. T4에서 노드 2는 미녀(Beauty), 노드 0은 상인 (Merchant), 노드 26은 야수(Beast)를 나타낸다.

아기돼지 삼형제 이야기(T2)에서 이야기의 조력자와 미녀와 야수(T4)에서 조력자와 반대자는 독자에 따라 다른 해석이 가능하다. 미녀와 야수(T4)에서 야수는 상인에게 목숨을 대신하여 상인의 딸 (미녀)을 요구하였지만, 친절을 베풀어 미녀(Beauty)와 긍정적인 결말을 만드는 등장인물이다. 따라서, 야수(Beast)의 경우는 스토리의 조력자 또는 반대자 하나의 역할로 정의하기 어려우며, 이야기의 전개에서 다양한 성격을 보여준다고 해석할 수 있다.

아기돼지 삼형제 이야기(T2)의 경우, 아기돼지 삼 형제는 텍스트에서 별도의 구별 없이 아기 돼지(Little pig)로만 표현되는 경우가 많기 때문에 세 명의 등장인물을 하나로 인식하게 된다. 또한 다른 동화들과는 다르게 돼지와 늑대의 대화를 통해서 이야기가 전개되며, 늑대가 돼지에게 하는 대사는 부정적인 표현과 긍정적인 표현이 뒤섞여 있어 감정 분류 학습 모델에 따라 반대자와 조력자로 검출하였다.

5. 결론

본 논문에서는 텍스트 기반 서사에서 등장인물을 식별하고, 인물들간의 관계 분석을 통해 주체자를 선별하였다. 이들간의 관계에서 감정을 분류하고 감정의 흐름을 감정 그래프를 통해 표현하였으며, 그레마스의 행위소 모델에 기반한 조력자와 반대자를 자동으로 추출하였다. 실험을 위해 구텐베르크 프로젝트의 5가지 영어 동화 텍스트를 사용하여 NLTK Sentiment VADER, BERT 임베딩 기반의 모델, 그리고 양방향 LSTM 기반의 모델을 적용하여 감정을 분류하고 결과를 비교하였다. 실험 결과, 쉽게 조력자와 반대자를 찾을 수 있는 스토리의 경우 본 논문에서 제안한 방법을 통해 찾아낼 수 있었으며, 등장인물의 역할이 모호하거나 복합적인 스토리의 경우 제안한 방법에서도 복합적이거나 명확하지 않은 결과를 보여주었다. 따라서, 본 논문에서 제안한 행위소 모델 기반의 등장인물 역할 인식 계산 모델이 일반적 독자의 등장인물 역할 인식과 유사하게 동작한다고 추정할 수 있다.

향후 연구로는 두 가지를 고려한다. 먼저, 행위소 모델에서 중요한 행위소 중 하나이며 스토리에서 주인공이 추구하는 목적이 되는 대상을 자동으로 추출할 계획이다. 그 다음에는 제안한 행위소 모델 기반의 계산 모델을 통해 추출한 행위소(주인공, 조력자, 반대자, 대상)와 일반적 독자들이 생각하는 행위소와의 일치도를 실험과 설문을 통해 조사할 예정이다.

References

  1. M. Mateas and P. Sengers, Narrative Intelligence. Amsterdam, Netherlands: John Benjamins Publishing, 2003. https://doi.org/10.1075/aicr.46.01mat
  2. M. O. Riedl, "Computational narrative intelligence: A human-centered goal for artificial intelligence", arXiv [cs.AI], 2016. https://arxiv.org/abs/1602.06484
  3. R. C. Schank and R. P. Abelson, "Scripts, plans, goals, and understanding: An inquiry into human knowledge structures". Psychology Press, 2013. https://doi.org/10.4324/9780203781036
  4. R. Zhang, W. Li, N. Liu, and D. Gao, "Coherent narrative summarization with a cognitive model," Comput. Speech Lang., vol. 35, pp. 134-160, 2016. https://doi.org/10.1016/j.csl.2015.07.004
  5. J. Womack and W. Freeman, "Interactive narrative generation using location and genre specific context," in Interactive Storytelling, Cham: Springer International Publishing, 2019, pp. 343-347. https://doi.org/10.1007/978-3-030-33894-7_35
  6. R. C. Schank and R. Wilensky, "A GOAL-DIRECTED PRODUCTION SYSTEM FOR STORY UNDERSTANDING," in Pattern-Directed Inference Systems, Elsevier, 1978, pp. 415-430. https://doi.org/10.1145/1045343.1045385
  7. M. A. Finlayson, "Collecting semantics in the wild: The story workbench". AAAI Fall Symp. - Tech. Rep. vol. FS-08-06: pp. 46-53, 2008. https://www.aaai.org/Library/Symposia/Fall/2008/fs08-06-008.php
  8. D. K. Elson, Modeling narrative discourse. Ph.D. Thesis, Columbia University, 2012. https://academiccommons.columbia.edu/doi/10.7916/D8CR61FJ
  9. R. A. Calix, L. Javadpour, M. Khazaeli, and G. M. Knapp, "Automatic detection of nominal entities in speech for enriched content search," FLAIRS 2013 - Proc. 26th Int. Florida Artif. Intell. Res. Soc. Conf., pp. 190-195, 2013. https://www.semanticscholar.org/paper/Automatic-Detection-of-Nominal-Entities-in-Speech-Calix/74bab2e5e27ebed9643c8ba753f71a830736cdb3
  10. A. Goyal, E. Riloff, and H. Daume, "Automatically producing plot unit representations for narrative text," EMNLP 2010 - Conf. Empir. Methods Nat. Lang. Process. Proc. Conf., no. Emnlp, pp. 77-86, 2010. https://www.aclweb.org/anthology/D10-1008
  11. V. Propp, "Morphology of the folktale: Second edition". University of Texas Press, 2010. https://web.mit.edu/allanmc/www/propp.pdf
  12. J. Valls-Vargas, S. Ontanon, and J. Zhu, "Toward character role assignment for natural language stories," AAAI Work. - Tech. Rep., vol. WS-13-21, pp. 101-104, 2013. https://www.aaai.org/ocs/index.php/AIIDE/AIIDE13/paper/view/7439
  13. V. Labatut and X. Bost, "Extraction and analysis of fictional character networks: A survey," ACM Comput. Surv., vol. 52, no. 5, pp. 1-40, 2019. https://doi.org/10.1145/3344548
  14. A. J. Greimas, Reflections on actantial models. London: Longman Group Ltd, 1996.
  15. Y. H. Choi. Three models on the actantial structure: with special regard to Greimas, Coquet and Fontanille. Semiotic Inquiry, 52(0), 161-189.2017. DOI : 10.24825/SI.52.6
  16. T. H. Kim. (2001). Problems of Accepting Greimas's Actantial Model, Journal for German-speaking culture and literature, 10(0), 104-118.2001. http://kiss.kstudy.com/thesis/thesis-view.asp?key=1814568
  17. M. Trovati and J. Brady, "Towards an automated approach to extract and compare fictional networks: An initial evaluation," in 2014 25th International Workshop on Database and Expert Systems Applications, 2014. https://doi.org/10.1109/dexa.2014.58
  18. Y.-H. Chen and J. D. Choi, "Character identification on multiparty conversation: Identifying mentions of characters in TV shows," in Proceedings of the 17th Annual Meeting of the Special Interest Group on Discourse and Dialogue, 2016. https://doi.org/10.18653/v1/w16-3612
  19. D. Elson, N. Dames, and K. McKeown, Extracting social networks from literary fiction. Proceedings of the 48th annual meeting of the association for computational linguistics: pp.138-147, 2010. https://www.aclweb.org/anthology/P10-1015
  20. J. R. Finkel, T. Grenager, and C. Manning, "Incorporating non-local information into information extraction systems by Gibbs sampling," in Proceedings of the 43rd Annual Meeting on Association for Computational Linguistics - ACL '05, 2005. https://doi.org/10.3115/1219840.1219885
  21. J. Jiang, Information extraction from text. Mining text data. Springer, Boston, MA: pp.11-41, 2012. https://doi.org/10.1007/978-1-4614-3223-4_2
  22. S. A. O. Saha, Open information extraction from conjunctive sentences. Proceedings of the 27th International Conference on Computational Linguistics: pp.2288-2299, 2018. https://www.aclweb.org/anthology/C18-1194
  23. S. Saha, H. Pal, and Mausam, "Bootstrapping for numerical open IE," in Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers), 2017. https://doi.org/10.18653/v1/p17-2050
  24. H. Pal and Mausam, "Demonyms and compound relational nouns in nominal open IE," in Proceedings of the 5th Workshop on Automated Knowledge Base Construction, 2016. https://doi.org/10.18653/v1/w16-1307
  25. J. Christensen, Mausam, S. Soderland, and O. Etzioni, "An analysis of open information extraction based on semantic role labeling," in Proceedings of the sixth international conference on Knowledge capture - K-CAP '11, 2011. https://doi.org/10.1145/1999676.1999697
  26. C. J. Hutto and E. E. Gilbert, "VADER: A Parsimonious Rule-based Model for Sentiment Analysis of Social Media Text. Eighth International Conference on Weblogs and Social Media (ICWSM-14)."," Proc. 8th Int. Conf. Weblogs Soc. Media, ICWSM 2014, 2014. https://www.aaai.org/ocs/index.php/ICWSM/ICWSM14/paper/view/8109
  27. M. Schuster and K. K. Paliwal, "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding," IEEE Trans. Signal Process., vol. 45, no. 11, pp. 2673-2681, 1997. https://arxiv.org/abs/1810.04805
  28. A. Maas, R. E. Daly, P. T. Pham, D. Huang, A. Ng, C. and Potts, "Learning word vectors for sentiment analysis," Proceedings of the 49th annual meeting of the association for computational linguistics: Human language technologies: pp.142-150, 2011. https://www.aclweb.org/anthology/P11-1015
  29. A. Thakur, bert-sentiment. [Online]. Available: https://github.com/abhishekkrthakur/bert-sentiment/. [Accessed: 10-Nov-2020].
  30. M. Schuster and K. K. Paliwal, "Bidirectional recurrent neural networks," IEEE Trans. Signal Process., vol. 45, no. 11, pp. 2673-2681, 1997. https://ieeexplore.ieee.org/document/650093
  31. Nilan, "IMDB review - deep model ~ 94.89% accuracy," Kaggle.com, 21-Nov-2018. [Online]. Available: https://www.kaggle.com/nilanml/imdb-review-deep-model-94-89-accuracy. [Accessed: 10-Nov-2020].
  32. "Project Gutenberg," Choice (Middletown), vol. 49, no. 02, pp. 49-0598-49-0598, 2011.
  33. "AllenNLP Demo," Allennlp.org. [Online]. Available: https://demo.allennlp.org/coreference-resolution. [Accessed: 10-Nov-2020].
  34. K. Lee, L. He, M. Lewis, and L. Zettlemoyer, "End-to-end neural coreference resolution," arXiv [cs.CL], 2017. https://doi.org/10.18653/v1/d17-1018
  35. python-wrapper-OpenIE5. [Online]. Available: https://github.com/vaibhavad/python-wrapper-OpenIE5. [Accessed: 10-Nov-2020].