728x90

자연어처리 2

3. 자연어 처리 - 텍스트 유사도(n-gram, 코사인 유사도)

각 문장 간의 의미가 유사한지 컴퓨터는 어떻게 계산할까요? 여기에서 사용되는 개념은 "텍스트 유사도"라고 합니다. n-gram 유사도 n-gram 유사도에서 "n-gram" 이란 기존 문장이 있을 때 n 개의 연속적인 단어 나열을 의미합니다. n 개의 토큰들이 있다는 의미와 같습니다. 이전 게시물인 Subword Segmentation 과 비슷한 양상이라고 볼 수 있습니다. pair 별 빈도를 이용하여 유사도를 계산합니다. 만약 "12월 철수는 패딩을 구입하러 상점으로 이동했다" 라는 문장과 "12월 철수는 패딩을 환불하러 백화점으로 이동했다" 라는 문장의 유사도를 알고 싶다면 단어별로 분절하여 pair 별로 빈도를 확인합니다. 그리고 비교하고자 하는 문장과 같은 pair 가 있는지 확인하고 그 개수를 ..

2. 자연어 처리 - Subword, BPE 알고리즘(OoV, UNK)

SubWord Subword 란 단순한 단어 하나에도 작은 의미들이 뭉쳐있어 있는데 그 단위를 말하는 것이다. 한국어 단어를 예시로 들면 "집중"은 직역하는 [가운데] 로 [모은다] 라는 두가지 의미를 담고 있다. 그래서 자연어 처리를 할 때 이런 작은 단위들로 분절하여 의미를 둔다면 더 좋은 성능을 발휘할 것이다. 하지만 우리 머리로는 뜻이 나오지만 컴퓨터가 Subword 단위까지 분절하기 위해서는 subword 사전같은 데이터들이 필요할 것이다. BPE(Byte Pair Encoding) 알고리즘 2015년에 발표한 것으로 압축 알고리즘을 이용하여 subword segmentation 을 제안했다. 학습 코퍼스를 이용하여 BPE 모델을 학습한 뒤, 실제 코퍼스에 적용해보는 것이다. 이 알고리즘을 활용..