首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras‘Tokenizer vs sklearn的CountVectorizer

Keras‘Tokenizer vs sklearn的CountVectorizer
EN

Stack Overflow用户
提问于 2020-01-23 15:00:13
回答 3查看 2.2K关注 0票数 3

我有一堆原始文件。

我不确定是使用keras.text_preprocessing.Tokenizer还是sklearn.feature_extraction.text.CountVectorizer.有什么建议吗?哪个更快?他们有什么重大的区别,我可能错过了吗?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2020-06-11 19:15:53

这取决于你的目标和你的机器。

如果您有几个CPU和/或GPU,那么keras可以利用它们并运行得更快。另一方面,scikit--学习方法有更多的选项,例如,它们可以找到ngram,而keras.text_preprocessing.Tokenizer有更少的参数。

票数 2
EN

Stack Overflow用户

发布于 2022-09-18 12:07:18

sklearn.CountVectorizer给出的值像0 1 0 1表示现在;0表示不存在。

keras.Tokenizer给出了单词的索引:0 3 2 4

“他是个好球员”,“他是个篮球运动员”]

他是个优秀的篮球运动员[11110]

代码语言:javascript
复制
             [1   2  0    1      1]]

托肯泽:{"OOV":1,"He":2,"is":3,"good":4,"player":5,“篮球”:6}

[2 3 4 5

2 3 6 5]

托卡器的工作类似于字典索引。

票数 1
EN

Stack Overflow用户

发布于 2021-02-23 08:57:53

现在答复有点晚了,但我在过去几个星期一直在研究这个问题。

简单地说,这两种方法都应该产生相同数量的词汇量(标记词)。因此,如果CountVectorizer从对等Keras生成不同数量的标记化单词(语料库词汇表),这也是成功的衡量标准。我写了几行代码来检查这两种方法之间的结果。基本上,我实现了这两种方法并比较了它们的结果。

作为一条经验法则,我建议你做同样的事情,看看如果他们产生同样的结果。请记住将CounterVectorizer保留在其默认参数上,并且不要使用min_dfmax_df参数筛选出不常见的或频繁的标记。所以做些类似的事情

代码语言:javascript
复制
def corpus_split(s):
    return s.split(' ')
c_vectorizer=CountVectorizer(tokenizer=corpus_split, max_df=1.0, min_df=1)

这将帮助您比较结果,因为在默认情况下会考虑文本的所有标记。

现在,关于时间效率的问题,我没有一个具体的洞察力给你。我的建议是,两种方法都试一试,自己看看。这两种方法的实施都可以在网上找到。

希望我能帮助你,也希望其他人注意到这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59881426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档