Crawling of abstract data & Preprocessing
- Data crawler가 abstract와 keyword를 수집하고 전처리함
- 전처리로는 stop words를 제거하고 only nouns를 추출함
- 전처리로 데이터 양이 줄어드므로 classification system의 효율성을 높임
- Abstract가 빅데이터이므로, HDFS로 관리함
Managing paper data
- 모든 abstract의 keyword 중에서 비슷한 의미를 갖는 keywords를 하나의 representative keyword로 Categorize함
- 그 결과 1394개의 representative keywords를 추출했고, 이것으로 keyword dictionary를 만듦
- 하지만 그래도 시간이 오래걸려서 이 representative keywords 중에 가장 자주 등장하는 10개, 20개, 30개 keyword sets를 이용함
Topic modeling
- LDA (Latent Dirichlet Allocation) 으로 abstract에서 topic sets를 추출함
- LDA는 여러 문서로부터 잠재된 topics를 추출하는 확률 모델임
- 각각 10개, 20개, 30개의 topics로 구성된 세 가지 topic sets를 추출함
TODO: LDA 이해, 수식 이해
TF-IDF
1) TF (Term Frequency)
- 한 문서에서 해당 단어가 몇 번 나타나는지
2) DF (Document Frequency)
- 해당 단어가 전체 문서 중에 몇 개의 문서에 나타나는지
- (해당 단어가 나타난 문서 수) / (전체 문서 수)
3) IDF (Inverse Document Frequency)
- DF의 역수
- (전체 문서 수) / (해당 단어가 나타난 문서 수)
4) TF-IDF
- TF-IDF = TF * IDF
- 어떤 단어가 해당 문서에서 얼마나 중요한 것인지에 대한 값
- 해당 문서에 자주 나타날 수록(high TF), 다른 문서에서는 잘 나타나지 않을 수록 (high IDF) 중요도가 높은 단어라고 할 수 있으므로 TF-IDF의 값이 클 수록 중요한 단어임을 의미함
- 값이 커지므로 루트나 로그를 씌우기도 함
K-means clustering
- Clustering이란 데이터셋을 비슷한 데이터의 클래스로 분류하는 것임
- K-means clustering은 그 중 unsupervised learning algorithm임
- N개의 아이템을 가진 데이터셋을 K개의 서브셋으로 분류함
- 수학적으로는 해당 cluster의 중심과 그 cluster에 속하는 데이터의 TF-IDF 값 사이의 유클리드 거리를 작게 하려고 함
- 여러 장점이 있는 algorithm이지만 clustering 이전에 K값을 결정해야 하는 한계가 있는데, Elbow scheme을 이용해 적절한 cluster의 개수를 찾음
- 그리고 Silhouette scheme으로 clustering 결과를 validate함
Experiment environment
- Paper 데이터를 관리하기 위해 HDFS를 사용함
- 특별히 master node 하나, sub node 하나, data node 4개로 이루어진 Hadoop cluster도 구축함
- TF-IDF 계산 모듈은 Hadoop-2.6.5에서 Java로,
- LDA 계산 모듈은 Spark MLlib을 이용해 Python으로,
- K-means clustering은 Scikit-learn으로 implement함
- Experimental data로는 FGCS (Future Generation Computer System) 저널에 1984년부터 2017년까지 출판된 paper 3264편을 사용함 (titles, abstracts, keywords)
- Experiment를 위한 keyword dictionary는 세 가지를 이용함
1) Method 1: keywords만 사용 (Top frequency 10, 20, 30)
2) Method 2: LDA로 추출된 topics만 사용 (Topics 10, 20, 30)
3) Method 3: Method 1과 2를 섞음 (K 5 + T 5, K 10 + T 10, K 15 + T 15)
Experiment results
1) Elbow scheme
- Method 1, 2, 3에 대하여 keyword 10개, 20개, 30개를 줬을 때의 결과 (= cluster 개수) 는 아래 표와 같음
- Keyword 개수가 늘어날 수록 더 정교하게 clsutering 하므로 cluster 개수가 늘어남을 알 수 있음
- Method 3이 다른 두 method에 비해 적은 cluster 개수를 나타내는데, 두 method의 장점을 보완적으로 가지기 때문임
- Method 1은 유저가 입력하는 keyword에 의존하여, paper를 분류하기에 적절한 keyword인지 보장할 수 없음
- Method 2는 LDA로 추출한 topic을 이용함으로써 Method 1의 단점을 보완함
2) Silhouette scheme
- Silhouette value는 같은 cluster에 있는 두 데이터가 가까이 있을 수록 값이 커짐
- 또한 다른 cluster에 있는 두 데이터가 멀리 있을 수록 값이 커짐
- 일반적으로 Silhouette value는 -1 ~ 1의 값을 가지며 0.5 이상일 경우 clustering 결과가 validated 되었다고 함
References
https://hcis-journal.springeropen.com/articles/10.1186/s13673-019-0192-7
'머신러닝, 딥러닝 > Paper Classification' 카테고리의 다른 글
NLP Tokenization (wikidocs) (0) | 2020.03.16 |
---|---|
NLP tutorial (wikidocs) (0) | 2020.03.16 |
Text classification (wikidocs) (0) | 2020.02.27 |
Kaggle 타이타닉 예제 (0) | 2020.02.25 |
Google colab 사용법 (0) | 2020.02.24 |
댓글