LDA 모델 학습 및 구현
개요
본 항목에서는 데이터 크롤러로 수집된 세종대학교와 관련된 모든 문서에 대하여 학습을 수행하고 토픽을 예측할 LDA 모델의 구현 과정에 대하여 서술한다.
학습 과정 명세
HyperParameter
LDA 모델을 학습시키기 위한 하이퍼 파리미터는 다음과 같다.
지속적으로 수정 예정
파라미터 명 | 설명 |
NUM_TOPICS | 군집화를 수행할 총 토픽 수 |
PASSES | 전체 코퍼스에서 모델을 학습시키는 빈도 |
iteration | 각각 문서에 대해서 루프 반복 횟수 |
POST_LIMIT | 학습에 포함될 최소 글자수 제한 |
Corpus 변환 과정
LDA 모델이 학습할 수 있도록 DB 내에 존재하는 모든 문서 데이터를 Copus로 변환하는 작업을 수행해야 한다.
DB 내의 데이터에 대하여 전처리 과정 수행
각 문서를 코퍼스로 변환하기 전에 여러 조건을 검토하여 해당 데이터가 학습 모델에 적용시킬지에 대한 전처리 과정을 수행한다.
확정된 문서를 바탕으로 코퍼스 변환 작업을 수행한다. 반환된 게시물의 토큰에 대하여 새로운 토큰을 모델의 딕셔너리에 추가하고, 해당 토큰을 딕셔너리 식별 값으로 변환하여 코퍼스를 생성한다.
학습
수행된 코퍼스와 사전에 결정된 하이퍼 파라미터 인자를 사용하여 LDA 학습을 수행한다.
소스 코드 배포
실행 요구사항
분류 | 설명 |
플랫폼 | Github |
라이센스 | MIT License |
분류 | 버전명 |
개발 언어 | Python 3.7.1 |
라이브러리 요구사항 |
attrs==19.1.0 |
boto==2.49.0 |
boto3==1.9.223 |
botocore==1.12.223 |
certifi==2019.6.16 |
chardet==3.0.4 |
colorama==0.4.1 |
docutils==0.15.2 |
funcy==1.13 |
future==0.17.1 |
gensim==3.8.0 |
idna==2.8 |
importlib-metadata==0.20 |
Jinja2==2.10.1 |
jmespath==0.9.4 |
joblib==0.13.2 |
JPype1==0.7.0 |
konlpy==0.5.1 |
MarkupSafe==1.1.1 |
more-itertools==7.2.0 |
nltk==3.4.5 |
numexpr==2.7.0 |
numpy==1.17.1 |
packaging==19.1 |
pandas==0.25.1 |
pluggy==0.12.0 |
py==1.8.0 |
pyLDAvis==2.1.2 |
pyparsing==2.4.2 |
pytest==5.1.2 |
python-dateutil==2.8.0 |
pytz==2019.2 |
requests==2.22.0 |
s3transfer==0.2.1 |
scipy==1.3.1 |
six==1.12.0 |
smart-open==1.8.4 |
urllib3==1.25.3 |
wcwidth==0.1.7 |
zipp==0.6.0 |
atomicwrites==1.3.0 |
Last updated