下面的代码是一个分析海量语料库的例子。我希望将术语文档矩阵限制为1000个最频繁的unigram,但是将max-features参数更改为n仅返回第一个n unigram。有什么建议吗?
from sklearn.feature_extraction.text import TfidfVectorizer
import pandas as pd
corpus = ['Hi my name is Joe.', 'Hi my name is Donald.']
vectorizer = TfidfVectorizer(max_features=3)
X = vectorizer.fit_transform(corpus).todense()
df = pd.DataFrame(X, columns=vectorizer.get_feature_names())
df.to_csv('test.csv')发布于 2021-01-17 01:57:11
我假设这是您的示例中的一个问题,但是根据TfidfVectorizer的sklearn文档,max_features的说明如下所示
如果不是
None,则构建一个词汇表,该词汇表只考虑语料库中按词频排序的顶级max_features。
当存在相同频率的单词时,可能会考虑第一个n项,否则它应该返回正确的结果。如果它仍然不能工作,我强烈建议在sklearn存储库中打开一个bug报告。但是,您也可以手动构建词汇表(通过设置vocabulary选项,使用您自己对“频率”的解释:
vocabulary:映射或迭代,default=None
或者映射(例如,字典),其中关键字是项,而值是特征矩阵中的索引,或者是项上的可迭代。如果没有给定,则从输入文档中确定词汇表。
https://stackoverflow.com/questions/65752679
复制相似问题