You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sklearn CountVectorizer如何保留大写字母?自定义分词器失效求助

解决CountVectorizer自动转小写的问题

嘿,我太懂你踩的这个坑了!哪怕你写了自定义分词器只做文本拆分,CountVectorizer还是会悄悄把大写字母转成小写——这是因为它默认在分词之前就执行了小写转换操作,你的自定义分词器拿到的其实已经是转好小写的文本了,自然输出的词汇都是小写的。

问题根源

CountVectorizer有个默认参数lowercase=True,这个参数会优先于你的自定义分词器执行,把所有输入文本统一转换成小写。所以不管你的分词器逻辑是什么,第一步就被悄悄修改了文本大小写。

解决方案

只需要在初始化CountVectorizer的时候,把lowercase参数设为False就行,这样就会完整保留原始文本的大小写了。修改后的代码如下:

from sklearn.feature_extraction.text import CountVectorizer

co = dict()
def tokenizeManu(txt):
    return txt.split()

def corpDict(x):
    print('1: ', x)
    # 关键:添加lowercase=False参数关闭自动小写转换
    count = CountVectorizer(ngram_range=(1, 1), tokenizer=tokenizeManu, lowercase=False)
    countFit = count.fit_transform(x)
    # 注意:sklearn新版本推荐用get_feature_names_out替代旧的get_feature_names
    vocab = count.get_feature_names_out()
    print("保留大写的词汇表:", vocab)

额外提示

如果之后你需要自定义更复杂的预处理逻辑,还可以通过preprocessor参数覆盖默认的预处理行为,但这次只需要关闭lowercase就足够解决你的问题啦。

内容的提问来源于stack exchange,提问作者Minions

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:56:24