2. 자연어 처리 과정
형태소 분석
Morpheme analysis
구문 분석
Syntax analysis
의미 분석
semantic analysis
화용 분석
Pragmatic analysis
형태소 단위의 분절 및
POS 태그 부착
구문 태그 부착
문장구조 파악
단어 의미 중의성 해소
의미역 인식
정보 추출
(대명사가 가리키는 의미부터...)
3. 의미 분석
• 단어, 구, 문장 등의 단위의 의미를 인식하는 과정
구문 분석에 비해 해당 단계에서
진행해야 할 작업이 모호한 편인 것 같다.
의미를 인식하는 모든 처리가
해당 단계에 들어간다고 할 수 있을 것 같다.
4. 단어 의미 중의성 해소
문맥을 확인하여
등장한 동형이의어의
의미를 찾는 과정
Word Sense Disambiguation (WSD)
5. 단어 정리
• 동형이의어: 같은 형태를 가지지만 뜻이 다른 단어
• 의미(=센스): 동형이의어가 가지는 의미
• 어깨번호: 사전에서 동형이의어가 가지는 의미를 구분하기 위해 부여하는 번호를 구분하기 위해 부착하는 번호
(사전마다 다른 체계를 가진다)
• 예시: 단어 '생태'
자연어 분석에서 진행되어야 할 어깨번호 부착네이버 국어사전의 검색결과
표준국어대사전 상의 동형이의어
'생태'의 1번 의미
2번 의미
문서의 자연어 처리 후 동형이의어 '생태'의
어깨번호가 부착된 결과
6. 단어 의미 중의성 해소 모델
• 정한조(2015) 논문을 토대로 구현
• 생략하거나 달라진 방식
• 동형이의 명사만 대상으로 진행 → 체언, 용언, 수식언, 어근
• 사전의 예문은 사용하지 않음
• 표준국어대사전과 세종 형태의미 말뭉치를 사용
• 표준국어대사전 상의 동음이의어로 한정 (말뭉치와 표준국어대사전 사이의 다른 점을 표준국어대사전 기준으로 변경 및 생략)
• 벡터 공간 모델과 나이브 베이즈 분류기를 통해 단어 의미 중의성을 해결
• 정한조와 박병화, “사전과 말뭉치를 이용한 한국어 단어 중의성 해소,” 한국 지능정보시스템학회논문지, 2015.
(일반, 고유, 의존 명사)
(동사, 형용사)
(관형사, 일반 부사, 접속 부사)
말뭉치 상에는 동음이의어인데
표준국어대사전에는 아닌 경우
또는 그 반대의 경우 등등
7. 세종 형태의미 말뭉치
• 문장 별로 형태소 분석과 형태소 단위의 어깨번호를
부착한 말뭉치
• 표준국어대사전을 기준으로 어깨번호 부착
• 내용어(↔기능어) 중심으로 부착: 세종 품사 기준으로, 일반명사,
의존명사, 동사, 형용사, 관형사, 일반부사 내에서 부착 진행
• 부착 방법: 표제어 전후 5어절을 확인하여 어깨번호 부착
• 특수한 어깨번호(누락시켜야 할 예외상황)
• 00, 88: 사전에 등재되지 않은 어휘
• 99: 형태분석 말뭉치의 분석 오류
• x<번호>: 사전과 말뭉치의 품사 분류 비일치
• 국립국어원, “21세기 세종계획 국어 기초자료 구축, 2004 결과보고서.” 2004.
세종 형태의미 말뭉치 예시
<형태소>__<어깨번호>/<품사>
8. 세종 형태의미 말뭉치 사용 상 유의점
1. 표준국어대사전 기준의 어깨번호
• 말뭉치가 만들어질 당시의 사전의 어깨번호가 부착
• 말뭉치에 어떤 시점의 표준국어대사전을 사용했는지 명확하게 밝히고 있지 않음
• 표준국어대사전은 항상 최신상태만 보관하고 나머지는 모두 폐기
• 2019년 3월까지는 큰 변화가 없었으나 2019년 3월 이후에 동형이의어의 어깨번호가 많이 달라짐
• 국립국어연구원, "표준국어대사전," 2001. CD 자료를 통해 과거 표준국어대사전을 구할 수 있음
• 네이버 국어사전은 2019년 3월 개편 이전의 자료로 검색할 수 있음
2. 언급한 품사(일반명사, 의존명사, 동사, 형용사, 관형사, 일반부사) 외 다른 품사에도 어깨번호가 부착되어 있는 것
확인
• 고유 명사, 대명사, 수사, 보조 용언, 체언 접두사 등
('EP', 'IC', 'JKS', 'MAG', 'MAJ', 'MM', 'NNB', 'NNG', 'NNP', 'NP', 'NR', 'VA', 'VV', 'VX', 'XPN', 'XR')
• 네이버 국어사전, https://ko.dict.naver.com/
• 표준국어대사전, https://stdict.korean.go.kr/
9. 세종 형태의미 말뭉치 사용 상 유의점
– 1. 표준국어대사전 기준의 어깨번호
네이버 국어사전의 '반대' 검색결과'
표준국어대사전의 검색결과
10. 벡터 공간 모델
Vector Space Model or Term Space Model
• 간단한 Vector Space Model 설명, https://yumere.tistory.com/85
Vocabulary
Document
벡터의 원소
학습 과정에서 등장한 모든 단어,
단어마다 고유의 인덱스를 가지게 된다
학습 과정에서 등장한 모든
문서, 단어와 마찬가지로
고유의 인덱스를 가지게 된다
학습을 통해 생성된 값으로,
값을 산출하는 방법은
Boolean Model, TF-IDF 등이 있다
단어 벡터 각각의 문서는 단어 벡터로
변환되며, 문서 간 비교 또는
쿼리와 비교를 통해 유사도를
산출하게 된다
11. 벡터 공간 모델 (wsD 문제에서)
Vector Space Model for WSD
Vocabulary
벡터의 원소
동형이의어를 포함한 학습 대상인 모든 형태소
Distance Weight의 합으로
벡터값을 산출한다.
센스 벡터
동형이의 형태소
(형태소 + 어깨번호)
12. Distance Weight
형태소 남미 풍 의 강렬 하 ᆫ 원색 끼리 의 조화 , 수채화 같이 안온 하 ᆫ 배색 등
어깨번호 02 07 05
품사 NNP XSN JKG XR XSA ETM NNG XSN JKG NNG SP NNG MAG NNG XSA ETM NNG NNB
Distance
Weight
3 4 5 - 5 4 3 2 1
동형이의 형태소
학습 대상 아님 (학습 대상 품사가 아님)
학습 대상 형태소
• 동형이의 형태소를 기준으로 5점부터 멀어질 때마다 순차적으로 4점, 3점, …, 1점까지 부여
• 센스 벡터에 누적
13. 나이브 베이즈 분류기
Naïve bayes Classifier
• 베이즈 정리를 기초
• 독립성 가정
• 큰 가정이 들어가지만 실증적으로 높은 효과를 보임
(베이즈 정리)
(독립성 가정)
(베이지안 확률 용어로 작성)
클래스 k
발생한 사건 x
사건이 발생한 상황에서는
상수값이 된다
• 나이브 베이즈 분류, https://ko.wikipedia.org/wiki/나이브_베이즈_분류
14. 나이브 베이즈 분류기 (WSD 문제에서)
Naïve bayes Classifier for WSD
학습시킨 Vector Space로 구한
Cosine Similarity로 대체
15. 나이브 베이즈 분류기 (WSD 문제에서, 예시)
• 발견한 동음이의어: 조화
• 센스 가짓수: 7가지
• 주변 단어
Distanct 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 계산식
18. 모델 평가 결과
• 정확도: 평균 95.8%
• 논문 상의 정확도 96.04% (대상 품사를 명사로 한정, 표준국어대사전의 예문까지 모두 활용했을 때)
• 거의 유사하게 나옴
체언 용언 수식언 어근
• 튜플의 형식: (정확하게 판단한 동음이의어, 동음이의어 등장횟수, 정확도)
19. 하지만.. 실제 정확도를 측정하기 위해서는
학습 대상 아님 (학습 대상 품사가 아님)
학습 대상 형태소
형태소 남미 풍 의 강렬 하 ᆫ 원색 끼리 의 조화 , 수채화 같이 안온 하 ᆫ 배색 등
어깨번호 02 07 05
품사 NNP XSN JKG XR XSA ETM NNG XSN JKG NNG SP NNG MAG NNG XSA ETM NNG NNB
Distance
Weight
3 4 5 - 5 4 3 2 1
평가 대상 아직 평가가 안된 상태
20. 하지만.. 실제 정확도를 측정하기 위해서는
학습 대상 아님 (학습 대상 품사가 아님)
학습 대상 형태소
형태소 남미 풍 의 강렬 하 ᆫ 원색 끼리 의 조화 , 수채화 같이 안온 하 ᆫ 배색 등
어깨번호 02 07 05
품사 NNP XSN JKG XR XSA ETM NNG XSN JKG NNG SP NNG MAG NNG XSA ETM NNG NNB
Distance
Weight
3 4 5 - 5 4 3 2 1
베스트 케이스 여전히 아직 평가가 안된 상태평가 대상
21. 하지만.. 실제 정확도를 측정하기 위해서는
• 평가 대상 동음이의어의 주변 형태소 중 동음이의어가 있을 경우
1. 아직 평가가 안된 상태일 수 있고
2. 잘못된 평가가 되어있는 상태일 수 있다
22. 평가 방법의 변경
• 평가 대상 동음이의어의 주변 형태소 중 동음이의어가 있을 경우
1. 아직 평가가 안된 상태일 수 있고
2. 잘못된 평가가 되어있는 상태일 수 있다
• 동음이의어의 센스 평가 시에 주변 단어 중 동음이의어는 누락시킨 쿼리 벡터를 생성 후 평가
• 평가된 동음이의어도 누락
• 학습은 그대로 유지
23. 평가 방법의 변경 (예시)
• 기존 = {'남미': 3, '강렬': 4, '원색, 02': 5, '수채화': 5, '같이': 4, '안온': 3, '배색': 2, '등, 05': 1} → 벡터화
• 변경 = {'남미': 3, '강렬': 4, '원색, 02': 5, '수채화': 5, '같이': 4, '안온': 3, '배색': 2, '등, 05': 1} → 벡터화
형태소 남미 풍 의 강렬 하 ᆫ 원색 끼리 의 조화 , 수채화 같이 안온 하 ᆫ 배색 등
어깨번호 02 07 05
품사 NNP XSN JKG XR XSA ETM NNG XSN JKG NNG SP NNG MAG NNG XSA ETM NNG NNB
Distance
Weight
3 4 5 - 5 4 3 2 1
평가 대상
24. 모델 평가 결과
• 튜플의 형식: (정확하게 판단한 동음이의어, 동음이의어 등장횟수, 정확도)
• 정확도: 평균 93.1% ↓ (기존 95.8%)
• 좀 떨어졌지만, 그래도 쓸 만하다