Как загрузить данные формы:
X_train : (4864,6989)
X_test : (2085, 6989)
y_train : (4864, 270)
y_test : (2005, 270)
в память? У меня 16 ГБ ОЗУ.
Что я пробовал:
Загрузка данных кусками
extracted_df = pd.read_csv("ExtractedData.csv", chunksize=6953)
Использование виртуальной памяти (подкачки) путем входа в системные настройки
Еще большее уменьшение размера чанка.
Не слишком уверен, как использовать пакетный генератор.
Мои данные содержат 98 тыс. строк и 2 столбца. Даже после порции я не могу поместить данные в память. Как я могу перебрать X_train и y_train, чтобы сделать его еще меньше? Скажи 100 строк за итерацию? Возможно что-то вроде:
X_train, X_test, y_train, y_test = train_test_split(train_data, train_labels, shuffle=True, test_size=0.3,random_state=42)
for iterator in X_train.shape[0]:
estimator.fit(iterator, y_train)
ОБНОВЛЕНИЕ:
def pos_tag(docs):
nlp = spacy.load('en_core_web_sm')
tagged_sentences = []
for item in docs:
combined = []
tagged = nlp(item)
for token in tagged:
combined.append('_'.join([token.lemma_, token.pos_]))
combined_string = ' '.join(combined)
tagged_sentences.append(combined_string)
return tagged_sentences
def encode_data(docs):
tokenizer = text.Tokenizer(num_words=75000)
tokenizer.fit_on_texts(docs)
tokenized = tokenizer.texts_to_sequences(docs)
docs = sequence.pad_sequences(tokenized)
return docs
print("Tagging...")
docs = pos_tag(docs)
print("Creating features")
nn_list = []
vb_list = []
for sentence in docs:
nns = 0
vbs = 0
elements = sentence.split('_')
for item in elements:
if item == 'NOUN':
nns += 1
if item == 'VERB':
vbs += 1
nn_list.append(nns)
vb_list.append(vbs)
nn_list = np.array(nn_list).reshape(-1, 1)
vb_list = np.array(vb_list).reshape(-1, 1)
print("Encoding data...")
docs_encoded = encode_data(docs)
docs_encoded = np.array(docs_encoded)
docs_encoded = np.append(docs_encoded, nn_list, axis=1)
docs_encoded = np.append(docs_encoded, vb_list, axis=1)
labels = np.array(labels)
train_data = docs_encoded.astype(int)
encoder = LabelEncoder()
encoder.fit(labels)
encoded_labels = encoder.transform(labels)
train_labels = np_utils.to_categorical(encoded_labels)