본문 바로가기
Al Basic/NLP

[NLP] Introduction to Text Analytics

by whybe 2023. 9. 13.
고려대학교 산업경영공학부 DSBA 강필성 교수님의 '[Korea University] Unstructured Data Analysis(Text Analytics)'

 

Text Analytics(Text Mining)

텍스트 마이닝(Text Mining)이란 정제되지 않은 텍스트 데이터로 부터 유의미한 정보나 지식을 추출하는 것을 의미한다. 

  • Information Abstraction/Summarization/Visualization : Word Cloud 등을 통해 방대한 양의 정보를 요약하고 시각화한다.
  • Document Clustering : 문서를 클러스터화하고 각각의 클러스터에서 대표적인 키워드를 추출한다.
  • Topic Extraction : LDA 등을 통해 문서를 분석하여 말뭉치(corpus)에서 잠재적인 주제(latent topic)를 추출한다.
  • Document Categorization/Classification : 감정분석(Sentiment Analysis)나 메일의 스팸 여부를 분류하는 작업에 이용된다.
  • Recommendation : Content-Based Filtering를 통해 다양한 결과를 추천한다.
  • Question & Answering : 문서를 분석하여 특정 질문에 대한 답변을 찾는다.

1. Collection & Preprocessing

 텍스트 데이터를 이용하기 위해서는 전처리(preprocessing) 과정이 필수적이다. 

  • 수집된 텍스트 데이터에서 불필요한 부분을 제거한다. ex) HTML 태그
  • 문장의 경계를 명확하게 나눈다. 
    • ".", "!", "?" 등의 문장 부호를 통해 문장의 경계를 나눌 수 있지만, 각각의 문장부호가 EOS(End Of Sentence, 문장의 끝)을 의미하지 않을 수 있다.
  • 토큰화(Tokenizing) : 텍스트를 의미를 가진 가장 작은 단위(=토큰, token)로 나눈다.
    • 불용어(Stop-words) : 관사와 같이 어떠한 정보도 포함하지 않는 단어 → 문장에서 아무 역할도 하지 않기 때문에 보통 더 나은 성능 향상을 위해 제거한다. 
    • 어간 추출(Stemming) : 같은 의미를 갖지만 형태가 다른 두 단어에서 어간을 추출한다. 어간 추출의 결과는 사전에 없는 단어일 수 있다.
    • 표제어 추출(Lemmatization) :  뿌리 단어를 찾아 여러 단어를 하나의 단어로 통합한다. 

2. Transformation

전처리된 텍스트 데이터를 벡터화(Vectorization)한다. 

  • Bag-of-words : 하나의 문서는 해당 문서에서 사용된 모든 단어들의 빈도로 표현할 수 있다.
  • TF-IDF(단어 빈도-역문서 빈도) : 문서 내에 등장하는 단어들에 대해 가중치를 부여하여 해당 문서를 표현한다.
    • $TF-IDF(w) = tf(w) \times log(\frac{N}{df(w)})$
    • $tf(w)$ : 특정 문서 내 단어의 빈도수
    • $df(w)$ : 해당 단어를 포함하고 있는 문서의 수
    • 'the'라는 단어가 모든 문장에 등장했을 경우, $log(\frac{N}{df(w)}) = 0$이므로 'the'가 특정 문서에서 많이 등장했을지라도 중요도는 낮다고 할 수 있다.
  • One-hot-vector : 각 단어를 특정 위치의 원소만 1이고 나머지 원소는 0인 벡터로 표현한다.
    • One-hot-vector로 각 단어를 표현하면 두 단어 사이의 유사성을 보존할 수 없다.

https://jiho-ml.com/weekly-nlp-4/

  • Distributed representation : 단어를 n차원의 실수 공간 상에 mapping한다. ex) GloVe, Word2vec, FastText, ...

https://nlp.stanford.edu/projects/glove/

3. Dimensionality Reduction(차원축소)

  • Feature Selection : 주어진 변수들 중 최적의 변수를 선택한다. (가공X)
  • Feature Extraction : 주어진 변수들로부터 새로운 변수들을 추출한다. (추출된 변수의 차원은 기존 변수의 차원보다 작아야한다.)
    • Latent Semantic Analysis(LSA, 잠재 의미 분석) : SVD(Singular Value Decomposition, 특이값분해)를 이용한다.
    • Latent Dirivhlet Allocation(LDA, 잠재 디리클레 할당) : Topic Modeling에 이용된다.
    • Doc2vec : Word2vec을 확장하여 문서를 벡터화한다.

'Al Basic > NLP' 카테고리의 다른 글

[NLP] Dimensionality Reduction  (0) 2023.10.03
[NLP] Text Representation  (0) 2023.09.25
[NLP] Text Preprocessing  (0) 2023.09.20
[NLP] Attention in Seq2Seq Learning  (0) 2023.06.12
[NLP] RNN & LSTM  (0) 2023.06.04