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

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

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

Github 트위터 공식 계정

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

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

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

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

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

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

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

2019년 회고, 2년치 연말정산

2018년에는 회고를 쓰지 않았다.

정확히 말하면.. 회고를 쓰기에 너무 많은 일이 있었기 때문이 아니었을까.

2019년의 회고글이지만, 2018년과 19년은 마치 1년처럼 끊김없이 이어진 기분이었다.

그래서 이번 회고는 2019년 회고이지만 2018년도 함께 정리해보려 한다.

👨🏻‍💻👩🏻‍💻 (대략 열심히 타이핑 중이라는 뜻)

트위터에서 많은 팔로워를 크롤링하는 방법 [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천만명의 유저 데이터를 가져올 수는 없다.

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

한국어 NLP와 딥러닝을 위한 도커이미지 만들기

딥러닝 + 도커?

딥러닝 프로젝트를 진행할 때 귀찮은 것 중 하나는 여러 라이브러리를 관리하고 어떤 버전을 설치했는지를 매번 체크하는 것이다.

Tensorflow나 PyTorch의 경우 매 시즌별로 버전 업데이트가 이뤄지며 동시에 api가 이전 버전과 달라져 어떤 것을 사용해야 하는지 선택이 곤란해지는 때가 있다.

V Lang 톺아보기[1]: 첫 만남

V lang? V 언어?

V lang의 Hello World 예제 모습

image-20191021012923246

오늘 페이스북 진중님의 타임라인 게시글에 아래와 같이 V 언어에 대한 홍보(?)가 올라왔다.

image-20191021012957993

컴파일도 엄청 빠르고, V 언어로 V 언어를 컴파일하는 (마치 pypy같은..!?), 게다가 Go보다 간단하고, 웹 프레임웍/ORM 내장에 동시성 처리와 패키지도 있다!

-라는 말에 낚에서 우와 신기하다! 하고나서 대체 어떤 언어인지 살펴보러 가보았다.

pypapago 개발기

TL;DR

아래 내용을 통해 개발한 pypapago 는 현재 pypi에 올라가 있어 아래 명령어로 설치해 바로 사용할 수 있습니다.

1
pip install -U pypapago

2019.07.09일자 기준 최신버전은 0.1.1.1 입니다.

Github Repo: https://github.com/Beomi/pypapago

DLCAT#2 참석 후기 & 정리

DLCAT#2를 다녀오다.

대전 UST와 ETRI에서 열린 DLCAT행사를 다녀왔다.

모두 ML/DL에 관련한 이야기로 한가득…(굉장히 듣는 즐거움이 있었다.)

(아래 이미지는 DLCAT에서 들은 세션들)

IMG_0042

제목만 보고 잘못 들어갔지만 새로운 인사이트를 얻은 세션도 있었고, 현실적인 이야기를 하는 경우와 사업적인 이야기를 하는 경우, 그리고 논문을 수십편을 40분만에 살펴보는 어마무시한 세션도 있었다. 하지만 어느쪽이든 대부분 굉장히 재미있었던 편.

DevGround 2019, 뭣이 중헌디? and 데이터야 흘러라

DevGround 2019를 다녀오다

오늘 DevGround 2019 행사에 다녀왔다.

다양한 머신러닝과 관련된 연사분들의 고충(!)을 듣는, 일부는 공감되기도 하는 시간이었다.

이번 행사를 두 문장으로 요약하면,

“뭣이 중헌디?” & “데이터야 흘러라!”

였다.

Your browser is out-of-date!

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

×