다양한 자연어처리 TASK에서는 문장 혹은 문서내의 feature(혹은 토큰화)를 어떻게 추출하는지에 따라 모델의 정확도가 달라진다.
오늘은 NLP Task에서 많이 사용되는 Feature 추출 방법에 대해 소개하고자 한다.
1. Ngram
딥러닝에서는 음절기반방식을 많이 사용됨
예시 문장) 나는 밥을 먹고 학교에 갔다.
- 음절기반 Ngram
->음절단위로 N개의 쌍을 지어 feature를 추출하는 방법
unigram : ['나' '는' '밥' '을' '먹' '고' '학' '교' '에' '갔' '다' '.']
bigram : ['나는' '는[공백]' '[공백]밥' '밥을' '을[공백]' '[공백]먹' '먹고' '고[공백]' '[공백]고' '고[공백]' '고학' .......]
trigram : [ '나는[공백]' '는[공백]밥' '[공백]밥을' '밥을[공백]' '을[공백]먹' '[공백]먹고' '먹고[공백]' '고[공백]학' '[공백]학교' ......]
fourgram, fivegram .....
- 어절기반 Ngram
->어절단위로 N개의 쌍을 지어 feature를 추출하는 방법
unigram : ['나는' '밥을' '먹고' '학교에' '갔다' '.']
bigram : ['나는 밥을', '밥을 먹고', '먹고 학교에' '학교에 갔다' '갔다 .']
trigram : ['나는 밥을 먹고' '밥을 먹고 학교에' '먹고 학교에 갔다' '학교에 갔다 .']
fourgram, fivegram .....
2. 형태소 분석기
- 문장을 형태소단위로 원형복원 하여 분리하는 방식
예시 문장) 나는 밥을 먹고 학교에 갔다.
꼬꼬마 형태소 분석기 : ['나', '는', '밥', '을', '먹', '고', '학교', '에', '가', '었', '다', '.']
Okt 형태소 분석기 : ['나', '는', '밥', '을', '먹고', '학교', '에', '갔다', '.']
한나눔 형태소 분석기 : ['나', '는', '밥', '을', '먹', '고', '학교', '에', '가', '아다', '.']
3. WordPiece, BPE
- 자주 등장하는 음절들을 쌍으로 묶어 토큰화 하는 방식(subword), 음절의 쌍 즉 subword 단위로 단어를 쪼개기 때문에 사전 기반 토큰화에 비해 OOV문제를 최소화 시켜준다.
'프로그래밍 > NLP' 카테고리의 다른 글
NLP TASK의 평가 방법 (0) | 2021.06.24 |
---|---|
언어모델의 평가방법 (0) | 2021.06.24 |