Posts List

[자연어처리] 7. Lexical Semantics & WSD

Lexical Semantics & WSD

Lexical semantics는 단어의 의미를 분석하는 것을 의미한다.  그리고 단어의 중의성을 해석하는 것을 Word sense disambiguation(WSD)라 한다.

One lemma는 multiple meaning을 가질 수 있다. 그리고 그 의미들은 우리가 잘 아는 사전에 저장되어 있다. (그래서 dictionary를 sense inventory라 하기도 한다.) 

언어학에서 동음이의어(Homonyms), 동형이의어(Homographs) 등 word sense를 정의하고 있지만, 일단 NLP에서는 Homonyms, Homographs를 정확히 구분하는 것에 관심을 두고 있다. (spell이 다르면 다른 단어라고 인식하기 때문에 고려할 필요가 없다. 마찬가지로 sound를 구분하는 것이 아니기 때문에 Heteronyms도 관심이 없다.)

그 외에도 similarity / relatedness와 같은 semantic relation들이 있다.

WSD(Word-sense disambiguation)는 문장 속에서 그 단어가 가지는 의미를 찾는 것을 의미한다. 그리고 그 방법에는 knowledge-basedSupervised ML approach가 있다.

※ Word-sense discrimination이라는 것도 있다. 사전에 정의된 단어로 의미를 찾는 것이 아니라 비슷한 의미를 가진 단어를 grouping하는 것이다. unsupervised ML과 매칭된다.

WSD를 전체 단어에 대해 수행하는 것은 상당히 어려운 문제다. (All-words task) 왜냐하면 학습데이터를 충분히 마련하기 어렵기 때문이다. 이 경우에는 ML로 cover하기 어렵고 유일한 방법은 모든 단어에 대한 사전을 만들어야 한다.

반면 일부 단어를 선정해서 WSD문제를 풀 때는 각 단어마다 classifier를 만들 듯 supervised ML을 적용시킬 수 있다. (Lexical sample task) 우리는 이 경우에 대해서 학습하도록 한다.

Lexical sample task는 모든 단어가 아니라 일부 단어(sample)의 의도를 파악하는 것이다. 이런 task를 유용하게 하기 위한 특별한 사전이 있다.

SYNSET은 synonymy의 집합을 의미하는데, WordNet이라는 사전과 같이 동의/유사어를 함께 표현한 사전들이 있어 학습 데이터로 유용하게 사용할 수 있다.

다만 이런 단어의 집합이 아니라 문장에서 그 단어가 어떻게 쓰였는가를 보여주는 training corpus가 필요한데 그 데이터를 만드는 것이 쉽지가 않다. 

가장 잘만들어졌다고 평가되는 training corpus는 SemCor이다.


SemCor는 각 단어별로 POS와 WordNet에서의 sense_number가 함께 기록된 훌륭한 데이터셋이다. 

그럼 이제 주어진 문장을 해석해야하는데, 모델에게 힌트를 주는 개념으로 text의 feature vector를 뽑아 주는 것이 상당히 도움이 된다.

위 그림은 feature vector의 예제를 보여준다. bank라는 단어에 SHORE이라는 tag를 달아주기 위한 조건으로 주변에 어떤 단어가 몇번이나 나타나야하는지 정보를 보여준다. 즉, 주변에 fish, river가 1번씩 등장하면 shore, check, interest라는 단어가 1번이상 등장하면 finance의 의미를 갖는 다는 feature 추출 rule을 정의한 예이다.

이제 이 feature vector를 가지고 ML 알고리즘이 학습을 하면 된다. 이 때 사용 될 수 있는 방법은 상당히 많다.

  • Naive Bayes
  • Decision Tree
  • SVM
  • K-NN
  • Neural Network
  • Graphical model
  • Log linear model

※ 관련 알고리즘들을 추후에 자세히 다루기로한다.

그럼 이제 모델이 잘 만들어졌다면 그 모델의 성능을 정량적으로 평가할 수 있어야 한다. 

이 때 평가 지표로는 Precision, Recall을 사용하기도 하고 Precision, Recall을 함께 고려하는 F1 score를 주로 사용한다.






댓글 쓰기

0 댓글