PYTHON/자연어 4

LSTM(Long Short-Term Memory)

▶ 전통적인 RNN의 이러한 단점을 보완한 RNN의 일종 ▶ 은닉층의 메모리 셀에 입력 게이트, 망각 게이트, 출력 게이트를 추가하여 불필요한 기억을 지우고, 기억해야할 것들을 정합니다. ▶ LSTM은 은닉 상태(hidden state)를 계산하는 식이 전통적인 RNN보다 조금 더 복잡해졌으며 셀 상태(cell state)라는 값을 추가하였습니다. ▶ 긴 시퀀스(문장의 길이)의 입력을 처리하는데 탁월한 성능을 보입니다. ▶ 각 게이트는 삭제 게이트, 입력 게이트, 출력 게이트라고 부르며 이 3개의 게이트에는 공통적으로 시그모이드 함수가 존재 ▶ 시그모이드 함수를 지나면 0과 1사이의 값이 나오게 되는데 이 값들을 가지고 게이트를 조절 ▶ 입력 게이트 : 현재 정보를 기억하기 위한 게이트 ▶ 삭제 게이트 ..

PYTHON/자연어 2022.04.12

TF-IDF(Term Frequency-Inverse Document Frequency)

▶ 단어 빈도-역 문서 빈도 ▶ 단어의 빈도와 역 문서 빈도(문서의 빈도에 특정 식을 취함)를 사용하여 DTM 내의 각 단어들마다 중요한 정도를 가중치로 주는 방법 ▶ 우선 DTM을 만든 후, TF-IDF 가중치를 부여 ▶ 주로 문서의 유사도를 구하는 작업, 검색 시스템에서 검색 결과의 중요도를 정하는 작업, 문서 내에서 특정 단어의 중요도를 구하는 작업 등에 쓰일 수 있습니다. (1) tf(d,t) : 특정 문서 d에서의 특정 단어 t의 등장 횟수. (2) df(t) : 특정 단어 t가 등장한 문서의 수. (3) idf(d, t) : df(t)에 반비례하는 수. DF의 역수, 여러 문서에서 등장한 단어의 가중치를 낮추는 역할 ▶ TF-IDF는 모든 문서에서 자주 등장하는 단어는 중요도가 낮다고 판단하며..

PYTHON/자연어 2022.03.16

Bag of Words(BoW)

▶ 국소 표현에(Local Representation)에 속하며, 단어의 빈도수를 카운트(Count)하여 단어를 수치화하는 단어 표현 방법 ▶ 단어들의 순서는 전혀 고려하지 않고, 단어들의 출현 빈도(frequency)에만 집중하는 텍스트 데이터의 수치화 표현 방법 ▶ BoW를 만드는 과정을 이렇게 두 가지 과정으로 생각해보겠습니다. (1) 각 단어에 고유한 정수 인덱스를 부여합니다. # 단어 집합 생성. (2) 각 인덱스의 위치에 단어 토큰의 등장 횟수를 기록한 벡터를 만듭니다.

PYTHON/자연어 2022.03.16

NLP

▶ 토큰(token) : 텍스트(문장)를 단어별, 문장별, 형태소별로 나눌 수 있는데, 나누어져서 의미가 있는 단위 ▶ 토큰화(tokenization) : 입력된 텍스트를 잘게 나누는 과정 from tensorflow.keras.preprocessing.text import Tokenizer token = Tokenizer() # 토큰화 함수 지정 token.fit_on_texts(docs) # 토큰화 함수에 문장 적용 ▶ 각 단어 빈도수 : .word_counts token.word_counts ▶ 총 문장 수 : .document_count token.document_count ▶ 각 단어가 몇개의 문장에 포함되어 있는가 : .word_docs token.word_docs ▶ 각 단어에 매겨진 인덱스..

PYTHON/자연어 2022.02.23