TfidfVectorizer对已收录特征词transform返回空/全零数组问题排查
问题根因
- 问题出自自定义
analyzer逻辑与transform阶段输入格式不匹配:你指定的analyzer=lambda x: x会直接返回输入的样本值。fit阶段输入的data['clean_text']每一行都是预分词的列表,向量化器可以正确提取列表内的单词作为特征,因此sad被成功加入特征列表。 - transform阶段你传入的输入为
["sad"],单个样本是字符串而非预分词列表,lambda x: x会直接迭代字符串本身,拆分为s、a、d三个单字符token进行特征匹配,你的特征列表中不存在这三个单字符特征,因此返回全零数组。
修复方案
- 方案一:transform时传入与fit阶段格式一致的预分词列表即可,示例:
vectorizer.transform([["sad"]]) - 方案二:如果后续输入均为字符串格式文本,可调整analyzer逻辑,加入分词规则,保证输入字符串时可正确拆分出单词单元。
内容的提问来源于stack exchange,提问作者Lasven Loke
相关产品推荐
相关产品推荐

