我在进行文本分类,可能会遇到训练数据中未包含的词汇,这些词汇应该被视为未知词汇。
有谁知道 scikit 的交叉验证是否会在训练数据中不存在的情况下将某个词视为未见过的词汇?
还是 scikit 会将所有词汇都视为特征,即使它不在训练集中?
回答:
如果你对包含特征提取器(例如 CountVectorizer 或 TfidfVectorizer)和分类器的管道进行交叉验证,那么一切都会自动正常工作:仅在测试集中出现的特征将被忽略(不会映射到向量表示中的维度)。
关于如何使用 vocabulary_
属性将特征名称映射到维度,有更多详细信息可以在文本特征提取文档中找到。
还有一个示例展示了如何对包含特征提取组件和分类器的管道进行交叉验证。
编辑:修正了 train / test 的拼写错误
编辑 2:修复了示例链接的错误。