일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dacon
- github
- SW Expert Academy
- 백준
- 금융문자분석경진대회
- Real or Not? NLP with Disaster Tweets
- 프로그래머스
- AI 경진대회
- Docker
- 우분투
- programmers
- Baekjoon
- leetcode
- gs25
- 프로그래머스 파이썬
- ChatGPT
- 맥북
- 데이콘
- 캐치카페
- Kaggle
- ubuntu
- 코로나19
- 더현대서울 맛집
- 파이썬
- Git
- 편스토랑 우승상품
- PYTHON
- hackerrank
- 편스토랑
- 자연어처리
- Today
- Total
목록
반응형
Real or Not? NLP with Disaster Tweets (21)
솜씨좋은장씨
Kaggle 도전 24회차! 이제 정말 대회 종료까지 얼마 남지 않았습니다. 지난 23일동안 정말 다양한 데이터 전처리 방법과 LSTM, Bi-LSTM, CNN, CNN-LSTM, RNN, GRU, BERT등 정말 다양한 모델을 사용하여 결과를 도출하여 보았을때 BERT로 도출한 결과가 가장 좋았습니다. 남은 2일은 BERT를 활용하여 결과를 내고 최종 제출 파일을 선택하기로 하였습니다. 그리고 1.0000의 Public Score를 갖고 있는 사람들중에 일부는 test 데이터의 정답 라벨을 다운로드 받아 그 데이터를 제출한 것을 알게되었고 정말 많이 실망하게 되었습니다. 이것을 알고 검색해보던 중 지난 다른 대회에서도 이런 cheating이 있었고 상금까지 받아가 기사에 났던 적이 있는 것도 알게되었고..
Kaggle 도전 22회차! 오늘은 아르바이트를 다녀온 후 시간이 빠듯하여 그동안 제출했던 모델중에 가장 결과가 좋았던 모델들에 바뀐 데이터 전처리방식을 적용한 데이터를 활용하여 학습하고 결과를 도출해보았습니다. 데이터 전처리방식은 21회차와 동일합니다. from keras.preprocessing.text import Tokenizer max_words = 12396 tokenizer = Tokenizer(num_words = max_words) tokenizer.fit_on_texts(X_train) X_train_vec = tokenizer.texts_to_sequences(X_train) X_test_vec = tokenizer.texts_to_sequences(X_test) import matp..
Kaggle 도전 20회차! 이제 정말 종료까지 얼마 남지 않았았습니다. 오늘은 먼저 19회차의 방법으로 전처리를 한후에 TF-IDF로 임베딩을하고 lightGBM 모델을 사용하여 결과를 내보았습니다. import re clear_text_list = list(train['clear_text']) X_train = [] for clear_text in clear_text_list: word_list = word_tokenize(clear_text) word_list = [word for word in word_list if len(word) > 2] word_list = [word for word in word_list if word not in stop_words] # word_list = [stemm..
Kaggle 20회차! 이제 최종 23일까지 약 5일밖에 남지않았습니다. 0.10000의 점의 점수를 얻은 분들은 도대체 어떤 분들인지 빨리 대회가 끝나고 수상자들의 코드가 공개되었으면 하는 바램입니다. 오늘은 지금까지 제출했던 것들 중 가장 결과가 좋았던 9회차에 사용했던 버트모델에 새로운 방법의 데이터 전처리 방식을 사용하여 결과를 도출하고 제출해 보았습니다. 전처리 방식은 NLP-disaster-tweets-1 Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources www.kaggle.com 위의 링크에서 여러 이상한 단어들을 원래의 단어로 잘 바꾸어주는 parse_tweet이..
Kaggle 대회 19회차 오늘은 Bi-LSTM 모델을 활용해 보았습니다. from keras import optimizers from tqdm import tqdm def getBestParams(params_list, lstm_hidden, embedding): count = 0 histories = [] my_accs = [] my_batch = [] my_lr = [] my_epoch = [] embeddings = [] lstm_hiddens = [] for i in tqdm(range(len(params_list['batch_size']))): for j in range(len(params_list['learning_rate'])): for k in range(len(params_list['e..
clear_text_list = list(test['clear_text']) X_test = [] for clear_text in clear_text_list: word_list = word_tokenize(clear_text) word_list = [word for word in word_list if len(word) > 2] word_list = [word for word in word_list if word not in stop_words] # word_list = [stemmer.stem(word) for word in word_list] word_list = [lemmatizer.lemmatize(word) for word in word_list] X_test.append(word_list) ..
Kaggle 대회 17회차! 오늘은 기존의 데이터 전처리 방식에서 tokenizer를 word_tokenize에서 TreebankWordTokenizer로 변경하고 토큰화 후 stemmer를 사용하지 않고 lemmatizer를 사용하여 보았습니다. 기존의 방식보다 조금 더 원형의 형태를 보존해서 토큰화가 된 것을 볼 수 있었습니다. 모델은 16회차의 모델에 그대로 적용해보았습니다. 첫번째 제출 from keras import optimizers adam = optimizers.Adam(lr=0.05, decay=0.1) model_1 = Sequential() model_1.add(Embedding(vocab_size, 100)) model_1.add(GRU(32)) model_1.add(Dropout(..
Kaggle 도전 16회차 오늘은 캐글에 공개되어있는 노트북 들 중에서 한분이 약어를 다시 풀어서 전처리한 것을 보고 저는 그 노트북에서 약어가 담겨있는 dictionary만 빼와서 전처리를 하여 도전해보았습니다. AdaptNLP (Easier BERT-based Models) Explore and run machine learning code with Kaggle Notebooks | Using data from Real or Not? NLP with Disaster Tweets www.kaggle.com 먼저 필요한 라이브러리를 import해주고 약어 부분을 가져왔습니다. import nltk nltk.download("punkt") nltk.download("stopwords") from nltk...
이번 2020년 3월은 코로나 바이러스로 밖으로 나가는 시간도 많이 줄어 집에있는 시간이 많아진 만큼 Kaggle에서 진행하는 NLP관련 대회인 Real or Not? NLP with Disaster Tweets 대회와 데이콘에서 진행하는 AI 프렌즈 시즌 1 온도 추정 경진대회 [공공] AI프렌즈 시즌1 온도 추정 경진대회 출처 : DACON - Data Science Competition dacon.io 그리고 스타크래프트 게임 플레이 데이터를 바탕으로 진행되는 데이콘 월간 데이콘 3 행동 데이터 분석 대회를 진행해보려고 합니다. [게임] 월간 데이콘 3 행동 데이터 분석 대회 출처 : DACON - Data Science Competition dacon.io 총 상금은 250만원! 하루에 최대 3번..
Kaggle 15회차 오늘은 GRU모델을 활용해보기로 했습니다. 첫번째 제출 model = Sequential() model.add(Embedding(vocab_size, 100)) model.add(GRU(100)) model.add(Dropout(0.5)) model.add(Dense(2, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['acc']) history = model.fit(x_train, y_train, batch_size=32, epochs=3, validation_split=0.1) 결과 두번째 제출 model3 = Sequential() model3.add(Embed..
Kaggle 14회차! 오늘은 금융문자분석밋업때 수상자들이 사용했던 lightGBM모델을 활용해보았습니다. Google Colab에 LightGBM설치 [Ensemble] Colab에서 LightGBM 사용하기! 원자력 발전소 상태판단 알고리즘을 도전해보면서 머신러닝을 공부하며 Gradient Boosing알고리즘 중의 하나인 LightGBM 알고리즘을 알게되었고 DACON KB 금융문자분석경진대회에서도 수상자들이 사용했다는 것을.. somjang.tistory.com 먼저 저는 Colab환경에서 진행하려고하여 위의 링크 방법대로 lightGBM을 설치해주었습니다. !nvidia-smi 무료버전임에도 Tesla P100 GPU가 할당되어 놀랐습니다. 먼저 lightGBM모델을 사용하기위해서 데이터를 처리..
Kaggle 13회차! 오늘은 저번 12회차까지 데이터 전처리를 했던 방법과 Glove 임베딩 기법을 사용하고 attention모델과 CNN모델을 활용하여 학습하고 결과를 도출해 제출해보았습니다. X_train = [] alphabets = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] god_list = ['buddha', 'allah', 'jesus'] train_text_list = list(train['text']) clear_text_list = [] for text in train_text_list: text..
Kaggle 도전 11일차! 오늘은 어제 데이터 전처리했던 방식에서 조금 더 추가하여 전처리를 진행하고 학습 시킨 후 결과를 도출하여 제출해보았습니다. 먼저 추가로 어떤 데이터를 어떻게 전처리할지 보기위해서 워드클라우드도 그려보고 단어의 빈도수도 확인해보았습니다. 먼저 저번주에 워드클라우드를 그렸던 방법에서 길이가 3이상인 단어와 nltk의 불용어에 없는 단어만 남겨놓고 그려보았습니다. (이 글을 쓰면서 정말 큰 실수했다고 생각되는 부분은 stemmer.stem(word)하기 전에 불용어 처리를 했어야했는데 이미 stemming이 완료된 이후에 불용어 처리를 하다보니 the가 thi로 바뀌는 등 제대로 불용어 처리가 되지 않았던 것 같습니다.) word_list = word_tokenize(clear_t..
Kaggle 도전 10회차! 데이터를 가공하여 학습하고 결과를 도출해보았습니다. alphabets = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] god_list = ['buddha', 'allah', 'jesus'] train_text_list = list(train['text']) text_list_corpus = '' for text in train_text_list: text_list_corpus = text_list_corpus + text text_list_corpus = text_list_corpus.lo..
Kaggle 도전 8회차! 오늘은 결과가 가장 좋았던 7회차 모델에 데이터 전처리 방식을 달리하여 제출해보았습니다. 데이터 전처리는 https://~~ 를 정규식을 활용하여 LINK로 변경하여 넣어주었습니다. from tqdm import tqdm import re text_list = list(train_data['text']) clear_text_list = [] for i in tqdm(range(len(text_list))): clear_text = text_list[i].lower() pattern = '(http|ftp|https)://(?:[-\w.]|(?:%[\da-fA-F]{2}))+/(?:[-\w.]|(?:%[\da-fA-F]{2}))+' clear_text = re.sub(patter..
Kaggle 도전 7회차! 오늘은 CNN 모델을 사용해보기로 했습니다. 첫번째 제출 model = Sequential() model.add(Embedding(max_words, 128, input_length=23)) model.add(Dropout(0.2)) model.add(Conv1D(256, 3, padding='valid', activation='relu', strides=1)) model.add(GlobalMaxPooling1D()) model.add(Dense(128, activation='relu')) model.add(Dropout(0.2)) model.add(Dense(2, activation='sigmoid')) model.compile(optimizer='adam', loss='bi..
Kaggle 도전 6회차! 오늘은 좀 더 간단한 신경망 모델을 사용해보려고합니다. 첫번째 제출 model2 = Sequential() model2.add(Embedding(max_words, 100, input_length=23)) # 임베딩 벡터의 차원은 32 model2.add(Flatten()) model2.add(Dense(128, activation='relu')) model2.add(Dense(2, activation='sigmoid')) model2.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) history = model2.fit(X_train_vec, y_train, epochs=3, batch_si..
Kaggle 도전 5회차! 오늘은 CNN-LSTM모델에서 SimpleRNN모델로 바꾸어 테스트 해보았습니다. 첫번째 제출 model = Sequential() model.add(Embedding(max_words, 100)) # 임베딩 벡터의 차원은 32 model.add(SimpleRNN(128)) # RNN 셀의 hidden_size는 32 model.add(Dense(2, activation='sigmoid')) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) history = model.fit(X_train_vec, y_train, epochs=3, batch_size=32, validation_sp..
Kaggle 도전 4회차! 오늘은 저번 CNN-LSTM모델에서 마지막 레이어의 activation이 sigmoid가 아닌 softmax였던 것을 sigmoid로 바꾸어 시도해보았습니다. 첫번째 제출 model = Sequential() model.add(Embedding(max_words, 100, input_length=23)) model.add(Dropout(0.2)) model.add(Conv1D(128, 3, padding='valid', activation='relu', strides=1)) model.add(MaxPooling1D(pool_size=4)) model.add(LSTM(128)) model.add(Dense(2, activation='sigmoid')) model.compile(o..
Kaggle 도전 3회차! 데이터 전처리는 1회차와 2회차 동일하게 실행하고 모델만 Bi-LSTM에서 CNN-LSTM으로 바꾸어보았습니다. 첫번째 제출 model = Sequential() model.add(Embedding(max_words, 100, input_length=23)) model.add(Dropout(0.2)) model.add(Conv1D(128, 3, padding='valid', activation='relu', strides=1)) model.add(MaxPooling1D(pool_size=4)) model.add(LSTM(128)) model.add(Dense(2, activation='softmax')) model.compile(optimizer='adam', loss='cat..
Real or Not? NLP with Disaster Tweets Predict which Tweets are about real disasters and which ones are not www.kaggle.com DACON 에서 진행했던 KB 금융문자분석 경진대회도 끝나고 Programmers에서 진행했던 2020 Dev-Matching 자연어처리 개발자 과제도 끝나고 자연어처리 관련 Competition이 어디 없나 찾던 중 지난 BERT 교육에서 알게된 Kaggle Competition 중 하나인 Real or Not? NLP with Disaster Tweets Competition에 도전해보기로 했습니다. 재난 문자인지 아닌지! 영어로 되어있는 트윗을 이진분류하는 Competition 입니다..