zoukankan      html  css  js  c++  java
  • sklearn 下 CountVectorizerTfidfVectorizerTfidfTransformer 函数详解

    参考链接:

    https://www.jianshu.com/p/caa4b923117c

    https://blog.csdn.net/papaaa/article/details/78821631

    1.CountVectorizer

    CountVectorizer会将文本中的词语转换为词频矩阵,它通过fit_transform函数计算各个词语出现的次数,通过get_feature_names()可获得所有文本的关键词,通过toarray()可看到词频矩阵的结果。

    代码如下:

    from sklearn.feature_extraction.text import CountVectorizer
    
    texts=["dog cat fish","dog cat cat","fish bird", 'bird']
    cv = CountVectorizer()
    cv_fit=cv.fit_transform(texts)
    
    print("文本的关键词:
    ", cv.get_feature_names())
    print("词频矩阵:
    ", cv_fit.toarray())
    print("cv_fit:
    ", cv_fit)

    返回的结果为稀疏矩阵:

    2.TfidfTransformer

    TfidfTransformer用于统计vectorizer中每个词语的TF-IDF值。代码如下:

    from sklearn.feature_extraction.text import CountVectorizer
    from sklearn.feature_extraction.text import TfidfTransformer
    texts=["dog cat fish","dog cat cat","dog fish", 'dog pig pig bird']
    cv = CountVectorizer()
    cv_fit=cv.fit_transform(texts)
    
    transformer = TfidfTransformer()
    tfidf = transformer.fit_transform(cv_fit)
    print (tfidf.toarray())

    输出结果为:

    3.TfidfTransformer 

    将原始文档的集合转化为tf-idf特性的矩阵,相当于CountVectorizer配合TfidfTransformer使用的效果。
    即TfidfVectorizer类将CountVectorizer和TfidfTransformer类封装在一起。

    代码如下:

    from sklearn.feature_extraction.text import TfidfVectorizer
    texts=["dog cat fish","dog cat cat","dog fish", 'dog pig pig bird']
    tv = TfidfVectorizer(max_features=100,
                         ngram_range=(1, 1),
                         stop_words='english')
    X_description = tv.fit_transform(texts)
    print(X_description.toarray())

    结果为:

    可观察到输出的结果和上面的结果是一毛一样的。

    ngram_range=(1, 1)也可以改为(2,3),这就是2-gram.

    stop_words暂时只支持英文,即”english”

  • 相关阅读:
    此心本净四——圣言录·下·平等无分别
    此心本净三——圣言录·中·空性
    一饮一啄,自成因果
    心为何而动······
    此心漂泊
    喜欢看心的幻化
    (js描述的)数据结构[集合结构](6)
    (js描述的)数据结构[双向链表](5)
    (js描述的)数据结构[链表](4)
    微信小程序(黑马优购)完成!!{10天}
  • 原文地址:https://www.cnblogs.com/171207xiaohutu/p/10083545.html
Copyright © 2011-2022 走看看