-
BERTopic 이란?BIG DATA & AI/NLP 2021. 6. 24. 15:18반응형
BERTopic 이란?
공식 홈페이지 설명에 의하면, BERTopic은 transformers와 c-TF-IDF를 활용한 토픽 모델링 기법으로, 쉽게 해석 가능한 주제(topic의 주요 keyword는 유지!)로 이루어진 dense한 cluster를 만들기 위해 사용된다고 한다. 모델과 함께 visualizations도 html로 제공하는데 이는 LDAvis와 유사하다고 한다!
다행히(?) 공식 홈페이지에 concept, tutorial이 잘 기술되어 있다. ヾ(•ω•`)o
https://maartengr.github.io/BERTopic/index.html
Quick Start 따라하기
라이브러리란, 이론보다 실습이므로, 우선 quickstart guide를 따라해 보았다. BERTopic이 꽤 무거운 딥러닝 라이브러리라서, 장비가 노트북, 게이밍 PC뿐인 나는 colab을 선택했다.
Colab 스펙 :
CPU: Intel Xeon 2.2GHz / RAM: 13GB / 저장공간: 33GB / GPU: 정보 없음, HW accelerator 사용 가능Google은 AI생태계 선구자답게 Google ID만 있으면 딥러닝을 돌릴 수 있는 공간 1개를 무료로 제공한다. :)
우선 bertopic을 깔았다. (n분)
그 후 예제 코드를 실행한다. 이 때, trainning data로 sklearn dataset이 필요한데 download & learning이 좀 오래 걸린다. 15분~20분정도 걸렸다. :/ 하지만 이 정도면 준수한 편 인듯..
이 결과는 무엇이냐, 하면 ..
corpus를 학습 시켜 topic modeling한 결과이다. 굉장히 직관적인 결과인 것을 알 수 있다.- dataset : news groups
- get_topic_info() - Name : topic (주제)
+) Topic -1은, general한 단어들의 집합이다. 중요도는 높지 않지만, 여러 document에 자주 등장하는 단어로써 아예 의미가 없지는 않다. - get_topic(0) : Topic 0에 해당하는 keyword, score 들
$ topic_model.get_topic_info() TopicCount Name 0 -1 6009 -1_your_file_jpeg_these 1 0 1805 0_game_players_hockey_league 2 1 1292 1_car_bike_cars_bikes 3 2 729 2_orbit_nasa_satellite_lunar 4 3 715 3_key_encryption_nsa_security ... ... ... ... 183 182 10 182_bbs_06066_2038752751_supermacs 184 183 10 183_catholic_steubenville_conference_attending 185 184 10 184_rama_krishna_prophethood_miracles 186 185 10 185_widget_converter_xt_widgets 187 186 10 186_crohns_inflammation_fatty_acids 188 rows × 3 columns $ topic_model.get_topic(0) [('game', 0.010642418887928884), ('players', 0.006542026629000378), ('hockey', 0.0062617223182814055), ('league', 0.005126299202655933), ('win', 0.005079979893241509), ('teams', 0.004776815398287238), ('player', 0.004554645075507119), ('nhl', 0.00423002246079115), ('goal', 0.0035617604615609142), ('hit', 0.0035613545685225494)]
또한 소개에서 언급했듯 각종 visualization 함수로 graph를 볼 수도 있다.
반응형'BIG DATA & AI > NLP' 카테고리의 다른 글
Stanford CS224N: Youtube Link and Materials (0) 2022.03.08 HCLT 2021 논문집 (0) 2021.11.16 자연어 처리 엔지니어의 역량 (0) 2021.05.24 NLP 라이브러리 소개 - Document Embedding, Word Embedding / BERT, KoBERT, Word2Vec, Glove, FastText, ELMo (0) 2021.04.14 자연어 처리 개념 (NLP Bible) (0) 2021.04.08