본문 바로가기
머신러닝, 딥러닝/Paper Classification

Research paper classification systems based on TF-IDF and LDA schemes

by 행뱁 2020. 3. 3.

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

 

Research paper classification systems based on TF-IDF and LDA schemes

With the increasing advance of computer and information technologies, numerous research papers have been published online as well as offline, and as new research fields have been continuingly created, users have a lot of trouble in finding and categorizing

hcis-journal.springeropen.com

https://charsyam.wordpress.com/2017/04/08/%EC%9A%A9%EC%96%B4-%EC%A0%95%EB%A6%AC-%EC%9E%85-%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-tf-idf/

 

[용어 정리] 입 개발자를 위한 TF-IDF

뭔가 아는척을 위해서 알아두면 좋은 단어중에 지난번에 언급했던 Accuracy, Recall, Precision 같은 것들이 있는데, 이것 말고도 알아두면 입 개발자로 아는 척 하기 좋은 단어가 있습니다. 바로 TF-IDF 인데요. 보통, 검색이나 다른쪽을 하시는 분들은 다들 잘 알고 있는 단어이기도 합니다.(개인적으로는 해당 강의  들으시길 추천합니…

charsyam.wordpress.com

 

 

 

 

 

'머신러닝, 딥러닝 > 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

댓글