www 2022에 발표 된 사전에 걸린 언어 모델 표현의 잠재 우주 클러스터링을 통해 주제 발견 에 사용되는 소스 코드.
코드를 실행하려면 하나 이상의 GPU가 필요합니다.
실행하기 전에 다음 명령을 입력하여 필요한 패키지를 먼저 설치해야합니다 (가상 환경 사용 권장).
pip3 install -r requirements.txt
NLTK에서 다음 리소스를 다운로드해야합니다.
import nltk
nltk.download('stopwords')
nltk.download('averaged_perceptron_tagger')
nltk.download('universal_tagset')
Topclus 는 사전에 걸려있는 언어 모델 표현에서 파생 된 잠재적 인 구형 공간에서 단어, 문서 및 주제를 공동으로 모델링하는 감독되지 않은 주제 발견 방법입니다.

항목 스크립트는 src/trainer.py 이며 입력시 명령 줄 인수의 의미가 표시됩니다.
python src/trainer.py -h
주제 검색 결과는 results_${dataset} 에 기록됩니다.
우리는 New York Times에서 주제 발견과 논문에 사용 된 Yelp Review Corpora에서 각각 주제 검색을 실행하기위한 두 가지 예제 nyt.sh 및 yelp.sh 제공합니다. 먼저 datasets/nyt 및 datasets/yelp 에서 .tar.gz tarball 파일에서 텍스트 파일을 추출해야합니다.
다음과 같은 결과를 얻을 수 있습니다 (주제 ID는 무작위입니다).
On New York Times:
Topic 20: months,weeks,days,decades,years,hours,decade,seconds,moments,minutes
Topic 28: weapons,missiles,missile,nuclear,grenades,explosions,explosives,launcher,bombs,bombing
Topic 30: healthcare,medical,medicine,physicians,patients,health,hospitals,bandages,medication,physician
Topic 41: economic,commercially,economy,business,industrial,industry,market,consumer,trade,commerce
Topic 46: senate,senator,congressional,legislators,legislatures,ministry,legislature,minister,ministerial,parliament
Topic 72: government,administration,governments,administrations,mayor,gubernatorial,mayoral,mayors,public,governor
Topic 77: aircraft,airline,airplane,airlines,voyage,airplanes,aviation,planes,spacecraft,flights
Topic 88: baseman,outfielder,baseball,innings,pitchers,softball,inning,basketball,shortstop,pitcher
On Yelp Review:
Topic 1: steamed,roasted,fried,shredded,seasoned,sliced,frozen,baked,canned,glazed
Topic 15: nice,cozy,elegant,polite,charming,relaxing,enjoyable,pleasant,helpful,luxurious
Topic 16: spicy,fresh,creamy,stale,bland,salty,fluffy,greasy,moist,cold
Topic 17: flavor,texture,flavors,taste,quality,smells,tastes,flavour,scent,ingredients
Topic 20: japanese,german,australian,moroccan,russian,greece,italian,greek,asian,
Topic 40: drinks,beers,beer,wine,beverages,alcohol,beverage,vodka,champagne,wines
Topic 55: horrible,terrible,shitty,awful,dreadful,worst,worse,disgusting,filthy,rotten
Topic 75: strawberry,berry,onion,peppers,tomato,onions,potatoes,vegetable,mustard,garlic
잠재 문서 임베딩은 클러스터링 알고리즘 (예 : k-means)의 기능으로 사용할 수있는 results_${dataset}/latent_doc_emb.pt 에 저장됩니다.
근거 진실 문서 레이블이있는 경우 문서 레이블 파일과 저장된 잠재 문서 임베딩 파일을 src/utils.py 의 cluster_eval 함수로 전달하여 문서 클러스터링 평가 결과를 얻을 수 있습니다. 예를 들어:
from src.utils import TopClusUtils
utils = TopClusUtils()
utils.cluster_eval(label_path="datasets/nyt/label_topic.txt", emb_path="results_nyt/latent_doc_emb.pt")
새 데이터 세트에서 코드를 실행하려면
datasets 에서 your_dataset 이라는 디렉토리를 만듭니다.your_dataset texts.txt (줄 당 문서 1 개)를 준비하십시오.src/trainer.py 실행하십시오 (기본값은 일반적으로 좋은 시작점입니다). 코드가 연구에 도움이된다면 다음 논문을 인용하십시오.
@inproceedings{meng2022topic,
title={Topic Discovery via Latent Space Clustering of Pretrained Language Model Representations},
author={Meng, Yu and Zhang, Yunyi and Huang, Jiaxin and Zhang, Yu and Han, Jiawei},
booktitle={The Web Conference},
year={2022},
}