'NLP' 카테고리의 글 목록 (2 Page) — 뚝딱이

NLP

NLP

[NLP] 자연어데이터 전처리, NLTK

코퍼스(Corpus) 코퍼스는 말뭉치로 자연언어 연구를 위해 특정한 목적을 가지고 언어의 표본을 추출한 집합이다. 글 또는 말 텍스트를 모아 놓은 것 둘 이상의 코퍼스가 존재하면 코포라(Corpora)라고 부름 구성된 언어를 기준으로 단일 언어 코퍼스, 이중 언어 코퍼스(한글, 영어), 다국어 코퍼스(번역)로 나눌 수 있음 필요 이유 코퍼스를 통해 자연어에 대한 빈도 분포, 단어의 동시 발생 등과 같은 통계적인 분석 가능 다양한 자연어처리 과정에서 자연어 데이터에 대한 언어 규칙을 정의하고 검증할 수 있음 ex) 사투리의 규칙 규칙 기반 시스템의 도움으로 언어에 따라 각 언어에 대한 언어 규칙을 정의할 수 있게 함 수집 오픈소스 코퍼스 다양한 웹사이트에서 크롤링하여 데이터 수집 저작권 문제, 트래픽 문제..

NLP

[NLP] 한국어 자연어처리

한국어 NLP를 공부하기 위해서 영어 NLP를 알아야 함 이는 현재 존재하는 라이브러리, 알고리즘이 영어에 맞춰져 있기 때문에 이 특성을 고려하여 한국어의 특징에 pattern화 해야 함 한국어 문법 음절 한글 자모 첫소리와 가운뎃소리 끝소리 글자로 이뤄진 한글의 단위(끝소리가 없을 수 있음 한 ㅎ - 초성 - 첫소리 ㅏ - 중성 - 가운뎃소리 ㄴ - 종성 - 끝소리 어간, 어미 어간과 어미는 용언인 동사와 형용사에만 쓰이는 개념으로 용언 활용 시 변하지 않는 부분이 어간, 변하는 부분이 어미이다. 먹다, 먹고, 먹니, 먹지, 먹으며, 먹어서 '먹'은 어간이며 '-다', '-고', '-니', '-지', '-으며', '-어서'는 어미이다. 예쁘다, 예쁘고, 예쁘니, 예쁘지 '예쁘'는 어간이며 '-다', '..

NLP

[NLP] 자연어처리의 이해

자연어 자연어랑 인공 언어(C, C++, FORTRAN)와는 다르게 어법이 정해진 규칙만을 따르지 않고 일상적으로 사용되는 언어의 구조적인 체계를 말함 일상적으로 듣고 쓰고 말하고 읽는 모든 언어 인간으로서 우리는 언어를 통해 생각이나 감정을 표현함 자연어 처리 NLP NLP(Natural Language Processing)이란 인공지능의 한 분야로, 사람의 언어 현상(자연어)을 컴퓨터와 같은 기계(인공언어)를 사용해 다루는 작업 NLP의 목적은 컴퓨터가 사람의 언어를 이해하고 여러 가지 문제를 해결할 수 있도록 하는 것이다. 자연어 분석 과정 자연어 데이터를 준비한 후 다음 과정을 통해 처리함 자연어 데이터는 음성, 문서, 이미지 등 다양하게 존재함 자연어 처리 자연어 데이터 숫자 형태 변환 자연어 ..

NLP

[RNN] Transformer

순환신경망을 사용하지 않고 attention으로 구성된 인코더 디코더 모델이다. 단어간의 상관관계로 문장을 해석할 수 있다면 순차적으로 문장 패턴을 인식하는 RNN은 사용할 필요가 없다. 트랜스포머는 다음과 같이 크기를 조정한 내적으로 셀프 어텐션값을 계산한다. $$ attention(Q,K,V)=softmax( \frac{QK^{T}}{ \sqrt{d_{k}} } )V $$ 구조 인코더는 인코더 블록을 N번 반복하고 디코더는 디코더 블록을 N번 반복하는 구조로 되어있다. 모든 단어를 한꺼번에 입력하기 때문에 단어의 순서 정보를 명시해줘야한다. 그렇기 때문에 위치 인코딩 정보를 단어와 함께 입력한다. 멀티 헤드 어텐션 인코더 블록은 multi-head-attention계층과 완전 연결 계층으로 구성되며 ..

NLP

[NLP] Seq2Seq with Attention

Seq2seq seq2seq 모델은 인코더 디코더 구조를 사용하고 RNN보다 번역 성능에서 우수한 성능을 보여주었다. 그러나 입력 시퀀스를 하나의 고정된 크기의 벡터로 압축하면서 정보손실이 발생한다는 한계점이 존재한다. 더 자세히는 encoder의 마지막 노드에서 나온 시퀀스를 decoder에서 받기 때문에 정보의 손실이 일어날 수밖에 없다. Attention encoder에 매 time step으로부터 하나씩 벡터 표현을 추출하면서, 중요한 단어에 집중할 수 있도록 설계된 것이다. 모든 기억을 동등하게 기억하지 않고 연관성 있는 기억에 집중해서 기억하도록 구조화하는 방법을 사용함 출력 단어를 예측하는 시점에서 예측할 단어와 연관이 큰 단어를 더 집중해서 참고하는 모습을 볼 수 있다. 역할 encoder..

NLP

[RNN] Backpropagation through time

BPTT(Backpropagation through time), RNN의 오차역전파는 시간 순서대로 펼쳐놓은 것의 반대 순서로 역전파를 수행하면 된다. Loss function loss function을 시간 순서대로 펼쳐 놓은 상태에서 정의해야한다. 단계별로 출력하기에 손실 함수로 단계별로 출력된다. 전체 손실 함수는 각 단계의 손실 함수를 더한 값으로 정의합니다. $$ J(f(X;\theta), t)=L_{1},L_{2},L_{3},L_{4} $$ BPTT 역전파 순서는 전체 손실 함수에서 시작하여 \( y_{4}\)를 지나 \( h_{4} - h_{3} - h_{2} - h_{1} \) 순서로 진행되면서 입력 계층으로 역전파가 분기된다. Truncated BPTT truncated BPTT는 BPT..

NLP

[RNN] RNN 모델 종류

RNN은 입출력의 형태와 처리 방식에 따라 모델 구성이 다양하다. 다대일 모델 다대일(many to one) 모델은 입력은 순차열이지만 출력은 순차열이 아닌 모델이다. 모든 단계에서 입력을 받지만 출력은 마지막 단계에서 하는 모델로 영화 감성 분석등을 할 때 사용된다. 다대다 모델 다대다(many to many) 모델은 입출력이 모두 순차열인 모델이다. 다대다 모델에서 티처 포싱(teacher forching) 방식으로 학습하면 학습이 안정화되고 수렴 속도도 빨라진다. 티처 포싱은 현재 단계의 출력을 다음 단계에 입력하는 방법으로 현재 단계의 예측 결과를 교사의 지도 신호로 사용해서 다음 단계에 전달하기 때문에 예측 성능이 높아진다. 주의할 점은 훈련 시에는 모델의 예측 결과 대신 타깃을 직접 지도 신호..

NLP

[RNN] RNN 구조

순차 데이터 순차 데이터(sequence data)란 시간적 공간적 순서 관계가 있는 데이터이다. 자연 현상과 음악, 동영상, 주가, 시스템로그, 글, 악보, 프로그램과 같이 구성요소가 순차적인 관계를 가지고 있다. 시간 정보를 포함한 데이터를 FNN과 CNN으로 처리를 하였을 때 과연 좋은 결과를 얻을 수 있을까? FNN을 사용하면 고정된 입력크기를 사용하기 때문에 가변 길이를 가지는 데이터를 사용하지 못하고 CNN은 이미지 저리를 위해 만들어졌기 때문에 순차적 관계를 알아낼 수 없다. RNN 구조 RNN(Recurrent neural network)는 데이터의 순서를 고려하는 context를 만들어 데이터의 순차 구조를 인숙할 수 있고 context의 번위가 넓더라도 처리할 수 있다. 순차 구조를 인..

파송송
'NLP' 카테고리의 글 목록 (2 Page)