티스토리 뷰
강필성 교수님 강의 듣고 정리한 내용입니다.
https://www.youtube.com/watch?v=NLaxlUKFVw4&list=PLetSlH8YjIfVzHuSXtG4jAC2zbEAErXWm&index=3
Classical categorization
Lexical Analysis
- 단어로 나누는 방법
- A teacher come+s
Syntax Analysis
- 나눠진 단어에 품사를 부여
- (A teacher) 명사 (comes) 동사
Semantic Analysis
- 각 단어가 존재하는지 여부 체크, 의미 파악
- exist(x, teacher(x), comes(x))
Pragmatic Analysis
- 전체 문장의 내포된 의미 분석
- A teacher comes -> 선생님은 온다 (직역) -> 선생님 떴으니까 조용히 해! (의역)
내포된 의미를 해석하는게 가장 힘든 테스크
예시로, 유명한 작가 Hemingway한테 여섯 단어로 우리를 울릴만한 소설을 써보시지? 라고 질문을 던지자
For sale: Baby shoes. Never worn
- 판매 중: 아기 신발. 한번도 신은 적 없음
- 위 문장처럼, 컴퓨터가 내포 된 의미까지 해석하는데는 큰 어려움이 있음
왜 NLP가 힘든가?
- 다른 문장이지만 같은 의미를 가지고 있는 케이스
- 다른 단어이지만 같은 의미를 가지고 있는 케이스
- - Pragmatic Analysis와 같이, 같은 문장이지만 다른 의미를 가지고 있을 수 있음
NLP의 역사
- 1980년도 classical way
- rule based approach (룰 기반 자연어처리분석)
- 계속해서 생겨나는 신규 단어, 문장들을 커버하기는 힘듬 - 1990년도 통계적 방법
- SVM, HMM 등 통계 기반의 자연어처리 분석 - 최신 트렌드 (머신러닝, 딥러닝 기반 접근)
- 머신러닝, 딥러닝 기반 접근
- End-to-End Multi-Task Learning
- 과거에는 전처리, 모델링에 전부 개입을 했지만, 현재의 딥러닝은
- 문서와 결과값을 주고 중간 학습 단계는, 머신러닝 알고리즘이 하도록 세팅
딥러닝 출현으로 인한 성능 향상
하지만, 딥러닝 사이즈의 향상 = 성능 향상으로 인해 과도하게 사이즈가 큰 모델들이 등장
-> 실제 기업, 기관에서 적용하기 힘듦
이로 인해, 정확도와 성능 둘 다 고려한 모델들을 개발 (DistilBert 등)
Lexical Analysis
- 의미를 보존할 수 있는 가장 최소한의 단위 분석
Lexical analysis 과정
- 토크나이징 (형태소 분석)
- Part-of-Speech Tagging
- 개체명 인식, 명사구 인식, 문장 split 등 수행수
Lexical Analysis 예시
Mrs.Clinton previously worked for Mr. Obama, but she is now distancing herself from him
- Part of Speech: 품사 지정 (Clinton=명사, worked=동사, for= 전치사 등)
- Named entity recognition (Clinton, Obama = Person, previously, now = Date)
- Co-reference (Mrs.Clinton = she, Obama = him 등)
- Basic dependencies (의존 구문 분석) 누가 누구를 위해 일을 했느냐 등 관계가 있는 단어를 파악
Lexical Analysis Step
1. Sentence Splitting
- 문장은 NLP에서 매우 중요하지만, 토픽 모델링과 같은 몇몇 텍스트 마이닝 기법에서는 중요하지 않음
- 문장을 구분하는게 힘든 이유
".", "!", "?"등은 통상 문장의 끝에 쓰이지만,
Mr.Jang, 3.14 등 "."이 다른 용도로 쓰이는 경우가 있다.
-> 문장의 기호로 한다면 100% 문장 구분이 안되기 때문에, 룰 베이스 혹은 분리된 문장을 기반으로 학습을 시켜서 모델을 만듬
2. Tokenization
- 문서를 가장 기본적인 단위인 토큰으로 변환
- Tokenization도 현재 완벽하게 수행이 되고 있지 않음
3. Morphological Analysis
- Stemming and Lemmatization
예시: car -> cars, give -> gives, gave, given
- 위와 같이 각 단어마다 파생되는 여러 유형의 단어가 있음
- 이를 해결하기 위한 기법이 Stemming과 Lemmatization
Stemming: reduce words to a base form (단어의 기본 유형을 찾음)
- 단순하고 빠름
- 단어의 원형을 보존 못할 수 있음
- 서로 다른 단어가 같은 stem으로 귀결되는 경우가 있음 (army, arm -> arm / stocks, stocking -> stock)
Lemmatization: reduce words to their lemma (품사를 보존하는 단어의 원형을 찾음)
- 처리 속도가 느리지만, Stemming에 비해 더 의미를 보존한다.
- Part of Speech (POS) Tagging
- 주어진 문장에 대해, 단어의 순서를 통해 적절한 품사를 예측하는 것 (같은 단어여도 다른 품사를 가질 수 있음)
- 한국어만 해도 여러가지 형태소 품사 태그 패키지가 있음
- 포스 태깅의 학습 데이터는 사람이 품사를 직접 태깅을 해놓은 데이터셋을 기반으로 진행을 해야함
- Pointwise prediction: 주변 단어를 보고 해당 단어의 품사를 예측하는 방법론
- Probabilistic model
- Neural network-based models
- Named Entity Recognition
- 주요 단어들의 카테고리를 정의하는 것
- dictionary와 rule based로 진행했을 때, 아직도 좋은 결과를 내고 있음
- 최근 트렌드는 NER/POS Tagging 등 다양한 테스크를 한번에 할 수 있는 모델을 생성
Syntax Analysis
- 구문 분석
- 문장의 구조를 보고 각 단어들의 문법의 형식을 분석하는 과정
- Parser
- 어휘가 갖는 모호성 (Lexical ambiguity)
Language Modeling
- 문장 혹은 다음 단어가 등장할 확률을 계산
- Markov Assumption
- Neural. Network Language Model
- Sequence to Sequence (Seq2Seq) Learning
- GPT2
- 추후 다시 모델들에 대해서 설명할 예정
'텍스트분석' 카테고리의 다른 글
Text Representation- Distributed Representation (NNLM- Neural Network Language Model) (0) | 2021.09.13 |
---|---|
Topic Modeling - 2. LSA & LDA (0) | 2021.04.13 |
Topic Modeling - 1. 개요 (0) | 2021.04.03 |
1. 개인 프로젝트 - 주식 가격 예측하기 (0) | 2020.08.17 |
1. 파이썬 웹크롤링 with Selenium, Chrome (0) | 2019.09.16 |
- Total
- Today
- Yesterday
- 자연어처리공모전
- featureextraction
- significant level
- 데이터분석 척도
- 빅데이터공모전
- 표본 추출
- featureselection
- 데이터분석공모전
- kaggle competition
- 대응표본 검정
- 캐글
- 텍스트분석
- 국립국어원대회
- 국어정보처리시스템경진대회2020
- 딥러닝추천시스템
- wordembedding
- 데이터분석
- 분류 모델 성능 평가지표
- 딥러닝추천모델
- kaggle
- instantgratification
- denserepresentation
- 독립표본 t 검정
- recommendationsystem
- 비전공자데이터분석
- 주식종목예측시나리오
- 추천시스템논문
- 통계 분류 검증
- 통계 척도
- 일표본 검정
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |