2018 프로야구 기사로 본 이모저모
탐색적 데이터 분석(EDA)
Dr.Kevin 12/20/2018
2018년 프로야구는 SK 와이번즈의 우승으로 막을 내렸습니다. 그저 TV로만 가끔 관심 있는 경기를 시청하는 미지근한 팬의 한 명으로서, 올해 많은 고생을 한 프로야구 관계자분들께 감사하다는 말씀을 드리고 싶습니다.
평소 프로야구 기사와 댓글을 즐겨 읽기 때문에 그 안에 담긴 공통된 생각을 정리해보고 싶었습니다. 그동안 시간이 없어서 엄두를 내지 못했는데요. 이번에 관련 기사를 모두 모아 간단한 분석 몇 가지를 수행해봤습니다. 전체 작업 프로세스는 아래와 같습니다.
데이터 수집 프로세스 (전처리 과정 포함)
-
네이버 프로야구 최신뉴스 웹페이지에서 일자별로 등록된 뉴스의 링크를 수집합니다. 이 과정에서
뉴스등록일자
,(네이버가 부여한) 언론사ID
,(네이버가 부여한) 뉴스ID
,뉴스제목
,링크(url)
,언론사명
등을 수집할 수 있습니다. 2018년 1월 1일부터 11월 30일까지 수집한 건수는 49,076건이었습니다만 이 숫자는 매일 바뀝니다. 그리고 무엇보다 같은 뉴스가 서로 다른 날짜에 등록되기도 합니다. 그래서 링크로 중복을 제거하니 42,390건으로 줄었습니다. -
프로야구 뉴스 링크(url)를 모두 모았으면 해당 뉴스별로 본문, 반응, 댓글 등 3가지를 나눠서 수집할 수 있습니다. 본문을 수집하면 정규식을 활용하여 해당 기사를 작성한
기자의 이름
과이메일
을 추출할 수 있는데요. 문제는 언론사별로 양식이 제각각이라 깔끔한 정규식으로는 해결이 되지 않아 지저분한 방식을 모두 동원해야 했습니다. -
다음으로 반응 데이터를 수집하면 다음과 같은 5가지 숫자를 얻을 수 있습니다.
좋아요
,슬퍼요
,화나요
,팬이에요(힘내요)
,후속기사(원해요)
, 그리고 이 5가지 숫자를 더한총반응
을 계산합니다. 이 반응 값을 기준으로 언론사별, 기자별, 구단별 다양한 현황을 살펴볼 수 있었습니다. -
마지막으로 댓글 데이터를 수집할 수 있는데요. 댓글을 모두 모으니 5백만 건이 넘었습니다. 뉴스별로 댓글의 숫자를 계산했습니다. 댓글은 따로 텍스트 마이닝을 하려고 했는데요. 이번 발표에는 포함시키지 못했습니다. 일단 데이터량이 방대하기도 했고, 시간도 부족했습니다. 나중에 12월 뉴스 데이터까지 추가로 수집한 다음에 시간이 있으면 꼭 정리해보도록 하겠습니다.
-
이상의 4가지 데이터셋을 수집한 다음 하나의 커다란 마스터 데이터셋을 만들었습니다.[1] 마스터 데이터셋에는 링크와 뉴스 제목, 언론사명, 기자명, 이메일, 반응 데이터, 댓글 수, 그리고 관련 선수와 구단 등의 컬럼으로 구성되어 있습니다. 직접 분석을 해보시기 바랍니다.
2018 프로야구 기사로 살펴본 이모저모
지금부터 마스터 데이터를 가지고 여러 가지 그래프를 그려볼 예정입니다. 데이터를 먼저 불러와야 되겠죠?
# 마스터 데이터를 읽습니다.
news <- readRDS(file = '../data/naver_baseball_news_2018.RDS')
# 데이터의 구조를 확인합니다.
str(object = news)
## 'data.frame': 42390 obs. of 18 variables:
## $ oid : chr "001" "001" "001" "001" ...
## $ aid : chr "0009775779" "0009783524" "0009783968" "0009785759" ...
## $ url : chr "https://sports.news.naver.com/kbaseball/news/read.nhn?oid=001&aid=0009775779" "https://sports.news.naver.com/kbaseball/news/read.nhn?oid=001&aid=0009783524" "https://sports.news.naver.com/kbaseball/news/read.nhn?oid=001&aid=0009783968" "https://sports.news.naver.com/kbaseball/news/read.nhn?oid=001&aid=0009785759" ...
## $ date : chr "20180102" "20180101" "20180101" "20180103" ...
## $ title : chr "kt 류택현·신명철·고영민 1군 코치로…최영필 합류" "정운찬 KBO 총재 시대…한국 야구 어떻게 달라질까" "정운찬 KBO총재 신년사 \"야구가 삶에 '힐링'이 될 수 있도록\"" "프로야구 스프링캠프 'D-30'…2018년 우승 향한 '위대한 도전'" ...
## $ press : chr "연합뉴스" "연합뉴스" "연합뉴스" "연합뉴스" ...
## $ email : chr "abbie@yna.co.kr" "cany9900@yna.co.kr" "hosu1@yna.co.kr" "cany9900@yna.co.kr" ...
## $ rname : chr "최인영" "장현구" "배진남" "임헌정" ...
## $ reporter: chr "연합뉴스\n최인영" "연합뉴스\n장현구" "연합뉴스\n배진남" "연합뉴스\n임헌정" ...
## $ angry : num 2 13 21 5 96 3 0 2 0 12 ...
## $ fan : num 3 0 1 13 26 4 0 0 0 1 ...
## $ like : num 10 3 15 52 112 12 0 6 1 3 ...
## $ sad : num 0 0 0 3 4 1 0 0 0 0 ...
## $ want : num 1 1 0 5 7 2 0 0 0 4 ...
## $ resp : num 16 17 37 78 245 22 0 8 1 20 ...
## $ comt : num 27 42 78 84 532 55 0 7 8 27 ...
## $ name : chr NA NA NA NA ...
## $ team : chr "KT" NA NA NA ...
제가 불러온 마스터 데이터는 42390
행, 18
열을 갖는 데이터 프레임입니다.
다음으로 막대그래프에 적용할 나의 테마를 설정하면 준비가 완료됩니다.
# 나의 테마를 설정합니다.
mytheme <- theme(
plot.title = element_text(size = 14, face = 'bold', hjust = 0.5),
axis.title.x = element_text(color = 'blue', size = 12, face = 'bold'),
axis.title.y = element_text(color = '#993333', size = 12, face = 'bold'),
axis.text.x = element_text(family = 'NanumGothic', size = 10, face = 'bold'),
axis.text.y = element_text(family = 'NanumGothic', size = 10, face = 'bold'),
axis.ticks.length = unit(0, 'cm'),
panel.background = element_blank(),
panel.grid = element_blank() )
조건별 뉴스의 건수와 비중
-
전체 뉴스 중 언론사 및 기자별 건수와 비중을 확인합니다. (올해 누가 열일했는지 알 수 있겠죠?)
-
상위 언론사에 소속된 기자별로 건수와 비중을 확인합니다.
-
뉴스 제목에 언급된 구단명과 선수명을 기준으로 가장 많이 언급된 구단과 선수를 확인합니다. (어떤 선수가 가장 많은 관심을 받았을까요?)
1. 언론사별 뉴스 기사 건수와 비중
# 필요한 패키지를 불러옵니다.
library(tidyverse)
library(magrittr)
library(knitr)
지금부터 막대그래프를 그리는 사용자 정의 함수를 몇 가지 소개해드리겠습니다. 제가 부족한 부분이 많아서 함수 모양이 예쁘지 않으니 양해해주시기 바랍니다. 함수를 보시고 스스로 응용해서 사용할 수 있는 아이디어를 얻게 되신다면 기쁠 것 같습니다. 아래 함수는 최대 20개 언론사 또는 기자에 대해 작성한 뉴스 건수별로 내림차순 정렬을 한 다음 상위 20건만 보이도록 한 것입니다.
# 데이터프레임의 변수를 설정하면 해당 변수에 속한 값으로 막대그래프를 그립니다.
# sub 인자에는 그래프 제목에 들어갈 부제를 넣어주면 됩니다.
bargraphVar <- function(var, sub) {
# var에 할당된 문자열을 이용하여 R객체의 값을 선택할 수 있도록 설정합니다.
var <- str_c('news', var, sep = '$') %>% parse(text = .) %>% eval()
# 지정된 컬럼으로 빈도수를 갖는 데이터프레임을 생성합니다.
tbl <- var %>%
table() %>%
sort(decreasing = TRUE) %>%
as.data.frame() %>%
set_colnames(value = c('name', 'freq'))
# 빈도수에 콤마를 추가합니다.
tbl$freqn <- tbl$freq %>% format(big.mark = ',')
# 전체 건수 대비 비중 컬럼을 생성합니다.
tbl$pcnt <- (tbl$freq / sum(x = tbl$freq) * 100) %>%
sprintf(fmt = '%.2f', x = .) %>%
str_pad(width = 4, side = 'right', pad = '0')
# 막대그래프로 그립니다.
ggplot(
data = head(x = tbl, n = 20L),
mapping = aes(
x = reorder(x = name, X = freq),
y = freq)) +
geom_bar(
stat = 'identity',
fill = c(rep(x = 'gray80', times = 15),
rep(x = 'gray30', times = 5))) +
geom_text(
mapping = aes(label = str_c(freqn, ' (', pcnt, '%)')),
hjust = -0.1,
size = 4) +
labs(
x = '',
y = '뉴스 건수 (비중)',
title = str_c('2018년 프로야구 기사 빈도수 (', sub, ')')) +
scale_y_continuous(limits = c(0, max(x = tbl$freq) * 1.2)) +
coord_flip() +
mytheme +
theme(axis.text.x = element_blank() )
}
# 언론사별로 뉴스 건수와 비중을 확인합니다.
bargraphVar(var = 'press', sub = '언론사')
OSEN이라는 언론사의 7302
건의 기사가 네이버에 소개되었습니다. 전체 프로야구 기사의 17.23%의 비중을 차지하는 군요. 그리고 각 4천여 건의 기사가 스포츠조선과 스포티비뉴스에서 작성되었습니다.
# 기자별로 뉴스 건수와 비중을 확인합니다.
bargraphVar(var = 'reporter', sub = '기자')
기자 중에서는 OSEN의 이상학 기자가 근소한 차이로 1위를 차지했습니다. 그 뒤를 스포티비뉴스의 한희재 기자가 바짝 따라붙었네요. 11개월 동안 1400여 건의 기사를 작성했는데 그렇다면 하루에 4.2건 정도를 기사를 (주말도 없이) 매일 작성한 것입니다. 대단합니다!!
2. 뉴스 비중 상위 언론사별 소속 기자들이 작성한 뉴스의 건수와 비중
실력이 뛰어난 분석가는 같은 코드를 중복하지 않는다고 하지만 저는 아직 갈길이 멉니다. 바쁘다는 핑계로 앞서 작성한 사용자 정의 함수를 복사해서 일부만 수정했습니다. 예컨데 언론사별로 기자를 선택하는 부분이 다르고, 해당 언론사에서 프로야구 기사를 작성한 기자의 수가 최대 20명이 되도록 설정한 것입니다.
# 언론사별 기자가 작성한 뉴스의 건수와 비중을 확인하는 사용자 정의 함수를 생성합니다.
bargraphPress <- function(press) {
# var에 할당된 문자열을 이용하여 R객체의 값을 선택할 수 있도록 설정합니다.
var <- news$rname[news$press == press]
# 지정된 컬럼으로 빈도수를 갖는 데이터프레임을 생성합니다.
tbl <- var %>%
table() %>%
sort(decreasing = TRUE) %>%
as.data.frame() %>%
set_colnames(value = c('name', 'freq'))
# 기자의 수가 최대 20명이 되도록 설정합니다.
n <- min(nrow(x = tbl), 20)
# 빈도수에 콤마를 추가합니다.
tbl$freqn <- tbl$freq %>% format(big.mark = ',')
# 전체 건수 대비 비중 컬럼을 생성합니다.
tbl$pcnt <- (tbl$freq / sum(x = tbl$freq) * 100) %>%
sprintf(fmt = '%.2f', x = .) %>%
str_pad(width = 4, side = 'right', pad = '0')
# 막대그래프로 그립니다.
ggplot(
data = head(x = tbl, n = n),
mapping = aes(
x = reorder(x = name, X = freq),
y = freq)) +
geom_bar(
stat = 'identity',
fill = c(rep(x = 'gray80', times = n - 5),
rep(x = 'gray30', times = 5))) +
geom_text(
mapping = aes(label = str_c(freqn, ' (', pcnt, '%)')),
hjust = -0.1,
size = 4) +
labs(
x = '',
y = '뉴스 건수 (비중)',
title = str_c('2018년 프로야구 기사 빈도수 (', press, ')')) +
scale_y_continuous(limits = c(0, max(x = tbl$freq) * 1.2)) +
coord_flip() +
mytheme +
theme(axis.text.x = element_blank() )
}
# 1위 언론사에는 어떤 기자들이 활동했을까요?
bargraphPress(press = 'OSEN')
# 2위와 3위 언론사도 한 번 살펴보겠습니다.
bargraphPress(press = '스포츠조선')
bargraphPress(press = '스포티비뉴스')
# 마지막으로 제가 가장 관심 있는 기자가 속한 언론사입니다.
bargraphPress(press = '국민일보')
역시 국민일보의 에이스는 김영석 기자, 일명 영석이형
이었습니다.
혹시 이밖에 다른 언론사 현황이 궁금하시면 직접 해보시기 바랍니다.
3. 뉴스 제목에서 언급된 구단 및 선수별 건수
# 뉴스 제목에서 언급된 구단별 뉴스 건수를 확인합니다. (중복 있음)
mostTeam <- news$team %>%
str_split(pattern = ',') %>%
unlist() %>%
table() %>%
sort(decreasing = TRUE) %>%
as.data.frame(stringsAsFactors = FALSE) %>%
set_colnames(c('구분', '빈도'))
kable(x = mostTeam, caption = '뉴스 제목에 가장 많이 언급된 구단 (역순)')
구분 | 빈도 |
---|---|
한화 | 5424 |
LG | 5231 |
두산 | 5181 |
롯데 | 4739 |
KIA | 4429 |
넥센 | 3904 |
SK | 3703 |
삼성 | 3308 |
NC | 2201 |
KT | 2153 |
올 한 해 가장 많은 기사로 언급된 구단은 바로 한화 이글즈였습니다. 가을야구에 진출한 것이 11년만이어서 일까요? 아무튼 대단한 사랑을 받았습니다.
# 뉴스 제목에서 언급된 선수별 뉴스 건수를 확인합니다. (중복 있음)
mostName <- news$name %>%
str_split(pattern = ',') %>%
unlist() %>%
table() %>%
sort(decreasing = TRUE) %>%
as.data.frame(stringsAsFactors = FALSE) %>%
set_colnames(c('구분', '빈도'))
kable(x = mostName[1:10, ], caption = '뉴스 제목에 가장 많이 언급된 선수 (역순)')
구분 | 빈도 |
---|---|
박병호 | 795 |
김재환 | 572 |
양현종 | 567 |
김현수 | 565 |
김광현 | 518 |
오지환 | 512 |
이정후 | 471 |
이대호 | 451 |
호잉 | 451 |
양의지 | 450 |
가장 많이 언급된 선수는 넥센 히어로즈의 박병호 선수였습니다. 제 예상과 달라서 조금 당황스러웠어요.
뉴스 기사의 반응 항목별 현황
이번에는 각 뉴스 기사마다 좋아요
, 슬퍼요
, 화나요
, 팬이에요(힘내요)
, 후속기사(원해요)
등 다섯 가지 항목에 대해 팬들의 반응 데이터로 여러 가지를 살펴보겠습니다. 순서는 아래와 같습니다.
-
각 항목별 가장 높은 반응을 받은 상위 기사 제목을 출력해봅니다.
-
언론사 및 기자별로 작성한 뉴스 기사에 대한 평균 반응값을 확인하고 특징을 연구해봅니다. (이걸로 어워드를 드릴 수도)
-
구단 및 선수별로 관련 기사의 평균 반응을 확인합니다.
-
구단별 관련 기사 중 가장 높은 반응을 받은 기사의 제목을 출력해봅니다.
1. 각 항목별로 가장 높은 반응을 받은 기사 목록
# 반응 항목별로 가장 인기 있었던 기사를 확인하는 사용자 정의 함수를 생성합니다.
checkResponse <- function(data, resp, top = 5, cap) {
# data와 resp 인자를 문자로 받아 R 객체의 값을 불러오도록 설정합니다.
dtn <- deparse(expr = substitute(expr = data))
var <- str_c(dtn, resp, sep = '$') %>% parse(text = .) %>% eval()
# 가장 많은 표를 얻은 기사만 추출합니다.
cols <- c('date', 'title', 'press', 'rname', 'resp', resp)
article <- data[order(var, decreasing = TRUE), cols] %>% head(n = top)
# 상위 기사를 출력합니다.
kable(x = article, row.names = FALSE, caption = cap)
}
# '좋아요'를 가장 많이 받은 기사 목록입니다.
checkResponse(data = news, resp = 'like', top = 10, cap = '좋아요를 가장 많이 받은 기사 목록')
date | title | press | rname | resp | like |
---|---|---|---|---|---|
20180826 | [AG] ‘실업 투수들에 1득점’ 한국, 대만전 충격패…金 적신호 | OSEN | 이상학 | 6940 | 4900 |
20181113 | ‘한동민 결승포+김광현 SV’ SK, 두산 꺾고 8년 만에 KS 우승! | 엑스포츠뉴스 | 조은혜 | 5303 | 4338 |
20180902 | ‘양현종 호투-박병호 홈런’ 한국, 일본 꺾고 3회 연속 金! [AG] | OSEN | 이상학 | 9213 | 3387 |
20180607 | 두산 구단 발표 “이영하, 승부조작 제안받고 곧바로 신고” | 스포츠조선 | 허상욱 | 3962 | 3317 |
20180914 | 선동열 야구감독 ‘청탁금지법’ 위반 혐의 권익위 신고당해 | 뉴스1 | 황기선 | 4351 | 3174 |
20181115 | ‘KS 분패 후…’ 나 홀로 남아 팬들에 사인해 준 두산 선수 | 스타뉴스 | 김우종 | 3908 | 3125 |
20180523 | ‘송광민 끝내기’ 한화의 재역전 드라마, 두산 꺾고 단독 2위 | 엑스포츠뉴스 | 조은혜 | 2909 | 2308 |
20181103 | [PO 5차전]‘한동민 10회말 끝내기홈런’ SK, 혈투 끝 넥센 제압…6년만에 KS 진출 | 마이데일리 | 김진성 | 2854 | 2156 |
20180506 | “사인해주세요” 외면 NO… 전부 다 해준 선수 ‘훈훈’ | 스타뉴스 | 김우종 | 2444 | 2043 |
20180828 | ‘대만이 이겼는데 한국사람들은 고맙다니?’ 어리둥절한 대만 언론 | OSEN | 서정환 | 2673 | 2000 |
놀랍게도 아시안게임 대만전 충격패 기사가 가장 많은 ‘좋아요’를 받았습니다. 당시 분위기로 짐작하면 충분히 가능할 일이죠.
# '슬퍼요'를 가장 많이 받은 기사 목록입니다.
checkResponse(data = news, resp = 'sad', top = 10, cap = '슬퍼요를 가장 많이 받은 기사 목록')
date | title | press | rname | resp | sad |
---|---|---|---|---|---|
20181128 | [이영미 人터뷰] 로저 버나디나, “다시 KBO리그에서 뛰고 싶다” | 이영미 칼럼 | 이영미 | 3134 | 2208 |
20180604 | NC 김경문 감독 사퇴, 유영준 단장 감독대행 | 마이데일리 | 윤욱재 | 2372 | 1562 |
20181014 | 힐만 감독, SK 재계약 고사… PS 끝으로 떠난다 | OSEN | 김태우 | 1803 | 1462 |
20181029 | “팬 여러분 부탁드립니다” 임창용, 진실공방 속 심경고백 | 스포츠동아 | 장은상 | 2381 | 1419 |
20180925 | “롯데, 이러면 가을야구 TV로 본다?” 연이은 불펜 방화 | 국민일보 | 김영석 | 1456 | 1304 |
20180619 | “돌아가기 싫다” 로저스 개인 방송에서 눈물 | 스포티비뉴스 | 김건일 | 1204 | 922 |
20181125 | ‘SK 작별’ 정경배 코치가 말한 힐만·최정·로맥, 그리고 심경 [일문일답] | 스타뉴스 | 박수진 | 1103 | 902 |
20180606 | ‘뼈가 조각나고도..’ 2루로 공 던진 로저스, 그리고 울었다 | 스타뉴스 | 김우종 | 1044 | 876 |
20181109 | 넥센 브리검, 동료들도 몰랐던 ‘딸을 잃은 통곡의 사연’ | 스포티비뉴스 | 고유라 | 956 | 843 |
20180714 | 한화 떠나는 휠러의 미련, 타팀 이적 기다린다 | OSEN | 이상학 | 995 | 811 |
전 KIA 소속 외국인 타자였던 버나디나와 인터뷰한 기사가 가장 많은 ‘슬퍼요’를 받았습니다. 호타준족에 쇼맨쉽도 좋아서 그런지 많은 KIA 팬들이 아쉬움을 달래야 했습니다.
# '화나요'를 가장 많이 받은 기사 목록입니다.
checkResponse(data = news, resp = 'angry', top = 10, cap = '화나요를 가장 많이 받은 기사 목록')
date | title | press | rname | resp | angry |
---|---|---|---|---|---|
20180902 | ‘양현종 호투-박병호 홈런’ 한국, 일본 꺾고 3회 연속 金! [AG] | OSEN | 이상학 | 9213 | 5435 |
20181117 | 선동렬 사퇴시킨 손혜원 의원, 속 시원하십니까? | OSEN | 이상학 | 6179 | 5429 |
20180902 | 1년 전 오지환의 꿈과 선택, 이토록 비난 받을 일인가 | OSEN | 한용섭 | 6579 | 4703 |
20181119 | 두산 김재환, 금지약물 논란 딛고 최우수 선수 ‘우뚝’ | 마이데일리 | 이후광 | 4488 | 3742 |
20180904 | 인민재판 받은 오지환, 야구인들의 안타까운 시선 [AG] | OSEN | 이상학 | 4122 | 3681 |
20180902 | ‘금메달’ 오지환·박해민, 아시안게임은 해피엔딩 | 마이데일리 | 김진성 | 4334 | 3569 |
20181026 | KIA-임창용 방출의 미스테리 | 일간스포츠 | 이형석 | 4323 | 3532 |
20180905 | 오지환 논란에 靑청원까지…“병역 혜택 취소하라” “오지환법 제정 촉구” | 동아일보 | 김민성 | 3884 | 3229 |
20180114 | 안우진 “야구 잘하겠다”…뉘우침 없는 삐뚤어진 인식의 씁쓸함 | MK스포츠 | 한이정 | 3709 | 3195 |
20180125 | [공식발표] 넥센, ‘학교폭력’ 안우진에 ‘50G 출장정지’ 자체 중징계 | 스타뉴스 | 김우종 | 3267 | 2961 |
아시안게임 금메달 소식이 가장 많은 ‘화나요’를 받았다니 정말 슬프네요. 다시는 이런 일이 없어야 하겠습니다.
# '팬이에요'를 가장 많이 받은 기사 목록입니다.
checkResponse(data = news, resp = 'fan', top = 10, cap = '팬이에요(힘내요)를 가장 많이 받은 기사 목록')
date | title | press | rname | resp | fan |
---|---|---|---|---|---|
20181113 | ‘한동민 결승포+김광현 SV’ SK, 두산 꺾고 8년 만에 KS 우승! | 엑스포츠뉴스 | 조은혜 | 5303 | 725 |
20181104 | 엑소 찬열, 한국시리즈 2차전 시구…애국가는 우주소녀 연정 | 연합뉴스 | 하남직 | 2291 | 479 |
20180523 | ‘화요일의 남자’ 호잉 “부모님이 받은 박수, 나도 감격” | 연합뉴스 | 이진욱 | 2529 | 454 |
20181115 | ‘KS 분패 후…’ 나 홀로 남아 팬들에 사인해 준 두산 선수 | 스타뉴스 | 김우종 | 3908 | 453 |
20181104 | [KS1] ‘한동민-박정권 투런 합창’ SK, 두산에 7-3 역전승…기선제압 | OSEN | 한용섭 | 2511 | 423 |
20180607 | 두산 구단 발표 “이영하, 승부조작 제안받고 곧바로 신고” | 스포츠조선 | 허상욱 | 3962 | 422 |
20181111 | [오!쎈 현장] “힐만!” 연호한 SK팬들, 가슴 뜨거웠던 굿바이 | OSEN | 서정환 | 2240 | 419 |
20180523 | ‘송광민 끝내기’ 한화의 재역전 드라마, 두산 꺾고 단독 2위 | 엑스포츠뉴스 | 조은혜 | 2909 | 416 |
20181120 | ‘삼성 밖에 모르는 바보’ 박한이, 영원한 삼성맨 택했다 | OSEN | 손찬익 | 2530 | 415 |
20181108 | ‘켈리 완벽투+홈런 3방’ SK, 두산에 7-2 승.. 2승 1패 리드 [KS3] | 스타뉴스 | 심혜진 | 2291 | 395 |
2018년 한국시리즈 우승은 SK 와이번즈가 차지했다는 뉴스가 ‘팬이에요’를 가장 많이 받았습니다. 나중에 보시면 알겠지만 샤이 SK팬이 커밍아웃을 한 것 같다는 생각이 드는 군요. ㅎㅎ
# '후속기사 원해요'를 가장 많이 받은 기사 목록입니다.
checkResponse(data = news, resp = 'want', top = 10, cap = '후속기사(원해요)를 가장 많이 받은 기사 목록')
date | title | press | rname | resp | want |
---|---|---|---|---|---|
20180930 | “오지환 사태, 책임져야 할 때” ‘감독’ 선동열 결단 필요 | 국민일보 | 김영석 | 4326 | 3337 |
20181008 | “오지환 회의록 조작 혹은 실수?” 게임수·홈런순위 등 틀려 | 국민일보 | 김영석 | 2514 | 593 |
20181008 | “LG 코치, ‘오지환 선발’ 절충했다?” 직접 나와 설명할 때 | 국민일보 | 김영석 | 1762 | 566 |
20180926 | “이정후 부활…1위 ‘3리’차로 접근” 7게임, 3할7푼5리 | 국민일보 | 김영석 | 634 | 482 |
20181026 | KIA-임창용 방출의 미스테리 | 일간스포츠 | 이형석 | 4323 | 450 |
20181026 | KIA 임창용 방출에 팬들 ‘분노’…”헌신이 배신으로” | 뉴스1 | 남성진 | 1859 | 341 |
20180923 | “‘6연패’ LG, QS 1회…볼넷 남발” 차우찬, 75개 볼넷 1위 | 국민일보 | 김영석 | 510 | 290 |
20181007 | “오지환, 유격수 2위…말이 되나?” 삼진·실책 ‘1위’ 빠져 있어 | 국민일보 | 김영석 | 2263 | 284 |
20181005 | “비공개 전제 ‘오지환’ 자료 제출, 말이 되나?” 선동열, 전면 공개해야 | 국민일보 | 김영석 | 2545 | 276 |
20181001 | “경기흐름 넘겨준 오지환 실책” 24개 압도적 1위 | 국민일보 | 김영석 | 2305 | 271 |
올해 프로야구 뉴스를 뜨겁게 달구었던 선수, 누군지 아시죠? 예상대로 줄줄이 사탕입니다. 정말 안타깝습니다.
2. 언론사 및 기자별 뉴스 평균 반응 확인
언론사 및 기자별로 작성한 뉴스의 평균 반응 데이터를 할당하면 해당 항목에 대해 막대그래프를 출력하는 사용자 정의 함수를 만듭니다. 이 과정을 통해 어떤 언론사에서 또는 어떤 기자가 작성한 뉴스가 평균적으로 얼마나 많은 좋아요
나 화나요
를 받았는지 확인할 수 있습니다. 그러니까 일종의 어그로를 끄는 언론사와 기자가 누군지 가늠해볼 수 있다고 할 것입니다. 이 부분은 왠지 떨리네요.
# 뉴스 평균 반응 데이터로 막대그래프를 그리는 사용자 정의 함수를 생성합니다.
bargraphResp <- function(data, resp, top = 10) {
# data와 resp 인자를 문자로 받아 R 객체의 값을 불러오도록 설정합니다.
dtn <- deparse(expr = substitute(expr = data))
var <- eval(expr = parse(text = str_c(dtn, resp, sep = '$')))
# 반응 항목의 위치를 지정합니다.
loc <- which(x = colnames(x = data) == resp)
# 조건 내림차순으로 정렬하고 필요 컬럼만 추출합니다.
df <- data[order(x = var, decreasing = TRUE), c(1, loc)] %>%
head(n = top)
# 컬럼명을 변경합니다.
colnames(x = df) <- c('구분' ,'평균')
# 막대그래프에 출력할 컬럼을 추가합니다.
df$출력 <- df$평균 %>%
sprintf(fmt = '%.1f', x = .) %>%
str_pad(width = 3, side = 'right', pad = '0')
# 막대그래프를 그립니다.
ggplot(
data = df,
mapping = aes(
x = reorder(x = 구분, X = -평균),
y = 평균)) +
geom_col(
fill = c(rep(x = 'gray30', times = 5),
rep(x = 'gray80', times = top - 5))) +
geom_text(
mapping = aes(label = 출력),
vjust = -0.5,
size = 4) +
labs(
x = '',
y = '',
title = str_c('관련 기사 평균 반응수 (', resp, ')')) +
mytheme
}
# 언론사별로 뉴스 기사 평균 반응을 구합니다.
pressResp <- news %>%
dplyr::rename(언론사 = press) %>%
group_by(언론사) %>%
dplyr::summarise(
기사건수 = n(),
총반응 = sum(x = resp),
좋아요 = sum(x = like),
슬퍼요 = sum(x = sad),
화나요 = sum(x = angry),
힘내요 = sum(x = fan),
원해요 = sum(x = want)) %>%
dplyr::filter(기사건수 >= 100) %>%
mutate(
총반응 = round(x = 총반응 / 기사건수, digits = 2L),
좋아요 = round(x = 좋아요 / 기사건수, digits = 2L),
슬퍼요 = round(x = 슬퍼요 / 기사건수, digits = 2L),
화나요 = round(x = 화나요 / 기사건수, digits = 2L),
힘내요 = round(x = 힘내요 / 기사건수, digits = 2L),
원해요 = round(x = 원해요 / 기사건수, digits = 2L))
# '좋아요' 평균 반응이 가장 높은 언론사는 어디일까요?
bargraphResp(data = pressResp, resp = '좋아요')
# 슬픈 기사는 어떤 언론사에서 가장 많이 작성했을까요?
bargraphResp(data = pressResp, resp = '슬퍼요')
# 프로야구 팬들을 자주 화나게 한 언론사는 어디일가요?
bargraphResp(data = pressResp, resp = '화나요')
# '팬이에요'라는 응원을 가장 많이 받은 언론사는?
bargraphResp(data = pressResp, resp = '힘내요')
# 마지막으로 '후속기사'를 원하도록 궁금증을 유발한 언론사를 확인합니다.
bargraphResp(data = pressResp, resp = '원해요')
국민일보가 각 항목에서 상위에 진입해 있는 경우가 많네요. 특히 ‘후속기사 원해요’는 압도적이네요. 혹시 영석이형
때문인가요?
# 기자별로 뉴스 기사 평균 반응을 구합니다.
reprtResp <- news %>%
dplyr::rename(기자 = reporter) %>%
group_by(기자) %>%
dplyr::summarise(
기사건수 = n(),
총반응 = sum(x = resp),
좋아요 = sum(x = like),
슬퍼요 = sum(x = sad),
화나요 = sum(x = angry),
힘내요 = sum(x = fan),
원해요 = sum(x = want)) %>%
dplyr::filter(기사건수 >= 100) %>%
mutate(
총반응 = round(x = 총반응 / 기사건수, digits = 2L),
좋아요 = round(x = 좋아요 / 기사건수, digits = 2L),
슬퍼요 = round(x = 슬퍼요 / 기사건수, digits = 2L),
화나요 = round(x = 화나요 / 기사건수, digits = 2L),
힘내요 = round(x = 힘내요 / 기사건수, digits = 2L),
원해요 = round(x = 원해요 / 기사건수, digits = 2L))
# '좋아요'를 가장 많이 받은 기자입니다.
bargraphResp(data = reprtResp, resp = '좋아요')
# '슬픈 기사' 전문 기자 명단입니다.
bargraphResp(data = reprtResp, resp = '슬퍼요')
# 팬들을 화나게 한 건 뉴스인가요? 아니면 기자인가요?
bargraphResp(data = reprtResp, resp = '화나요')
# 팬들로부터 받는 응원은 기자를 춤추게 할까요?
bargraphResp(data = reprtResp, resp = '힘내요')
# 후속기사가 필요 없도록 한 번에 시원하게 부탁합니다!
bargraphResp(data = reprtResp, resp = '원해요')
저는 이 부분에 대해서는 더이상 언급 안하렵니다. 알아서 판단하시기 바랍니다.
3. 뉴스 제목에 언급된 구단 및 선수별 평균 반응
기사 평균 반응 데이터로 살펴보는 마지막 항목은 뉴스 기사에 언급된 구단 및 선수별 관련 기사의 평균 반응입니다. 이것으로 각 구단과 선수에 대한 팬들의 반응을 엿볼 수 있을 것이라 기대됩니다. 막대그래프 그리는 함수는 이전에 만든 것을 사용하지만, 구단과 선수별 평균 반응을 구하는 함수를 별도로 만들어야 합니다.
# 구단 및 선수별 뉴스 기사의 평균 반응을 구하는 사용자 정의 함수를 생성합니다.
meanResp <- function(gb, gbNm) {
if (gb == 'team') {
dt <- news %>% dplyr::filter(str_detect(string = team, pattern = gbNm))
} else if (gb == 'name') {
dt <- news %>% dplyr::filter(str_detect(string = name, pattern = gbNm))
}
meanResp <- dt %>%
dplyr::summarise(
기사건수 = n(),
총반응 = sum(x = resp),
좋아요 = sum(x = like),
슬퍼요 = sum(x = sad),
화나요 = sum(x = angry),
힘내요 = sum(x = fan),
원해요 = sum(x = want)) %>%
dplyr::filter(기사건수 >= 100) %>%
mutate(
총반응 = round(x = 총반응 / 기사건수, digits = 2L),
좋아요 = round(x = 좋아요 / 기사건수, digits = 2L),
슬퍼요 = round(x = 슬퍼요 / 기사건수, digits = 2L),
화나요 = round(x = 화나요 / 기사건수, digits = 2L),
힘내요 = round(x = 힘내요 / 기사건수, digits = 2L),
원해요 = round(x = 원해요 / 기사건수, digits = 2L))
meanResp <- cbind(구분 = gbNm, meanResp)
return(meanResp)
}
이 사용자 정의 함수를 사용하여 구단별 평균 반응을 구하겠습니다.
# 10개 구단별 뉴스의 평균 반응을 구합니다.
teamResp <- data.frame()
teams <- mostTeam$구분
for (team in teams) {
df <- meanResp(gb = 'team', gbNm = team)
teamResp <- rbind(teamResp, df)
}
# '좋아요'를 가장 많이 받는 구단은 어디일까요?
bargraphResp(data = teamResp, resp = '좋아요')
# 팬들을 슬프게한 구단을 알아봅시다.
bargraphResp(data = teamResp, resp = '슬퍼요')
# 어느 구단인지 대충 짐작이 갑니다.
bargraphResp(data = teamResp, resp = '화나요')
# 팬들의 사랑을 많이 받았으니 올해 행복했을 겁니다.
bargraphResp(data = teamResp, resp = '힘내요')
# 후속기사가 필요한 구단이라면 의심스러운 구석이 많겠죠?
bargraphResp(data = teamResp, resp = '원해요')
뉴스 제목에 언급된 선수별로도 같은 분석을 실시해보겠습니다.
# 선수별 뉴스의 평균 반응을 구합니다.
nameResp <- data.frame()
names <- mostName$구분[1:10]
for (name in names) {
df <- meanResp(gb = 'name', gbNm = name)
nameResp <- rbind(nameResp, df)
}
# 팬들이 가장 좋아했던 그 선수, 누굽니까?
bargraphResp(data = nameResp, resp = '좋아요')
# 부상 때문일까요? 무엇이 팬들을 슬프게 했을까요?
bargraphResp(data = nameResp, resp = '슬퍼요')
# 이건 척하면 척이죠.
bargraphResp(data = nameResp, resp = '화나요')
# 사랑과 격려를 한 몸에 받은 그대, 행복했나요?
bargraphResp(data = nameResp, resp = '힘내요')
# 아~ 눈물납니다.
bargraphResp(data = nameResp, resp = '원해요')
저는 이 내용에 대해서도 자세한 언급을 피하겠습니다.
4. 구단별 관련 기사 중 가장 많은 반응을 받은 뉴스 목록
# 구단 관련 뉴스 중 가장 인기 있었던 뉴스 제목을 추출하는 사용자 정의 함수를 생성합니다.
teamResponse <- function(teamName, resp, top = 5, cap) {
# 조건에 맞는 데이터셋 추출
data <- news %>% dplyr::filter(team == teamName)
# 조건으로 내림차순 정렬한 기사 출력
checkResponse(data = data, resp = resp, top = top, cap = cap)
}
올해 뜨거운 반응을 받은 한화와 LG 구단에 대해서 살펴보겠습니다.
먼저 한화 구단입니다.
# '좋아요'를 가장 많이 받는 한화 구단 관련 상위 뉴스
teamResponse(teamName = '한화', resp = 'like', top = 10, cap = '좋아요를 가장 많이 받은 한화 구단 관련 기사')
date | title | press | rname | resp | like |
---|---|---|---|---|---|
20180523 | ‘화요일의 남자’ 호잉 “부모님이 받은 박수, 나도 감격” | 연합뉴스 | 이진욱 | 2529 | 1997 |
20180415 | 이용규 심경 고백 “혼자 한 욕설, 잘못됐다. 하지만…” | 스포티비뉴스 | 곽혜미 | 2711 | 1987 |
20180925 | ‘어느 한화 레전드가 어린 팬들에 한 만행(?)’, 진실은 [인터뷰] | 스타뉴스 | 김우종 | 2174 | 1791 |
20180416 | 이게 실화입니까, ‘단독 3위’ 한화-불펜 ERA 1위 | OSEN | 이상학 | 2149 | 1658 |
20180526 | [이영미 人터뷰] 한화 팬들의 호잉 사랑, 부모의 무한 감동 | 이영미 칼럼 | 이영미 | 1835 | 1556 |
20181016 | 한용덕 감독의 포용, 송광민 용서했다…PS 합류 | OSEN | 이상학 | 1786 | 1299 |
20180218 | [오피셜] 한화, FA 정근우와 2+1년 총액 35억원 계약 완료 | 스타뉴스 | 심혜진 | 1708 | 1255 |
20181027 | 떠나는 호잉, “최강 한화팬들과 함께해 행복했다” | OSEN | 이상학 | 1750 | 1207 |
20180514 | “다친 아들에게 한마디만” 한화 선수에게 부탁하자 생긴 일(사진) | 국민일보 | 신은정 | 1337 | 1167 |
20181019 | “미안해요” 반복한 한화 직원들…대전구장은 11년 만에 폭발 직전 | 스포츠경향 | 이석우 | 1411 | 1073 |
# '슬퍼요'를 가장 많이 받는 한화 구단 관련 상위 뉴스
teamResponse(teamName = '한화', resp = 'sad', top = 10, cap = '슬퍼요를 가장 많이 받은 한화 구단 관련 기사')
date | title | press | rname | resp | sad |
---|---|---|---|---|---|
20180714 | 한화 떠나는 휠러의 미련, 타팀 이적 기다린다 | OSEN | 이상학 | 995 | 811 |
20180503 | 한화, 외야수 장민석 웨이버 공시 신청 | OSEN | 이상학 | 599 | 417 |
20180529 | 김태균, 종아리 근육 파열…한화 또 부상 악재 | OSEN | 이상학 | 774 | 369 |
20180713 | ‘유종의 미’ 휠러, 한화 교체 작업 마무리 단계 | OSEN | 이상학 | 537 | 354 |
20180729 | 한화 헤일, 고열 증세로 등판 불발…김범수로 교체 | 엑스포츠뉴스 | 채정연 | 570 | 333 |
20180506 | [오!쎈 인터뷰] ‘웨이버’ 장민석, “한화에 죄송, 야구 포기 못해” | OSEN | 이상학 | 468 | 306 |
20180507 | [SPO 톡] 정근우 “지금 내가 말 앞세울 때 아니다” | 스포티비뉴스 | 한희재 | 665 | 305 |
20180523 | ‘헤드샷 사구’ 최재훈, 어지럼증+목 근육 경직 증상으로 교체 | 스타뉴스 | 심혜진 | 848 | 303 |
20181118 | [단독]배영수 한화와 결별, 현역 연장 택했다…박정진도 떠난다 | 스포티비뉴스 | 한희재 | 507 | 278 |
20180525 | 한화 이동걸 선수 은퇴 “공 던질 몸상태 아냐” | 조이뉴스24 | 류한준 | 316 | 244 |
# '화나요'를 가장 많이 받는 한화 구단 관련 상위 뉴스
teamResponse(teamName = '한화', resp = 'angry', top = 10, cap = '화나요를 가장 많이 받은 한화 구단 관련 기사')
date | title | press | rname | resp | angry |
---|---|---|---|---|---|
20180524 | 이용철 편파해설 논란…과거에도 한화 비판 | 데일리안 | NA | 2446 | 2181 |
20180414 | KBO “욕설 퇴장 이용규, 상벌위 회부 검토” | OSEN | 한용섭 | 1931 | 1544 |
20180520 | [집중분석]좁디좁은 주심ST존 버텨낸 샘슨, 성장했다! | 스포츠조선 | 김경민 | 1353 | 1125 |
20180417 | [오피셜] KBO, 이용규 퇴장 추가 징계 없다…엄중 경고 | OSEN | 한용섭 | 1144 | 880 |
20181014 | “말 안들어서”…교제 여성 폭행한 전 한화이글스 엄태용’ 벌금형’ | 뉴스1 | 김태진 | 946 | 807 |
20180623 | 한화, ‘폭행혐의’ 포수 엄태용 전격 퇴단 ‘엄단’ | OSEN | 이상학 | 1122 | 781 |
20180329 | 김태균 만루 ‘싹쓸이 실책’ 프로에서 나와도 되나 | 스포츠조선 | 고재완 | 1023 | 766 |
20180304 | ‘前 한화’ 김원석, “팬들께 정말 죄송, 야구 포기 못해” | OSEN | 이상학 | 930 | 741 |
20180414 | 한화 이용규, S존 어필하다 즉각 퇴장 처분 | OSEN | 이상학 | 849 | 739 |
20180414 | [오!쎈 현장] 심판진이 밝힌 이용규 퇴장 사유는 ‘욕설’ | OSEN | 이상학 | 953 | 739 |
# '팬이에요'를 가장 많이 받는 한화 구단 관련 상위 뉴스
teamResponse(teamName = '한화', resp = 'fan', top = 10, cap = '팬이에요(힘내요)를 가장 많이 받은 한화 구단 관련 기사')
date | title | press | rname | resp | fan |
---|---|---|---|---|---|
20180523 | ‘화요일의 남자’ 호잉 “부모님이 받은 박수, 나도 감격” | 연합뉴스 | 이진욱 | 2529 | 454 |
20180416 | 이게 실화입니까, ‘단독 3위’ 한화-불펜 ERA 1위 | OSEN | 이상학 | 2149 | 304 |
20180925 | ‘어느 한화 레전드가 어린 팬들에 한 만행(?)’, 진실은 [인터뷰] | 스타뉴스 | 김우종 | 2174 | 295 |
20181027 | 떠나는 호잉, “최강 한화팬들과 함께해 행복했다” | OSEN | 이상학 | 1750 | 279 |
20180509 | [IS 인터뷰] ‘OPS 전체 1위’ 호잉, “한국행 후회는 없다. 오길 잘했다” | 일간스포츠 | 배중현 | 1171 | 232 |
20180526 | [이영미 人터뷰] 한화 팬들의 호잉 사랑, 부모의 무한 감동 | 이영미 칼럼 | 이영미 | 1835 | 215 |
20180514 | “이 세상에 그 누가 부러울까요” 한화팬은 지금 행복합니다 | 스포츠경향 | NA | 1238 | 200 |
20180727 | ‘한화 팬’ 박보영, ‘이글스파크’서 포착…“야구에 빠졌다” | 동아일보 | NA | 930 | 198 |
20180415 | 한화, 1079일만에 단독 3위…2006년 이후 최단 10승 | OSEN | 이상학 | 1153 | 193 |
20180512 | “젠틀맨 그 자체” 호잉이 사랑받는 또 다른 이유 | OSEN | 이상학 | 911 | 192 |
# '후속기사 원해요'를 가장 많이 받는 한화 구단 관련 상위 뉴스
teamResponse(teamName = '한화', resp = 'want', top = 10, cap = '후속기사(원해요)를 가장 많이 받은 한화 구단 관련 기사')
date | title | press | rname | resp | want |
---|---|---|---|---|---|
20180524 | 이용철 편파해설 논란…과거에도 한화 비판 | 데일리안 | NA | 2446 | 96 |
20180415 | 이용규 심경 고백 “혼자 한 욕설, 잘못됐다. 하지만…” | 스포티비뉴스 | 곽혜미 | 2711 | 87 |
20180414 | KBO “욕설 퇴장 이용규, 상벌위 회부 검토” | OSEN | 한용섭 | 1931 | 72 |
20180520 | [집중분석]좁디좁은 주심ST존 버텨낸 샘슨, 성장했다! | 스포츠조선 | 김경민 | 1353 | 64 |
20180416 | 이게 실화입니까, ‘단독 3위’ 한화-불펜 ERA 1위 | OSEN | 이상학 | 2149 | 56 |
20180117 | 한화 2년 제안에 막힌 정근우 협상, 기한도 없다 | OSEN | 이상학 | 557 | 54 |
20181003 | 송광민 전격 2군행, 흥분한 한용덕 감독 “팀을 위한 조치” | 스포츠조선 | 허상욱 | 1050 | 52 |
20181027 | 떠나는 호잉, “최강 한화팬들과 함께해 행복했다” | OSEN | 이상학 | 1750 | 52 |
20180526 | [이영미 人터뷰] 한화 팬들의 호잉 사랑, 부모의 무한 감동 | 이영미 칼럼 | 이영미 | 1835 | 48 |
20180122 | [핫포커스]정근우-한화 꼬여버린 FA협상, 앙금은 남기지 말아야 | 스포츠조선 | 박재호 | 634 | 47 |
다음으로 LG 구단입니다.
# '좋아요'를 가장 많이 받는 LG 구단 관련 상위 뉴스
teamResponse(teamName = 'LG', resp = 'like', top = 10, cap = '좋아요를 가장 많이 받은 LG 구단 관련 기사')
date | title | press | rname | resp | like |
---|---|---|---|---|---|
20181001 | “경기흐름 넘겨준 오지환 실책” 24개 압도적 1위 | 국민일보 | 김영석 | 2305 | 1756 |
20180902 | 1년 전 오지환의 꿈과 선택, 이토록 비난 받을 일인가 | OSEN | 한용섭 | 6579 | 1656 |
20180930 | [오!쎈 승부처] ‘엉성한 수비+병살 행진’ LG, 제 발로 들어간 17연패 터널 | OSEN | 이종서 | 1545 | 1259 |
20181007 | “오지환, 유격수 2위…말이 되나?” 삼진·실책 ‘1위’ 빠져 있어 | 국민일보 | 김영석 | 2263 | 1257 |
20180929 | 선동열 감독, 오지환 문제로 국회에 출석하나? | MK스포츠 | 강대호 | 1477 | 1174 |
20180812 | ‘교체 검토’ 논란의 오지환 대표팀 낙마? | 데일리안 | NA | 1489 | 1169 |
20180930 | “오지환, 삼진 140개 채웠다” 역대 시즌 5위 기록 | 국민일보 | 김영석 | 1446 | 1076 |
20180507 | ‘200여명’ 전부 다 사인해주고 떠난 LG 선수 ‘따뜻’ | 스타뉴스 | 김우종 | 1134 | 915 |
20180327 | 변함없는 LG의 지는 패턴, 그래서 더 슬픈 개막 2연패 | 마이데일리 | 윤욱재 | 1709 | 910 |
20181008 | 이제 산술적 가능성도 0%..LG, 2년 연속 PS 탈락 확정 | 스타뉴스 | 한동훈 | 1103 | 907 |
# '슬퍼요'를 가장 많이 받는 LG 구단 관련 상위 뉴스
teamResponse(teamName = 'LG', resp = 'sad', top = 10, cap = '슬퍼요를 가장 많이 받은 LG 구단 관련 기사')
date | title | press | rname | resp | sad |
---|---|---|---|---|---|
20180520 | LG “구본무 회장 별세로 응원단 앰프 자제” | 마이데일리 | 윤욱재 | 645 | 516 |
20180919 | [단독] ‘국대ㆍLG’ 일으킨 봉중근 재활 중단 은퇴한다 | 한국일보 | 성환희 | 537 | 426 |
20180928 | [공식은퇴] 봉중근 “멀리 떠나는 것 아냐..LG서 큰 꿈 이룰 것” (일문일답) | 스타뉴스 | 한동훈 | 382 | 246 |
20180520 | LG 구본무 회장 별세…잠실구장도 추모 물결 | 스포츠동아 | 김종원 | 241 | 215 |
20180520 | LG 트윈스 응원전 취소…야구를 사랑했던 구본무 회장 추모 | 노컷뉴스 | 박세운 | 235 | 214 |
20181127 | LG 이상훈 코치 자진사퇴, 차명석 단장 “47번 비워놓고 기다릴 것” | 스포츠서울 | 최승섭 | 369 | 212 |
20181014 | [오피셜] 차우찬, 팔꿈치 뼛조각 제거 수술 받는다 | OSEN | 한용섭 | 364 | 175 |
20181126 | 니느님·굴비 소사…이제는 헤어져야 할 시간 | 경향신문 | 이용균 | 194 | 163 |
20180521 | 봉인된 롤렉스와 우승주…LG의 과제가 된 구본무 회장의 유산 | 뉴스1 | 박지혜 | 191 | 161 |
20180421 | LG 박용택, 어지러움 느껴 3회 대타 교체 | 스타뉴스 | 한동훈 | 200 | 155 |
# '화나요'를 가장 많이 받는 LG 구단 관련 상위 뉴스
teamResponse(teamName = 'LG', resp = 'angry', top = 10, cap = '화나요를 가장 많이 받은 LG 구단 관련 기사')
date | title | press | rname | resp | angry |
---|---|---|---|---|---|
20180902 | 1년 전 오지환의 꿈과 선택, 이토록 비난 받을 일인가 | OSEN | 한용섭 | 6579 | 4703 |
20180904 | 인민재판 받은 오지환, 야구인들의 안타까운 시선 [AG] | OSEN | 이상학 | 4122 | 3681 |
20180902 | ‘금메달’ 오지환·박해민, 아시안게임은 해피엔딩 | 마이데일리 | 김진성 | 4334 | 3569 |
20180905 | 오지환 논란에 靑청원까지…“병역 혜택 취소하라” “오지환법 제정 촉구” | 동아일보 | 김민성 | 3884 | 3229 |
20180907 | [엑’s 현장] 맹타 휘두른 오지환 “부모님과 팬들께 죄송하다”(일문일답) | 엑스포츠뉴스 | 채정연 | 3805 | 2922 |
20180419 | LG 트윈스, 적나라한 사인 훔치기?…더그아웃 ‘커닝페이퍼’ | 뉴시스 | 류형근 | 3071 | 2776 |
20181005 | KBO 회의록 살펴보니 “오지환, 김하성 이은 유격수 2위” | 뉴스엔 | 안형준 | 3286 | 2719 |
20180904 | 경직된 선동열호, 정적 깬 “오지환 파이팅!” | 스포티비뉴스 | 곽혜미 | 3030 | 2555 |
20180613 | ‘오지환 싫다, 금메달 NO’ 저주 속에 출범하는 선동열호 | 뉴스엔 | 안형준 | 2971 | 2539 |
20180907 | “죄송하다”는 오지환의 사과, 팬심이 달래질까 | OSEN | 한용섭 | 2931 | 2439 |
# '팬이에요'를 가장 많이 받는 LG 구단 관련 상위 뉴스
teamResponse(teamName = 'LG', resp = 'fan', top = 10, cap = '팬이에요(힘내요)를 가장 많이 받은 LG 구단 관련 기사')
date | title | press | rname | resp | fan |
---|---|---|---|---|---|
20180623 | ‘통산 2,319안타’ LG 박용택, 양준혁 넘어 KBO 대기록 달성 | 스포티비뉴스 | 한희재 | 863 | 183 |
20180930 | [오!쎈 승부처] ‘엉성한 수비+병살 행진’ LG, 제 발로 들어간 17연패 터널 | OSEN | 이종서 | 1545 | 165 |
20180923 | “‘6연패’ LG, QS 1회…볼넷 남발” 차우찬, 75개 볼넷 1위 | 국민일보 | 김영석 | 510 | 145 |
20180620 | [S포트라이트] ‘규정타석 진입’ 이형종, 단숨에 타율 3위 등극 | STN 스포츠 | 윤승재 | 623 | 143 |
20180606 | ‘운명의 일주일’ 오지환, 4안타+기민한 주루로 매력 어필 | 연합뉴스 | 김인철 | 753 | 136 |
20180617 | 1000G 4출루 오지환 “지도자 분들께 감사…앞으로 더 좋은 모습 약속” | 스포츠서울 | 배우근 | 1165 | 132 |
20181019 | [오피셜] LG, 차명석 신임 단장 임명…코칭스태프도 개편 | OSEN | 한용섭 | 1111 | 131 |
20180803 | [오!쎈 현장분석] ‘13연패’ LG, 깨지 못한 ‘곰의 악몽’ | OSEN | 이종서 | 983 | 128 |
20180610 | 평균수준이라던 LG 윌슨, 활약상은 톱클래스 | 스포츠조선 | 최문영 | 637 | 122 |
20180618 | 5득점-4타점 합작 이형종-오지환, 3연승 LG 3위 도약 | 중앙일보 | 김효경 | 613 | 116 |
# '후속기사 원해요'를 가장 많이 받는 LG 구단 관련 상위 뉴스
teamResponse(teamName = 'LG', resp = 'want', top = 10, cap = '후속기사(원해요)를 가장 많이 받은 LG 구단 관련 기사')
date | title | press | rname | resp | want |
---|---|---|---|---|---|
20180930 | “오지환 사태, 책임져야 할 때” ‘감독’ 선동열 결단 필요 | 국민일보 | 김영석 | 4326 | 3337 |
20181008 | “오지환 회의록 조작 혹은 실수?” 게임수·홈런순위 등 틀려 | 국민일보 | 김영석 | 2514 | 593 |
20181008 | “LG 코치, ‘오지환 선발’ 절충했다?” 직접 나와 설명할 때 | 국민일보 | 김영석 | 1762 | 566 |
20180923 | “‘6연패’ LG, QS 1회…볼넷 남발” 차우찬, 75개 볼넷 1위 | 국민일보 | 김영석 | 510 | 290 |
20181007 | “오지환, 유격수 2위…말이 되나?” 삼진·실책 ‘1위’ 빠져 있어 | 국민일보 | 김영석 | 2263 | 284 |
20181005 | “비공개 전제 ‘오지환’ 자료 제출, 말이 되나?” 선동열, 전면 공개해야 | 국민일보 | 김영석 | 2545 | 276 |
20181001 | “경기흐름 넘겨준 오지환 실책” 24개 압도적 1위 | 국민일보 | 김영석 | 2305 | 271 |
20180930 | “오지환, 삼진 140개 채웠다” 역대 시즌 5위 기록 | 국민일보 | 김영석 | 1446 | 197 |
20180419 | LG 트윈스, 적나라한 사인 훔치기?…더그아웃 ‘커닝페이퍼’ | 뉴시스 | 류형근 | 3071 | 150 |
20181003 | “오지환에 가려져 있는 박해민” 제대로된 말을 할 때다 | 국민일보 | 김영석 | 1500 | 105 |
이상으로 2018 프로야구 기사로 본 이모저모 1부를 마칩니다.
[1] 마스터 데이터셋은 다운로드 하실 수 있도록 링크를 연결해놨습니다. 다만 크롤링과 전처리에 사용한 코드를 공유해드리지 못하는 점 양해 바랍니다. 대신 직접 수행하실 때 궁금한 점을 질문하시면 제가 성심성의껏 답변드리겠습니다.