일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- JSP
- html/css
- 자바 실습
- SQL
- 자바
- 연습문제
- 상속
- 티스토리챌린지
- 문자와식
- 개발일기
- JSP/Servlet
- JDBC
- 컴퓨터비전
- 데이터분석
- 자바스크립트
- 컴퓨터구조
- 중학수학
- 딥러닝
- 디버깅
- 오블완
- 혼공머신
- 자바스크립트심화
- 머신러닝
- 정보처리기사필기
- 파이썬
- c언어
- 데이터베이스
- 중학1-1
- CSS
- 정보처리기사실기
- Today
- Total
목록전체 글 (1596)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
이번에는 Seq2Seq 모델로 데이터 전처리하는 내용을 공부해 보겠다. Seq2Seq 모델로 챗봇 구현하기 두 번째 데이터 전처리정규식을 활용해 숫자, 한글을 제거하는 함수를 정의했다. 때에 따라서는 특수문자나 영어가 필요할 수 있으니 활용하고자 하는 데이터 및 해결하려는 문제에 따라 의사결정이 필요하다. 앞서 정의한 clean_sentence 함수를 사용해서, 샘플 문장을 전처리해 보면 한글과 숫자 이외의 모든 문자가 제거되었음을 확인할 수 있다. 먼저 konlpy 라이브러리를 코랩 환경에 설치한다. 코랩은 프로그램과 라이브러리 설치 없이 구글 계정만 있으면 누구나 쉽게 활용할 수 있는 장점이 있다. 하지만 기본적으로 설치된 라이브러리 이외에는 매번 필요한 라이브러리 설치가 필요하다.특..
다음으로는 챗봇을 구현하는 내용을 학습해 볼 차례이다. Seq2Seq 모델로 챗봇 구현하기 1. Seq2Seq 모델 개요시퀀스 투 시퀀스(Sequence to Sequence, 줄여서 Seq2Seq) 모델은 기계 번역, 챗봇, 텍스트 요약 등에 활용되는 대표적인 NLP 알고리즘이다. 앞서 소개한 [그림 5-4] 순환신경망 중에서 Many to many 유형에 속한다. 2014년에는 순환신경망을 이용한 Seq2Seq 모델이 소개되었고, 2015년에는 입력 데이터 중에서 중요한 단어에 집중하는 어텐션(Attention) 메커니즘을 Seq2Seq 모델에 적용했다. 2017년에는 트랜스포머(Transformer: All you need is Attention)가 등장했는데, Seq2Seq 모델에서 순환신경..
마음을 다시 추스르고 RNN 공부를 다시 시작해 보는 중이다. 자연어 생성순환신경망을 사용해 새로운 문장을 생성하는 방법을 알아본다. 라이브러리 및 데이터 불러오기 감성 분석(분류)에서 활용했던 네이버 영화 리뷰 데이터 셋을 활용한다. 데이터 내용을 확인한다. 데이터 전처리이번에는 텍스트 전처리를 하기 위해 한글 형태소 분석기 중 Okt(구, twitter)를 활용한다. 문장 생성에서의 전처리는 앞서 다룬 텍스트 분류의 전처리와 다른 점이 있다. 자연스러운 문장을 위해 분용어를 제거하지 않는다. 불용어를 제거하게 되면 이상한 문장이 만들어질 수 있다.다음과 같이 형태소 분석기를 적용하는 전처리 함수를 정의한다. 모델 성능을 위해서는 많은 데이터를 학습시켜야 하지만, 학습 시..
실행하는 코드마다 안돼서 너무 화가 난다. 공부를 다 때려치우고 싶은 심정이지만 그래도 다시 한번 공부를 진행해 보기로 했다. 정말 하고 싶은 공부만 하고 싶지만 세상 일은 그렇지 못하다.하기 싫어도 해야 하는 것이 있다. 어쨌든 잘 되지 않아도 시도는 해볼 것이다. 한국어 감성 분석 마지막 KoBERT 토크나이저SK T-Brain에서 한국어 성능 향상을 위해 개발한 KoBERT 토크나이저가 있다. 덕분에 쉽게 한국어 사전에 학습된 모델과 토큰화를 활용할 수 있다. 순환신경망 모델은 그대로 활용하고 토크나이저만 KoBERT를 적용한다. 먼저 SK T-Brain 깃허브에서 KoRERT를 다운로드해 설치한다. 오류 메시지를 보면, onnxruntime 라이브러리가 requirements.txt에서..
한국어 감성 분석을 평가하는 실습부터 진행해 보겠다. 한국어 감성 분석 네 번째 평가모델 학습 결과를 그래프로 출력해서 확인한다. 훈련 셋과 검증 세의 예측 정확도를 비교해 보면 훈련 셋의 정확도는 89%이고 검증 셋의 정확도는 85%이다. 손실 함수 그래프를 살펴보자. 1 epoch 이후 loss는 계속 낮아지지만 val_losss는 점점 증가하면서 과대적합 경향을 보인다. 이제 테스트 데이터셋을 불러와서, 동일한 전처리 과정을 거친 후에 직접 모델에 적용해 본다. 앞에서 처리한 텍스트 전처리 과정을 그대로 처리하는 함수를 정의하고, 테스트 데이터셋을 입력한다. 테스트 데이터를 모델에 입력으로 넣은 결과 정확도가 84%로 나타났다. 이는 앞에서 나온 검증 결과와 차이가 없다...
매캅 설치가 잘 되었으니 이제 본격적으로 한국어 감성 분석을 진행해 보겠다. 얼마나 어려웠는지 모른다. 그래도 개발일지에 자세히 적어놓았으니 다음에 설치할 때 참고하면 될 것 같다. 한국어 감성 분석 세 번째 형태소 분석기 불러오기 이어서매캅은 여기에 잘 설치되었다. 샘플 문장에 각 형태로 분석기를 적용해 형태소를 분리해 보겠다. "오늘날씨어때"는 띄어쓰기가 안된 문장이다. "오늘", "날씨"로 분리할 수도 있지만, "오늘날", "씨"라고 분리할 수도 있다. 이처럼 띄어쓰기가 안 돼 있을 때는 형태소 분석이 어렵다.또한 오타가 있을 경우에도 제대로 된 분리가 어려울 수도 있다. 특정 분야(도메인)에서 즐겨 사용되는 전문 영어가 있다면 해당 단어를 사용자 사전에 미리 추가하는 것을 권장한다.다음..
이제 형태소 분석기를 불러오며 설치를 진행해 보겠다. 얼마나 어렵던지 과연 될까 의문이 든다. 어제도 RNN 공부를 할 때 몇 시간 동안 코드 실행이 되지 않아 큰 어려움이 있었다. 오늘도 이를 피해 갈 수 없는 것 같다.다시 한번 코드를 수정하며 문제를 해결해볼 것이다. 한국어 감성 분석 두 번째 형태소 분석기 불러오기여러 가지 한국어 형태소 분석기가 개발되어 있다. Kkama, Komoran, Okt, Mecab 등을 예로 들 수 있다. 영어는 띄어쓰기가 잘 되어 있는 편이지만 한글은 띄어쓰기, 맞춤법 등이 잘못된 경우 분리에 어려움이 있다. 한편, 정확한 형태소 분석을 위해서는 데이터에 따라 전처리 과정 등이 필요할 수도 있다. 먼저 Mecab 형태소 분석기를 코랩 환경에 설치한다. 순서대로..
어제 오후부터 공부가 하기 싫어져서 오후와 저녁에는 거의 놀면서 시간을 보냈다. 원래는 RNN 단원을 모두 마치려고 했었는데 계획에 많은 차질이 생겼다.사실 공부하는 건 지루하고 별로 재미가 없을 때가 많다. 지난 6월부터 6개월 반이 넘도록 웹 개발과 인공지능을 나름 열심히 공부해 왔으나 난 아직 모르는 게 많고 내가 진짜로 아는 게 아는 건지 의문이 들었다. 프로젝트를 해보며 내 실력을 테스트해보고 싶어 어제 오후에는 내가 만들 수 있는 프로젝트를 찾아보았다. 근데 신기하게도 만들 수 있겠다는 확신이 드는 것들이 참 많았다. 12월까지 마쳐야 하는 공부가 있으니 조금만 기다렸다가 언어지능, 프롬프트 엔지니어링, Spring의 엘리스 수업은 들어볼 생각이다. 언어지능은 엘리스로는 없고 인사교에서 진행된..
자연어 처리(National Language Processing, NLP)는 스탬, 뉴스/쇼핑 카테고리 분류, 텍스트 요약, 문장 생성, 기계 번역, 챗봇 등 다양한 분야에 활용되고 있다.자연어를 처리하는 방법을 살펴본 후 순환신경망을 통해 감정 분류, 문장 생성 등 모델을 직접 만들어 보기로 하자. 자연어 처리 방법텍스트 데이터는 테이블 데이터와 같이 구조화되거나 데이터의 길이가 일정하지 않다는 특성을 갖는다. 따라서 문장의 길이가 다른 경우 딥러닝 모델에 입력으로 넣기 위해서는 길이를 동일하게 맞추는 작업이 선행되어야 한다. 가장 긴 문장의 길이에 맞출 수도 있고, 가장 짧은 문장 길이에 맞춰 넘치는 부분을 잘라낼 수도 있다. 또한 한글을 입력 데이터로 활용하기 위해서는 숫자로 변환해야 하고, ..
앞에서 simpleRNN, LSTM, GRU 순환 신경망 구조에 대해 간단하게 알아보았다. 이제 예제를 통해 순환 신경망을 활용하는 방법을 알아보자. 1. 임베딩컴퓨터는 우리가 사용하는 한글, 영어 등을 그대로 이해하지 못한다. 컴퓨터가 이해하는 벡터로 변경해야 하는데 그것을 임베딩(Embedding)이라고 말한다. 임베딩이 잘 될수록 모델의 성능 또한 높아지고 훈련도 잘되기 때문에 임베딩과 관련된 여러 가지 방법들이 개발되어 왔다.크게는 단어 수준의 임베딩(Word2Vec, FastText)과 문장 수준의 임베딩(Elmo, Bert, GPT 등)으로 구분할 수 있다. 단어 수준의 임베딩은 동음이의어를 구별할 수 없지만, 문장 수준의 임베딩은 사람처럼 문장의 맥락을 보고 이를 파악할 수 있다.단어 ..