gobongbob / Learn-ON

Online Re-Learning assistant "Learn ON"'s repository
http://13.125.220.170:3000/
MIT License
0 stars 3 forks source link

[ML] Keyword Extraction opensource #14

Open bobsiunn opened 3 years ago

bobsiunn commented 3 years ago

당초 AWS Comprehend를 통해 구현하려고 했었던 Keyword Extraction 파트가 AWS Credit 지급이 딜레이됨에 따라 최악의 경우, 직접 모든 모델을 구현해야 할 상황에 놓이게 되었습니다.

이에 대응하기 위해 Github과 여러 논문들의 조사하여, 저희의 목표를 달성하기 위한 알고리즘들, 그리고 그에 대한 오픈 소스 코드를 탐색 중에 있습니다.

먼저, 조사 결과 Learn ON의 구현에 유용하게 사용될 만한 알고리즘은 두 가지가 있습니다.

첫째는 BERT 엔진입니다. BERT 엔진은 NLP의 한 종류로 기존 NLP가 각 형태소를 분리하여 자연어 처리를 진행했다면, BERT 엔진의 경우에는 한 단어와 그와 인접한 단어 간의 확률적 분포를 기반으로 단어간 연관성 분석을 수행합니다. 이로 인해, 장기간 많은 텍스트 데이터를 학습시켜야 하는 기존 NLP 엔진과 달리 적은 학습 데이터로도 구현이 용이하다는 장점이 있으나, 새로운 데이터 형식이나 정형화되지 않은 데이터에 대해 취약하다는 단점이 있습니다.

둘째는 TF-IDF 토픽 모델링 기법입니다. 해당 기법은 저희가 최우선으로 도입하고자 고민하고 있는 기법이고, AWS Comprehend가 해당 기법을 중심으로 구축되었을 것이라 예상됩니다. 토픽 모델링 기법의 경우, 각 문장에 대해 특정 단어가 특정 그룹에 속할 확률을 추정하고, 가장 높은 확률을 보여주는 그룹에 해당 단어를 배정합니다. 그 결과, 모든 학습이 종료되면, 각 단어들이 적정 그룹에 배치되어 자동 분류되는 결과를 도출할 수 있습니다.

이 두 가지 방법에 대해 도입을 검토 중에 있고 조사하면서 시시 때때로 관련 링크를 코멘트로 달겠습니다.

bobsiunn commented 3 years ago

https://github.com/MaartenGr/KeyBERT#usage

BERT 엔진을 추가적인 학습 없이 빠르게 사용할 수 있도록 오픈소스로 공개된 코드입니다

bobsiunn commented 3 years ago

https://github.com/aneesha/RAKE

정확하게 어떤 모델을 활용하는지는 독해하지 못했지만, 각 함수의 목적과 역할 및 구조가 뚜렷하게 주석으로 정리되어 있어 참고 차 공유합니다