인공지능 및 빅데이터

NLP (Natural Language Processing, 자연어 처리)

NLP – 자연어 처리 기술 개요

문서, 문단, 문장

문서 (document), 문단(paragraph), 문장(sentence)

문장, 어절, 형태소

문장(sentence), 어절(eojeol, word phrase), 형태소(morpheme)

NLP 주요 용어

  • Document (문서)
  • Corpus (말뭉치), Corpora (말뭉치 모음)
  • Token (토큰), Tokenizer (토크나이저)
  • Morphemes (형태소), 형태소 분석기
  • POS (Part-of-speech, 품사), POS Tagging (=토큰에 POS 정보 추가)

참고: 한국어 품사 https://goo.gl/s8W3hW

NLP의 주요 연구 영역

  1. Lexical Analysis (어휘분석)
  2. Syntax Analysis (구문 분석)
  3. Semantic Analysis (의미 분석)
  4. Discourse Analysis (대담 분석)

1. Lexical Analysis (어휘분석)

문장을 잘 나누어 처리 효율을 높이기 위한 작업

  • Morphology Analysis (형태소 분석): 가장작은 의미 단위
  • Tokenizing: 토큰 분리, 띄어쓰기, 형태소 단위로 분리
  • Stemming (어간 추출): “cats”, “catlike”, “catty” → “cat”
  • Lemmatization (표제어 추출): ‘files’ → ‘날다’ vs ‘파리’ (품사까지 고려)

2. Syntax Analysis (구문 분석)

규칙이나 문법을 사용하여 문장을 분석하거나 구성

  • 어절 단위 분리, POS tagging (parsing tree 활용)
  • Sentence structure, phrase, grammer

3. Semantic Analysis (의미 분석)

단어/문장 의미를 찾고 부여하는 작업

  • Sematic = Syntatic + meaning

4. Discourse Analysis (대담 분석)

대화(문서)의 흐름을 파악하여 화자의 의도에 맞는 응답

  • 문맥구조 분석 (문장들의 연관 관계)
  • 대용어들(이것, 그것 등)이가리키는 것이 무엇인지
  • 의도분석, 대화분석 : 전후 관계를 통한 실제의도, 화자 인식

NLP의 주요 기술

  • Morphology Analysis (형태소 분석)
    • 문장을 형태소(=가장 작은 의미 단위)로 분리하는 작업
    • 형태소, 어근, 접두사/접미사, 품사등 다양한 언어적 속성의 구조 파악
  • POS tagging (품사 태깅)
    • 뜻과 문맥을 고려하여 형태소에 정보를 추가
    • 단어가 문장 내에서 어떤 역할을 하는지를 파악
  • NER (Named Entity Recognition)
    • 고유명사(NE, 개체명) 식별하여 특정 카테고리(사람, 장소, 조직 등)로 분류
    • 예: “철수[인명]는 서울역[지명]에서 영희[인명]와 10시[시간]에 만나기로 약속하였다.”
    • 규칙 기반 접근, 비지도 학습 접근, 변수 기반 지도 학습 접근, 딥러닝 등 다양한 접근법
  • SRL (Semantic Role Labeling, 의미적 역할 라벨링)
    • 문장 내에서 각 단어가 행하는 역할을 분석
    • “철수가 공원에서 축구를 한다” → ‘철수'(역할: Agent), ‘공원에서'(역할: Location), ‘축구를 한다'(역할: Action)
  • WSD (Word-sense disambiguation, 단어의미분별)
    • 중의성 해소: 한 단어가 가진 여러 가지 의미 중에서 문맥에 적합한 의미를 판단
    • 예: 배가 맛있어요. 배가 아파요. 배를 타고가요.
  • Sentiment Analysis (감성분석)
    • 주관적 인상, 감정 태도 측정 (=Opinion mining)
  • Text Classification (텍스트 분류)
    • 텍스트 데이터를 특정 카테고리로 자동으로 분류
    • (리뷰)감정별 분류, (뉴스)카테고리로 분류, (피드백)주제별 분류, (법률문서) 유형별 분류
  • Knowledge Extraction (지식 추출)
    • 문서 또는 텍스트 데이터에서 유용한 정보나 지식을 자동으로 추출하는 과정
    • 예: 뉴스 기사에서 특정 인물의 이름, 위치, 이벤트 등을 인식 → 이들 사이의 관계를 파악

NER

미리 정의해 둔 사람, 회사, 장소, 시간, 단위 등에 해당하는 단어(개체명)를 문서에서 인식하여 추출

예:철수[인명]는 서울역[지명]에서 영희[인명]와 10시[시간]에 만나기로 약속하였다.

  • NE(Named Entity): 기관명, 사람 이름(인물), 지명(장소), 화폐, 시간, 퍼센티지 등
  • NE 종류:
      1. 일반 개체명(generic NEs)
      1. 특정 개체명(domain-specific NEs)
  • NER 성능평가 지표:
    • 정밀도(precision), 재현율(recall), F1-score 평가
    • 토큰 단위로 평가 (문장단위가 아닌)

NER 다양한 접근

  • 규칙 기반 접근(Rule-based Approaches)
    • 도메인 특화(domain-specific)한 사전(gazetteer)을 적용
    • 정규식(regular expressions)으로 패턴 매칭
    • 높은 정확도 낮은 재현율, 도메인이 달라지면 성능 저하
  • 비지도 학습 접근(Unsupervised Learning Approaches)
    • 문맥적 유사도에 기반해 클러스터링(clustering)
  • 변수 기반 지도 학습 접근(Feature-based Supervised Learning Approaches)
    • 다중 클래스 분류(multi-class classification)
    • 시퀀스 레이블링(sequence labeling task)
    • HMM, Decision Trees, SVM, Maximum Entropy Model, CRF
  • 딥러닝 (Deep learning)
    • LSTM 기반 태깅, 임베딩, 개체명인식 등

간단한 NER 예제

토큰화(word_tokenize), 품사 태깅(pos_tag)

from nltk import word_tokenize, pos_tag

sentence = "James is working at Disney in London"

tokenized_sentence = pos_tag(word_tokenize(sentence))
tokenized_sentence

NE 청킹(ne_chunk)

from nltk import ne_chunk

ner_sentence = ne_chunk(tokenized_sentence)
ner_sentence

Deep Learning Applications in NLP

Deep Learning in NLP

  • Named Entity Recognition (NER)
  • Syntactic Analysis
  • Image Caption Generator
  • Google Neural Machine Translation
  • Sentiment Analysis; Text Classification
  • Summarization
  • End-to-end Dialog System

LIMITATION of deep learning

  • 설명가능성(explainability) 부족
  • 투명성(transparency) 부족
  • 점진적 학습 어려움
  • 법적 윤리적 책임소재 문제

※ 의사결정도구로 사용하려면 사람이 이해하는 규칙 모델도 필요

텍스트 마이닝을 위한 파이썬 라이브러리

  1. NLTK : Natural Language Toolkit
  2. KoNLPy: Korean NLP in Python
  3. Gensim: vector space modeling + topic modeling toolkit

NLTK : Natural Language Toolkit

http://nltk.org

  • 다양한 어간 추출(stemming) 알고리즘 지원(Porter, snowball, Lancaster 등)
  • Chunking, NER, classification 알고리즘 지원
  • 다양한 corpus (50+, 주로 영어)
  • language free, platform free and free

KoNLPy

http://konlpy.rtfd.org

  • 형태소 분석기 + 코퍼스 + 자연어 처리
  • 여러 형태소 분석기(현재 5개) 선택적으로 사용
  • 오픈소스, 무료

Gensim

http://radimrehurek.com/gensim/

  • 토픽 모델링 (Topic modeling)
  • 잠재 디리클레 할당 (Latent Dirichlet allocation, LDA)
  • Latent semantic indexing (LSI)
  • Hierarchical Dirichlet process (HDP)
  • Word embedding: Word2vec

참고자료

참고

출처 : https://financedata.notion.site/NLP-dd26ed66357342b0a539f1d5b68259d0

zerg96

Recent Posts

충격! 코스피 8% 폭락에 SK텔레콤 AI 차단까지 – 한국의 AI 도박이 터졌다

코스피 8% 폭락, 서킷브레이커 발동, SK텔레콤 Claude AI 차단까지. 한국의 AI 레버리지 버블이 단 하루…

2주 ago

당신 얼굴이 이미 쓰이고 있다… AI 딥페이크 범죄, 생각보다 훨씬 심각합니다

SNS 사진 1장으로 30초 만에 딥페이크 영상이 완성됩니다. 당신의 얼굴이 이미 범죄에 악용되고 있을 수…

3주 ago

당신 얼굴이 이미 쓰이고 있다 — AI 딥페이크 범죄, 생각보다 훨씬 심각합니다

SNS 사진 1장으로 30초 만에 딥페이크 영상이 완성됩니다. 당신의 얼굴이 이미 범죄에 악용되고 있을 수…

3주 ago

달러·원 환율 급등, 지금 당신이 꼭 알아야 할 것들

달러/원 환율이 급등하는 이유와 실생활 영향을 정리했습니다. 지금 당장 활용할 수 있는 환전·투자 대응 전략까지…

3주 ago

미래에셋·미래에셋벤처투자·미래에셋생명 동반 급등, 스페이스X와 무슨 관계?

미래에셋·미래에셋벤처투자·미래에셋생명이 동반 급등한 이유는 스페이스X 상장 기대감입니다. 세 회사가 스페이스X와 어떻게 연결되어 있는지 상세히 분석했습니다.

3주 ago

스페이스X 상장 D-데이? 일론 머스크가 절대 말 안 하는 진짜 이유

스페이스X 상장이 계속 미뤄지는 진짜 이유를 파헤쳤습니다. 화성 계획, 스타링크 분리, 국방 계약... 머스크가 절대…

3주 ago