首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将术语文档矩阵限制为最频繁的unigram

将术语文档矩阵限制为最频繁的unigram
EN

Stack Overflow用户
提问于 2021-01-17 01:43:26
回答 1查看 37关注 0票数 0

下面的代码是一个分析海量语料库的例子。我希望将术语文档矩阵限制为1000个最频繁的unigram,但是将max-features参数更改为n仅返回第一个n unigram。有什么建议吗?

代码语言:javascript
复制
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')
EN

回答 1

Stack Overflow用户

发布于 2021-01-17 01:57:11

我假设这是您的示例中的一个问题,但是根据TfidfVectorizer的sklearn文档,max_features的说明如下所示

如果不是None,则构建一个词汇表,该词汇表只考虑语料库中按词频排序的顶级max_features

当存在相同频率的单词时,可能会考虑第一个n项,否则它应该返回正确的结果。如果它仍然不能工作,我强烈建议在sklearn存储库中打开一个bug报告。但是,您也可以手动构建词汇表(通过设置vocabulary选项,使用您自己对“频率”的解释:

vocabulary:映射或迭代,default=None

或者映射(例如,字典),其中关键字是项,而值是特征矩阵中的索引,或者是项上的可迭代。如果没有给定,则从输入文档中确定词汇表。

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

https://stackoverflow.com/questions/65752679

复制
相关文章

相似问题

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