728x90
"나는 밥을 먹었다"
여기서 "나는", "밥을", "먹었다"는 각각 토큰이다. 이때 바이그램은 두 개의 연속된 토큰을 묶은 것이다.
즉, 이전 토큰과 다음 토큰을 쌍으로 묶어 문맥을 파악하게 된다.
- "나는"과 "밥을"은 바이그램으로 묶이면 ("나는", "밥을")이 된다.
- "밥을"과 "먹었다"는 바이그램으로 묶이면 ("밥을", "먹었다")가 된다.
이때 `tokens[:-1]`와 `tokens[1:]`을 사용하면 바이그램을 생성할 수 있다. "나는", "밥을", "먹었다"를 토큰 리스트로 표현하면 다음과 같다.
tokens = ["나는", "밥을", "먹었다"]
- tokens[:-1]는 ["나는", "밥을"]이 되고, 이전 토큰이 이전 단어를 나타낸다.
- tokens[1:]는 ["밥을", "먹었다"]가 되고, 다음 토큰이 다음 단어를 나타낸다.
이렇게 두 리스트를 zip 함수를 사용하여 쌍(pair)로 묶으면 바이그램이 생성된다.
728x90
'자연어 처리(NLP) 공부' 카테고리의 다른 글
자연어 처리 개요 (0) | 2023.08.16 |
---|---|
자동 완성 구현을 위한 데이터? (0) | 2023.08.15 |
<PAD> 토큰의 역할? (0) | 2023.08.01 |
딥러닝에서 마스크(Mask)의 역할 (0) | 2023.07.12 |
GPT(Generative Pre-trained Transformer) (0) | 2023.07.12 |