서론
백신여권(Vaccine Passport)은 녹색여권(Green Passport), 위생여권(Sanitary Passport) 혹은 건강여권(Health Passport)이라고도 불리며 2019년에 시작된 코로나19 대유행의 결과로 만들어졌습니다. 2차까지 백신을 접종한 사람들에 한해 백신여권을 지급하고, 이를 출입국에 활용하겠다는 것인데요. 각국의 정부들은 백신여권이 바이러스의 확산을 방지할 수 있는 해결책으로 간주하고 이를 도입하고자 하고 있습니다. 하지만 정말 장점만 있는 백신여권일까요? 백신여권을 옹호하는 정부와 달리, 많은 사람들과 단체들은 백신여권 도입을 단호히 반대하며 이를 인권 침해로 보고 있습니다. 트위터 내 게시물을 크롤링하고 분석하여 사람들의 의견을 자세히 들어봅시다.
트위터 크롤링, 자연어처리 및 데이터 시각화를 통해 백신여권과
관련된 트윗이 어떤 정보를 제공하는지 알아보자!
데이터 수집
트위터를 크롤링하기 위해 알맞은 쿼리를 작성했습니다. 이 검색 쿼리는 미디어를 사용한 트윗과 리트윗을 제외한 위의 키워드 중 하나 이상을 포함하는 트윗을 검색하는 역할을 합니다.
생성된 데이터 세트는 다음과 같습니다.
이 데이터세트 중 관심있게 볼 것은 다음과 같습니다.
📌 user-location(사용자 위치): 국가별 트윗 개수를 확인하고 시각화합니다.
📌 date(날짜): 트윗 날짜를 확인합니다.
📌 text(텍스트): unigram, bigram, trigram 등의 방법을 통해 텍스트 분석을 수행합니다.
데이터 전처리
date(날짜) 열은 비교적 간단하게 전처리를 수행할 수 있었는데요, 날짜열에서 시간을 삭제하고, value_counts() 방법을 통해 날짜별 개수를 표시했습니다.
결과는 다음과 같이 나왔습니다.
user_location(사용자 위치) 열을 올바르게 분석하기 위해서는 이 열에 있는 데이터에서 국가 이름을 추출해야 합니다. user_location 열의 일부 데이터는 ‘Where are you’와 같이 말이 안 되는 데이터도 있었기 때문에, 위치가 아닌 데이터를 제거하고 국가 이름만을 추출해 표시했습니다. 결과는 다음과 같이 나왔습니다.
시각화 및 분석
이제 결과를 지도 및 파이차트 형식으로 시각화하겠습니다. 시각화툴에는 matplotlib.pyplot과 geopandas를 사용했습니다.
시각화 한 결과는 다음과 같습니다.
결과를 보니, 대부분의 트윗이 영어권 국가(미국, 영국, 캐나다, 호주, 남아프리카)에서 생성된다는 것을 알 수 있네요. 하지만 그 이유는 수집된 트윗이 영어로만 이루어졌기 때문일 가능성이 높습니다. 다른 언어를 선택한 경우 결과가 다를 수 있습니다.
하지만 프랑스는 영어권 국가가 아님에도 불구하고 많은 트윗수를 보여주었는데요! 프랑스는 백신 여권, 혹은 백신 통행증을 적용하는 데 있어 가장 엄격한 국가 중 하나이며, 백신여권에 반대하는 표현들이 정기적으로 나오고 있습니다. 이러한 이유로 프랑스도 영어권 국가와 같이 상위권에 속하게 되었네요.
텍스트 처리: 자연어 처리 활용하기
텍스트 처리의 목표는 트위터에서 백신여권에 관해 가장 많이 사용되는 단어들을 알아보는 것입니다. 텍스트 처리를 위해서는 사람이 일상생활에서 사용하는 언어를 분석하는 기술인 ‘자연어 처리’를 활용해야 합니다. 먼저 특수기호 삭제, 소문자 변환 등 텍스트 전처리를 진행한 후 트윗에서 가장 눈에 띄는 단어들을 표시한 워드클라우드를 만들어보았습니다.
트윗의 주제인 ‘여권(Passport)’, ‘백신(Vaccine)’, ‘코로나(Covid)’와 같은 단어들을 제외하고 살펴봅시다. (많이 나오는 것이 당연하니까요!)
워드클라우드를 자세히 보면, ‘항의(Protest)’, ‘정지(Stop)’, ‘강제(Enforce)’, ‘거부(Refuse)’, ‘Right(권리)’, ‘Mandate(권한, 필수)’와 같은 단어를 발견할 수 있습니다.
bigram과 trigram을 통해 좀 더 자세히 살펴보겠습니다.
bigram에서 ‘herd immunity(집단 면역)’, ‘pass protestor(백신여권 항의자)’, ‘fake vaccine(가짜 백신)’, ‘kill population(인구를 죽인다)’, ‘spread virus(바이러스를 퍼뜨린다), ‘fully vaccinated(완전히 접종한)’ 등의 표현을 발견할 수 있었습니다. trigram에서 보았을 때 사람들의 관심사는 ‘real threat people(진짜 위협)’과 ‘anti vaccine passport(백신 여권 반대)’ 인 것으로 보이네요.
정확한 결론에 도달하기 위해서는 좀 더 심층적인 분석이 필요할 것입니다. 상위 100개 bigram과 trigram 이상을 살펴보고 N그램에 대한 감정 분석을 적용할 것을 권장합니다.
결론
백신여권에 대한 트위터 크롤링 및 자연어처리를 통한 데이터 분석, 그리고 시각화를 통해 정부와 달리 백신여권에 대해 부정적 입장을 갖고 있는 사람들의 이야기를 들어볼 수 있었습니다. 여러분은 백신여권에 대해 어떻게 생각하시나요? 빠르고 정확한 데이터 수집과 분석을 통해 의미 있는 인사이트를 도출해보세요! 스파이더킴이 도와드리겠습니다.
Comments