首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >count_vectorizer.vocabulary_.items()和count_vectorizer.vocabulary_不一致返回数

count_vectorizer.vocabulary_.items()和count_vectorizer.vocabulary_不一致返回数
EN

Data Science用户
提问于 2020-03-26 19:18:41
回答 1查看 769关注 0票数 0
代码语言:javascript
复制
# create a count vectorizer object
count_vectorizer = CountVectorizer()

# fit the count vectorizer using the text data
count_vectorizer.fit(data['text'])

# collect the vocabulary items used in the vectorizer
dictionary = count_vectorizer.vocabulary_.items()

据我所知,在count_vectorizer适合data['text']之后,它会生成一系列特性。在我的例子中,它生成了25,257特性,当我调用count_vectorizer.vocabulary_时,这些特性被映射为dict数据类型。它仍然是25,257元组。它的意思是,它使用了所有的功能。

问题是,当我调用count_vectorizer.vocabulary_.items()时,它以dict_items的形式返回15,142元组。为什么这里的人数减少了?难道不应该使用所有的特性来制作dictionary吗?

下面是我要说的长度:

代码语言:javascript
复制
len(data['text'])  #19579
len(count_vectorizer.get_feature_names())  #25257 items
len(count_vectorizer.vocabulary_)  #25257 items
len(dictionary) #15142 items (??????)
EN

回答 1

Data Science用户

回答已采纳

发布于 2020-03-26 21:56:12

对于未来的读者:正如Ben在评论中所写的那样,实际上真的很难让len(my_dict) != len(my_dict.items())。当发生这种行为时,进行一些例行检查总是一种很好的做法:

  • 从每个变量中清除您的环境,甚至更好地重新启动内核,然后再运行代码。
  • 检查您的代码中是否有相同名称的变量,确保您没有覆盖内容,也很容易用其他导入的库函数的同名定义函数。
  • 尝试不同数据集上的代码,以确保错误不是由于数据的某些外部问题造成的。

如果上述任何检查都不能解决这个问题,那么您就可以开始考虑一个bug、一个库的损坏安装或其他一些嵌套的问题。

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

https://datascience.stackexchange.com/questions/70288

复制
相关文章

相似问题

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