코드 확인하기: https://github.com/ilotoki0804/who-is-debate-winner
침펄토론을 재밌게 즐긴 저도 자연히 토론의 진짜 결과가 궁금해졌습니다. 침펄토론을 처음 봤을 당시에는 제 능력이 부족하여 방법이 없었지만 최근에 프로그래밍을 배우기 시작하면서 저도 가능할 것이라 생각이 들었습니다.
개발 히스토리
(개발이 어떻게 이루어졌는지에 큰 관심이 없으시다면 아래로 내려서 결과를 먼저 봐 주세요.)
우선 필요했던 것은 OCR(글자 판독기)입니다. 제가 직접 수기로 하나하나 카운트하는 것은 비효율적일 것이기에 OCR을 사용해야 했습니다.
처음으로 고려했던 것은 Tesseract였습니다. 하지만 Tesseract는 한국어 판독률이 그리 좋지 못했기 때문에 다른 대안을 찾아야 했습니다.
검색 결과 찾았던 것이 EasyOCR이었는데, 꽤나 잘 동작해주는 것을 확인할 수 있었습니다. 따라서 이 프로젝트에 사용하기로 결정했습니다.
그 다음은 비디오 처리입니다. 침펄토론의 채팅 기록이(제가 아는 한) 텍스트 파일의 형태로 남아 있는 것은 없기에 결국 비디오를 직접 분석해야 했습니다. OpenCV에 비디오 분석 툴이 있었기에 이를 사용했습니다. 비디오 분석을 어떻게 할 지 여러 고민이 있었지만 결국 간단하게 50프레임(5/6초)에 한 번씩 채팅창을 저장하고, 중복된 사진이 있을 경우에 제거하는 방식을 사용했습니다.
투표 수 추출 알고리즘도 여러가지를 고민했으나 간단한 모델을 채택했습니다.
결과
분석 결과는 다음과 같습니다. 참고로 승복하면서 끝났거나 무승부가 된 판은 시청자 투표가 없었기 때문에 분석 결과가 없습니다.

딱복 대 물복의 투표 결과는 침착맨 52표(19%) 대 주호민 215(81%)표로 주호민이 163표(61%p) 앞서 승리입니다. 이는 기존에 침착맨을 우승으로 집계하였던 것과 상이합니다.
인어 대 어인의 투표 결과는 침착맨 196표(38%) 대 주호민 323(62%)표로 주호민이 127표(24%p) 앞서 승리입니다. 이는 기존에 주호민을 우승으로 집계하였던 것과 일치합니다.
단팥 대 야채의 투표 결과는 침착맨 229표(35%) 대 주호민 417(65%)표로 주호민이 188표(29%p) 앞서 승리입니다. 이는 기존에 주호민을 우승으로 집계하였던 것과 일치합니다.
용의 꼬리 대 뱀의 머리의 투표 결과는 침착맨 250표(47%) 대 주호민 284(53%)표로 주호민이 34표(6%p) 앞서 승리입니다. 이는 기존에 침착맨을 우승으로 집계하였던 것과 상이합니다.
가위 대 바위 대 보의 투표 결과는 침착맨 71표(20%) 대 주호민 138(38%)표 대 김풍 153(42%)표로 김풍이 15표(4%p) 앞서 승리입니다. 이는 김풍을 우승으로 집계하였던 것과 일치합니다.
기존 침착맨 총 3회 우승, 주호민 총 5회 우승, 김풍 총 1회 우승, 무승부 1회(합의 1회)이었지만 침착맨 총 1회 우승, 주호민 총 7회 우승, 김풍 총 1회 우승, 무승부 1회로 변경되었습니다. 즉, 주호민 논객이 10번의 토론 중 7번 우승을 거머쥐는 엄청난 성과를 보였다는 점입니다. 물론 박빙이었던 토론 2회는 오차 범위 내라고도 할 수 있어서 확언하긴 힘들지만 어쨌든 놀라운 성적이 아닐 수 없습니다.
특히 당시 부정 집계가 있었던 물복 대 딱복은 무려 61%p차로 주호민이 승리하였던 것을 확인할 수 있었습니다.
전체 내용은 다음에 더욱 자세히 설명되어 있습니다: ilotoki0804/who-is-debate-winner (github.com)
이번 분석을 하면서 새롭게 알게 된 것도 있었고 무엇보다도 재미있었습니다.





