728x90

데이터 분석/자연어처리 5

4. 자연어 처리 - Word Embedding(WordNet)

Word Sense 한글 단어들은 동음이의어가 참 많다. '차' 를 예로 들어보자. 잎이나 뿌리 등을 우려 마시는 것 바퀴가 달린 운송수단 짐을 실어 그 분량을 세는 단위 장기 말 중 '車' 빼기의 다른 말 몇 주차... 등의 기간을 나타내는 말 etc... 이 때문에 우리는 다의어(Polysemy)와 동형어(Homonym)를 알아야 한다. 다의어(Polysemy) : 근본의미 이외에도 다른 뜻으로도 쓰는 단어 동형어(Homonym) : 단어의 형태만 같을 뿐 서로 전혀 다른 의미를 지님 이런 경우를 처리하기 위해 필요한 것이 Word Sense Disambiguation(WSD) 이다. WordNet 어휘 분류 사전 상위어(Hypernym)나 하위어(Hyponym)에 대한 것이 잘 정리되어 있는 것이 ..

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 모델을 학습한 뒤, 실제 코퍼스에 적용해보는 것이다. 이 알고리즘을 활용..

자연어 처리 기초 - 정규표현식 알아보기(정리, 실습편)

Regular Expression 데이터 정제에 필요한 기술 중에 하나가 정규식(정규표현식)이다. 이전 게시물에 보았던 전각문자를 반각문자로 바꾸는 데에도 주로 사용되는 기술이다. Regular Expression 을 사용하는 방법은 크게 두가지가 있다. Text Editor (VSCode, Sublime Text...) Python 등을 활용한 모듈 사용 이제 정규식의 첫 걸음을 시작해보자. [ ] 대괄호이다. 정규식에서 가장 많이 쓰이는 기호 중에 하나이다. 대괄호 안에 있는 문자(숫자 등)를 매칭해준다. 만약 정규식이 [ab279] 라고 설정 되어있을 때 'a', 'b', '2', '7', '9' 중에 하나라도 들어가있는 문장은 매치에 성공한다. 대괄호 안에 문자 및 숫자들만이 아니라 기호들이 다양..

1. 자연어 처리(NLP, NLU, NLG) - 수집, 정제, tokenization

# 자연어(Natural Language)란 무엇일까. 위키피디아에 따르면 사람들이 일상생활에 쓰는 언어를 인공적으로 만들어진 언어와 구분하여 쓰는 말이라고 되어있다. # 그렇다면 NLP(Natural Language Processing) 은 무엇일까. NLP 에는 크게 NLU 와 NLG 로 이루어져 있다. NLU : 자연어를 컴퓨터가 이해할 수 있는 값으로 바꾸는 과정 NLG : 컴퓨터가 이해한 값을 사람이 이해할 수 있도록 바꾸는 과정 내가 공부하는 자연어 처리는 딥러닝을 기반으로 한다. 자연어 처리 과정은 다음과 같다. 자연어 처리에서 흔히 아는 것 중 하나는 "감정 분석" 이다. 문제 정의 단계에서는 무엇을 할 것인지에 대해서 정하는 단계인데 '나는 감정 분석을 구현해보겠다.' 라고 생각한다면 그..

728x90