如何使用Scikit交叉验证模块将数据(原始文本)分割成测试/训练集?

10

我有一个包含2500个原始文本的大语料库,希望使用scikit-learn库将它们分成测试集和训练集。在使用tf-idf表示时,如何使用scikit-learn库解决这个问题?是否可以提供分割原始文本为测试集和训练集的示例?

1个回答

21

假设您的数据是字符串列表,即

data = ["....", "...", ]

你可以使用train_test_split函数,将数据集分成训练集(80%)和测试集(20%),例如:

from sklearn.model_selection import train_test_split
train, test = train_test_split(data, test_size = 0.2)

不过,在你匆忙行动之前,请先阅读这些文档。2500并不算是“大型语料库”,你可能需要进行k折交叉验证,而不是单个保留集拆分。


我想在西班牙语中进行一些情感分析。将数据集拆分是正确的方法吗?我有一个包含2500个.txt文件(意见)的目录。 - anon
4
如我所说,2500并不是一个很大的数字,因此最好进行交叉验证来评估您的性能。此外,您可能需要先分离出一个“最终测试集”(例如500项),使用2000项来进行模型选择(使用交叉验证来选择最佳模型),一旦您确定了一个模型,就在最初保留的测试集上检查其性能。根据多种因素,您的方法可能会有所变化。 - KT.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接