[NLP] 유니그램, 바이그램, N 그램

hugingstar·2022년 5월 16일
0
post-thumbnail

자연어 처리에 사용되는 아주 간단한 개념에 대해서 정리한다.

1.n-gram

자연어 처리 중 가장 기본적인 개념은 시퀀스를 만들어내는 작업이다. 보통 고정된 길이의 연속된 토큰(Token) 시퀀스를 N-그램(N-gram)이라고 한다.

  • 유니그램 : 토큰 1개로 이루어진 연속된 시퀀스
  • 바이그램 : 토큰 2개로 이루어진 연속된 시퀀스
  • N-그램 : 토큰 N개로 이루어지 연속된 시퀀스

아래의 코드를 보면 cleand라는 토큰을 가지고 있는 리스트가 있다. n 입력값을 받으면 n개수만큼의 토큰 시퀀스가 출력된다. 이 그램들은 나중에 인공지능 모델을 사용한 자연어처리를 할때 시퀀스 길이 만큼 입력되기 때문에 이 개념들을 잘 파악해두어야 나중에 고생 안한다.

def n_grams(text, n):
    return [text[i:i+n] for i in range(len(text)-n+1)]
cleand = ['mary',',',"n't", 'slap', 'green', 'witch','.']
print(n_grams(cleand, 3))

[['mary', ',', "n't"], [',', "n't", 'slap'], ["n't", 'slap', 'green'], ['slap', 'green', 'witch'], ['green', 'witch', '.']]

0개의 댓글