본문 바로가기

AI

(28)
뉴스 요약봇 만들기 안녕하세요 이번엔 긴 문장을 요약해주는 텍스트 요약기를 만들어보겠습니다. 텍스트 요약이란 긴 길이의 문서(Document)원문을 핵심 주제만으로 구성된 짧은 요약(Summary) 문장들로 변환하는 것을 말합니다. 예를 들어 뉴스 기사로 뉴스의 헤드라인을 만들어내는 것이 있습니다. 요약할 때 중요한 것은 요약 전후의 정보 손실이 최소화되어야 한다는 점입니다. 이것은 원문의 길이가 길수록 만만치 않은 어려운 작업이 됩니다. 우리가 요약을 한다라고 하면 긴 문장을 정확하게 읽고 이해한 후, 그 의미를 손상하지 않는 짧은 다른 표현으로 원문을 번역해야 하는 것입니다. 그렇게 요약 문장을 만들어내는 방법은 크게 두 가지가 있습니다. 바로 추출적 요약(Extractive Summarization)와 추상적 요약(A..
seq2seq 모델을 이용한 번역기 만들기 우선 필요한 모듈 import와 라이브러리 버전을 맞춰줍니다. !pip install tensorflow==2.6.0 !pip install keras==2.6.0 import pandas as pd from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pad_sequence from tensorflow.keras.utils import to_categorical import numpy as np import re import matplotlib.pyplot as plt 데이터를 불러오고 한 번 확인해봅니다. 데이터는 https://www.manythings.or..
네이버 영화리뷰 감성분석하기 1. 데이터 준비와 확인 필요한 모듈 설치 !pip install konlpy # install mecab-python import os os.chdir('/content') !git clone https://bitbucket.org/eunjeon/mecab-python-0.996.git os.chdir('/content/mecab-python-0.996') !python3 setup.py build !python3 setup.py install 데이터 불러오고 확인 import pandas as pd import konlpy import gensim train_data = pd.read_table('.../ratings_train.txt') test_data = pd.read_table('.../rat..
[NLP] 자연어 전처리 : 토큰화 우리는 수많은 문장 속에서 살아갑니다. 친구에게 온 메세지, 지금 읽고 계신 이 글까지도 문장입니다. 이 모든 것들을 일상에서 자연히 발생하여 쓰이는 언어, 자연어(Natural language)라고 부릅니다. 자연어의 반대 말로 대표적인 것이 프로그래밍 언어(Programming language)입니다. 그렇다면 우리가 일상적으로 사용하는 자연어와 프로그래밍 언어 사이의 본질적인 차이가 무엇일까요? 형식 언어 이론에 따르면 자연언어 : 문맥 의존 언어 (context sensitive language) 프로그래밍언어 : 문맥 자유 언어 (context free language) 로 구분할 수 있습니다. 문맥 자유 언어란 문맥 의존 언어에 포함되는 개념이라 프로그래밍 언어도 자연언어 범주안에 들어 있습니..
Chapter 7. 합성곱 신경망(CNN) 이 게시물은 밑바닥부터 시작하는 딥러닝 1권을 바탕으로 작성되었습니다. 이번 장의 주제는 합성곱 신경망(convolutional neural network, CNN)입니다. 전체 구조 지금까지 본 신경망은 인접하는 계층의 모든 뉴런과 결합되어 있었습니다. 이를 완전 연결(fully-connected, 전결합)이라고 하며, 완전히 연결된 계층을 Affine 계층이라는 이름으로 구현했습니다. 완전 연결 신경망은 Affine 계층 뒤에 활성화 함수를 갖는 ReLu 계층(혹은 Sigmoid 계층)이 이어집니다. CNN의 구조는 다음과 같습니다. CNN에서는 새로운 합성곱 계층(Conv)과 풀링 계층(Pooling)이 추가됩니다. CNN의 계층은 ‘Conv-ReLu-(Pooling)’ 흐름으로 연결됩니다.( 풀링..
Chapter 5. 오차역전파법 이 게시물은 밑바닥부터 시작하는 딥러닝 1권을 바탕으로 작성되었습니다. 계산 그래프 계산 그래프(computational graph)는 계산 과정을 그래프로 나타낸 것입니다. 계산 그래프는 복수의 노드(node)와 에지(edge)로 표현됩니다. 그럼 간단한 문제를 계산 그래프를 이용해 풀어보겠습니다. 문제 1 : 현빈 군은 슈퍼에서 1개에 100원인 사과를 2개 샀습니다. 이때 지불 금액을 구하세요. 단, 소비세가 10% 부과됩니다. 그림에서 처음에 곱셈 노드에 사과 1개의 가격과 사과의 개수가 입력으로 들어갑니다. 그에 대한 출력이 200으로 나오게 되고, 그 출력과 소비세 10%에 관한 값이 다음 곱셈 노드의 입력으로 들어가고 최종 지불 금액이 계산됩니다. 이처럼 계산 그래프를 그려서 왼쪽으로 오른쪽..
Chapter 4. 신경망 학습 이 게시물은 밑바닥부터 시작하는 딥러닝 1권을 바탕으로 작성되었습니다. 이번 장의 주제는 신경망 학습입니다. 여기서 학습이란 훈련 데이터로부터 가중치 매개변수의 최적 값을 자동으로 획득하는 것을 뜻합니다. 이번 장에서는 신경망이 학습할 수 있도록 해주는 지표인 손실 함수를 소개합니다. 이 손실 함수의 결괏값을 가장 작게 만드는 가중치 매개변수를 찾는 것이 학습의 목표입니다. 손실 함수의 값을 작게 만드는 기법으로 함수의 기울기를 활용하는 경사법도 소개합니다. 훈련 데이터와 시험 데이터 기계 학습에선 데이터를 훈련 데이터와 시험 데이터로 나눠 학습과 실험을 수행하게 됩니다. 훈련 데이터를 이용해 모델 훈련을 하고, 시험 데이터로 테스트를 보는 것입니다. 이렇게 하는 이유는 우리가 원하는 것은 새로운 데이터..
Chapter 3. 신경망 이 게시물은 밑바닥부터 시작하는 딥러닝 1권을 바탕으로 작성되었습니다. 2장에서 퍼셉트론에 대해 배웠습니다. 하지만 퍼셉트론 구현 과정에서 가중치와 편향에 대한 작업을 우리가 직접 적절한 값을 넣어줬습니다. 신경망이 이 귀찮은 일을 해결해줍니다. 신경망의 중요한 성질이 바로 가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력입니다. 이번 3장에서는 신경망의 개요와 신경망이 입력 데이터가 무엇인지 식별하는 처리 과정을 자세히 알아보겠습니다. 신경망 그림으로 표현된 신경망은 입력층, 은닉층, 출력층으로 구성되는 2층 신경망입니다. 신경망의 신호 전달 방법을 보기 전에 퍼셉트론에 대해 살짝 복습해보겠습니다. $$y=\begin{cases}0 & (w_1x_1 + w_2x_2 +b \leq 0)\..