skinOptions.hljs
[NLP Project] LSTM + self-attention
·
Project/캡스톤디자인2
모델에 attention 층 추가 model.add(Bidirectional(LSTM(units=128, return_sequences=True, dropout=0.2, recurrent_dropout=0.2))) model.add(SeqSelfAttention(attention_activation='sigmoid')) model.add(Bidirectional(LSTM(units=64, return_sequences=True, dropout=0.2, recurrent_dropout=0.2))) model.add(SeqSelfAttention(attention_activation='sigmoid')) model.add(Dense(1, activation='sigmoid')) model.py from ke..
[NLP Project] input 값을 넣어 개체명 인식하기 - 오류 해결
·
Project/캡스톤디자인2
지난번 게시글에 학습한 모델을 바탕으로 새로운 input값을 넣어 개채명을 인식해보겠습니다. 지난번 코드와 출력결과는 아래와 같습니다. input_predict.py from keras.preprocessing.text import text_to_word_sequence from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pad_sequences from tensorflow.keras.models import load_model import numpy as np def tokenize(samples): tokenizer = Tokenizer() tokenizer..
[NLP Project] 성능 기록
·
Project/캡스톤디자인2
모델명: test_model.h5 파라미터 설정 test-train split : 8:2 Optimaizer: Adam Epoch = 3 batch_size=128 Learning_rate = 0.001 성능 loss: 0.1447 - accuracy: 0.7625 모델명: test_model2.h5 파라미터 설정 test-train split : 8:2 Optimaizer: Adam Epoch = 20 batch_size=128 Learning_rate = 0.005 성능 loss: 0.1796 - accuracy: 0.7463 학습로그 더보기 Epoch 1/20 2022-11-06 01:29:32.795455: I tensorflow/stream_executor/platform/default/dso_..
[NLP Project] 5. 정답 예측하기
·
Project/캡스톤디자인2
출력한 값을 토대로 정답을 예측하는 함수를 만들었다. 이번에는 모델을 학습 시키고 저장한 뒤 로드한 모델로 출력하는 함수까지 구현하였다. def model_predict(src_tokenizer,tar_tokenizer,model): # 예측 idx2word = src_tokenizer.index_word idx2ner = tar_tokenizer.index_word idx2ner[0] = 'PAD' i = 10 y_predicted = model.predict(np.array([X_test[i]])) y_predicted = np.argmax(y_predicted, axis = -1) # 가장 높은 확률을 추출 (예측값) true = np.argmax(y_test[i],-1) # 실제 값 print("..
[NLP Project] 4. LSTM 모델 구축
·
Project/캡스톤디자인2
모델 구축에는 keras 함수를 이용하였다. 그리고 옵티마이저는 Adam 모델의 구성은 다음과 같다. 1. 입력을 실수 벡터로 임베딩 2. 양방향 LSTM 구성 3. Dense Layer를 통한 각 태그에 속할 확률을 예측 TimeDistributed는 상위 layer의 출력이 step에 따라 여러개로 출력되어 이를 적절하게 분배해주는 역할을 한다. model.py from keras.models import Sequential from keras.layers import Dense, Embedding, LSTM, Bidirectional, TimeDistributed from keras.optimizers import Adam def modeling(vocab_size, max_len,tag_size)..
Tensorflow 모델 아키텍처 참고
·
Project/etc
https://tykimos.github.io/2017/06/10/Model_Save_Load/
[NLP Project] 3. 데이터 학습을 위한 준비 (학습 데이터와 테스트데이터)
·
공부정리/NLP
tokenization.py from tensorflow.keras.preprocessing.text import Tokenizer # 정제 및 빈도수가 높은 상위 단어들만 추출하기 위해 토큰화 작업 def Token(sentences,ner_tags): max_words = 4000 src_tokenizer = Tokenizer(num_words=max_words,oov_token='-') src_tokenizer.fit_on_texts(sentences) tar_tokenizer = Tokenizer() tar_tokenizer.fit_on_texts(ner_tags) vocab_size = max_words tag_size = len(tar_tokenizer.word_index) + 1 return..
[NLP Project] 2. 토큰화 하기
·
Project/캡스톤디자인2
먼저 main.py를 생성하여 전체적인 실행을 관리할 파일을 만들었다. data_load.py import os # 파일 로드하고 텍스트파일 전처리하기 def file_load(file_path): tagged_sentences = [] sentences = [] with open(file_path,"r") as f: for line in f: if len(line) == 0 or line[0] == "\n": if len(sentences) > 0: tagged_sentences.append(sentences) sentences = [] splits = line.rstrip('\n').split('\t') if len(splits) == 3: sentences.append([splits[1],split..
[NLP Project] 1. 데이터 로드하고 전처리하기
·
Project/캡스톤디자인2
데이터를 로드하고 전처리해봅시다 사용한 데이터는 네이버 ner 데이터 셋을 이용하였습니다. 데이터셋 출처 -> https://github.com/naver/nlp-challenge GitHub - naver/nlp-challenge: NLP Shared tasks (NER, SRL) using NSML NLP Shared tasks (NER, SRL) using NSML. Contribute to naver/nlp-challenge development by creating an account on GitHub. github.com 해당 데이터셋을 텍스트파일로 바꾸어 사용하였습니다. 데이터는 이렇게 각 문장의 인덱스와 단어, 개체명 순서로 있습니다. 그럼 데이터를 사용하기 편하도록 전처리 해보겠습니다. ..
리눅스에 파이썬 설치하기
·
python/기초
이 문서는 파이썬3.6이나 3.8을 우분투 리눅스에 설치하는 방법을 다룹니다. 파이썬3의 어느 버전이 설치되었는지를 확인하려면 커맨드 프롬프트를 열고 실행해보세요. $ python3 --version 우분투 16.10이나 그보다 최신 버전을 사용하고 있다면 아래의 커맨드로 파이썬3.6을 쉽게 설치할 수 있습니다. $ sudo apt-get update $ sudo apt-get install python3.6 다른 버전의 우분투(예를 들면 최신 LTS 릴리즈)를 사용하고 있다면 혹은 더 최신 버전의 파이썬을 사용하고 싶다면 `deadsnakes PPA `_을 사용해서 파이썬3.8을 설치하기를 추천합니다. $ sudo apt-get install software-properties-common $ sudo..
requirements.txt 만들기
·
python/기초
이런식으로 필요한 라이브러리를 작성하고 해당 라이브러리 버전에 맞게 설치할 수 있는 방법을 알아봅시다. 가상환경(venv)이나 현재 파이썬에 pip로 설치된 패키지에 대한 정보를 requirements.txt라는 하나의 파일로 만들 수 있습니다. requirements.txt를 사용하면 또 다른 가상환경(venv) 혹은 다른 파이썬 환경에서 똑같은 패키지를 설치해야 하는경우 단 한번의 명령어로 requirements.txt.에 정의되있는 패키지들을 설치할 수 있습니다. pip freeze 명령어를 통해 requirements.txt를 생성할 수 있습니다. $ pip freeze > requirements.txt -r 옵션을 통해 requirements.txt에 정의되있는 패키지들을 설치할 수 있습니다. ..
[NLP] Mecab 형태소 분석기 품사 태그
·
공부정리/NLP