AI 인공지능/인공지능
[AI] 특징 추출을 위한 N-Gram 언어모델
Haekt
2023. 3. 6. 00:24
- trade-off 문제로 n 선택시, 5 를 넘으면 안된다.(희소문제, 모델크기 증가)
- 참고 - 점프 투 파이썬
- ngram
n-gram 은 n개의 단어로 이루어진 언어를 구분하기 위한 언어모델이다 .
언어의 갯수마다 명칭이 다르며, 각 명칭은 아래와 같다 .
- unigrams : 1개
- bigrams : 2개
- trigrams : 3개
- 4-grams : 4개
언어분리는 오직 n-1 개의 단어에만 적용된다.
만약 4-gram 을 사용하여 언어 예측을 한다고 했을 경우 4-1 인 3개의 단어만을 가지고 예측을 하게 된다.
💡 나는 행복한 하루를 보냈어. 너는 어떤 하루를 보냈니?
위 문자 다음에 올 내용을 4-gram 으로 예측한다고 했을 경우.
앞의 단어들은 무시하고, 예측할 부분 바로 이전의 3단어인 어떤 하루를 보냈니 를 사용하게 된다.
예측할 때에는 이런 식으로 예측하게 된다.
먼저 예시로
"어떤 하루를 보냈니?" 가 100 번 사용되었다 했을 때,
A : "어떤 하루를 보냈니? 행복했어" 가 60번,
B : "어떤 하루를 보냈니? 최악이었어" 가 20번 사용되었다면
A 는 60%, B 는 20% 의 확률을 가지게 된다.
따라서, 더 확률이 높은 "어떤 하루를 보냈니? 행복했어" 가 더 적합하다고 판단하게 된다.
- n-gram 활용 예시
n-gram 을 이용하여 멀웨어 탐지를 할 경우, 특정 부분의 어셈블리어를 예측하여 탐지를 할 수 있다.
n-gram 을 사용한 kaggle의 멀웨어 탐지 프로젝트에서 99.89% 정확도를 보였다고 한다.