Note
다층 퍼셉트론(MLP)을 사용하여 텍스트 분류 본문
728x90
# 패키지 로딩
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout
# 모델 정의
def fit_and_evaluate(X_train, y_train, X_test, y_test):
model = Sequential()
model.add(Dense(256, input_shape=(vocab_size,), activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, y_train, batch_size=128, epochs=5, verbose=1, validation_split=0.1)
score = model.evaluate(X_test, y_test, batch_size=128, verbose=0)
return score[1]
modes = ['binary', 'count', 'tfidf', 'freq']
for mode in modes: # 4개의 모드에 대해서 각각 아래의 작업을 반복한다.
X_train, X_test, _ = prepare_data(train_email, test_email, mode) # 모드에 따라 데이터 전처리
score = fit_and_evaluate(X_train, y_train, X_test, y_test) # 모델 훈련 및 평가.
print(mode+' 모드의 테스트 정확도:', score)
'Deep Learning > NLP' 카테고리의 다른 글
PyKoSpacing (0) | 2022.05.11 |
---|---|
FastText (패스트텍스트) (0) | 2022.05.08 |
20개 뉴스 그룹 데이터 (0) | 2022.05.06 |
케라스의 texts_to_matrix() (0) | 2022.05.05 |
LSA & LDA (0) | 2021.09.06 |
Comments