gpt4 book ai didi

Python TfidfVectorizer 抛出 : empty vocabulary; perhaps the documents only contain stop words"

转载 作者:太空狗 更新时间:2023-10-29 18:18:43 26 4
gpt4 key购买 nike

我正在尝试使用 Python 的 Tfidf 来转换文本语料库。但是,当我尝试对其进行 fit_transform 时,出现值错误 ValueError: empty vocabulary;也许文档只包含停用词。

In [69]: TfidfVectorizer().fit_transform(smallcorp)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-69-ac16344f3129> in <module>()
----> 1 TfidfVectorizer().fit_transform(smallcorp)

/Users/maxsong/anaconda/lib/python2.7/site-packages/sklearn/feature_extraction/text.pyc in fit_transform(self, raw_documents, y)
1217 vectors : array, [n_samples, n_features]
1218 """
-> 1219 X = super(TfidfVectorizer, self).fit_transform(raw_documents)
1220 self._tfidf.fit(X)
1221 # X is already a transformed view of raw_documents so

/Users/maxsong/anaconda/lib/python2.7/site-packages/sklearn/feature_extraction/text.pyc in fit_transform(self, raw_documents, y)
778 max_features = self.max_features
779
--> 780 vocabulary, X = self._count_vocab(raw_documents, self.fixed_vocabulary)
781 X = X.tocsc()
782

/Users/maxsong/anaconda/lib/python2.7/site-packages/sklearn/feature_extraction/text.pyc in _count_vocab(self, raw_documents, fixed_vocab)
725 vocabulary = dict(vocabulary)
726 if not vocabulary:
--> 727 raise ValueError("empty vocabulary; perhaps the documents only"
728 " contain stop words")
729

ValueError: empty vocabulary; perhaps the documents only contain stop words

我在这里通读了 SO 问题:Problems using a custom vocabulary for TfidfVectorizer scikit-learn并尝试了 ogrisel 的建议,即使用 TfidfVectorizer(**params).build_analyzer()(dataset2) 检查文本分析步骤的结果,这似乎按预期工作:下面的代码片段:

In [68]: TfidfVectorizer().build_analyzer()(smallcorp)
Out[68]:
[u'due',
u'to',
u'lack',
u'of',
u'personal',
u'biggest',
u'education',
u'and',
u'husband',
u'to',

我还有什么地方做错了吗?我正在喂它的语料库只是一个巨大的长字符串,中间有换行符。

谢谢!

最佳答案

我猜这是因为你只有一根绳子。尝试将其拆分为字符串列表,例如:

In [51]: smallcorp
Out[51]: 'Ah! Now I have done Philosophy,\nI have finished Law and Medicine,\nAnd sadly even Theology:\nTaken fierce pains, from end to end.\nNow here I am, a fool for sure!\nNo wiser than I was before:'

In [52]: tf = TfidfVectorizer()

In [53]: tf.fit_transform(smallcorp.split('\n'))
Out[53]:
<6x28 sparse matrix of type '<type 'numpy.float64'>'
with 31 stored elements in Compressed Sparse Row format>

关于Python TfidfVectorizer 抛出 : empty vocabulary; perhaps the documents only contain stop words",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20928769/

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