gpt4 book ai didi

python - CountVectorizer 给出错误的单词计数?

转载 作者:行者123 更新时间:2023-11-28 21:04:34 26 4
gpt4 key购买 nike

假设我的文本文件包含以下文本:

The quick brown fox jumped over the lazy dogs. A stitch in time saves nine. The quick brown stitch jumped over the lazy time. The fox in time saves a dog.

我想使用 sk-learn 的 CountVectorizer 来获取文件中所有单词的单词计数。 (我知道还有其他方法可以做到这一点,但出于某些原因我想使用 CountVectorizer。)这是我的代码:

from nltk.corpus import stopwords
from sklearn.feature_extraction.text import CountVectorizer

text = input('Please enter the filepath for the text: ')
text = open(text, 'r', encoding = 'utf-8')
tokens = CountVectorizer(analyzer = 'word', stop_words = 'english')


X = tokens.fit_transform(text)
dictionary = tokens.vocabulary_

除了当我调用 dictionary 时,它给了我错误的计数:

>>> dictionary
{'time': 9, 'dog': 1, 'stitch': 8, 'quick': 6, 'lazy': 5, 'brown': 0, 'saves': 7, 'jumped': 4, 'fox': 3, 'dogs': 2}

任何人都可以就我在这里犯的(无疑是明显的)错误提出建议吗?

最佳答案

vocabulary_ 是术语到文档术语矩阵中索引的字典/映射,而不是计数:

vocabulary_ : A mapping of terms to feature indices.

X 是实际为您提供特征索引矩阵和相应计数的矩阵。

>>> for i in X:
... print(i)
...
(0, 1) 1
(0, 7) 2
(0, 9) 3
(0, 8) 2
(0, 2) 1
(0, 5) 2
(0, 4) 2
(0, 3) 2
(0, 0) 2
(0, 6) 2

例如9 -> 'time' 的计数为 3。

关于python - CountVectorizer 给出错误的单词计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45104936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com