simplysameer333 / MachineLearning

1 stars 1 forks source link

News_class #12

Closed simplysameer333 closed 5 years ago

simplysameer333 commented 5 years ago

import keras from keras.datasets import reuters from keras.preprocessing.text import Tokenizer from keras.models import Sequential from keras.layers import Dense, Dropout, Activation

(x_train, y_train), (x_test, y_test) = reuters.load_data(num_words=None, test_split=0.2) word_index = reuters.get_word_index(path="reuters_word_index.json")

print('# of Training Samples: {}'.format(len(x_train))) print('# of Test Samples: {}'.format(len(x_test)))

num_classes = max(y_train) + 1 print('# of Classes: {}'.format(num_classes))

of Training Samples: 8982

of Test Samples: 2246

of Classes: 46

index_to_word = {} for key, value in word_index.items(): index_to_word[value] = key

print(' '.join([index_to_word[x] for x in x_train[0]])) print(y_train[0])

max_words = 10000

tokenizer = Tokenizer(num_words=max_words) x_train = tokenizer.sequences_to_matrix(x_train, mode='binary') x_test = tokenizer.sequences_to_matrix(x_test, mode='binary')

y_train = keras.utils.to_categorical(y_train, num_classes) y_test = keras.utils.to_categorical(y_test, num_classes) print(x_train[0]) print(len(x_train[0]))

print(y_train[0]) print(len(y_train[0]))

model = Sequential() model.add(Dense(512, input_shape=(max_words,))) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(num_classes)) model.add(Activation('softmax'))

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) print(model.metrics_names)

batch_size = 32 epochs = 3

history = model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1, validation_split=0.1) score = model.evaluate(x_test, y_test, batch_size=batch_size, verbose=1) print('Test loss:', score[0]) print('Test accuracy:', score[1])

https://towardsdatascience.com/text-classification-in-keras-part-1-a-simple-reuters-news-classifier-9558d34d01d3