什么是 TF-IDF?
TF-IDF(Term Frequency-Inverse Document Frequency)是一种经典的文本特征提取方法,通过计算词语在文档中的频率和在整个语料库中的逆频率,衡量词语的重要性。
实现步骤 ✅
文本预处理
- 分词(中文需分词处理,英文可直接拆分)
- 去除停用词(如“的”“是”等)
- 词干提取/词形还原(如英文的 "running" → "run")
构建词频矩阵
使用CountVectorizer
统计词语出现次数from sklearn.feature_extraction.text import CountVectorizer vectorizer = CountVectorizer() X = vectorizer.fit_transform(texts)
计算 IDF 值
通过TfidfTransformer
转换词频矩阵为 TF-IDF 值from sklearn.feature_extraction.text import TfidfTransformer tfidf = TfidfTransformer() X_tfidf = tfidf.fit_transform(X)
模型训练与预测
结合分类器(如朴素贝叶斯)进行训练from sklearn.naive_bayes import MultinomialNB model = MultinomialNB() model.fit(X_tfidf, labels)
应用场景 🌐
- 新闻分类
- 情感分析
- 邮件过滤
- 搜索引擎关键词排名
扩展学习 📚
小贴士 💡
- 避免在训练集和测试集中使用相同分词器
- IDF 值越高的词语越具区分性
- 需结合具体业务场景调整参数