자연어 처리에 사용되는 아주 간단한 개념에 대해서 정리한다.
자연어 처리 중 가장 기본적인 개념은 시퀀스를 만들어내는 작업이다. 보통 고정된 길이의 연속된 토큰(Token) 시퀀스를 N-그램(N-gram)이라고 한다.
아래의 코드를 보면 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', '.']]