자연어처리 기법#

토크나이제이션#

토크나이제이션이란?#

../_images/image-2-1-13.jpeg
  • 정의: 문자열을 토큰의 리스트로 분할하는 과정

  • 첫 단계: NLP 파이프라인에서의 첫 번째 단계로, 기계가 이해할 수 있는 언어로 번역하는 시작점

  • 단순화: “I like to eat apples”와 같은 간단한 문장도 토크나이제이션을 통해 [“I”, “like”, “to”, “eat”, “apples”]로 분해됨

  • 모호성: 문장의 구조가 복잡하거나 언어가 다양할수록 토크나이제이션은 더 복잡해짐

  • 중요성: 토크나이제이션은 임베딩과 신경망을 포함한 복잡한 NLP 시스템의 기초를 형성함

토크나이제이션의 복잡성#

../_images/image-2-1-23.jpeg
  • 문제 1: 단어의 결합과 분리

    • “ice cream”, “website” 등과 같이 다양한 방식으로 단어가 결합되거나 분리될 수 있음

  • 문제 2: 공백이 없는 다른 언어 체계

    • 중국어와 같이 단어 사이에 공백을 사용하지 않는 언어들이 존재

  • 문제 3: 축약과 클리틱

    • “doesn’t”, “I’m” 등과 같은 영어의 축약 형태 또는 이탈리아어의 “dirglielo”와 같은 클리틱이 존재

영어에서의 다양한 단어 형태#

../_images/image-2-1-32.jpeg
  • 대소문자 변화: “cat”, “Cat”, “CAT” 등 다양한 형태로 표현됨

  • 약어 및 하이픈 사용: “US-based”, “US based”, “U.S.-based” 등 다양한 스타일 존재

  • 지역적 철자 변이: “labor”와 “labour”, “materialize”와 “materialise”와 같은 영어의 지역별 철자 차이

  • 오탈자: “teh”와 같이 흔한 오타가 발생할 수 있음

영어 단어의 다양성#

../_images/image-2-1-43.jpeg
  • 단어의 개수: Google N-gram 코퍼스에는 1조 개의 토큰과 4천만 번 이상 나타나는 1천3백만 개의 단어 유형이 포함됨

  • 단어 지식: 일반적으로 성인은 약 3만 개의 단어를 알고 있으며, 유창함을 위해서는 적어도 5천 개의 단어를 알아야 함

  • 단어 빈도: 함수어는 매우 빈번하게 사용되며, 대부분의 내용어는 매우 드물게 사용됨

단어 형성 과정#

../_images/image-2-1-53.jpeg
  • 활용: 단어의 형태가 변화하는 과정. 예: 동사 “to be”의 다양한 형태 (“I am”, “you are”, “he is” 등)

  • 파생: 같은 기본 또는 뿌리에서 새로운 단어를 만드는 과정. 예: “grace”에서 “disgrace”, “disgraceful”, “disgracefully”로 변화

  • 복합어 형성: 두 개 이상의 단어를 결합하여 새로운 단어를 형성하는 과정. 예: “Ice cream”, “ice cream cone”

형태소와 형태#

../_images/image-2-1-6.jpeg
  • 어간(Stem): 대부분의 단어는 어간과 하나 이상의 접사로 구성됨. 예: “disgracefully”에서 “grace”는 어간

  • 접사(Affixes): 접두사 또는 접미사의 형태로 나타남. 예: “disgracefully”에서 “dis-”, “-ful”, “-ly”가 접사

  • 복수 명사: 대부분의 명사는 단수 형태에 “-s”를 추가하여 복수 형태를 만듦. 예: “book” → “books”

  • 과거 시제 동사: 대부분의 동사는 기본형에 “-ed”를 추가하여 과거 시제 형태를 만듦. 예: “walk” → “walked”

한국어 토크나이제이션#

한국어 토크나이제이션의 어려움#

../_images/image-2-2-13.jpeg
  • 문장 분리의 정의: 텍스트를 개별 문장으로 나누는 과정

  • 영어와의 차이점: 영어와의 차이점: 영어에서는 문장의 끝에 마침표와 같은 문장 부호를 사용하여 문장을 구분하지만, 한국어에서는 마침표를 사용하지 않는 경우가 흔함

  • 단어 분리: 한국어의 경우 단어가 공백으로 구분되지 않음

한국어 품사 태깅#

../_images/image-2-2-23.jpeg
  • 품사 태깅의 정의: 문장 속 각 단어에 품사를 할당하는 과정

  • 한국어의 품사 체계: 체언, 수식언, 관계언, 독립언, 용언 등 5언 9품사 체계를 사용

  • 용언의 중요성: 동사와 형용사는 어간과 어미를 결합하여 단어 형성

  • 품사 분류 기준: 기능, 의미, 형태를 기준으로 분류

  • 언어적 다양성: 품사 태깅은 한국어의 복잡한 형태론적, 구문론적 구조를 이해하는 데 필수적임

    한국어의 5언 9품사

    품사

    체언

    명사, 대명사, 수사

    수식언

    관형사, 부사

    관계언

    조사

    독립언

    감탄사

    용언

    동사, 형용사

한국어 형태소 분석#

../_images/image-2-2-32.jpeg
  • 형태소 분석의 정의: 단어를 가장 작은 의미 단위(형태소)로 분해하고 적절한 품사 태깅을 하는 과정

  • 예시 문장 분석: “나는 그 과자를 먹었다”는 나(대명사) + 는(조사) + 그(대명사) + 과자(명사) + 먹(동사) + -었(선어말어미) + -다(어말어미) + .(문장부호)로 분석

  • 분석 수준: 형태소, 구문, 의미, 담화 등 다양한 수준에서 분석 가능

  • 언어의 이해: 형태소 분석은 한국어의 복잡한 구조를 이해하는 데 중요한 역할을 함

  • 품사 할당: 각 형태소에 적절한 품사를 할당하는 것이 중요함

    원문

    나는 그 과자를 먹었다.

    너는 그를 사랑하니?

    형태소 분석

    나(대명사) + 는(조사) + 그(대명사) + 과자(명 사) + 먹-(동사)+-었(선어말어미)+- 다(어말 어 미)+ .(문장 부호)

    너(대명사) + 는(조사) + 그(대명사) + 사랑(명사) +-하(동사)+니(어말 어미) + ? (문장부호)

    구문 분석

    (S (NP 나/Noun) 는/Josa (NP 그/Noun 사 과/Noun) 를/Josa (VP 먹었다/Verb)./ Punctuation)

    (S (NP 너/Noun) 는/Josa (NP 그/Noun) 를/ Josa (NP 사랑/Noun) (VP 하니/Verb) ?/ Punctuation)

    의미 분석

    술부: 먹다 행위자: 나 대상: 그 과자

    술부: 사랑하다 행위자: 너 대상: 그

    담화 분석

    단순 서술

    의문형

언어적(문법적) 분류#

../_images/image-2-2-43.jpeg
  • 고립어, 굴절어, 교착어: 언어의 분류에 따라 단어의 형성 방식이 다름

  • 교착어의 특징: 한국어는 교착어로, 어간에 접사를 붙여 단어의 최종 의미를 결정함

  • 고립어의 특징: 중국어와 티베트어와 같은 고립어는 단어 순서에 따라 의미가 결정됨

  • 굴절어의 특징: 라틴어와 같은 굴절어는 단어 형태의 변화로 그 문법적 기능을 나타냄

  • 언어의 다양성: 각 언어 유형은 그 언어의 특성과 구조를 반영함

한국어 형태소 분석 (품사 태깅)#

../_images/image-2-2-52.jpeg
  • 형태소 분석의 목적: 문장을 형태소 단위로 나누고, 품사 태깅을 하여 동사의 다양한 사용 현상을 복원하는 과정

  • 분석 방법의 다양성: 분석기에 따라 형태소 분리 방법이 다를 수 있음

  • 언어 처리의 기본: 모든 자연어 처리 과정에서 가장 기본적이고 중요한 역할을 함

  • 활용의 정의: 어간이 어미를 취함으로써 변화하는 과정

  • 규칙 활용과 불규칙 활용: 규칙 활용은 어간이 일정하게 유지되는 반면, 불규칙 활용은 어간이나 어미가 변화함

토픽모델링#

서론#

../_images/image-2-3-13.jpeg
  • 데이터의 성장: 디지털 시대의 확장과 함께 비정형 텍스트 데이터의 양이 기하급수적으로 증가하고 있음

  • 토픽모델링의 역할: 대규모 비정형 텍스트 데이터에서 정보를 요약하고 분석하는 데 있어 강력한 도구임

  • 기본 원리: 문서 내 단어의 공존 패턴과 빈도를 분석하여 문서 집합의 기저 주제를 밝힘

  • 차원 축소의 중요성: 문서-단어 행렬의 차원을 축소하여 문서를 주제의 혼합으로, 주제를 단어 분포로 표현함

  • PCA 대비 장점: PCA보다 더 해석하기 쉽고 문맥적으로 의미 있는 출력을 제공함

문서 군집화#

../_images/image-2-3-23.jpeg
  • 군집화 기법: 텍스트 마이닝과 자연어 처리에서 문서를 내용이나 기능에 따라 그룹화하는 기술

  • 코사인 유사도: 두 비제로 벡터 간의 각도 코사인을 측정하는 인기 있는 유사도 측정 방법

  • 차원 축소: 차원의 저주로 인한 군집화 성능 저하를 방지하기 위해 차원 축소 기법을 사용함

  • 군집화 알고리즘:

    1. K-평균: 데이터 포인트와 각 클러스터 중심 사이의 제곱 거리 합을 최소화하는 파티션 클러스터링 알고리즘

    2. DBSCAN: 데이터 포인트의 밀도를 기반으로 클러스터를 식별하는 밀도 기반 클러스터링 알고리즘

    3. 계층적 군집화: 각 데이터 포인트를 자체 클러스터로 시작하여 점차 가장 가까운 쌍의 클러스터를 병합하는 방식

    4. 잠재 디리클레 할당(LDA): 텍스트 말뭉치에서 문서 집합의 기저 주제를 발견하는 데 유용한 확률적 생성 모델

  • 군집화 과정: 텍스트 데이터 전처리, 적절한 벡터 표현으로 문서 변환, 원하는 군집화 알고리즘 적용

토픽모델링의 과정#

../_images/image-2-3-33.jpeg
  • 텍스트 전처리: 토크나이제이션, 어간 추출, 불용어 제거 등의 전처리 단계 수행

  • 벡터 표현: 문서를 TF-IDF 또는 단어 임베딩과 같은 적절한 벡터 표현으로 변환

  • 모델 학습: LDA와 같은 토픽 모델을 사용하여 문서 집합의 주제를 학습

  • 주제 해석: 학습된 토픽 모델로부터 얻은 주제를 해석하고 문서에 레이블링

  • 응용: 문서 분류, 정보 검색, 문서 요약 등 다양한 응용 분야에 활용

토픽모델링의 도전 과제#

../_images/image-2-3-43.jpeg
  • 데이터의 다양성: 다양한 주제, 스타일, 언어를 포함하는 대규모 데이터셋 처리

  • 모델 선택과 조정: 최적의 모델 구조와 파라미터를 결정하는 과정

  • 주제의 해석성: 생성된 주제가 인간에게 이해하기 쉽고 의미 있는지 평가

  • 변화하는 데이터: 시간에 따라 변화하는 데이터셋에 모델을 적용하고 적응시키는 능력

  • 효율적인 계산: 대규모 데이터셋에 대한 모델 학습과 추론의 계산 효율성 향상

토픽모델링 방법론#

서론#

../_images/image-2-4-13.jpeg
  • 토픽모델링의 정의: 문서 집합에서 숨겨진 주제를 발견하는 비지도 학습 기법

  • 기본 가정: 각 문서는 여러 주제의 혼합으로 구성되며, 각 주제는 단어 분포를 통해 표현됨

  • 목표: 문서와 주제 사이의 관계를 파악하여 대규모 텍스트 데이터에서 의미 있는 인사이트를 추출

  • 적용 분야: 문서 분류, 정보 검색, 문서 요약 등 다양한 텍스트 마이닝 및 자연어 처리 작업

  • 주요 방법론: 확률적 잠재 의미 분석(pLSA), 잠재 디리클레 할당(LDA), 비음수 행렬 분해(NMF), 상관 토픽 모델(CTM), 동적 토픽 모델(DTM) 등이 있음

확률적 잠재 의미 분석 (pLSA)#

../_images/image-2-4-23.jpeg
  • 기본 개념: 문서와 단어 사이의 공존 패턴을 모델링하여 숨겨진 주제를 발견하는 기법

  • 모델 구조: 각 문서를 주제의 혼합으로, 주제를 단어 분포로 모델링

  • 학습 방법: 기대치 최대화(EM) 알고리즘을 사용하여 주제 분포와 문서-주제 관계 추정

  • 장점: 숨겨진 주제를 효과적으로 밝힐 수 있음

  • 단점: 오버피팅 경향, 새로운 문서에 대한 모델 적용 어려움, 매개변수 수의 선형 증가로 대규모 문서 집합에 대한 계산 비용 증가

잠재 디리클레 할당 (LDA)#

../_images/image-2-4-3.png
  • 기본 개념: 문서가 주제의 혼합으로 구성되고 각 주제가 단어의 분포를 가진다고 가정하는 확률적 생성 모델

  • 모델 구조: Dirichlet 사전 분포를 사용하여 주제 분포와 단어 분포를 모델링

  • 장점: 오버피팅 문제 해결, 새로운 문서에 대한 일반화 가능, 주제의 해석 가능성 향상

  • 응용 분야: 문서 군집화, 텍스트 요약, 정보 검색 등에서 널리 사용됨

  • 학습 방법: 변분 추론 또는 MCMC 샘플링을 사용한 모델 파라미터 추정

비음수 행렬 분해 (NMF)#

../_images/image-2-4-4.png
  • 기본 개념: 문서-단어 행렬을 두 개의 비음수 하위 차원 행렬로 분해하여 주제를 모델링하는 선형 대수 기법

  • 모델 구조: 문서-주제 행렬과 주제-단어 행렬로 분해하여 문서와 주제 사이의 관계 표현

  • 장점: 해석 가능한 주제 생성, 확률적 기반 모델이 아닌 경우에도 적용 가능, 주제 간의 구조적 관계 표현 용이

  • 단점: 확률적 해석의 부재, 비유일 해의 가능성

  • 응용 분야: 텍스트 데이터의 차원 축소, 주제 기반 문서 군집화 등에 활용됨

동적 토픽 모델 (DTM)#

../_images/image-2-4-52.jpeg
  • 기본 개념: 시간에 따른 주제의 진화를 모델링하여 문서 집합의 시간적 구조 분석

  • 모델 구조: 시간 슬라이스별로 문서를 나누고, 각 시간 슬라이스에 대한 LDA 모델 생성

  • 장점: 시간에 따른 주제 변화 포착, 시간적 구조를 가진 텍스트 데이터 분석 가능

  • 응용 분야: 뉴스 기사, 과학 논문, 소셜 미디어 데이터의 시간적 트렌드 분석

  • 학습 방법: 변분 추론과 특수화된 알고리즘을 사용한 시간적 의존성 모델링

감정 분석#

서론#

../_images/image-2-5-12.jpeg
  • 감정 분석 정의: 텍스트에 내포된 감정이나 의견의 성향을 파악하는 과정

  • 적용 분야: 소셜 미디어, 제품 리뷰, 고객 피드백, 뉴스 기사 등 다양한 텍스트 소스에서 활용됨

  • 목적: 기업이나 조직이 고객, 사용자, 대중의 감정을 이해하는 데 도움을 줌

  • 분석 유형: 극성 기반, 감정 기반, 측면 기반 분석 등 다양한 접근 방식 존재

  • 기술적 접근: 규칙 기반, 기계 학습, 심층 학습 등 다양한 기술을 통해 수행됨

감정 분석 유형#

../_images/image-2-5-22.jpeg
  1. 극성 기반 분석: 긍정, 부정, 중립으로 텍스트의 감정을 분류. 단어나 구절에 감정 점수를 할당하고 이를 집계

  2. 감정 기반 분석: 행복, 슬픔, 분노 등 구체적인 감정을 식별. 감정 어휘 사전이나 레이블링된 데이터에 기반한 기계 학습 모델 사용

  3. 측면 기반 분석: 텍스트 내 다양한 측면이나 속성에 대한 감정을 파악. 예를 들어 제품 리뷰에서 가격, 품질, 사용성에 대한 감정을 분류

감정 분석 기법#

../_images/image-2-5-32.jpeg
  1. 규칙 기반 방법: 정의된 규칙과 감정 어휘 사전을 활용하여 텍스트의 감정을 판단

  2. 기계학습: 로지스틱 회귀, 서포트 벡터 머신, 나이브 베이즈 분류기 등을 사용하여 감정 분석 모델을 구축

  3. 딥러닝: RNN, LSTM, Transformer 모델 등을 활용하여 고성능의 감정 분석 모델을 개발

감정 분석의 도전 과제#

../_images/image-2-5-42.jpeg
  • 비꼬기와 아이러니: 문자 그대로의 의미와 반대되는 감정을 표현하기 때문에 분류가 어려움

  • 부정과 이중 부정: 부정이 감정의 방향을 바꾸거나 모호하게 만듦

  • 분야 특정 언어: 다양한 분야에서 감정 표현이 다르기 때문에 한 분야에서 학습된 모델이 다른 분야에서 잘 작동하지 않을 수 있음

  • 문맥과 세계 지식: 문화적 참조, 역사적 사건, 분야 특정 지식 등이 감정 분석에 필요함

  • 모호성과 다중 감정: 하나의 텍스트에 여러 감정이나 다양한 대상이 포함되어 있을 수 있음

감정 분석의 응용#

../_images/image-2-5-51.jpeg
  • 소셜 미디어 모니터링: 제품, 서비스, 브랜드에 대한 대중의 의견 추적

  • 고객 피드백 분석: 고객 만족도 향상과 개선 영역 식별을 위한 자동 분석

  • 시장 연구 및 분석: 시장 동향, 기회, 위협 식별을 위한 뉴스 기사, 블로그 포스트, 온라인 포럼 분석

  • 정치 분석: 정치인, 정당, 정책에 대한 대중의 의견 분석

  • 직원의 목소리 분석: 직원 피드백 분석을 통한 직원 감정 이해 및 개선 영역 발굴