Word Sense Disambiguation (단어 의미 중의성 해소, 단어 의미 판별)
Word Sense Induction(이하 WSI)에 관해 이야기하기 위해서는 먼저 Word Sense Disambiguation(이하 WSD)에 대해 이해하는 것이 필요하다.
WSD는 특정 문장에 등장하는 단어들이 어떤 의미인지 판별하는 자연어처리 작업이다.
예를 들면 다음과 같은 네 문장이 있을 때,
1. 배가 불러서 더 이상 못 먹겠다.
2. 올 해에는 배가 풍년이다.
3. 내가 더보다 몇 배는 더 빠르다.
4. 사촌이 땅을 사면 내 배가 아프다.
1~4번의 의미는 각기 다른 의미로 쓰였는데, 표준국어대사전 기준으로 1번과 4번은 배01, 2번은 배03, 3번은 배08에 해당된다. 사람이 문맥에 따라서 문장에서 쓰인 단어의 의미를 파악하듯 컴퓨터로 하여금 이 작업을 하도록 하는 것이 WSD의 목표이다.
WSD 방법론은 크게 두 가지로 나뉜다.
지식 기반(Knowledge-based method)은 이미 구축된 지식을 활용하는 방법이고,
지도 학습(Supervised-method)은 거대한 양의 단어들에 대해 각각 어느 의미를 가지는지 찾아내는 분류기를 학습시키는 방법이다.
WSD에 관해 더 자세히 알고싶다면 다음의 포스트들을 참고해 보자.
1. 단어 의미 중의성 해소(Word Sense Disambiguation) 기술들 :
https://bab2min.tistory.com/576
(2017년 포스트라 트랜스포머 등장 이전 방법론만 나와있지만 설명이 매우 잘 되있음)
2. 단어 중의성 해소란? (Word Sense Disambiguation) :
https://velog.io/@aiedu/word-sense-disambiguation
(WSD의 현재 SOTA 모델과 주로 쓰이는 데이터셋에 관해 알 수 있음)
Word Sense Induction (단어 의미 추론)
WSI는 특정 단어가 같은 의미로 사용된 문맥끼리 묶고, 다른 의미로 사용된 문맥을 구별하는 작업이다.
위의 문장들로 예를 들면, 1번과 4번문장, 2번 문장, 3번 문장이 각각 다른 의미로 쓰였다는 것을 구별하는 것이다.
이 방법은 지도학습 방법을 주로 사용하는 WSD와 비교하여 비지도학습을 사용한다는 차이점이 존재한다.
WSD에 비해 연구가 활발히 진행되고 있지는 않지만 WSI 작업을 통해 사전에 등록되어있지 않은 인터넷 신조어에 대해 파악하거나, 단어에 추가된 새로운 의미를 파악하는 등의 쓰임새가 있다.
데이터셋
현재 WSI 작업의 성능을 측정하는 용도로 쓰이는 데이터셋은 SemEval 2013 Task 13 이다.
(SemEval 데이터셋은 의미 평가(sementic evaluation)과 관련된 14개의 task와 데이터셋을 포함하고 있다.)
이 데이터셋은 20개의 동사, 20개의 명사, 10개의 형용사가 여러 의미 중 하나로 사용되어 4664개의 문장에 사용된 형태이다.
데이터셋의 성능평가 방법은 2가지이다.
fuzzy B-cubed : precision과 recall을 기반으로 되어있으며, 모델이 유사한 의미 분포를 가진 새로운 말뭉치에서 얼마나 잘 수행될 것인지에 대한 추정치를 알 수 있다.
fuzzy normalized mutial information : 이 지표는 클러스터를 기반으로 측정되므로 의미 분포와 무관하게 해당 단어의 의미를 얼마나 잘 추론했는지 성능을 알 수 있다.
대부분의 연구에서 F-BC와 F-NMI의 평균을 WSI 작업에 대한 성능평가 지표로 사용한다.
데이터셋 논문 :
https://aclanthology.org/S13-2049.pdf
연구 동향
현재 WSI에서 가장 좋은 성능을 보이고 있는 모델은 Towards better substitution-based word sense induction(2019) 논문에서 사용한 BERT를 이용하여 해당 단어가 들어갈 자리의 대체어(substitute)로 구성된 클러스터를 구성해 단어의 의미를 구분하는 방법이다.
논문 pdf : https://arxiv.org/pdf/1905.12598v2.pdf
위 이미지는 'Python'이라는 단어가 인터넷 게시판의 성격에 따라 어떤 의미로 이용되는지 WSI를 이용해 파악한 그림이다. python이라는 함선이 나오는 게임을 다루는 게시판에서 사용되는 python의 대체어와 CS직군에 관한 질문게시판에서 사용되는 python 대체어가 확연히 차이나는 모습을 확인할 수 있다.
이미지 출처 :Characterizing English Variation across Social Media Communities with BERT(2021)
참고논문
PolyLM: Learning about Polysemy through Language Modeling (EACL 2021)
https://arxiv.org/pdf/2101.10448v1.pdf
AutoSense Model for Word Sense Induction(AAAI 2019)
https://arxiv.org/pdf/1811.09242v1.pdf
RuDSI: graph-based word sense induction dataset for Russian (COLING 2021)
https://arxiv.org/pdf/2209.13750v1.pdf
'자연어처리' 카테고리의 다른 글
[NLP]한국어 거대모델(LLM)들 소개 (23년 5월) (2) | 2023.05.04 |
---|---|
[Hugging Face] PEFT에 대해 알아보자 (3) | 2023.02.16 |
[NLP] Lexical Simplification(어휘 단순화) (0) | 2023.02.11 |
[Continual Learning] Knowledge Distillation 기법 정리 (0) | 2023.01.30 |
[워드 임베딩] Glove : Gloval Vectors for word Representation (2) | 2023.01.20 |