1. 오류 교정(Noise Canceling)
- 자연어 문장의 스펠링 체크 및 띄어쓰기 오류 교정
2. 토큰화(Tokenizing)
- 문장을 토큰(Token)으로 나눔(수치 변환)
- 토큰은 어절, 단어 등으로 목적에 따라 다르게 정의
3. 불용어 제거(StopWord Removal)
- 불필요한 단어를 의미하는 불용어(StopWord) 제거
- ex. 아, 휴, 아이고, 아이쿠, 쉿, 그렇지 않으면, 그러나, 그런데, 하지만...
4. Bag of Words
- 자연어 데이터에 속해있는 단어들의 가방
5. 토큰 시퀀스
- Bag of Words에서 단어에 해당되는 인덱스로 변환
- 모든 문장의 길이를 맞추기 위해 기준보다 짧은 문장에는 패딩을 수행
X_train, y_train, X_test, y_test = data_process.imdb_data_load()
X_train = sequence.pad_sequences(X_train, maxlen=300, padding='post')
X_test = sequence.pad_sequences(X_test, maxlen=300, padding='post')
# 모델 구현
embedding_vector_length = 32
model = tf.keras.models.Sequential([
tf.keras.layers.Embedding(1000, embedding_vector_length, input_length = max_review_length),
tf.keras.layers.SimpleRNN(5),
tf.keras.layers.Dense(1, activation='sigmoid')
])
# 모델을 확인
print(model.summary())
# 학습 방법 설정
model.compile(loss = 'binary_crossentropy', optimizer = 'adam', metrics = ['accuracy'])
# 학습 수행
model_history = model.fit(X_train, y_train, epochs = 3, verbose = 2)
loss, test_acc = model.evaluate(X_test, y_test, verbose = 0)
# 평가용 데이터에 대한 예측 결과를 predictions에 저장
predictions = model.predict(X_test)
# 모델 평가 및 예측 결과 출력
print('\nTest Loss : {:.4f} | Test Accuracy : {}'.format(loss, test_acc))
print('예측한 Test Data 클래스 : ',1 if predictions[0]>=0.5 else 0)
6. 워드 임베딩(Word Embedding)
- 단순하게 Bag of Words의 인덱스로 정의된 토큰들에게 의미를 부여하는 방식
- 단어의 특징을 나타내기 위해 워드 임베딩을 함
- 즉, 임베딩은 토큰의 특징을 찾아내고, RNN은 전 토큰의 영향을 받으며 학습함.(임베딩 > RNN > 활성함수)
'데이터 사이언스 > 머신러닝' 카테고리의 다른 글
[Embedding] 단어 임베딩 (0) | 2021.12.21 |
---|---|
[NIPA AI 교육/응용] 09. 산업별 AI 혁신 사례 살펴보기 (0) | 2021.12.13 |
[NIPA AI 교육/응용] 07. 다양한 신경망 (0) | 2021.11.30 |
[NIPA AI 교육/응용] 06. 텐서플로우와 신경망 (0) | 2021.09.12 |
[NIPA AI 교육/응용] 05. 퍼셉트론 (0) | 2021.09.05 |