NLP 튜토리얼: 라벨링 없이 트위터 유저들을 자동으로 나누어보기

트위터에는 굉장히 다양한 유저들이 있다.

그리고 트위터 유저들은 “BIO”라고 부르는 자기소개 페이지에 자신에 대한 정보를 적어둔다.

Github 트위터 공식 계정

위 스크린샷과 같이, 자신의 계정이 어떤 계정인지를 간단한 160자 내로 드러내는 것이 바로 BIO다.

그렇다면, 이런 계정들이 ‘어떤’ 계정인지 BIO를 이용해 분류해 볼 수 있지 않을까?

하지만 모든 유저를 우리가 손으로 라벨을 붙여 학습시키는 것은 힘들다.

그렇다면 알아서 분류하려면 어떻게 해야할까?

간단한 자연어 처리를 통해 라벨링 없이 유저를 클러스터링해보자.

🌟 바로바로 실행하면서 따라올 수 있는 Google Colab 👨🏻‍💻👩🏻‍💻👇

https://colab.research.google.com/drive/1bgv3CHZDp2smIWXQwAUD3j5z8LAYbLVz

트위터에서 많은 팔로워를 크롤링하는 방법 [3]: 1초에 5천개 데이터 가져오기

앞서 쓴 글(2편)에서는 Twint와 직접 만든 크롤러를 이용해 데이터를 수집하는 내용을 정리했다. 하지만 여전히 큰 문제가 남아있었다.

“1만명까지는 어떻게든 모을 수 있다. 그런데 10만 이상의 팔로워/팔로잉을 가진 유저의 데이터는 대체 어떻게 가져와야 하나?”

여기서는 몇 가지의 이슈가 충돌했다.

  1. “여러 계정을 한번에 가져와야 한다.”: 수집해야하는 계정이 여전히 1k+개.
  2. “15분 이상의 긴 수집 시간이 필요하다.”: Lambda에서는 어렵다.
  3. “한 IP에서 너무 많은 요청을 하면 안된다.”: 한 IP에서 너무 많은 요청을 하면 걸릴 수 있다.
  4. “HTML 웹 크롤링은 간혹 일부만 수집후 종료되더라.”: 트위터에서 간혹 팔로잉/팔로워를 모두 수집하지 않았음에도 (5만명중 1만명만 수집 등) 이후 Cursor를 제공하지 않아 크롤링이 정지되는 경우가 있었다.

그러다, 이 이슈를 한번에 해결할 수 있는 방법(꼼수)를 찾게 되었다.

트위터에서 많은 팔로워를 크롤링하는 방법 [2]: HTML 웹 크롤링을 해보자

앞서 쓴 글(1편)에서는 몇가지 조건들과 나쁜 상황을 걸어 단순한 수집이 아니라 뭔가 꼼수가 필요한 상황을 가정해 보았다.

API를 유료로 못쓴다? ➡️ 못쓸정도로 느리다! 😨

따라서 다른 방법인 직접 데이터 크롤링이 필요했고, 이번에는 Twint와 HTML 웹 크롤링을 통해서 수집을 해 본 과정을 적어보았다.

트위터에서 많은 팔로워를 크롤링하는 방법 [1]: 어떤 점들을 고려해야 할까?

트위터에는 수많은 유저가 있다. 그 중에서는 단 1명의 팔로워도 모으지 못한 유저도 있지만 반대로 수백 수천만명의 팔로워를 가진 유저도 있다.

Twitter의 트위터 공식 계정에는 약 5천6백만명의 팔로워가 있다.

당장 우리가 ‘팔로워’ 를 클릭해 내용을 살펴보면 한번에 20명씩 정보를 보여준다. 스크롤을 해서 5천만명의 유저 데이터를 가져올 수는 없다.

그렇다면 어떤 방법을 써야 저 데이터를 가져올 수 있을까?

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×