본문 바로가기
Al Basic/NLP

[NLP] Text Preprocessing

by whybe 2023. 9. 20.

 

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

 

Introduction to NLP

  • Phonology(음운론) : 사람의 음성을 어떠한 음절 혹은 글자로 바꿀 것인가. (ex. Speech to Text)
  • Morphology(형태론) : 주어진 텍스트를 의미가 있는 단위로 어떻게 쪼갤 것인가.
  • Syntax(통사론) : 단어나 토큰 간의 구조적 관계가 어떠한가. (주어, 동사, 목적어, ...)
  • Semantics(의미론) : 주어진 텍스트가 어떤 의미를 지니는가.
  • Pragmatics(화용론) : 화자의 발화 의도는 무엇인가.

자연어처리는 고전적으로 rule-based approachstatistical approach를 이용했지만, 최근에 들어 deep learning을 이용하고 있다.

End-to-End Multi-Task Learning

  • 과거에는 Documents가 주어지면 Language Detection이나 Preprocessing의 과정에서 Domain knowledge를 요구하는 등 사람의 개입이 이루어졌다.
  • Deep Learning을 이용하면 Documents와 output에 대한 label이 주어지면 다양한 task를 한번에 수행가능하며 이 과정에서 사람의 개입은 필요없다.

Lexical Analysis

어휘 분석(lexical analysis)란 토큰(token)이나 단어와 같이 의미를 보전할 수 있는 가장 작은 단위 수준에서 분석하는 것이다.

Pos tagging & NER

  • Tokenizing(토큰화) : 문서를 토큰 단위로 나눈다. Tokenizer에 따라 토큰화 방법이 달라질 수 있다.
  • Morphological Anaysis Stemming & Lemmatization
    • Stemming : "reduce words to a base form" → 서로 다른 단어들도 같은 stem으로 변환될 수 있다. (ex. stocks, stocking - stock)
    • Lemmatization : "reduce words to their lemma" (lemma : 품사를 보전하는 단어의 원형)
  • Part-of-Speech(Pos) tagging : 각각의 토큰이 문장에서 어떠한 품사를 갖는지 파악한다. 같은 토큰이여도 문장에서 다른 품사로 사용될 수 있다.
    • I love you → "love" - verb(동사)
    • All you need is love →  "love" - noun(명사)
  • Named Entity Recognition(NER, 개체명 인식), chunking, ... 

POS tagging

  • Pointwise prediction : 품사를 예측하고자 하는 토큰이 포함된 일정한 길이의 시퀀스를 classifier에 통과시켜 output으로 해당 토큰의 품사를 예측한다.(ex. Maximum Entorpy Model, SVM, ...)
  • Generataive sequence models : 문장 전체를 input으로 받아 순차적으로 각 토큰에 대한 tagging을 진행한다. (ex. Hidden Markov Model; HMM)
  • Discriminative sequence mdoels : 문장 전체를 input으로 받아 전체 토큰에 대한 tagging을 일괄적으로 예측한다. (Conditional Random Field;CRF)
  • Neural network-based models : RNN 기반의 LSTM, GRU를 사용하거나 downstream task에 따라 pretrained model을 fine-tuning하여 각 토큰의 품사를 예측한다.(ex. BERT)

Syntax Analysis

구분 분석(Syntax analysis)은 일련의 문장을 문법에 맞도록 구조를 분석하는 과정이다. 구조적 모호성(structural ambiguity)으로 인해 하나의 문장은 서로 다른 방식으로 해석될 수 있다.

Language Modeling

  • Probabilistic Language Modeling

확률적 언어 모델링(Probabilistic Language Modeling)은 문장이나 단어 시퀀스의 확률을 계산하는 작업을 말한다. 문장 내에 있는 각 단어를 $w_{1}, w_{2}, w_{3}, ... , w_{n}$이라고 할 때 해당 단어의 시퀀스 $W$의 확률은 다음과 같다. 

$$ P(W) = P(w_{1}, w_{2}, w_{3}, ... , w_{n}) $$

다음 단어가 무엇인지 예측하는 경우의 확률은 다음과 같이 계산할 수 있다.

$$ P(w_{5}|w_{1}, w_{2}, w_{3}, w_{4}) $$

결론적으로 특정 문장이나 단어 시퀀스의 확률은 다음과 같이 표현할 수 있다.

$$ P(W) = P(w_{1}, w_{2}, w_{3}, ... , w_{n}) = P(w_{1})P(w_{2}|w_{1})...P(w_{n}|w_{1}, ... ,w_{n-1})$$

이때, 조건에 해당하는 확률들은 계산이 복잡한 경우가 일반적이므로 각 단어가 등장할 확률을 독립이라 가정하면

$$ P(w_{1}, w_{2}, w_{3}, ... , w_{n}) = \prod_{i}^n P(w_{i}) $$

단어 시퀀스의 확률을 계산할 때, 현재 단어의 확률에만 집중하는 것을 Unigram model 이라 하며 단어의 확률을 계산할 때 그 이전의 단어를 얼마나 볼 것인지에 따라 N-gram model 이라 불린다.

 

  • Neural Network Based Language Model - RNN, Seq2Seq, GPT-2, ...

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

[NLP] Dimensionality Reduction  (0) 2023.10.03
[NLP] Text Representation  (0) 2023.09.25
[NLP] Introduction to Text Analytics  (0) 2023.09.13
[NLP] Attention in Seq2Seq Learning  (0) 2023.06.12
[NLP] RNN & LSTM  (0) 2023.06.04