💻 源码
from sklearn.feature_extraction.text import TfidfVectorizer


# 测试sklearn的tf-idf
def dm01():
    # 情况一:英文文本语料
    corpus = [
        'I love you.',
        'You love him!',
        'He is a gay!'
    ]
    # 情况二:中文文本语料(字)
    # corpus = [
    #     '我 爱 你.',
    #     '你 爱 他!',
    #     '他 是 同 性 恋!'
    # ]
    # 情况三:中文文本语料(词语)
    # corpus = [
    #     '我 爱 你.',
    #     '你 爱 他!',
    #     '他 是 同性恋!'
    # ]
    # 创建TF-IDF对象
    # token_pattern:正则表达式,用于分词
    # (?u):启用Unicode模式,能处理非ASCII字符字符,比如中文等
    # \b:单词边界
    # \w:匹配一个字符(大小写字母,数字,下划线)
    # \w+:匹配一个或者多个字符
    vectorizer = TfidfVectorizer(token_pattern=r'(?u)\b\w+\b')
    # 对文本进行tf-idf处理
    X = vectorizer.fit_transform(corpus)
    # 查看处理后的结果,即:特征词(词表)
    features = vectorizer.get_feature_names_out()
    print("features-->", features)
    # 稀疏矩阵
    print("X-->", X)
    # 稠密矩阵
    print("X-->", X.toarray())



# 测试sklearn的tf-idf
def dm02():
    corpus = ['苹果 手机 好用', '华为 手机 耐用']
    # stopwords:停用词,也就是不用的词语(没用)
    vectorizer = TfidfVectorizer(token_pattern=r'(?u)\b\w\w+\b', stop_words=['华为'])
    # 对文本进行tf-idf处理
    X = vectorizer.fit_transform(corpus)
    # 查看处理后的结果,即:特征词(词表)
    features = vectorizer.get_feature_names_out()
    print("features-->", features)
    # 稠密矩阵
    print("X-->", X.toarray())


if __name__ == '__main__':
    # dm01()
    dm02()