【发布时间】:2020-01-01 17:40:06
【问题描述】:
我正在使用这篇优秀的文章来学习机器学习。
https://stackabuse.com/python-for-nlp-multi-label-text-classification-with-keras/
作者将X和y数据拆分后进行了token化。
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.20, random_state=42
)
tokenizer = Tokenizer(num_words=5000)
tokenizer.fit_on_texts(X_train)
X_train = tokenizer.texts_to_sequences(X_train)
X_test = tokenizer.texts_to_sequences(X_test)
vocab_size = len(tokenizer.word_index) + 1
maxlen = 200
X_train = pad_sequences(X_train, padding="post", maxlen=maxlen)
X_test = pad_sequences(X_test, padding="post", maxlen=maxlen)
如果我在使用 train_test_split 类之前对其进行标记,我可以节省几行代码。
tokenizer = Tokenizer(num_words=5000)
tokenizer.fit_on_texts(X)
X_t = tokenizer.texts_to_sequences(X)
vocab_size = len(tokenizer.word_index) + 1
maxlen = 200
X = pad_sequences(X_t, padding="post", maxlen=maxlen)
我只是想确认我的方法是正确的,我不希望脚本后面有任何意外。
【问题讨论】:
-
不是编程问题,因此这里可以说是题外话;更适合Cross Validated
-
ML 预处理的简单黄金法则是在模型拟合的整个流程中将您的测试数据视为不可用。请参阅here 的讨论(尽管上下文略有不同)。
标签: keras scikit-learn nlp tokenize train-test-split