def __init__(self, nlp, expressions):
self.nlp = nlp
self.all_expressions = expressions
self.num_features = nlp.vocab.vectors_length
self.categories = list(set([expression.intent().name for expression in expressions]))
intents = [expression.intent().name for expression in expressions]
intents_indices = [self.categories.index(intent) for intent in intents]
self.x = np.zeros(shape=(len(expressions), DOCUMENT_MAX_NUM_WORDS, self.num_features)).astype('float32')
self.__init_x(self.x, expressions)
self.y = np_utils.to_categorical(intents_indices)
self.model = Sequential()
self.model.add(Bidirectional(LSTM(int(DOCUMENT_MAX_NUM_WORDS * 1.5)),
input_shape=(DOCUMENT_MAX_NUM_WORDS, self.num_features)))
self.model.add(Dropout(0.3))
self.model.add(Dense(len(self.categories), activation='sigmoid'))
self.model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
评论列表
文章目录