sklearn 下 CountVectorizer\TfidfVectorizer\TfidfTransformer 函数详解


参考链接:

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("文本的关键词:\n", cv.get_feature_names())
print("词频矩阵:\n", cv_fit.toarray())
print("cv_fit:\n", 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”

优质内容筛选与推荐>>
1、ubuntu下安装使用vmware、kvm、xen
2、css属性 background
3、【js】sort()
4、Oracle常用Script
5、CSS hack浏览器兼容一览表


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn