반응형

인공지능 646

자연어 처리 살펴보기 - 개요

상황적인 인식을 통해 비언어적인 신호 또한 사용된다. 물어본 의도를 잘 파악하는 챗봇들이 많이 나오고 있다. drug는 약도 될 수 있고, 마약도 될 수 있다. -> 단어의 뜻을 명확하게 하여 검색결과를 보여준다. 오타를 자동 수정! 사람이 하기 힘든 일을 대신 해준다. 감정 분석은 긍정과 부정을 나누어 사용자의 만족도를 측정할 수 있다.

자연어 처리 python 실습 - Neural Language model 구현

# Neural Language Modeling #네이버 영화 댓글 데이터를 이용해 Neural language model을 구현해보고, 구현한 Neural language model로 댓글 생성을 해본다. from google.colab import drive drive.mount('/content/drive') base_path = "./drive/MyDrive/fastcampus/practice" import pandas as pd df = pd.read_csv(f"{base_path}/data/nsmc/ratings_train.txt", sep='\t') # pos, neg 비율 df['label'].value_counts() 0 75173 1 74827 Name: label, dtype: int..

자연어 처리 python 실습 - N gram language model

# N-gram Language Modeling 작은 샘플들을 활용해 N-gram language modeling을 구현해보고, 구현한 N-gram language model로 자동 완성 기능을 이해해보자 data corpus = ["오늘 날씨 어때", "오늘 날씨 어때", "오늘 날씨 어때", "오늘 축구 경기", "오늘 경기 결과", "오늘 경기 결과", "내일 날씨", "내일 축구 경기", "내일 축구 경기", "축구 일정", ] 문장의 빈도를 통한 확률 제대로 확인! # tokenization vocabs = set() for sample in corpus: for token in sample.split(): vocabs.add(token) vocabs = list(vocabs) vocabs 출력..

자연어 처리 python - 최신 Language model들과 활용법

objective = 모델이 학습하려고 하는 바 MLM = 컨텍스트들이 마스킹 되어 있다. 마스킹 된 것을 예측한다! 한 단어를 예측할 때 주변을 다 보고 예측한다. NSP = 이전문장과 다음 문장이 이어지면 1, 아니면 0으로 풀게 된다. BERT = MLM + NSP 문장에 대한 특징을 잘 추출, 언어를 잘 이해하게 되어 파인튜닝시 잘 이해한다. 실무적으로 아직 잘 사용되고 있다. GPT - 1 = 단방향! 미래는 볼 수 없다. 고전적인 학습 방법을 이용한다. RoBERTa : Long sequence!! GPT - 2: 1버전 보다 더 커졌다. T5 - 입력에 대해 토큰들로 치환하여 디코더에서 치환된 영역이 다시 생성된다! 모든 일을 자연어로 풀게한다-> 요즘의 트렌드 MTDNN - MS ELECT..

자연어 처리 python - skip thought vector

유사한 임베딩은 가까이 유사하지 않은 것은 다른 곳을 향하게 된다. sentence embedding을 잘 만드는 것으로 좋은 모델을 만들 수 있다. 어휘는 유사하지만 완전히 다른 의미와 완전히 다른 어휘와 동일한 의미! GRU도 RNN의 일종이다. 여러개 문장을 주어주고, 그 중 가장 알맞는 문장을 고르도록 학습하게 된다! 여기선 '오늘 날씨는 맑습니다'가 학습하면서 나올 확률이 높아지고, 출력하게 된다.

자연어 처리 - Neural language modeling 2

좀 더 넓은 범위를 보게 된다. 그러나 연산량은 동일하다. 미래값은 포함하지 않는다! 순서를 가지고 오기 때문에 RNN이 가장 좋아 보이긴 한다. 2024.01.17 - [인공지능/자연어 처리] - 자연어 처리 - RNN, LSTM 자연어 처리 - RNN, LSTM RNN 우린 이 점선으로 된 부분을 예측해야 한다. 그냥 MLP를 사용하면 현재 데이터나 과거 데이터나 신경쓰지 않는다. CNN은 패턴을 잡는 모델이라 순서를 신경쓰지 않아 문제가 생긴다. 시간의 순 yoonschallenge.tistory.com SOS? : start of santence 문장의 시작 EOS : end of santence 문장의 끝 오늘보다 더 높은 확률이 있지만 오늘이 선택되기 때문에 '오늘'의 확률을 보게 된다. so..

자연어 처리 - Neural language modeling 1

이전의 토큰 하나만을 보기 때문에 이전의 정보가 사라진다! 단어의 조합은 무한하다 ! -> 희소 행렬을 만들게 된다! 이것도 무한한 것은 동일하지 않나....? 라마는 달린다 -> 아직 한번도 안나왔음 -> 확률은 0 사슴 고양이 개는 나온적이 있어 확률이 있다. 라마가 포유류라는 것을 알았다면 '라마는 달린다'도 비슷한 확률을 부과할 수 있다. 라마, 고양이, 개, 사슴의 토큰에 대한 임베딩이 비슷하다면 유사하다는 것을 전달할 수 있다. 위의 동물들은 유사한 문맥들을 가진다!

자연어 처리 - N Gram language modeling

2024.02.15 - [인공지능/자연어 처리] - 자연어 처리 - Autoregressive language modeling 제곱 크기 만큼의 숫자가 생긴다. 공간, 용량이 과하게 필요하게 된다. == 비용!!!! 가정을 주어서 토큰을 완화시킨다. (원래는 같지 않지만)이전타임을 다 쓰지 않아도 직전만 사용해도 유사할 것이라고 가정하는 것이다. 확률과 카운트는 비례하기 때문에 하나만 알아도 됨! P(날씨|오늘) = 0.166/0.333 = 0.166/(0.166 + 0.111 + 0.055) P(날씨|오늘) = 3/(3+1+2) 하나가 0이라면 전체가 0이 되는 문제가 생긴다. adam optimizer에서도 본 경우다! 2023.12.16 - [인공지능/공부] - 인공지능 backpropagation..

자연어 처리 - Autoregressive language modeling

"오늘 날씨 어때"가 3번 나왔으므로 30프로가 나온다. 한 글자만 다르더라도 다른 문장으로 판단한다. 조건부 확률을 활용하여 좀 더 짧은 문장에 대한 확률도 구할 수 있게 된다. P(오늘)P(날씨|오늘) 이렇게 볼 수 있다. 가장 높은 확률을 고른 후 이어 붙이고, 계속 확률 높은 것을 이어 붙인 다음에 끝내면 된다. 문장 분류도 두 문장 중 가장 높은 확률을 구하는 것이다.

자연어 처리 - 문장의 그럴듯함을 측정하는 방법

문장은 문법이 있기 때문에 단어의 나열로는 불가능하다. 컴퓨터는 문장의 그럴듯함을 확률을 통해 수치화한다. 자동 완성 - 오늘이라는 토큰이 주어졌을 때 어떤 단어가 나올지 확률을 안다면 이어 붙여 주면 된다. 오타 교정 - 어떤 문장이 주어졌을 때 확률이 낮은 단어나 조사를 높은 확률의 토큰으로 추천해준다. 모든 것이 낮은 확률을 -> 높은 확률로 변하거나 가장 높은 확률을 선택하는 것이다. 언어 모델 자체는 비지도 학습이다. 인풋을 그대로 다음을 예측하도록 하기 때문! RNN...?

728x90
728x90