Можно ли реализовать LSTM в наборе данных HPO (онтология человеческого фенотипа) - PullRequest
0 голосов
/ 05 июня 2019

Я строю проект, который обнаруживает тексты фенотипа по входному медицинскому отчету, используя LSTM (даже RNN будет работать).Я обычно работал с некоторым набором текстовых данных.Просто нет правильного указания, как использовать набор данных HPO для обучения моей модели.Ссылка на набор данных HPO (https://raw.githubusercontent.com/obophenotype/human-phenotype-ontology/master/hp.obo). Образец данных:

HP:0000002  abnormality of body height
HP:0000003  multicystic renal dysplasia
HP:0000003  multicystic kidney dysplasia
HP:0000003  multicystic dysplastic kidney
HP:0000003  multicystic kidneys
HP:0000008  abnormality of female internal genitalia
HP:0000009  functional abnormality of the bladder
HP:0000009  poor bladder function
HP:0000010  urinary tract infections recurrent
HP:0000010  recurrent utis
HP:0000010  recurrent urinary tract infections
HP:0000010  frequent urinary tract infections

Я работал над анализом настроений в твитах с уже имеющим набор данных с открытым исходным кодом. Ниже приведен код очень плохой реализации LSTM в HPO.

text_words = df1['Text']
max_words = 20000
tokenizer = Tokenizer(num_words=max_words, oov_token='UNK')
tokenizer.fit_on_texts(list(text_words))

tokenizer.word_index = {e:i for e,i in tokenizer.word_index.items() if i <= max_words} # <= because tokenizer is 1 indexed
tokenizer.word_index[tokenizer.oov_token] = max_words + 1

maxlen = 100
X = pad_sequences(tokenized_train, maxlen = maxlen)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)

model = Sequential()
model.add(Embedding(max_words, output_dim=128, mask_zero=True))
model.add(LSTM(60))
model.add(Dropout(0.1))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy'])

output = model.fit(X_train, y_train, batch_size=128, epochs=5, validation_split=0.2)

Точность, которую я получил, очень низкая. Ожидаемое решение - просто знать, как работать с таким типом данных, используя LSTM или RNN.

...