ML&DL/NLP(14)
-
[NLP] BERT를 이용한 한국어 금융 뉴스 이진 분류 실습
허깅페이스의 pre-trained model인 BERT를 이용해 실습해보겠습니다. - 목표 : 한국어 금융 텍스트를 이용하여 뉴스 긍정, 부정, 중립 3가지 레이블 분류 https://huggingface.co/ Hugging Face – The AI community building the future. huggingface.co 허깅페이스(HugginFace) - pytorch, tensorflow 모두 가능 - 모델 업로드, 전처리, 학습, 평가 및 테스트 코드 모두 제공 - 다양한 사전 학습 언어 모델을 제공하고 있음. 모델의 Hub 로서의 역할. => ko, kor를 입력하면 한국어 모델 Search 가능 - 토크나이저 : 모델마다 사용해야하는 토크나이저가 존재함. - pipeline : 모델 ..
2023.11.07 -
[NLP] Pre-trained Language Model(PLM)
사전 학습 모델(Pre-trained Model) - 대용량의 데이터를 이용해 사전 학습한 모델 => 예를 들어 동물을 분류하는 사전 학습 모델이 있다면, 우리는 이 모델을 이용해 고양이를 분류하는 문제에 적용할 수 있음. Fine - tuning - 사전 학습 모델을 풀고자 하는 태스트의 오차에 맞추어서 학습하는 것 => 동물 분류의 사전 학습 모델을 사용하고 싶다면 우리는 고양이를 분류하는 모델에 맞추는 작업이 필요하다 (미세조정) 사전 학습 언어 모델 (Pre-trained Langage Model) 1. ELMo (Embeddings from Language Model) - 워드 임베딩 방법론 - 사전 학습된 LSTM 언어 모델 두 가지를 결합하여 만들어짐 2. GPT - 트랜스포머의 디코더를 ..
2023.11.07 -
[NLP] Seq2Seq(Sequence-to-Sequence)
자연어 처리 - 자연어 처리는 크게 자연어 이해(NLU)와 자연어 생성(NLG)의 영역이 있음 - 자연어 생성은 기계가 텍스트를 스스로 생성하는 영역을 말함 Seq2Seq(Sequence-to-Sequence) - 입력된 시퀀스로 부터 다른 도메인의 시퀀스를 출력 - 인코더와 디코더로 구성되어있음. - 인코더는 NLU, 디코더는 NLG에 유리함. ex) 챗봇, 기계 번역, 텍스트 요약 - Seq2seq 는 인코더와 디코더 모듈로 구성 - 입력 데이터를 인코더에 입력 받고 컨텍스트 벡터라는 단어 정보들의 압축한 벡터를 만듦 - 디코더는 컨텍스트 벡터를 받아 번역된 단어 출력 Seq2seq 의 알고리즘 * Greedy Decoding - seq2seq의 디코더는 기본적으로 RNN 언어 모델 => 가장 높은..
2023.11.06 -
[NLP] 시퀀스 모델 - RNN, LSTM, GRU
📌 FFNN은 인공 신경망의 가장 기본적인 형태이며, MLP는 다층 퍼셉트론을 뜻하며 은닉층이 있는 FFNN 유형 중 하나. RNN은 FFNN과 달리 순환 구조로 이루어져 있기 때문에 이전 정보를 가지고 현재 작업에 반영하므로 순차적인 데이터에 효과적임. +) RNN의 단점을 보완하기 위해 나온 LSTM 모델 , LSTM을 개선한 GRU 모델 등 다양한 시퀀스 모델에 대해 알아보겠습니다. 1. Feed Forward Neural Network (순방향 신경망) - 인공신경망의 최초 유형이자. 가장 단순한 형태 - MLP는 FFNN(Feed Forward Neural Network)의 한 유형 - 입력 노드로부터 출력 노드 방향으로 한 방향(순방향)으로만 움직임. - 입력측 -> 은닉층 -> 출력층 - 단..
2023.11.06 -
[NLP] 텍스트 벡터화 : 워드 임베딩(Word embedding) 실습
워드 임베딩 - 인공 신경망을 이용하여 단어의 벡터값을 얻는 방법 - 학습 후에는 각 단어 벡터 간의 유사도를 계산 할 수 있다. 1) 랜덤 초기화 임베딩 - 초기에 모든 단어의 임베딩 벡터값은 랜덤 초기화 됨. - 오차를 구하는 과정(역전파 하는 과정)에서 embedding table을 학습 2) 사전 훈련된 임베딩 (Pre-trained Word Embedding) - 방대한 양의 텍스트 데이터로 이미 훈련되어있는 임베딩 벡터값을 사용하는 것 - 대표적인 알고리즘으로 word2Vec, FastText, GloVe가 존재함 💻 실습 Word2Vec (영어) 라이브러리 불러오기 import gensim gensim.__version__ import re from lxml import etree impor..
2023.11.03 -
[NLP] 텍스트 벡터화 : TF-IDF 실습
https://situdy.tistory.com/60 [NLP] 텍스트 벡터화 벡터화 (Vectorization) 1. 신경망 사용하지 않을 경우 - 단어 : 원-핫 인코딩 - 문서 : Document Term Matrix, TF-IDF 2. 신경망 사용할 경우 - 단어 : 워드 임베딩 (Word2Vec, GloVe, FastText, Embedding layer) - 문서 : Doc2Vec situdy.tistory.com 이전 글에서 설명한 TF-IDF 실습을 해보겠습니다 TF-IDF - 문서의 벡터화 방법 - 인공 신경망을 이용하지 않음. - 모든 문서에서 자주 등장하는 단어는 중요도가 낮다고 판단, 특정 문서에서만 자주 등장하는 단어는 중요도가 높다고 판단 💻 실습 import pandas as ..
2023.11.03 -
[NLP] 텍스트 벡터화
벡터화 (Vectorization) 1. 신경망 사용하지 않을 경우 - 단어 : 원-핫 인코딩 - 문서 : Document Term Matrix, TF-IDF 2. 신경망 사용할 경우 - 단어 : 워드 임베딩 (Word2Vec, GloVe, FastText, Embedding layer) - 문서 : Doc2Vec, Sent2Vec 3. 문맥을 고려한 벡터 표현 방법 - ELMo,BERT,GPT,T5 (Pre-trained model) 단어의 벡터화 : 원-핫 인코딩 - 전체 단어 집합의 크기를 벡터의 차원으로 가진다 (0 과 1로 이루어져있음) - 각 단어에 고유한 정수 인덱스를 부여, 해당 인덱스의 원소는 1로 나머지 원소는 0을 가지는 벡터 ex) 다음과 같이 정수 인코딩이 되었다면, 과일이 0 길..
2023.11.03 -
[NLP] 데이터 전처리 - 정수 인코딩 / 패딩 실습
정수 인코딩 - 토큰화 수행 후 각 단어에 고유한 정수를 부여해주는 것 - 정수로 만드는 이유는 컴퓨터가 이해하기 쉽도록 텍스트 -> 숫자로 표현 - 모든 단어의 집합(Vocabulary)을 만들고 이를 기반으로 문서를 정수로 인코딩 해줌 패딩 - 텍스트에 대해 정수 인코딩을 수행했을 때 길이가 서로 다르게 되는데 길이를 맞춰주기 위해 사용 - 길이를 맞춰줌으로써 병렬 연산을 할 수 있게 만들어줌. - 패딩 길이가 너무 작으면 데이터 손실의 문제, 길이가 너무 길면 중요도가 낮은 데이터 포함되는 문제가 있으므로 적절하게 지정해줘야함 💻 정수 인코딩 실습 라이브러리 불러오기 import pandas as pd import numpy as np import matplotlib.pyplot as plt imp..
2023.11.02