SlideShare a Scribd company logo
Context2Vec 기반
Word Sense Disambiguation
단어 의미 중의성 해소
이찬희
2020. 04. 13.
목차
• 단어 의미 중의성 해소
• 기존 프로세스
• Context2Vec
• Context2Vec 기반 단어 의미 중의성 해소
단어 의미 중의성 해소
자연어 처리 과정
형태소 분석
Morpheme analysis
구문 분석
Syntax analysis
의미 분석
semantic analysis
화용 분석
Pragmatic analysis
형태소 단위의 분절 및
POS 태그 부착
구문 태그 부착
문장구조 파악
단어 의미 중의성 해소
의미역 인식
정보 추출
(대명사가 가리키는 의미부터...)
의미 분석
• 단어, 구, 문장 등의 단위의 의미를 인식하는 과정
구문 분석에 비해 해당 단계에서
진행해야 할 작업이 모호한 편인 것 같다.
의미를 인식하는 모든 처리가
해당 단계에 들어간다고 할 수 있을 것 같다.
단어 의미 중의성 해소
문맥을 확인하여
등장한 동형이의어의
의미를 찾는 과정
Word Sense Disambiguation (WSD)
단어 정리
• 동형이의어: 같은 형태를 가지지만 뜻이 다른 단어
• 의미(=센스): 동형이의어가 가지는 의미
• 동형어 번호: 사전에서 동형이의어가 가지는 의미를 구분하기 위해 부착하는 번호
(사전마다 다른 체계를 가진다)
• 예시: 단어 '생태'
자연어 분석에서 진행되어야 할 어깨번호 부착네이버 국어사전의 검색결과
표준국어대사전 상의 동형이의어
'생태'의 1번 의미
2번 의미
문서의 자연어 처리 후 동형이의어 '생태'의
어깨번호가 부착된 결과
기존 프로세스
단어 의미 중의성 해소 모델
• 정한조(2015) 논문을 토대로 구현
• 생략하거나 달라진 방식
• 논문) 명사만 대상으로 진행 → 변경) 체언, 용언, 수식언, 어근
• 사전의 예문은 사용하지 않음
• 표준국어대사전과 세종 형태의미 말뭉치를 사용
• 표준국어대사전 상의 동음이의어로 한정 (말뭉치와 표준국어대사전 사이의 다른 점을 표준국어대사전 기준으로 변경 및 생략)
• Ramped window가 적용된 벡터 공간 모델과 나이브 베이즈 분류기를 통해 단어 의미 중의성을 해결
• 정한조와 박병화, “사전과 말뭉치를 이용한 한국어 단어 중의성 해소,” 한국 지능정보시스템학회논문지, 2015.
(일반, 고유, 의존 명사)
(동사, 형용사)
(관형사, 일반 부사, 접속 부사)
말뭉치 상에는 동음이의어인데
표준국어대사전에는 아닌 경우
또는 그 반대의 경우 등등
세종 형태의미 말뭉치
• 문장 별로 형태소 분석과 형태소 단위의 어깨번호를
부착한 말뭉치
• 표준국어대사전을 기준으로 어깨번호 부착
• 내용어(↔기능어) 중심으로 부착: 세종 품사 기준으로, 일반명사,
의존명사, 동사, 형용사, 관형사, 일반부사 내에서 부착 진행
• 부착 방법: 표제어 전후 5어절을 확인하여 어깨번호 부착
• 특수한 어깨번호(누락시켜야 할 예외상황)
• 00, 88: 사전에 등재되지 않은 어휘
• 99: 형태분석 말뭉치의 분석 오류
• x<번호>: 사전과 말뭉치의 품사 분류 비일치
• 국립국어원, “21세기 세종계획 국어 기초자료 구축, 2004 결과보고서.” 2004.
세종 형태의미 말뭉치 예시
<형태소>__<어깨번호>/<품사>
벡터 공간 모델
Vector Space Model or Term Space Model
• 간단한 Vector Space Model 설명, https://yumere.tistory.com/85
Vocabulary
Document
벡터의 원소
학습 과정에서 등장한 모든 단어,
단어마다 고유의 인덱스를 가지게 된다
학습 과정에서 등장한 모든
문서, 단어와 마찬가지로
고유의 인덱스를 가지게 된다
학습을 통해 생성된 값으로,
값을 산출하는 방법은
Boolean Model, TF-IDF 등이 있다
단어 벡터 각각의 문서는 단어 벡터로
변환되며, 문서 간 비교 또는
쿼리와 비교를 통해 유사도를
산출하게 된다
벡터 공간 모델 (WSD 문제에서)
Vector Space Model for WSD
Vocabulary
벡터의 원소
동형이의어를 포함한 학습 대상인 모든 형태소
Ramped window의 합으로
벡터값을 산출한다.
센스 벡터
동형이의 형태소
(형태소 + 어깨번호)
Ramped Window
형태소 남미 풍 의 강렬 하 ᆫ 원색 끼리 의 조화 , 수채화 같이 안온 하 ᆫ 배색 등
어깨번호 02 07 05
품사 NNP XSN JKG XR XSA ETM NNG XSN JKG NNG SP NNG MAG NNG XSA ETM NNG NNB
Score 3 4 5 - 5 4 3 2 1
동형이의 형태소
학습 대상 아님 (학습 대상 품사가 아님)
학습 대상 형태소
• Ramped window는 Co-occurence 타겟 단어를 기준으로 가까울 수록 높은 점수를 부여하는 방법
• 동형이의 형태소를 기준으로 5점부터 멀어질 때마다 순차적으로 4점, 3점, …, 1점까지 부여
• 센스 벡터에 누적
나이브 베이즈 분류기
Naïve bayes Classifier
• 베이즈 정리를 기초
• 독립성 가정
• 강한 가정이 들어가지만 실증적으로 높은 효과를 보임
(베이즈 정리)
(독립성 가정)
(베이지안 확률 용어로 작성)
클래스 k
발생한 사건 x
사건이 발생한 상황에서는
상수값이 된다
• 나이브 베이즈 분류, https://ko.wikipedia.org/wiki/나이브_베이즈_분류
나이브 베이즈 분류기 (WSD 문제에서)
Naïve bayes Classifier for WSD
학습시킨 Vector Space로 구한
Cosine Similarity로 대체
나이브 베이즈 분류기 (WSD 문제에서, 예시)
• 발견한 동음이의어: 조화
• 센스 가짓수: 7가지
• 주변 단어
Distance Weight 부여 결과
• 남미 : 3
• 강렬 : 4
• 원색, 02 : 5
• 수채화 : 5
• 같이 : 4
• 안온 : 3
• 배색 : 2
• 색, 03 : 1
조화, 01
조화, 02
조화, 03
조화, 04
조화, 05
조화, 06
조화, 07
남미 강렬 원색
02
배색 색
03
수 많은 다른 형태소도 존재
…
[ 3 4 5 … 2 1 ]쿼리 벡터
벡터 공간
모델에서
동음이의어의
센스 벡터들을
검색
주변 단어의
Distance
Weight를 통해
쿼리 벡터를 생성
쿼리와 동음이의어의 센스
벡터들로 Cosine
Similarity 산출
조건부 확률
0.
0.
0.
0.023
0.
0.
0.009
사전 확률
0.001
0.
0.
0.057
0.007
0.
0.934
사후 확률
(과 비례하는 값)
0.
0.
0.
0.001
0.
0.
0.009
동음이의어의
등장빈도로
산출
모델 평가
• 10-fold CV
• Precision과 Recall
• Precision만 사용
• Recall은 항상 100%, 표준국어대사전을 기준으로 동음이의어는 항상 평가를 하기 때문
Precision =
올바르게 예측한 중의어의 수
전체 중의어의 수
Recall =
예측한 중의어의 수
전체 중의어의 수
단어 의미 중의성 해소에서의 Precision과 Recall 계산식
모델 평가 결과
• Precision: 평균 93.1%
• 논문의 Precision 96.04%
• 대상 품사를 명사로 한정
• 표준국어대사전의 예문까지 모두 활용했을 때의 Precision
• 순서대로 처리했을 때 마스킹 처리가 전혀 없었음
체언 용언 수식언 어근
• 튜플의 형식: (정확하게 판단한 동음이의어, 동음이의어 등장횟수, Precision)
시각화 반영
동음이의어에 부착된 어깨번호들
시각화 반영
동음이의어에 부착된 어깨번호들
한계
• 학습 시 성능과 실제 사용 시 성능에 차이가 발생
• 세종 말뭉치의 원문과 실제 사용하는 원문의 어휘가 다름
• 유사도를 구하지 못하고 사전 확률이 결과로 이어지는 빈도가 너무 높음
• 운영이 적용하기 위한 난이도가 높음
• 세종 형태의미 말뭉치 수준으로 도메인 말뭉치를 구축하는 것이 힘듦
• 기존 사전 확률의 비율을 고려하여 일정량 이상의 말뭉치 구성을 해야 효과를 볼 수 있음
Context2Vec
Context2Vec
• Melamud, Oren, Jacob Goldberger, and Ido Dagan. "context2vec: Learning generic
context embedding with bidirectional lstm." Proceedings of The 20th SIGNLL
Conference on Computational Natural Language Learning. 2016.
• Word2Vec CBOW 모델과 동일한 개념
• 컨텍스트 임베딩 결과와 단어의 임베딩 결과가 유사하도록 학습
• Word2Vec CBOW 모델의 Average of Word Embeddings(AWE) 방법을
Bi-LSTM + MLP로 변형 (더 적극적인 학습)
• (Word2Vec) 윈도우 → (Context2Vec) 문장 전체, Bi-LSTM
• (Word2Vec) 임베딩 평균 값 → (Context2Vec) 다층 퍼셉트론, MLP
컨텍스트 임베딩
• 단어 수준 임베딩: 개별 단어를 임베딩(Word2Vec, Glove)
• 문장 수준 임베딩: 문장 전체를 임베딩(Doc2Vec)하거나 하는 과정이 포함(ELMo)되어 있음
• 컨텍스트 임베딩
• 문장 전체 또는 문장보다 좁은 범위의 단어 시퀀스를 임베딩
• 타겟 단어(Target word)를 기준으로 문장을 임베딩
• 같은 문장이더라도 기준 단어가 다르면 다른 임베딩 결과를 반환
Word2Vec CBOW
Word2Vec CBOW
타겟 단어
Word2Vec CBOW
타겟 단어
컨텍스트 윈도우 내
단어의 임베딩
Word2Vec CBOW
타겟 단어
컨텍스트 윈도우 내
단어의 임베딩
컨텍스트 임베딩
(윈도우 내 단어
임베딩의 평균)
Word2Vec CBOW
타겟 단어
컨텍스트 윈도우 내
단어의 임베딩
컨텍스트 임베딩
(윈도우 내 단어
임베딩의 평균)
타겟 단어의
임베딩
Word2Vec CBOW
타겟 단어
컨텍스트 윈도우 내
단어의 임베딩
컨텍스트 임베딩
(윈도우 내 단어
임베딩의 평균)
타겟 단어의
임베딩
목적 함수를 통해
양 임베딩이
유사해지도록 학습
Context2Vec
Context2Vec에서 변경된 부분
• (W2V) 윈도우 → (C2V) 문장 전체, Bi-LSTM
• (W2V) 평균 → (C2V) MLP
Context2Vec
Context2Vec
타겟 단어
Context2Vec
타겟 단어
타겟 단어의
왼쪽 단어 시퀀스
정방향 (좌 → 우) 입력
타겟 단어의
오른쪽 단어 시퀀스
역방향 (우 → 좌) 입력
Context2Vec
타겟 단어
타겟 단어의
왼쪽 단어 시퀀스
정방향 (좌 → 우) 입력
타겟 단어의
오른쪽 단어 시퀀스
역방향 (우 → 좌) 입력
양쪽 시퀀스의
마지막 은닉 상태를
연결 및 MLP에 입력
Context2Vec
타겟 단어
타겟 단어의
왼쪽 단어 시퀀스
정방향 (좌 → 우) 입력
타겟 단어의
오른쪽 단어 시퀀스
역방향 (우 → 좌) 입력
양쪽 시퀀스의
마지막 은닉 상태를
연결 및 MLP에 입력
타겟 단어의
임베딩
Context2Vec
타겟 단어
타겟 단어의
왼쪽 단어 시퀀스
정방향 (좌 → 우) 입력
타겟 단어의
오른쪽 단어 시퀀스
역방향 (우 → 좌) 입력
양쪽 시퀀스의
마지막 은닉 상태를
연결 및 MLP에 입력
타겟 단어의
임베딩
목적 함수를 통해
양 임베딩이
유사해지도록 학습
Context2Vec 활용
• 문장 완성 (Sentence completion)
• 단어 의미 중의성 해소 (Word sense disambiguation)
Context2Vec 기반
단어 의미 중의성 해소
Context2Vec 기반 단어 의미 중의성 해소
• Context2Vec: 타겟 단어의 컨텍스트를 벡터화
• Context2Vec 기반 단어 의미 중의성 해소
• 학습
• 말뭉치에 동형이의어가 등장하면, (표제어, 동형어 번호, 컨텍스트 벡터)를 저장
• 예측
• 동형이의어 등장 시 문장을 컨텍스트 벡터로 변환
• 말뭉치를 통해 학습한 표제어의 컨텍스트 벡터 중 가장 유사한 벡터의 동형어 번호를 반환
Context2Vec 기반 단어 의미 중의성 해소, 학습
1. 말뭉치의
동형이의어 검색
3. (표제어, 동형어 번호,
컨텍스트 벡터)
집합 저장
(수성, 08)
(수성, 05)
(수성, 04)
…
…
Context2Vec 모델 통과
2. 컨텍스트
벡터 추출
Context2Vec 기반 단어 의미 중의성 해소, 예측
1. 원문의
동형이의어
검사
3. 학습 시 추출한 컨텍스트
벡터 집합과 비교
(Cosine similarity)
(수성, 08)
(수성, 05)
(수성, 04)
…
…
…
코스피, 한·미 정책
기대·우려 교차 속
1700선 수성 실패
…
0.7, 동형어 번호 08번 부착
0.1
-0.3
2. 컨텍스트
벡터 추출
Context2Vec
모델 통과
동일한 표제어의
컨텍스트 벡터만
필터링
Context2Vec 학습
• 학습 데이터
• 뉴스 20만 문서
• 위키피디아 46만여 문서 (동음이의어 문서 제거)
• 세종 형태의미 말뭉치 79만여 문장의 95%
• 총 815만여 문장
• 학습 파라미터 (논문, 학습)
• 컨텍스트 단어 임베딩 차원: 300, 150
• 타겟 단어 임베딩 차원: 600, 300
• LSTM 은닉층 차원: 600, 300
• MLP 입력층/은닉층 차원: 1200, 600
• Epoch 10회 이내로 진행
• 학습 모델은 논문 대비 1/2 크기로 줄임
• 사용하기에 학습 모델의 크기가 너무 컸음
• 사용 시 속도 면에서도 연산량이 너무 큼
단어 의미 중의성 해소 모델의
테스트 데이터 분리를 위해
단어 의미 중의성 해소 모델 학습
• 학습 및 테스트 데이터
• 세종 형태의미 말뭉치 79만여 문장을 95%, 5%로 분리
• 학습 및 평가 방법
• 학습 데이터에서 등장한 동형이의어의 문장을 컨텍스트 벡터로 저장
• 평가 데이터에서 등장한 동형이의어의 문장을 컨텍스트 벡터로 추출하여 학습 컨텍스트 벡터와
Cosine similarity 수행 후 가장 큰 컨텍스트 벡터의 동형어 번호 부착
Context2Vec 학습 시와
동일한 문장 집합
모델 평가 결과
• Precision: 97.91% > 93.1% (기존)
• 딥 러닝 모델의 적용으로
Precision의 증가에 더해
Sparcity 문제를 해결할 수 있었음
• Sparcity 문제가 Context2Vec에서
해결되기 때문에, 단순한 말뭉치로
더 많은 Vocabulary를 쉽게
확보할 수 있음
단어 의미 중의성 해소 말뭉치 작성
컨텍스트 벡터를 생성하기 위해 원문과 동형이의어 표제어, 동형어 번호를 작성하는 것으로 비교적 간단하게 말뭉치를 확
장할 수 있음 (형태소 분석에서 표제어와 일치하는 토큰이 만들어져야 한다는 조건이 필요)
서비스를 위해 추가한
동형어 번호
개체명 태그와 유사한
역할을 함
(LO: 지역, OR: 단체,
ST: 종목)
서비스 적용 목표 - 종목 뉴스 필터링
• 종목 뉴스 추출은 1차적으로 검색 엔진의 키워드 매칭을 통해 진행
• 하지만 중의성을 가지는 종목명의 경우 필터링이 필요
• 필터링이 잘 되지 않았을 시에 서비스 퀄리티에 심각한 영향을 미치게 됨
네이버 증권 뉴스의 경우
굉장히 필터링이 잘 되고 있는 편
Context2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation
(LO: 지역, OR: 단체, ST: 종목)
(LO: 지역, OR: 단체, ST: 종목)
(LO: 지역, OR: 단체, ST: 종목)
(LO: 지역, OR: 단체, ST: 종목)
(LO: 지역, OR: 단체, ST: 종목)
Context2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation
(LO: 지역, OR: 단체, ST: 종목)
(LO: 지역, OR: 단체, ST: 종목)

More Related Content

PDF
RoFormer: Enhanced Transformer with Rotary Position Embedding
PPTX
딥러닝을 이용한 자연어처리의 연구동향
PPTX
단어 의미 중의성 해소, Word Sense Disambiguation(WSD)
PDF
딥러닝 자연어처리 - RNN에서 BERT까지
PDF
딥러닝 기반의 자연어처리 최근 연구 동향
PPTX
머신러닝의 자연어 처리기술(I)
PDF
AtCoder Beginner Contest 007 解説
PDF
Pegasus
RoFormer: Enhanced Transformer with Rotary Position Embedding
딥러닝을 이용한 자연어처리의 연구동향
단어 의미 중의성 해소, Word Sense Disambiguation(WSD)
딥러닝 자연어처리 - RNN에서 BERT까지
딥러닝 기반의 자연어처리 최근 연구 동향
머신러닝의 자연어 처리기술(I)
AtCoder Beginner Contest 007 解説
Pegasus

What's hot (20)

PDF
実践・最強最速のアルゴリズム勉強会 第四回講義資料(ワークスアプリケーションズ & AtCoder)
PPTX
音声認識における言語モデル
PPTX
Maximum Entropy IRL(最大エントロピー逆強化学習)とその発展系について
PDF
Self-Attention with Linear Complexity
PDF
강화 학습 기초 Reinforcement Learning an introduction
PDF
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
PPTX
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
PPTX
レコメンド研究のあれこれ
PPTX
ベルヌーイ分布における超パラメータ推定のための経験ベイズ法
PPTX
【解説】 一般逆行列
PDF
A Review of Deep Contextualized Word Representations (Peters+, 2018)
PPTX
強化学習 DQNからPPOまで
PDF
Energy based models and boltzmann machines
PDF
数独のアルゴリズムを考える ― 各種法の改善と高速化
PDF
論文紹介 Anomaly Detection using One-Class Neural Networks (修正版
PDF
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
PDF
PFN Summer Internship 2021 / Kohei Shinohara: Charge Transfer Modeling in Neu...
PDF
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
実践・最強最速のアルゴリズム勉強会 第四回講義資料(ワークスアプリケーションズ & AtCoder)
音声認識における言語モデル
Maximum Entropy IRL(最大エントロピー逆強化学習)とその発展系について
Self-Attention with Linear Complexity
강화 학습 기초 Reinforcement Learning an introduction
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
レコメンド研究のあれこれ
ベルヌーイ分布における超パラメータ推定のための経験ベイズ法
【解説】 一般逆行列
A Review of Deep Contextualized Word Representations (Peters+, 2018)
強化学習 DQNからPPOまで
Energy based models and boltzmann machines
数独のアルゴリズムを考える ― 各種法の改善と高速化
論文紹介 Anomaly Detection using One-Class Neural Networks (修正版
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
PFN Summer Internship 2021 / Kohei Shinohara: Charge Transfer Modeling in Neu...
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
Ad

Similar to Context2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation (20)

PPTX
Word 2 Vec Algorithm
PPTX
Brief hystory of NLP and Word2Vec
PDF
GloVe:Global vectors for word representation
PDF
[싸이그램즈 2018] 텍스트 데이터 전처리로 시작하는 NLP
PDF
파이썬을 활용한 자연어 분석
PDF
Natural Language Processing(NLP) - Basic
PDF
자연어4 | 1차강의
PPTX
Word2Vec 개요 및 활용
PPTX
From A Neural Probalistic Language Model to Word2vec
PPTX
Nlp word2vec
PDF
파이썬과 자연어 4 | word/doc2vec
PDF
딥러닝 기반 자연어 언어모델 BERT
PPTX
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
PDF
220906_Glove
PDF
230112_word2vec1_논문리뷰.pdf
PDF
Compressing neural language models by sparse word representation
PDF
<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기
PDF
메이크챗봇 자연어기초
PDF
파이썬을 활용한 자연어분석 기초
PDF
Facebook Meta's technical direction in Large Language Models (LLMs)
Word 2 Vec Algorithm
Brief hystory of NLP and Word2Vec
GloVe:Global vectors for word representation
[싸이그램즈 2018] 텍스트 데이터 전처리로 시작하는 NLP
파이썬을 활용한 자연어 분석
Natural Language Processing(NLP) - Basic
자연어4 | 1차강의
Word2Vec 개요 및 활용
From A Neural Probalistic Language Model to Word2vec
Nlp word2vec
파이썬과 자연어 4 | word/doc2vec
딥러닝 기반 자연어 언어모델 BERT
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
220906_Glove
230112_word2vec1_논문리뷰.pdf
Compressing neural language models by sparse word representation
<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기
메이크챗봇 자연어기초
파이썬을 활용한 자연어분석 기초
Facebook Meta's technical direction in Large Language Models (LLMs)
Ad

More from 찬희 이 (9)

PPTX
의존 구조 분석기, Dependency parser
PPTX
mecab-ko-dic 사용자 사전
PDF
PySpark 배우기 Ch 06. ML 패키지 소개하기
PPTX
파이썬을 활용한 금융 분석 Ch 14. The FXCM Trading Platform
PDF
파이썬을 활용한 금융 분석 Ch 9. Input Output Operation
PPTX
은닉 마르코프 모델, Hidden Markov Model(HMM)
PDF
Dependency Parser, 의존 구조 분석기
PDF
Phrase Tagger, 구문 태거
PPTX
프로젝트용 PC 환경구성 이찬희
의존 구조 분석기, Dependency parser
mecab-ko-dic 사용자 사전
PySpark 배우기 Ch 06. ML 패키지 소개하기
파이썬을 활용한 금융 분석 Ch 14. The FXCM Trading Platform
파이썬을 활용한 금융 분석 Ch 9. Input Output Operation
은닉 마르코프 모델, Hidden Markov Model(HMM)
Dependency Parser, 의존 구조 분석기
Phrase Tagger, 구문 태거
프로젝트용 PC 환경구성 이찬희

Context2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation

  • 1. Context2Vec 기반 Word Sense Disambiguation 단어 의미 중의성 해소 이찬희 2020. 04. 13.
  • 2. 목차 • 단어 의미 중의성 해소 • 기존 프로세스 • Context2Vec • Context2Vec 기반 단어 의미 중의성 해소
  • 4. 자연어 처리 과정 형태소 분석 Morpheme analysis 구문 분석 Syntax analysis 의미 분석 semantic analysis 화용 분석 Pragmatic analysis 형태소 단위의 분절 및 POS 태그 부착 구문 태그 부착 문장구조 파악 단어 의미 중의성 해소 의미역 인식 정보 추출 (대명사가 가리키는 의미부터...)
  • 5. 의미 분석 • 단어, 구, 문장 등의 단위의 의미를 인식하는 과정 구문 분석에 비해 해당 단계에서 진행해야 할 작업이 모호한 편인 것 같다. 의미를 인식하는 모든 처리가 해당 단계에 들어간다고 할 수 있을 것 같다.
  • 6. 단어 의미 중의성 해소 문맥을 확인하여 등장한 동형이의어의 의미를 찾는 과정 Word Sense Disambiguation (WSD)
  • 7. 단어 정리 • 동형이의어: 같은 형태를 가지지만 뜻이 다른 단어 • 의미(=센스): 동형이의어가 가지는 의미 • 동형어 번호: 사전에서 동형이의어가 가지는 의미를 구분하기 위해 부착하는 번호 (사전마다 다른 체계를 가진다) • 예시: 단어 '생태' 자연어 분석에서 진행되어야 할 어깨번호 부착네이버 국어사전의 검색결과 표준국어대사전 상의 동형이의어 '생태'의 1번 의미 2번 의미 문서의 자연어 처리 후 동형이의어 '생태'의 어깨번호가 부착된 결과
  • 9. 단어 의미 중의성 해소 모델 • 정한조(2015) 논문을 토대로 구현 • 생략하거나 달라진 방식 • 논문) 명사만 대상으로 진행 → 변경) 체언, 용언, 수식언, 어근 • 사전의 예문은 사용하지 않음 • 표준국어대사전과 세종 형태의미 말뭉치를 사용 • 표준국어대사전 상의 동음이의어로 한정 (말뭉치와 표준국어대사전 사이의 다른 점을 표준국어대사전 기준으로 변경 및 생략) • Ramped window가 적용된 벡터 공간 모델과 나이브 베이즈 분류기를 통해 단어 의미 중의성을 해결 • 정한조와 박병화, “사전과 말뭉치를 이용한 한국어 단어 중의성 해소,” 한국 지능정보시스템학회논문지, 2015. (일반, 고유, 의존 명사) (동사, 형용사) (관형사, 일반 부사, 접속 부사) 말뭉치 상에는 동음이의어인데 표준국어대사전에는 아닌 경우 또는 그 반대의 경우 등등
  • 10. 세종 형태의미 말뭉치 • 문장 별로 형태소 분석과 형태소 단위의 어깨번호를 부착한 말뭉치 • 표준국어대사전을 기준으로 어깨번호 부착 • 내용어(↔기능어) 중심으로 부착: 세종 품사 기준으로, 일반명사, 의존명사, 동사, 형용사, 관형사, 일반부사 내에서 부착 진행 • 부착 방법: 표제어 전후 5어절을 확인하여 어깨번호 부착 • 특수한 어깨번호(누락시켜야 할 예외상황) • 00, 88: 사전에 등재되지 않은 어휘 • 99: 형태분석 말뭉치의 분석 오류 • x<번호>: 사전과 말뭉치의 품사 분류 비일치 • 국립국어원, “21세기 세종계획 국어 기초자료 구축, 2004 결과보고서.” 2004. 세종 형태의미 말뭉치 예시 <형태소>__<어깨번호>/<품사>
  • 11. 벡터 공간 모델 Vector Space Model or Term Space Model • 간단한 Vector Space Model 설명, https://yumere.tistory.com/85 Vocabulary Document 벡터의 원소 학습 과정에서 등장한 모든 단어, 단어마다 고유의 인덱스를 가지게 된다 학습 과정에서 등장한 모든 문서, 단어와 마찬가지로 고유의 인덱스를 가지게 된다 학습을 통해 생성된 값으로, 값을 산출하는 방법은 Boolean Model, TF-IDF 등이 있다 단어 벡터 각각의 문서는 단어 벡터로 변환되며, 문서 간 비교 또는 쿼리와 비교를 통해 유사도를 산출하게 된다
  • 12. 벡터 공간 모델 (WSD 문제에서) Vector Space Model for WSD Vocabulary 벡터의 원소 동형이의어를 포함한 학습 대상인 모든 형태소 Ramped window의 합으로 벡터값을 산출한다. 센스 벡터 동형이의 형태소 (형태소 + 어깨번호)
  • 13. Ramped Window 형태소 남미 풍 의 강렬 하 ᆫ 원색 끼리 의 조화 , 수채화 같이 안온 하 ᆫ 배색 등 어깨번호 02 07 05 품사 NNP XSN JKG XR XSA ETM NNG XSN JKG NNG SP NNG MAG NNG XSA ETM NNG NNB Score 3 4 5 - 5 4 3 2 1 동형이의 형태소 학습 대상 아님 (학습 대상 품사가 아님) 학습 대상 형태소 • Ramped window는 Co-occurence 타겟 단어를 기준으로 가까울 수록 높은 점수를 부여하는 방법 • 동형이의 형태소를 기준으로 5점부터 멀어질 때마다 순차적으로 4점, 3점, …, 1점까지 부여 • 센스 벡터에 누적
  • 14. 나이브 베이즈 분류기 Naïve bayes Classifier • 베이즈 정리를 기초 • 독립성 가정 • 강한 가정이 들어가지만 실증적으로 높은 효과를 보임 (베이즈 정리) (독립성 가정) (베이지안 확률 용어로 작성) 클래스 k 발생한 사건 x 사건이 발생한 상황에서는 상수값이 된다 • 나이브 베이즈 분류, https://ko.wikipedia.org/wiki/나이브_베이즈_분류
  • 15. 나이브 베이즈 분류기 (WSD 문제에서) Naïve bayes Classifier for WSD 학습시킨 Vector Space로 구한 Cosine Similarity로 대체
  • 16. 나이브 베이즈 분류기 (WSD 문제에서, 예시) • 발견한 동음이의어: 조화 • 센스 가짓수: 7가지 • 주변 단어 Distance Weight 부여 결과 • 남미 : 3 • 강렬 : 4 • 원색, 02 : 5 • 수채화 : 5 • 같이 : 4 • 안온 : 3 • 배색 : 2 • 색, 03 : 1 조화, 01 조화, 02 조화, 03 조화, 04 조화, 05 조화, 06 조화, 07 남미 강렬 원색 02 배색 색 03 수 많은 다른 형태소도 존재 … [ 3 4 5 … 2 1 ]쿼리 벡터 벡터 공간 모델에서 동음이의어의 센스 벡터들을 검색 주변 단어의 Distance Weight를 통해 쿼리 벡터를 생성 쿼리와 동음이의어의 센스 벡터들로 Cosine Similarity 산출 조건부 확률 0. 0. 0. 0.023 0. 0. 0.009 사전 확률 0.001 0. 0. 0.057 0.007 0. 0.934 사후 확률 (과 비례하는 값) 0. 0. 0. 0.001 0. 0. 0.009 동음이의어의 등장빈도로 산출
  • 17. 모델 평가 • 10-fold CV • Precision과 Recall • Precision만 사용 • Recall은 항상 100%, 표준국어대사전을 기준으로 동음이의어는 항상 평가를 하기 때문 Precision = 올바르게 예측한 중의어의 수 전체 중의어의 수 Recall = 예측한 중의어의 수 전체 중의어의 수 단어 의미 중의성 해소에서의 Precision과 Recall 계산식
  • 18. 모델 평가 결과 • Precision: 평균 93.1% • 논문의 Precision 96.04% • 대상 품사를 명사로 한정 • 표준국어대사전의 예문까지 모두 활용했을 때의 Precision • 순서대로 처리했을 때 마스킹 처리가 전혀 없었음 체언 용언 수식언 어근 • 튜플의 형식: (정확하게 판단한 동음이의어, 동음이의어 등장횟수, Precision)
  • 21. 한계 • 학습 시 성능과 실제 사용 시 성능에 차이가 발생 • 세종 말뭉치의 원문과 실제 사용하는 원문의 어휘가 다름 • 유사도를 구하지 못하고 사전 확률이 결과로 이어지는 빈도가 너무 높음 • 운영이 적용하기 위한 난이도가 높음 • 세종 형태의미 말뭉치 수준으로 도메인 말뭉치를 구축하는 것이 힘듦 • 기존 사전 확률의 비율을 고려하여 일정량 이상의 말뭉치 구성을 해야 효과를 볼 수 있음
  • 23. Context2Vec • Melamud, Oren, Jacob Goldberger, and Ido Dagan. "context2vec: Learning generic context embedding with bidirectional lstm." Proceedings of The 20th SIGNLL Conference on Computational Natural Language Learning. 2016. • Word2Vec CBOW 모델과 동일한 개념 • 컨텍스트 임베딩 결과와 단어의 임베딩 결과가 유사하도록 학습 • Word2Vec CBOW 모델의 Average of Word Embeddings(AWE) 방법을 Bi-LSTM + MLP로 변형 (더 적극적인 학습) • (Word2Vec) 윈도우 → (Context2Vec) 문장 전체, Bi-LSTM • (Word2Vec) 임베딩 평균 값 → (Context2Vec) 다층 퍼셉트론, MLP
  • 24. 컨텍스트 임베딩 • 단어 수준 임베딩: 개별 단어를 임베딩(Word2Vec, Glove) • 문장 수준 임베딩: 문장 전체를 임베딩(Doc2Vec)하거나 하는 과정이 포함(ELMo)되어 있음 • 컨텍스트 임베딩 • 문장 전체 또는 문장보다 좁은 범위의 단어 시퀀스를 임베딩 • 타겟 단어(Target word)를 기준으로 문장을 임베딩 • 같은 문장이더라도 기준 단어가 다르면 다른 임베딩 결과를 반환
  • 27. Word2Vec CBOW 타겟 단어 컨텍스트 윈도우 내 단어의 임베딩
  • 28. Word2Vec CBOW 타겟 단어 컨텍스트 윈도우 내 단어의 임베딩 컨텍스트 임베딩 (윈도우 내 단어 임베딩의 평균)
  • 29. Word2Vec CBOW 타겟 단어 컨텍스트 윈도우 내 단어의 임베딩 컨텍스트 임베딩 (윈도우 내 단어 임베딩의 평균) 타겟 단어의 임베딩
  • 30. Word2Vec CBOW 타겟 단어 컨텍스트 윈도우 내 단어의 임베딩 컨텍스트 임베딩 (윈도우 내 단어 임베딩의 평균) 타겟 단어의 임베딩 목적 함수를 통해 양 임베딩이 유사해지도록 학습
  • 31. Context2Vec Context2Vec에서 변경된 부분 • (W2V) 윈도우 → (C2V) 문장 전체, Bi-LSTM • (W2V) 평균 → (C2V) MLP
  • 34. Context2Vec 타겟 단어 타겟 단어의 왼쪽 단어 시퀀스 정방향 (좌 → 우) 입력 타겟 단어의 오른쪽 단어 시퀀스 역방향 (우 → 좌) 입력
  • 35. Context2Vec 타겟 단어 타겟 단어의 왼쪽 단어 시퀀스 정방향 (좌 → 우) 입력 타겟 단어의 오른쪽 단어 시퀀스 역방향 (우 → 좌) 입력 양쪽 시퀀스의 마지막 은닉 상태를 연결 및 MLP에 입력
  • 36. Context2Vec 타겟 단어 타겟 단어의 왼쪽 단어 시퀀스 정방향 (좌 → 우) 입력 타겟 단어의 오른쪽 단어 시퀀스 역방향 (우 → 좌) 입력 양쪽 시퀀스의 마지막 은닉 상태를 연결 및 MLP에 입력 타겟 단어의 임베딩
  • 37. Context2Vec 타겟 단어 타겟 단어의 왼쪽 단어 시퀀스 정방향 (좌 → 우) 입력 타겟 단어의 오른쪽 단어 시퀀스 역방향 (우 → 좌) 입력 양쪽 시퀀스의 마지막 은닉 상태를 연결 및 MLP에 입력 타겟 단어의 임베딩 목적 함수를 통해 양 임베딩이 유사해지도록 학습
  • 38. Context2Vec 활용 • 문장 완성 (Sentence completion) • 단어 의미 중의성 해소 (Word sense disambiguation)
  • 40. Context2Vec 기반 단어 의미 중의성 해소 • Context2Vec: 타겟 단어의 컨텍스트를 벡터화 • Context2Vec 기반 단어 의미 중의성 해소 • 학습 • 말뭉치에 동형이의어가 등장하면, (표제어, 동형어 번호, 컨텍스트 벡터)를 저장 • 예측 • 동형이의어 등장 시 문장을 컨텍스트 벡터로 변환 • 말뭉치를 통해 학습한 표제어의 컨텍스트 벡터 중 가장 유사한 벡터의 동형어 번호를 반환
  • 41. Context2Vec 기반 단어 의미 중의성 해소, 학습 1. 말뭉치의 동형이의어 검색 3. (표제어, 동형어 번호, 컨텍스트 벡터) 집합 저장 (수성, 08) (수성, 05) (수성, 04) … … Context2Vec 모델 통과 2. 컨텍스트 벡터 추출
  • 42. Context2Vec 기반 단어 의미 중의성 해소, 예측 1. 원문의 동형이의어 검사 3. 학습 시 추출한 컨텍스트 벡터 집합과 비교 (Cosine similarity) (수성, 08) (수성, 05) (수성, 04) … … … 코스피, 한·미 정책 기대·우려 교차 속 1700선 수성 실패 … 0.7, 동형어 번호 08번 부착 0.1 -0.3 2. 컨텍스트 벡터 추출 Context2Vec 모델 통과 동일한 표제어의 컨텍스트 벡터만 필터링
  • 43. Context2Vec 학습 • 학습 데이터 • 뉴스 20만 문서 • 위키피디아 46만여 문서 (동음이의어 문서 제거) • 세종 형태의미 말뭉치 79만여 문장의 95% • 총 815만여 문장 • 학습 파라미터 (논문, 학습) • 컨텍스트 단어 임베딩 차원: 300, 150 • 타겟 단어 임베딩 차원: 600, 300 • LSTM 은닉층 차원: 600, 300 • MLP 입력층/은닉층 차원: 1200, 600 • Epoch 10회 이내로 진행 • 학습 모델은 논문 대비 1/2 크기로 줄임 • 사용하기에 학습 모델의 크기가 너무 컸음 • 사용 시 속도 면에서도 연산량이 너무 큼 단어 의미 중의성 해소 모델의 테스트 데이터 분리를 위해
  • 44. 단어 의미 중의성 해소 모델 학습 • 학습 및 테스트 데이터 • 세종 형태의미 말뭉치 79만여 문장을 95%, 5%로 분리 • 학습 및 평가 방법 • 학습 데이터에서 등장한 동형이의어의 문장을 컨텍스트 벡터로 저장 • 평가 데이터에서 등장한 동형이의어의 문장을 컨텍스트 벡터로 추출하여 학습 컨텍스트 벡터와 Cosine similarity 수행 후 가장 큰 컨텍스트 벡터의 동형어 번호 부착 Context2Vec 학습 시와 동일한 문장 집합
  • 45. 모델 평가 결과 • Precision: 97.91% > 93.1% (기존) • 딥 러닝 모델의 적용으로 Precision의 증가에 더해 Sparcity 문제를 해결할 수 있었음 • Sparcity 문제가 Context2Vec에서 해결되기 때문에, 단순한 말뭉치로 더 많은 Vocabulary를 쉽게 확보할 수 있음
  • 46. 단어 의미 중의성 해소 말뭉치 작성 컨텍스트 벡터를 생성하기 위해 원문과 동형이의어 표제어, 동형어 번호를 작성하는 것으로 비교적 간단하게 말뭉치를 확 장할 수 있음 (형태소 분석에서 표제어와 일치하는 토큰이 만들어져야 한다는 조건이 필요) 서비스를 위해 추가한 동형어 번호 개체명 태그와 유사한 역할을 함 (LO: 지역, OR: 단체, ST: 종목)
  • 47. 서비스 적용 목표 - 종목 뉴스 필터링 • 종목 뉴스 추출은 1차적으로 검색 엔진의 키워드 매칭을 통해 진행 • 하지만 중의성을 가지는 종목명의 경우 필터링이 필요 • 필터링이 잘 되지 않았을 시에 서비스 퀄리티에 심각한 영향을 미치게 됨
  • 48. 네이버 증권 뉴스의 경우 굉장히 필터링이 잘 되고 있는 편
  • 50. (LO: 지역, OR: 단체, ST: 종목)
  • 51. (LO: 지역, OR: 단체, ST: 종목)
  • 52. (LO: 지역, OR: 단체, ST: 종목)
  • 53. (LO: 지역, OR: 단체, ST: 종목)
  • 54. (LO: 지역, OR: 단체, ST: 종목)
  • 56. (LO: 지역, OR: 단체, ST: 종목)
  • 57. (LO: 지역, OR: 단체, ST: 종목)