Note

다층 퍼셉트론(MLP)을 사용하여 텍스트 분류 본문

Deep Learning/NLP

다층 퍼셉트론(MLP)을 사용하여 텍스트 분류

알 수 없는 사용자 2022. 5. 7. 00:00
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