반응형

안녕하세요, 작은 비버입니다!

오늘은 코로나바이러스에 대한 사회적 반응 중 하나인 '지하철 승객 수의 변화'에 대해 알아보려 합니다.

 

작은 비버는 코로나바이러스가 터지고 나서 궁금증이 하나 생겼습니다

 

'코로나바이러스가 터지고 나서 사람들이 정말 밖에 안 나올까? 사회적 거리두기를 잘 실천하고 있을까?'

 

이런 궁금증을 가지고 이번 과제를 수행하게 되었습니다.

 

사용한 지하철 데이터는 2019~2020년도 서울, 대구입니다.

 

대구 지역을 선택하게 된 이유는 코로나바이러스가 지역사회로 퍼지기 시작한 게 신천지 신도(31번 확진자) 이후입니다.
31번 확진자 이후, 대구시의 코로나바이러스 확진자는 무섭게 늘어났습니다.

 

이에 따라 대구 사람들의 지하철 이용 변화를 보기 위해 대구 지하철 데이터를 선택하게 되었습니다.


<사용한 외부 데이터>

1. kaggle Data Science for COVID-19 (DS4C) - TimeProvince.csv(전국 단위 누적 확진자 수 데이터 사용)

https://www.kaggle.com/kimjihoo/coronavirusdataset?fbclid=IwAR2-OrO2UoA_jnN_zr0p6zZO_3bmovQe23uci5FCNN1_ZlzIKQKHg1SxIbo

 

Data Science for COVID-19 (DS4C)

DS4C: Data Science for COVID-19 in South Korea

www.kaggle.com

 

2. 서울 열린 데이터 광장 - 서울시 지하철 호선별 역별 승하차 인원 정보

교통카드(선후 불교 통카드 및 1회용 교통카드)를 이용한 지하철 호선별 역별(서울교통공사, 한국철도공사, 공항철도, 9호선) 승하차 인원을 나타내는 정보입니다. (일단위)

https://data.seoul.go.kr/dataList/OA-12914/S/1/datasetView.do

 

열린데이터 광장 댓글 입력

열린데이터 광장 데이터셋 댓글 입력

data.seoul.go.kr

 

3. 대구 도시철도공사 - 대구 도시철도 승하차 인원 현황

www.daegu.go.kr/index.do?menu_id=00000122

 

<코로나바이러스 2020년도 첫 국내 확진자 날짜>

국내 1/20

서울 1/27

대구 2/18

 


사용한 데이터

  • 서울 누적 확진자 수(2020.01~03)
  • 대구 누적 확진자 수(2020.01~03)
  • 지하철 승차 총 승객수(2019/2020.01~03) - 서울, 대구
seoul_confirmed = pd.read_csv('/root/corona/sohyun/metro_data/seoul_confirmed.csv', encoding='CP949')
daegu_confirmed = pd.read_csv('/root/corona/sohyun/metro_data/daegu_confirmed.csv', encoding='CP949')

seoul_202001 = pd.read_csv('/root/corona/sohyun/metro_data/seoul_202001.csv', encoding='utf-8')
seoul_202002 = pd.read_csv('/root/corona/sohyun/metro_data/seoul_202002.csv', encoding='utf-8')
seoul_202003 = pd.read_csv('/root/corona/sohyun/metro_data/seoul_202003.csv', encoding='utf-8')
seoul_201901 = pd.read_csv('/root/corona/sohyun/metro_data/seoul_201901.csv', encoding='utf-8')
seoul_201902 = pd.read_csv('/root/corona/sohyun/metro_data/seoul_201902.csv', encoding='utf-8')
seoul_201903  = pd.read_csv('/root/corona/sohyun/metro_data/seoul_201903.csv', encoding='utf-8')

 

  • 서울 누적 확진자 수(2020.01~03)

seoul_confirmed

 

  • 대구 누적 확진자 수(2020.01~03)

daegu_confirmed

 

 

  • e.g., 서울 지하철 승차 총 승객수, 하차 총 승객수(2020.01)

seoul_202001

 

 

 


저는 승차, 하차 데이터 중, '승차 총 승객수'데이터를 사용했습니다.

 

승차 데이터는 그 지역에서 사람들이 외부로 나가는 것을 확인할 수 있는 수치

하차 데이터는 외부에서 그 지역으로 사람들이 들어오는 것을 확인할 수 있는 수치

 

여기서 저는 그 지역 사람들이 외부 활동을 하는지에 대한 변화를 확인해보고 싶었기에 '총 승차 승객수' 데이터를 사용했습니다.

 

 


1. 서울 지하철 승차 총 승객수(2019/2020.01~03)

(주말, 공휴일 포함)

date : 1 ~ 31일 기준(제일 긴 일수로 맞춤)

total_count : 1,000,000 ~ 10,000,000

파랑 : 1월

주황 : 2월

초록 : 3월

2019/2020 Total number of passengers on the subway(Seoul)

 

지하철 승차 총승객수의 변화를 알아보기 전에 2019년도 같은 월(01~03)에는 어땠는지 확인해봤습니다.

 

2019년도에는 1월에서 3월 모두 전체의 흐름이 비슷했습니다.

2020년도에는 1~3월까지의 승차 총승객수가 확연히 줄어든 것을 보실 수 있습니다.

 

2020년도에는 1/24~27일이 공휴일인 점을 감안해도, 서울 첫 확진자(1/27)가 나온 이후로는 1~3월 모두 승차 총승객수의 변화가 있는 것을 보실 수 있습니다.

 

2020년 3월에는 2019년도 3월보다 승차 총승객수의 변화가 급감한 것을 보실 수 있습니다.

 

 

seoul_2020_Data = pd.concat([seoul_202001,seoul_202002,seoul_202003],ignore_index=True,axis = 0)
seoul_2019_Data = pd.concat([seoul_201901,seoul_201902,seoul_201903],ignore_index=True,axis = 0)



plt.title('2019/2020 01~03 Total number of passengers on the subway')

plt.xlabel('date')
plt.ylabel('total_count')

plt.plot(seoul_2019_Data['승차총승객수'],label="201901~03")
plt.plot(seoul_2020_Data['승차총승객수'],label="202001~03")
plt.ylim([1000000,10000000])
plt.legend()

2019/2020년 1월에서 3월까지 한눈에 보기 위해 날짜를 쭉 합쳐서 그래프를 그려보았습니다.

2019/2020 01~03 Total number of passengers on the subway(Seoul)

파란색 선이 2019년 1~3월까지의 전체적인 승차 총승객수의 변화

주황색 선이 2020년 1~3월까지의 전체적인 승차 총 승객수의 변화

 

2019년도에 비해 2020년도에는 서울 첫 확진자(1/27) 이후 승차 총승객수가 점점 줄어드는 것을 보실 수 있습니다.

 

 

2. 누적 확진자 수에 따른 서울 지하철 승차 총승객수의 변화(2020.01~03)

(주말, 공휴일 포함)

 

국내 첫 확진자(1/20), 서울 첫 확진자(1/27) 이후에 누적 확진자 수에 따른 지하철 승차 총 승객수의 변화를 알아보았습니다.

 

왼쪽 축은 지하철 승차 총 승객수

오른쪽 축은 누적 감염자 수

 

파란색 선은 2019년도 지하철 승차 총 승객수

주황색 선은 2020년도 지하철 승차 총 승객수

 

 

 

누적 확진자 수에 따른 지하철 승차 총 승객수의 변화입니다.

 

2019, 2020년도 모두 국내 첫 확진자(1/20) 이전에는 대체로 비슷한 흐름으로 지하철 승차 총 승객수의 변화를 보입니다.

서울 첫 확진자(1/27) 이후로는 2019년도에 비해 2020년도에 지하철 승객수의 변화가 줄어드는 것을 보실 수 있습니다.

 

신천지 신도(31번 확진자, 2/18) 이후에는 지하철 승차 총승객수의 변화는 급속도록 감소했다. 감소와 더불어 정부에서는 사회적 거리두기를 실시했다.

 

KIST 제공

국내 사회적 거리두기는 2월 말부터 시작했습니다.

KIST 연구팀이 환자 발생수를 시뮬레이션한 결과를 보면, 녹색 표시는 사회적 거리두기를 시행했을 때로, 2월 말 신천지 신도 이후 수백 명의 가장 많은 환자를 낸 뒤 줄어들 것으로 예측했습니다. 

빨간색 선은 이에 따른 실제 예측 값입니다. 예측한것(초록색)과 같이 실제 확진자 수(빨간색)가 줄어드는 것을 보실수있습니다.

 

신천지 신도(31번 확진자, 2/18) 이후 2월 29일 하루 800여 명의 환자를 낸 이후 지속적으로 신규 환자 발생자 수가 감소했습니다.

사람들이 사회적 거리두기를 실천하지 않았다면 확진자의 수는 더 늘어났을 것입니다.

사회적 거리두기를 잘 실천함에 따라 확진자수가 줄어드는것을 보실수있습니다.

 

빨리 이 아픔이 없어지기 위해서는 모두의 노력이 필요합니다.

앞으로도 사회적 거리두기를 잘 실천하면서 이번 아픔이 빨리 없어지기를 바랍니다.

 

 

 

 

 

대구는 아직 공공데이터 포털에 다 올라오지 않아 자료가 올라오는대로 차차 업로드 하겠습니다.

반응형
반응형

안녕하세요, 작은 비버입니다!

오늘은 새로운 카테고리인 '작은 비버의 과제 수행'으로 찾아뵙게 되었습니다.

이 카테고리에서는 제가 개인적으로 공부한 내용이나 과제로 수행했던 내용에 대해서 올라올 예정입니다.

 

첫 번째 편, 오늘은 공공데이터 포털에서 OpenAPI를 이용해 데이터를 추출하는 방법에 대해서 알아보고자 합니다.

 


 

 

'공공데이터 포털'에서는 공공기관이 생성 또는 취득하여 관리하고 있는 공공데이터를 한 곳에서 제공하는 통합 창구입니다. 포털에서는 국민이 쉽고 편리하게 공공데이터를 이용할 수 있도록 파일 데이터, 오픈 API, 시각화 등 다양한 방식으로 제공하고 있으며, 누구라도 쉽고 편리한 검색을 통해 원하는 공공데이터를 빠르고 정확하게 찾을 수 있습니다.

-공공데이터 포털 소개 자료

 

심심할 때 공공데이터 뭐가 있나 찾아보면 정말 신기한 것들이 많습니다,, 

 

민박 펜션업소와 관련된 데이터도 있고, 전국 도시공원 표준 데이터, 전기안전점검결과 통계, 폐기물 배출자 신고현황, 교통정보, 현장체험정보, 석탄재 현황 등등 정말 신기한 데이터들이 많습니다.

 

궁금하신 분들은 아래 사이트 남겨놓을 테니 한 번 들어가서 구경해보세요!

이번에 사이트 리뉴얼하면서 정말 예뻐졌는데 저도 들어가 보고 깜짝 놀랐습니다..(2020.05.01 기준)

 

 

https://www.data.go.kr/index.do

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Dataset)와 Open API로 제공하는 사이트입니다.

www.data.go.kr

공공데이터포털

원래 이렇지 않았어요,, 엄청 딱딱한 사이트였따구요,, 엄청 깔끔하면서도 보기 쉽게 구성을 배치한 사이트 모습!

색깔 일단 너무 마음에 들어요ㅜㅜ 아이콘 배치한 것도 맘에 쏙 듦..ㅜㅜㅜㅜ

 

 


 

저는 이 공공데이터 포털 사이트를 이용해서 '전국 소방서 목록'을 수집해 볼 것입니다!

 

 

1. 공공데이터 포털에 접속하고 로그인 하기!(로그인 후, 데이터 사용 및 다운 가능)

 

https://www.data.go.kr/index.do

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Dataset)와 Open API로 제공하는 사이트입니다.

www.data.go.kr

 

 

 

2. 본인이 수집하고 싶은 자료를 검색하거나 찾기!

 

본인이 원하는 데이터의 종류를 선택(사이트에서 수집하여 올려놓은 데이터 목록, 국가 데이터 목록, 이슈 데이터)하기

아니면 검색창에서 검색조건(분류체계, 서비스 유형, 확장자)을 설정하여 더 자세하게 검색하실수 있습니다.

 

공공데이터 검색

 

 

3. 저는 전국 소방서의 목록을 수집하고 싶기 때문에  '소방서 위치조회서비스' Click!

'소방서위치조회서비스'
요청변수 및 출력결과 정보 확인

 

제가 찾은 데이터는 OpenAPI라고 적혀있습니다.

 

여기서 OpenAPI란?

오픈 API란 누구나 사용할 수 있도록 공개된 API를 말합니다. 데이터를 표준화하고 프로그래밍을 통해 외부 소프트웨어 개발자나 사용자들과 공유하는 프로그램입니다. 개방된 오픈 API를 이용해 다양하고 재미있는 서비스나 애플리케이션, 다양한 형태의 플랫폼을 개발할 수 있습니다.


*API란? Application Programming Interface의 약자로 응용 프로그램 프로그래밍 인터페이스를 말합니다. 다양한 응용 프로그램에 사용할 수 있는 운영 체제, 혹은 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스입니다.

-공공데이터 포털 소개 자료

 

 

활용신청 전에, 본인이 사용할 정보에 대해 간단하게 정보를 확인해봅시다!

제가 사용할 데이터는 '행정안전부'에서 제공한 데이터입니다. 누구나 사용할 수 있는 OpenAPI로 구성되어 있습니다.

데이터를 얻기 위해서는 요청 주소 서비스 URL에 요청 변수를 넣어 요청합니다.(여기서는 '법정동 코드'가 요청 변수라고 적혀있습니다.)

 

요청 변수를 넣어 URL에 요청하면 결과 코드, 결과 메시지, 시설물명, 위도, 경도, 주소, 전화번호, 팩스번호 등 총 8가지 항목의 데이터를 얻을 수 있습니다.

 

이제 이 OpenAPI를 사용하기 위해서는 '활용 신청'을 해봅시다!

 

 

3. '활용 신청' 및 '참고 문서' 다운로드하기

 

OpenAPI 활용 신청 단계

 

 

저렇게 활용 목적을 선택하고 이유를 작성하면 됩니다. 자동승인의 경우, 바로 사용할 수 있고 승인이 필요한 경우에는 담당자의 승인을 받은 후에 데이터를 사용하실 수 있습니다.

 

제가 사용할 데이터는 '자동승인'으로 활용신청 후에 바로 사용할 수 있습니다.

활용기간은 승인일로부터 24개월 간 활용 가능합니다.

 

시스템 유형을 선택하고 활용신청 버튼을 누르시면 됩니다.

 

 

 

4. 마이페이지> 오픈 API> 개발계정 API키 받기

승인된 API키

 

OpenAPI 키 확인

 

마이페이지>오픈API>개발계정 탭으로 들어가시면 본인이 신청한 자료를 보실 수 있습니다. 클릭하시면 저렇게 서비스 정보에 '일반 인증키'라고 되어있습니다. 이 키가 저희가 사용하게 될 OpenAPI키입니다!!

 

그리고 저기 활용신청 상세 기능 정보란에서 미리보기를 통해서 어떤 식으로 데이터가 나오는지 확인할 수 있습니다.

저는 법정동 코드가 요청 변수였기 때문에 법정동 코드를 넣어 어떤 식으로 나오는지 미리 확인해봤습니다.

 

브라우저를 통한 대전광역시 동구 출력결과

 

법정동 코드는 대전광역시 동구로 대전광역시 동구에 위치한 소방서 목록을 확인하실수 있습니다.

 

 

 

5. 어떻게 사용하는지 참고 문서를 통해 확인하기

 

소방서위치조회서비스 개요

 

보시면 서비스 인증방법이 '서비스 key'라고 되어있는데 이 말은 서비스 key만 있으면 된다는 표시입니다. 또한 교환 데이터 표준은 XML을 제공한다고 되어있습니다. 인터페이스 표준은 'REST(GET, POST, PUT, DELETE) 방식으로 요청하라고 나와있습니다. 메시지 교환 유형은 Request-Response라는 것을 알 수 있습니다. 

 

 

요청 및 응답 메시지 명세

 

요청 메시지는 저기 보이는 END POINT URL에다 본인의 서비스 KEY와 법정동 코드를 넣어 요청하면 원하는 자료를 응답받을 수 있다. 

 

응답받을 수 있는 내용은 결과 코드, 결과 메시지, 소방 서명, 소방서의 위도, 경도, 주소, 전화번호, 팩스번호 이렇게 총 8가지 데이터를 받을 수 있다.

 

 

대전광역시 동구 응답 메시지 예시

제공된 URL에 서비스 key와 법정동 코드를 넣어서 해당 URL에 요청하면 응답을 받을 수 있다.

위의 사진은 대전광역시 동구의 소방서 목록 예시이다.

 

 

6. 실전 실전!! jupyter notebook을 이용한 '전국 소방서 목록' 자료 추출하기!(python)

 

 

법정동 코드 목록.xlsx 중 일부

공공데이터포털에서 참고자료와 같이 제공한 법정동 코드 목록을 보시면 법정동 코드, 시명, 구명, 동명, 지명으로 세부적으로 주소가 나눠져있습니다. 총 20,555개 법정동 코드로 구성되어있습니다. 전 여기서 법정동 코드, 시명, 구명만을 추출하여 다시 데이터를 정리했습니다!

 

어차피 종로구의 법정동 코드를 이용하면 종로구에 있는 모든 소방서의 목록을 수집할 수 있기 때문에 구까지만 데이터를 추려냈습니다.

 

 

수정된 법정동 코드 목록.xlsx 중 일부

수정된 법정동 코드 목록의 개수는 총 288개로 이뤄져 있습니다.

 

서비스 KEY 있고, END POINT URL 확인 완료, 법정동 코드 완료!

 

  • END POINT URL
    • http://openapi.safekorea.go.kr/openapi/service/firestation/item?serviceKey=[서비스 Key]&firestation_addr_cd=[법정동 코드] 
  • 서비스 KEY
  • 법정동 코드

법정동 코드 불러오기

 

데이터 수집 하기(python)

  • 실행환경 : Jupyter notebook(python)
  1. 법정동 코드 목록 개수(288개)만큼 반복문 돌리기 
  2. URL에 넣기 위한 Parameter준비
    1. 서비스 key, code_num(법정동 코드)
  3. URL로 Request 보내기
  4. Html 파싱, 태그가 붙은 정보 findAll
  5. 수집할 자료들을 넣기 위한 Address_list ~ tel_list 리스트를 만듦
  6. Text만 추출하기 위해 find(). text사용
  7. 수집된 결과를 result_data 리스트에 넣는다.

수집된 데이터 확인해보기

 

전국에 있는 소방서 목록을 수집했습니다.

전국 17개 시/도(e.g., 강원도, 경기도, 인천광역시..)

 

총 수집된 소방서 목록 개수는 983개입니다.

 

여기서 수집한 자료 항목은 주소, 소방서 이름, 위도, 경도, 전화번호입니다!

 

 


 

오늘은 공공데이터 포털에서 OpenAPI를 이용해 데이터를 수집해보았습니다.

 

여러분들이 직접 공공데이터포털에서 원하는 데이터 활용신청도 해보시고 코드 작성하셔서 데이터를 수집해보는 것을 추천해드립니다. 

 

전 이제 이 데이터를 이용해서 어떤 것을 해볼지 고민을 좀 해봐야겠어요! 헿

 

오늘도 제 글 읽어주셔서 감사드립니다!

 

 

-이상 배고픈 작은 비버-

반응형
반응형

안녕하세요, 작은 비버가 다시 돌아왔답니다.

2020년 새로운 해를 맞아 NEW 주제를 들고 왔습니다.

 

새롭게 들고 온 주제는 현재 사회적 이슈인 '2019 신종 코로나바이러스'입니다.

 


주제를 설명드리기에 앞서  '2019 신종 코로나바이러스'란?

 

'우한 폐렴'이라고 불리는 신종 코로나바이러스는 12월 말 중국 후베이성 우한시에서 발생한 폐렴 환자에서 최초 확인된 신종 호흡기바이러스로서 학술적으로는 '2019-nCoV'로 명명하고 있습니다. 

 

전 세계 과학자에 따르면 우한 폐렴은 '코로나바이러스'라는 큰 RNA 바이러스 집단에 속합니다. 코로나바이러스는 사람, 조류, 설치류, 및 포유류 등 숙주 범위가 넓은 RNA 바이러스로서 유전체의 크기가 약 30kb에 이르며, 모든 RNA 바이러스 중에서 가장 큰 바이러스입니다. 

 

사람에게 감염되어 질병을 유발하는 코로나바이러스는 6종이 알려져 있으며, 이중 4종(HCoV-229E, HCoV-OC43, HCoV-NL63, HKU1)은 가벼운 상기도 감염을 통해 보편적인 감기 증세를 유발하는 코로나바이러스이며, 나머지 2종은 SARS 코로나바이러스와 MERS 코로나바이러스로서 동물에서 사람으로 전파된 종으로 하기도 감염을 통해 심각한 호흡기 증후군을 유발합니다. 

 

이번 2019 신종 코로나바이러스 출현으로 사람에게 감염될 수 있는 코로나바이러스는 7종으로 확인되었습니다.

 

국제보건기구(WHO)에 따르면 우한에서 발생한 신종코로나바이러스의 확산은 동물에서 비롯된 것으로 보고 있습니다. 일반적인 코로나 바이러스는 환자의 침방울 등의 분비물을 통하여 감염되지만, 신종 코로나 바이러스는 새로운 바이러스이기 때문에 감염 경로는 아직 명확하게 밝혀지지 않은 상태입니다. 

 

증상으로는 코로나-19에 감염되면 2~3일에서 최장 2주 정도 잠복기를 거쳤다가 다양한 증상이 나타납니다. 주로 무기력감, 37.5도 이상의 고열, 기침, 인후통, 가래, 근육통, 두통, 호흡곤란, 폐렴 등의 증상이 발생합니다. 폐 손상에 따른 호흡부전으로 심하면 사망에 이를 수도 있습니다.


 

저희 팀은 이번 신종 코로나바이러스가 팬데믹(Pandemic)으로 선언되면서 사람들의 사회적 반응을 보기 위해 아이디어를 선정했습니다.

 

세계보건기구통계(WHO)에 따르면 신종코로나바이러스의 치사율은 7.01%(기준 2020.04.30.)로 MERS나 SARS보다 낮은 편이지만 중국, 대한민국, 이탈리아, 일본 등 현재 211개 국가에서 확진자가 폭증하는 중이며, 아직 예방 또는 치료 목적으로 승인된 백신이나 항바이러스제는 없습니다.

 

 

코로나19 vs. MERS vs. SARS

 

 

4월 30일 기준, 전 세계 신종코로나바이러스 감염자는 3,131,411명이며 사망자는 219,627명입니다. 세계보건기구(WHO)는 2020년 311일 신종코로나바이러스에 대해 세계적 대유행, 즉 팬데믹(Pandemic)을 선언했습니다.

팬데믹(Pandemic)은 세계적으로 감염병이 대유행하는 상태를 뜻하는 말로, 감염병 위험 수준에 따라 1~6단계의 경보 단계를 설정하는데, 이중 가장 높은 6단계가 팬데믹(Pandemic)입니다.

 

신종코로나바이러스 실시간 상황(2020.04.30)

 

WHO가 정한 감염병 경보단계

 

신종코로나바이러스가 팬데믹(Pandemic)으로 선포되면서 역대 팬데믹(Pandemic)으로 선포된 사례를 찾아봤습니다.

세계보건기구(WHO)가 1948년 설립한 이래, 팬데믹(Pandemic)으로 선언한 사례는 '홍콩독감(1968년)', '신종플루(2009년)' 단 두 차례에 불과합니다. 

 

가장 먼저 발생한 홍콩독감(1968년)은 6개월간의 가간 동안 주변 아시아 국가는 물론 아프리카, 남미, 유럽 등으로 확산되면서 전 세계에서 100만 명 이상이 사망한 질병입니다. 또한 우리나라에서도 250만 명의 사망자를 낸 신종플루(2009년)는 국내에서만 75만 명의 감염자가 나왔던 질병입니다.

 

WHO 팬데믹 선포 사례

 

 

신종코로나바이러스로 인한 국내의 사회적인 변화로는 마스크의 수요 급증입니다. 아직 예방 또는 치료 목적으로 승인된 백신이나 항바이러스제가 없기 때문에 질병의 전염을 막기 위한 마스크의 수요가 급증했습니다. 현재 마스크의 폭증으로 마스크 5부제를 실행하고 있습니다.

한국은 31번 확진자(신천지 신도) 이후 대구/경북지역을 시작으로 지역사회 감염으로 확산될 조짐이 보이자 223일 감염병 위기 경보 최고 단계인 심각으로 설정했습니다.

 

 

감염병 재난 위기 경보 수준

 

이에 따른 정부 조치로는 확진자의 동선을 공개하고 사회적 거리두기, 자가격리 캠페인을 진행하고 초/중/고/대학의 개학이 연기되었습니다.

신종 코로나바이러스가 전 세계로 확산되면서 중국계뿐 아니라 아시아계 전반이 차별과 혐오의 대상이 되는 일이 늘고 있습니다. 이탈리아 등 일부 국가에서는 한국인을 포함한 동양인 학생의 수업 참석을 금지하고 아시아인을 모욕하는 일이 빈번히 발생하고 있습니다.

홍콩, 일본, 미국, 영국, 호주 등에서 화장지 사재기 현상이 사회 문제가 되고 있습니다. 사람들은 코로나바이러스의 감염자 수가 늘어나면서 두려움 때문에 불필요한 양의 식품과 생활필수품을 사재기하는 현상이 나타나고 있습니다.

 

 

마트에 진열된 상품이 모두 매진된 상태

 


저희는 이런 신종코로나바이러스로 인한 사람들의 사회적 반응을 알아보고자 다음과 같이 분석 계획을 생각했습니다.

 

1. SNS

SNS에서 사람들의 반응을 알아보기 위해 선택한 데이터는 트위터입니다. 2019년 12월부터 한국과 미국의 트위터 데이터를 수집하여 트윗에서 사람들의 긍정, 부정의 비율을 확인해볼 계획입니다. 여기서 더 나아가 좀 더 세부적으로 감정(기쁨, 불안, 분노, 슬픔 등)을 나눠 사람들의 감정 변화를 분석해보려고 합니다.

 

감정분석을 진행한 후에는 LDA 토픽 모델링을 통해 코로나 발생 전후에 트위터에서 어떤 토픽이 존재하는지, 토픽의 분포와 각 토픽 내의 단어 분포를 분석해보고자 합니다.

 

 

2. 공공데이터

공공데이터로는 신종코로나바이러스 발생 전후, 사람들의 대중교통 이용량이나 유동인구 분포수를 통해 실제 확진자가 나오고 나서 그 지역의 대중교통 이용률이나 유동인구 분포수가 감소했는지 확인해 볼 계획입니다.

 


현재 수집된 트윗 데이터는 한국, 미국을 기준으로 2019년 12월 1일부터 과거 데이터를 수집 완료했고, 실시간으로 계속해서 데이터를 수집 중에 있습니다.

 

현재 진행 상황으로는 sentiment classification을 위한 BERT모델과 KOBERT모델을 구현했습니다.

BERT모델은 일부 성능평가에서 인간보다 더 높은 정확도를 보이며 2018년 말, 자연 언어 처리(NLP)에서 SOTA를 달성한 딥러닝 모델입니다. 영어말고도 다른 언어에서도 사용 가능한 장점을 지니고 있습니다.

 

KOBERT모델은 T-Brain에서 개발한 모델로, 기존 BERT의 한국어 성능 한계를 극복하기 위해 개발되었습니다. 위키피디아나 뉴스 등에서 수집한 수백만 개의 한국어 문장으로 이루어진 대규모 말뭉치(Corpus)를 학습하였으며, 한국어의 불규칙한 언어 변화의 특성을 반영하기 위해 데이터 기반 토큰화(Tokenization) 기법을 적용하여 기존 대비 27%의 토큰만으로 2.6% 이상의 성능 향상을 이끌어 냈습니다.

 

LDA토픽 모델링을 하기 위한 LDA가 구현이 완료됐고, 대중교통의 증감 추이를 확인해보기 위한 지하철 자료와 유동인구 분포수 데이터 수집이 완료되었습니다. 또한 앞에 설명드렸던 것처럼 tweet data 역시역시 과거 데이터는 수집 완료되었고 실시간으로 수집 진행 중입니다.

 


 

앞으로 분석을 진행하면서 나온 결과들에 대해 글을 올리겠습니다.

 

작은 비버와 작은 비버의 팀원들을 모두 응원해주세요!!

오늘도 글 읽어주셔서 감사드립니다!

 

 

 

사진, 글 출처 : 세계보건기구(WHO), 질병관리본부, 코로나19(COVID-19) 실시간 상황판 https://coronaboard.kr/

 

코로나19(COVID-19) 실시간 상황판

코로나19(신종 코로나바이러스)에 관한 세계 각 국가들의 통계 및 뉴스 등을 취합하여 실시간 정보를 제공합니다.

coronaboard.kr

 

반응형
반응형

오늘은 HateSpeech Detection에 사용했던 HateSpeech Dataset에 대해 알려드리겠습니다.

 

원래 저희는 트위터에서 트윗을 추출하여 HateSpeech 문장들을 분류하고 Detection을 하는 것이 목표였습니다.

 

하지만 그전에! 바로 트위터에서 트윗을 추출하여 Detection을 하게 되면 저희가 분류한 문장들이 혐오표현인지 아닌지 정확도를 판단할 수 없고 비교할 대상이 없다는 문제점을 발견하게 되었습니다.

그래서 현재 인터넷에 공개되어있는 HateSpeech Data들을 먼저 수집하여 Detection을 해보는 것으로 방향을 잡았습니다.

 

저희는 'PLOSONE' 과학 저널 사이트에서 진행되었던 연구자료( 'Hate speech detection: Challenges and solutions')에서 데이터를 가져왔습니다.

Plosone_HateSpeech Dataset

출처 : https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0221152#abstract0

 

Hate speech detection: Challenges and solutions

As online content continues to grow, so does the spread of hate speech. We identify and examine challenges faced by online automatic approaches for hate speech detection in text. Among these difficulties are subtleties in language, differing definitions on

journals.plos.org

저희는 여기에서 Origin Source가 Twitter, Language가 English로 작성된 데이터만 수집하였습니다.

=> HateBaseTwitter, Waseem, kaggle dataset

 

트위터로 작성된 데이터만 수집한 이유는 저희가 최종 구현할 목표가 트윗으로 작성된 데이터를 수집하여 분석하는 것이기 때문입니다. 또한 영어로 작성된 데이터만 수집하는 이유는 아직 저희가 영어가 아닌 다른 언어로 Detection을 하는 것이 어렵기 때문입니다.. 흑ㅠ

 

위에 나와있는 데이터들은 이미 인터넷에 공개가 된 상태입니다. 저희는 그 공개된 데이터들을 가지고 Detection을 해볼 것입니다.

 

위에 나와있는 모든 HateSpeech Data들은 여기에 다 정리되어 있습니다! http://hatespeechdata.com/

 

Hate Speech Datasets

Hate speech data

hatespeechdata.com

수집한 데이터 : HateBaseTwitter, Waseem, kaggle dataset

 

1. Hatebase twitter
https://github.com/t-davidson/hate-speech-and-offensive-language

 

t-davidson/hate-speech-and-offensive-language

Repository for the paper "Automated Hate Speech Detection and the Problem of Offensive Language", ICWSM 2017 - t-davidson/hate-speech-and-offensive-language

github.com

HateBase Twitter데이터는 Davidson이 제공한 약 24,000여 개의 트윗으로 구성된 데이터입니다.

 

먼저 HateBase에서 혐오 발언 어휘를 가져와 이 용어들이 들어 있는 트윗을 트위터에서 검색했고, 그 결과 약 3만 3천 여명의 사용자들 확인했습니다. 그다음 이 모든 사용자들로부터 약 8천5백만 개의 트윗을 가져왔습니다.  약 8천5백만 개의 트윗에서 25k 개의 트윗을 무작위로 추출했습니다.  crowdsourcing 하면서, 각각의 트윗을 hate speech, offensive (but not hate speech), or neither hate speech nor offensive로 주석을 달았습니다.

 

HateBase Twitter데이터 일부

 

2. Kaggle
https://www.kaggle.com/c/detecting-insults-in-social-commentary/data

 

Detecting Insults in Social Commentary

Predict whether a comment posted during a public discussion is considered insulting to one of the participants.

www.kaggle.com

Kaggle은 insulting or not insulting으로 분류된 약 6천여 개의 소셜 미디어 코멘트로 구성되어있습니다.

 

Kaggle 데이터 일부

 

3. Wassem & Hovy
github.com/zeerakw/hatespeech

 

Waseem & Hovy는 약 만 6천여 개의 racist, sexist, or neither로 분류된 트윗으로 구성된 데이터입니다.

 

트위터에서 eligious, sexual, gender, and ethnic minorities와 관련된 약 136,000개의 트윗을 수집한 후에 스스로 약 만 6천여 개의 트윗에 주석을 달았습니다.

 

Waseem & Hovy 데이터 일부

 

수집한 HateSpecch Dataset 정리

 

 

오늘은 인터넷에 공개되어있는 HateSpeech Dataset에 대해 알려드렸습니다.

반응형

+ Recent posts