논어 구절로 알아보는 정치인의 겉과 속
red
탐구의 목적
탐구의 대상
탐구 방법
데이터 수집
데이터 분석
변수 설명
수집한 데이터를 이용하여 네트워크를 형성하였다. Statement(발언), Section(구절), Person(정치인), Month(월), Year(년), Expression(인용구), Chapter(장), Event(사건), Party(정당)을 노드로 삼았다. 각 노드별 속성 중 주목할 만한 부분은 다음과 같다.
Statement
노드 명 | 속성 | 설명 |
Statement (발언) | contentcontext (내용 맥락) | 발화 내용에 따라 선거, 비선거 - 사회적 문제, 비선거 - 정책적 대립, 비선거 - 개인 신변 논란, 비선거 - 국회 활동, 격려 / 각오 / 방향제시, 행태 비판으로 구분함. |
formcontext (형식 맥락) | 발화 형식에 따라 SNS, 논평 / 보도자료, 즉석발언, 연설 / 브리핑 / 기자회견, 기념사 / 축사, 인터뷰로 구분함. | |
기존 Event 노드의 속성이었던 context(맥락)를 내용 맥락과 형식 맥락으로 구분하는 과정에서 같은 사건에 대한 발언이라도 형식이 다를 수 있다는 점으로부터 내용 맥락, 형식 맥락이 Event 노드가 아닌 Statement 노드에 위치해야 한다고 판단하여 Event 노드의 context 속성을 삭제하고 Statement 노드에 contentcontext, formcontext 속성을 추가하였다.
우선 내용 맥락의 경우, 실질적이거나 구체적인 사건, 정책에 관한 내용인지 여부에 따라 두 가지로 분류하였다. 구체적인 사건, 정책에 관한 내용일 경우 선거와 비선거로 분류하였으며, 비선거 내에서도 그 내용에 따라 사회적 문제, 정책적 대립, 개인 신변 논란, 국회활동으로 구분하였다. 이때 추미애 장관 아들 병역 문제나 최순실 게이트 등의 사건들을 개인 신변 논란과 사회적 문제로 구분할 때 단순히 물의를 일으킨 것은 개인 신변 논란, 물의를 넘어 쟁점이 될 만큼 큰 이슈가 되었을 경우 사회적 문제로 분류하였다. 구체적인 사건, 정책에 관한 내용이 아닐 경우 그 내용이 긍정적인지 여부에 따라 격려 / 각오 / 방향제시와 행태 비판으로 구분하였다.
형식 맥락의 경우, 크게 전달 매체에 따라 말과 글, 두 가지로 분류하였다. 글의 경우 정식 문서 여부에 따라 논평 / 보도 자료와 SNS로 나누었고, 말의 경우 원고가 준비된 발언과 그렇지 않은 즉석 발언으로 분류하였다. 또한 원고가 준비된 발언들을 발언 기회나 환경과 발언 내용의 선후 관계에 따라 환경이 우선일 경우와 내용이 우선일 경우로 구분하였다. 전자의 경우 그 내용에 따라 기념사 / 축사와 인터뷰로 구분하였고, 후자는 연설 / 브리핑 / 기자회견이라는 하나의 분류로 묶었다.
Section
노드 명 | 속성 | 설명 |
Section (구절) | name | 논어의 원문 구절을 노드의 이름으로 사용하였다. |
korname (한글 독음) | Neo4j에서 검색이 용이하도록 하기 위해 한글 독음 속성을 추가하였다. | |
Person
노드 명 | 속성 | 설명 |
Person (정치인) | name | 발언자의 이름 |
Month
노드 명 | 속성 | 설명 |
Month (월) | name | N월의 형태로 이름을 정하였다. |
yearname (연월) | 2019년 1월과 2020년 1월이 혼동되는 것을 막기 위해, NNNN년 M월의 형태로 연월 속성을 추가하였다. | |
Year
노드 명 | 속성 | 설명 |
Year (년) | name | 년도 |
Expression
노드 명 | 속성 | 설명 |
Expression (인용구) | name | 인용된 구절을 그대로 name으로 사용하였다. (ex. 하나를 보면 열을 안다.) |
Chapter
노드 명 | 속성 | 설명 |
Chapter (장) | name | 장의 이름 |
Event
노드 명 | 속성 | 설명 |
Event (사건) | name | 사건 이름 |
Party
노드 명 | 속성 | 설명 |
Party (정당) | name | 정당의 이름 |
진보, 보수로 구분하는 것은 자의적이라는 코멘트에 따라 그러한 구분 대신 당의 이름만을 속성으로 추가하였다.
Edges
이러한 노드들 간의 Edge는 다음과 같다.
source | target | relation | 설명 |
Statement | Month | isAt (시기이다) | 발언이 행해진, 혹은 기사화된 시기를 의미한다. |
Month | Year | isIn (속하다) | 해당 년도에 속하는 월을 의미한다. |
Statement | Expression | mentions (언급하다) | 발언에서 언급하는 인용 구절을 의미한다. |
Expression | Section | derivedFrom (로부터 유래하다) | 인용구가 어떤 논어의 구절에서 유래되었는지를 나타낸다. |
Section | Chapter | isPartOf (부분이다) | 구절이 어떤 장에 포함되는지를 나타낸다. |
Person | Statement | says (말하다) | 발언자와 발언을 연결한다. |
Statement | Event | isAbout (에 대해 이야기하다) | 발언과 관련된 사건을 나타낸다. |
Person | Party | isMemberOf (일원이다) | 각 정치인이 어느 정당에 속하는지 나타낸다. |
Party | Party | divergesFrom (갈라져 나오다) | source 정당이 target 정당으로부터 갈라져 나온 관계임을 의미한다. |
Party | Party | changesNameTo | source 정당이 target 정당으로 이름을 바꿨음을 의미한다. |
Party | Party | merges | source 정당이 다른 정당과 병합하여 target 정당을 창설하였음을 나타낸다. |
온톨로지
이러한 기준을 바탕으로 온톨로지(논어 구절로 알아보는 정치인이 겉과 속 Ontology)를 구성하였다. 온톨로지의 데이터는 본 데이터 중 가장 먼저 수집된 7개로 이루어졌으며, 표로 정리하면 다음과 같다.
번호
|
Statement
|
Section
|
Person
|
Month
|
Year
|
Expression
|
Chapter
|
Event
|
Party
|
1 |
발언1 |
自古皆有死 民無信不立 |
이낙연 |
8월 |
2017년 |
무신불립 |
자공문정章 |
살충제 계란파동 |
더불어민주당
|
2 |
발언2 |
述而不作 信而好古 竊比於我老彭 |
이낙연 |
12월 |
2017년 |
술이부작 |
술이부작章 |
기자생활 회고 |
더불어민주당
|
3 |
발언3 |
回也 聞一以知十 賜也 聞一以知二 |
이재명 |
1월 |
2017년 |
하나를 보면 열을 안다 |
술여여회야章 |
대한민국 제19대 대통령 선거 |
더불어민주당
|
4 |
발언4 |
國有家者 不患寡而患不均 不患貧而患不安 |
이재명 |
9월 |
2020년 |
불환빈 환불균 |
계씨장벌전유章 |
신년사 |
더불어민주당
|
5 |
발언5 |
政者正也 子帥以正 孰敢不正 |
유승민 |
1월 |
2019년 |
정자정야 |
문정어공자章 |
좌우명 |
바른미래당
|
6 |
발언6 |
自古皆有死 民無信不立 |
나경원 |
7월 |
2017년 |
무신불립 |
자공문정章 |
좌우명 |
자유한국당
|
7 |
발언7 |
夫子 莞爾而笑曰 割鷄 焉用牛刀 |
이준석 |
2월 |
2020년 |
닭 잡는 데 소 잡는 칼 |
지무성章 |
제17대 대선후보 경선 |
미래통합당
|
Cypher Query
목적
|
예시
|
입력값
|
특정인의 발언 모아보기 |
이낙연의 발언 찾기 |
match (a:Person) where a.name='이낙연' match (a)-[r:says]->(b) return a,r,b
|
특정인이 말한 논어구절 모아보기 |
이낙연이 인용한 논어구절 찾기 |
match (a:Person) where a.name='이낙연' match (a)-[r:says]->(b:Statement) match (b)-[r2:mentions]->(c:Expression) return a,r,b,r2,c
|
특정 정당이 인용한 논어구절 모아보기 |
더불어민주당이 인용한 논어구절 찾기 |
match (a:Party) where a.name='더불어민주당' match (b:Person)-[r:isMemberOf]->(a) match (b)-[r2:says]->(c:Statement) match (c)-[r3:mentions]->(d:Expression) return a,d
|
특정 년도에 나온 발언 모아보기 |
2017년 발언 모아보기 |
match (a:Statement)-[r:isAt]->(b:Month) match (b)-[r2:isIn]->(c) where c.name='2017' return a,r,b,r2,c
|
특정 사건에 대한 발언 모아보기 |
대한민국 제19대 대통령 선거 관련 발언 모아보기 |
match (a:Event) where a.name='대한민국 제19대 대통령 선거' match (b:Statement)-[r:isAbout]->(a) return a,r,b
|
특정 부류의 사건들에 대한 발언 모아보기 |
선거 관련 발언 모아보기 |
match (a:Event) where a.context='선거' match (b:Statement)-[r:isAbout]->(a) return a,r,b
|
특정 구절이 인용된 발언 모아보기 |
무신불립을 인용한 발언 찾기 |
match (a:Expression) where a.name='무신불립' match (b)-[r:mentions]->(a) return b,r,a
|
발언 내용별 인용 횟수 세기 (중복 허용) |
match(a: Statement) - [r: mentions] -> (b:Expression) return a.contentcontext, count(*) as number order by number desc
| |
발언 내용별 인용 표현 가짓수 세기 (중복 제외) |
match(a: Statement) - [r: mentions] -> (b:Expression) return a.contentcontext, count(distinct(b)) as number order by number desc
| |
발언 형식별 인용 횟수 세기 (중복 허용) |
match(a: Statement) - [r: mentions] -> (b:Expression) return a.formcontext, count(*) as number order by number desc
| |
발언 형식별 인용 표현 가짓수 세기 (중복 제외) |
match(a: Statement) - [r: mentions] -> (b:Expression) return a.formcontext, count(distinct(b)) as number order by number desc
| |
발언 내용별 많이 인용된 논어 구절 보기 (동일인에 의한 중복 허용) |
격려 / 각오 / 방향제시에 많이 쓰인 구절 상위 5개 출력하기 |
match(a: Statement) - [r: mentions] -> (b:Expression) where a.contentcontext = '격려 / 각오 / 방향제시' return b.name, count(*) as number order by number desc limit 5
|
발언 내용별 많이 인용된 논어 구절 보기 (동일인에 의한 중복 비허용) |
격려 / 각오 / 방향제시에 많이 쓰인 구절 상위 5개 출력하기 |
match(p:Person) - [s:says] -> (a: Statement) - [r: mentions] -> (b:Expression) where a.contentcontext = '격려 / 각오 / 방향제시' return b.name, count(distinct(p)) as number order by number desc limit 5
|
더불어민주당과 연결된 당이 특정 내용에 대해 말할 때 많이 인용한 논어 구절 보기 |
더불어민주당과 연결된 당이 격려/각오/방향제시 할 때 많이 사용한 논어 구절 그래프로 보기 |
match(d: Party) <- [m: isMemberOf] - (p: Person) - [s: says] -> (a: Statement) - [r: mentions] -> (b:Expression) where a.contentcontext = '격려 / 각오 / 방향제시' and d.name in ['더불어민주당', '새정치민주연합', '민주당', '통합민주당', '대통합민주신당', '열린우리당'] return d, m, p, s, a, r, b
|
더불어민주당과 연결된 당이 특정 내용에 대해 말할 때 많이 인용한 논어 구절 보기 |
더불어민주당과 연결된 당이 격려/각오/방향제시 할 때 많이 사용한 논어 구절 표로 보기 |
match(d: Party) <- [m: isMemberOf] - (p: Person) - [s: says] -> (a: Statement) - [r: mentions] -> (b:Expression) where a.contentcontext = '격려 / 각오 / 방향제시' and d.name in ['더불어민주당', '새정치민주연합', '민주당', '통합민주당', '대통합민주신당', '열린우리당'] return b.name, count(*) as number order by number desc limit 5
|
국민의힘당과 연결된 당이 특정 내용에 대해 말할 때 많이 인용한 논어 구절 보기 |
국민의힘당과 연결된 당이 격려/각오/방향제시 할 때 많이 사용한 논어 구절 그래프로 보기 |
match(d: Party) <- [m: isMemberOf] - (p: Person) - [s: says] -> (a: Statement) - [r: mentions] -> (b:Expression) where a.contentcontext = '격려 / 각오 / 방향제시' and d.name in ['한나라당', '새누리당', '자유한국당', '미래통합당', '국민의힘당', '자유선진당'] return d, m, p, s, a, r, b
|
국민의힘당과 연결된 당이 특정 내용에 대해 말할 때 많이 인용한 논어 구절 보기 |
국민의힘당과 연결된 당이 격려/각오/방향제시 할 때 많이 사용한 논어 구절 표로 보기 |
match(d: Party) <- [m: isMemberOf] - (p: Person) - [s: says] -> (a: Statement) - [r: mentions] -> (b:Expression) where a.contentcontext = '격려 / 각오 / 방향제시' and d.name in ['한나라당', '새누리당', '자유한국당', '미래통합당', '국민의힘당', '자유선진당'] return b.name, count(*) as number order by number desc limit 5
|
탐구 결과
발화 형식별 분석
위에서 서술하였듯이, 각 인용 사례를 나타내는 발언(Statement)노드에는 발화 내용 맥락과 형식 맥락의 두 가지 context 속성이 있다. <발화 형식별 분석>에서는 연설, 즉석 발언, SNS 게시글 등 정치인이 논어를 인용한 발언 형식 맥락에 따라, 인용한 구절에 차이가 있는지를 분석해 보고자 한다.
다음은 각 형식 속성에 해당되는 인용 사례의 수를 보여주는 쿼리 결과이다.
글로써 전달되는 SNS, 논평/보도자료의 논어 인용 횟수가 말로써 전달되는 연설/브리핑/기자회견, 인터뷰 등의 논어 인용 횟수보다 현저히 적은 것을 볼 수 있다.
이 차이를 조금 더 자세히 살펴보고자, SNS와 논평/보도자료에서 많이 인용된 구절 상위 5개를 다음과 같이 출력해 보았다.
다음은 연설/브리핑/기자회견, 즉석 발언, 인터뷰, 기념사/축사에서 많이 인용된 구절 상위 5개이다.
발화 내용별 분석
<발화 내용별 분석>에서는 선거, 격려/각오/방향제시, 행태 비판 등 정치인이 해당 논어 구절을 인용한 내용 맥락에 대한 분석을 해 보고자 한다.
먼저 각 내용 속성에 해당되는 인용 사례의 수를 보여주는 쿼리의 결과는 다음과 같다.
인용 구절의 중복을 허용하지 않고, 각 내용 맥락으로 인용된 구절의 가짓수를 센 쿼리의 결과는 다음과 같다. 예를 들어, "무신불립"이라는 구절이 선거 맥락으로 3번, 행태 비판 맥락으로 2번 사용되었다면 이 쿼리에서는 선거 1번, 행태 비판 1번으로 세어진다. 각 내용 맥락별로 얼마나 다양한 구절들이 인용되었는지 살펴보기 위한 쿼리이다.
격려/각오/방향제시 맥락으로 사용된 구절들
선거 맥락으로 사용된 구절들
정당별 분석
본 팀에서 수집한 변수 중에는 해당 정치인이 발언 시점에 어떤 정당에 소속되어 있었는지를 나타내는 "정당" 변수가 있었다. 이를 이용하여, 정당 별로 인용하는 논어 구절에 차이가 있는지를 살펴봄으로써 각 정당이 추구하는 가치의 차이가 있는지 알아보고자 하였다.
먼저, 정당을 나타내는 Party 노드를 출력하여 정당 간의 관계를 살펴보았다.
위와 같이, 더불어민주당과 연결된 덩어리 하나, 국민의힘과 연결된 덩어리 하나가 있고 나머지 군소정당들이 고립되어 있는 양상이다. 더불어민주당에 연결된 덩어리에 포함된 정당 관계를 잘 살펴보면, 새천년민주연합에서 국민의당이 divergesFrom이라는 relation으로 갈라져 나온 것을 볼 수 있다. 따라서, 국민의당은 새천년민주연합과 같은 계열의 정당이라고 간주할 수 없다고 판단하였다. 앞으로, "Merges" 와 "ChangesNameTo" relation만을 고려하였을 때 더불어민주당과 연결된 덩어리를 "민주당 계열" 정당으로, 국민의힘과 연결된 덩어리를 "국민의힘 계열" 정당으로 지칭하겠다. 이 계열 구분에는 진보 혹은 보수의 가치 판단은 포함되어 있지 않다.
두 정당 계열에 해당하는 정당들을 아래 표에 표시하였다.
민주당계열 | 더불어민주당, 새정치민주연합, 민주당, 통합민주당, 대통합민주신당, 열린우리당 |
국민의힘계열 | 한나라당, 새누리당, 자유한국당, 미래통합당, 국민의힘, 자유선진당 |
먼저, 각 정당이 인용한 논어 구절의 가짓수와 총 인용 횟수는 다음과 같으며, 정당 계열별로 합하면 민주당 계열은 총 인용 횟수 45건에서 인용된 논어 구절은 25종류이고, 국민의힘 계열에서는 총 인용 횟수 59건에서 인용된 논어 구절이 42건으로 큰 차이가 있음을 알 수 있다. 국민의힘 계열에서 비교적 더 다양한 구절을 인용한다.
정당 | 인용 가짓수 | 총 인용 횟수 |
더불어민주당 | 17 | 37 |
무소속 | 14 | 17 |
새누리당 | 11 | 17 |
자유한국당 | 10 | 13 |
한나라당 | 9 | 13 |
미래통합당 | 8 | 8 |
국민의당 | 5 | 6 |
통합민주당 | 4 | 4 |
정의당 | 4 | 4 |
국민의힘 | 3 | 7 |
바른미래당 | 1 | 1 |
대통합민주신당 | 1 | 1 |
대안정치연대 | 1 | 1 |
민생당 | 1 | 1 |
민주당 | 1 | 1 |
평화당 | 1 | 1 |
새천년민주연합 | 1 | 1 |
열린우리당 | 1 | 1 |
자유선진당 | 1 | 1 |
이제, 민주당 계열에서 많이 사용된 구절 상위 5개를 보자.
국민의힘 계열에서 많이 사용된 구절은 다음과 같다.
두 계열 모두에서 "무신불립"이 압도적 1위를 차지하였다. 나머지 2~5위도 비슷하지만, 민주당 계열에서는 "학이시습지 불역열호 - 배우고 때때로 익히면 또한 기쁘지 아니한가"가 순위권에 들었고, 국민의힘 계열에서는 "견위수명-(나라의)위험을 보면 목숨을 바친다"이 순위권에 있다. 또한, (이미지가 너무 많아질 것 같아 따로 스크린샷은 추가하지 않겠지만) 민주당 계열에서는 3회 이상 인용된 구절이 4개뿐이다(무신불립, 학이시습지, 덕불고 필유린, 불환빈 환불균). 이에 비해 국민의힘 계열에서는 3회 이상 인용된 구절이 총 8개이다(위의 5개에 더해서, 교언영색, 학이시습지, 아는 것은 좋아하는 것만 못하고, 좋아하는 것은 즐기는 것만 못하다). 민주당 계열에 비해 국민의힘 계열에서 논어 인용을 좀더 다양하고 많이 하는 것을 알 수 있다.
"무신불립"에 관한 분석
위의 분석을 진행하면서, 정당, 발화 형식, 발화 내용 등에 관계없이 "무신불립"이라는 구절이 정치인들에게 매우 인기 있다는 것을 알게 되었다. 이 구절에 대해서 더욱 심층적으로 분석해 봄으로써 흥미로운 결과를 얻고자 한다.
발화 형식
먼저 무신불립이라는 구절은 어떤 발화 형식으로 인용되었을까?
연설/브리핑/기자회견의 형식이 1위이고, 즉석 발언 사례도 상당히 많다. 특이한 점은 모두 말로 전달되는 형식이라는 것이다. SNS, 논평 등의 글에서는 무신불립이라는 표현이 인용되지 않았다.
발화 내용
이 구절은 어떤 내용에 관련되어 인용되었을까? 발화 내용 맥락을 살펴보면 다음과 같다.
격려/각오/방향제시, 선거, 개인 신변 논란에 관련된 인용 사례가 각 6건으로 가장 많다. 무신불립이라는 구절은 "믿음이 없으면 설 수 없다", 즉 정사에 있어서 신뢰의 중요성을 강조하는 말이다. 정치인들은 이 말을 본인이나 본인이 속한 그룹의 방향을 제시할 때 자주 쓰는 것으로 보인다. 이 구절은 또한 선거철에도 자주 쓰이며, 정치적 논란 상황 중 개인 신변이 논란거리가 되는 상황에서도 많이 쓰인다. 정책적 대립, 사회적 문제 상황에 비해 개인 문제일 때 확연히 많이 쓰이는 것이 드러난다. 정치인들은 어떤 상황에서 개인의 책임을 물을 때 "신뢰"의 문제를 중시하는 것으로 보인다.
정당
각 정당은 무신불립이라는 구절을 어떻게 인용하고 있을까?
먼저 민주당계열의 무신불립 인용을 나타낸 그래프를 보자.
거의 대부분의 인용이 더불어민주당에서 발생하였다. 더민주 이전 통합민주당, 새천년민주연합 등의 민주당 계열 정당에서는 무신불립의 인용 횟수가 총 1건밖에 되지 않는다.
아래는 민주당 계열에서 무신불립이 인용된 발화 내용을 정리한 표이다. 격려/각오/방향제시 맥락이 많다.
다음은 국민의힘 계열의 무신불립 인용을 나타낸 그래프이다. 민주당 계열의 그래프와 비교했을 때 가장 눈에 띄는 차이점은, 민주당 계열의 인용이 현 더불어민주당 하에 집중되어 있는 반면에 국민의힘 계열에서는 한나라당 시절부터 꾸준히 조금씩 "무신불립"을 인용해 왔다는 점이다.
국민의힘 계열에서 무신불립이 인용된 발화 내용을 정리하였다. 민주당 계열과 마찬가지로 선거, 격려/각오/방향제시, 개인 신변 논란에 관련한 인용이 많은 것을 볼 수 있다.
해석
무신불립이라는 구절이 인용된 사례를 살펴보았다. 발화 형식에서, 무신불립은 말로 전달되는 상황에서만 인용된 것으로 나타났다. 말은 글보다 휘발성이 강한 전달 방식이고, 특히 정치인의 주요 발화 형식 중 하나인 연설에서는 자신의 메시지를 강렬하게 전달하기 위한 hook이 필요한 경우가 많다. "무신불립"은 비교적 직관적이고 쉬운 표현이기 때문에, 이 목적을 달성하는 데 적합한 표현으로 보인다. 두 계열 모두, 자신들의 비전과 각오를 나타내는 선거와 격려/각오/방향제시 맥락에서 "무신불립"을 많이 인용하였으며, 개인 비리가 문제가 되는 "개인 신변 논란" 맥락에서도 이 구절을 많이 인용한 것으로 드러났다. 다만 인용 시기에 차이가 있었는데, 국민의힘 계열에서는 한나라당(1997~) 시절부터 꾸준히 인용을 해 온 반면 민주당 계열에서는 더불어민주당(2015~)에 대부분의 인용 사례가 집중되어 있었다. 최근 더불어민주당 체제 하에서 "신뢰"의 가치가 더욱 중요해진 것이라고 해석될 수도 있고, 혹은 오히려 정치권에 대한 신뢰가 떨어진 상황이기 때문에 역설적으로 신뢰에 관한 구절이 많이 인용되는 것이라고 해석될 수도 있겠다.
==결론 및 토의==