什么是 TF-IDF?

TF-IDF(Term Frequency-Inverse Document Frequency)是一种经典的文本特征提取方法,通过计算词语在文档中的频率和在整个语料库中的逆频率,衡量词语的重要性。

tf-idf_原理

实现步骤 ✅

  1. 文本预处理

    • 分词(中文需分词处理,英文可直接拆分)
    • 去除停用词(如“的”“是”等)
    • 词干提取/词形还原(如英文的 "running" → "run")
  2. 构建词频矩阵
    使用 CountVectorizer 统计词语出现次数

    from sklearn.feature_extraction.text import CountVectorizer
    vectorizer = CountVectorizer()
    X = vectorizer.fit_transform(texts)
    
  3. 计算 IDF 值
    通过 TfidfTransformer 转换词频矩阵为 TF-IDF 值

    from sklearn.feature_extraction.text import TfidfTransformer
    tfidf = TfidfTransformer()
    X_tfidf = tfidf.fit_transform(X)
    
  4. 模型训练与预测
    结合分类器(如朴素贝叶斯)进行训练

    from sklearn.naive_bayes import MultinomialNB
    model = MultinomialNB()
    model.fit(X_tfidf, labels)
    

应用场景 🌐

  • 新闻分类
  • 情感分析
  • 邮件过滤
  • 搜索引擎关键词排名

扩展学习 📚

小贴士 💡

  • 避免在训练集和测试集中使用相同分词器
  • IDF 值越高的词语越具区分性
  • 需结合具体业务场景调整参数
文本分类流程