删除词汇表TF-IDF中单个出现的单词

rgl*_*enn 4 python tf-idf scikit-learn

我试图删除在我的词汇中出现一次的单词以减少我的词汇量.我正在使用sklearn TfidfVectorizer(),然后在我的数据框上使用fit_transform函数.

tfidf = TfidfVectorizer()  
tfs = tfidf.fit_transform(df['original_post'].values.astype('U')) 
Run Code Online (Sandbox Code Playgroud)

我首先想到的是tfidf矢量化器中的预处理器字段,或者在机器学习之前使用预处理包.

任何进一步实施的提示或链接?

Shm*_*ikA 9

你正在寻找min_dfparam(最低频率),从scikit-learn的文档TfidfVectorizer:

min_df:float在范围[0.0,1.0]或int中,默认值= 1

构建词汇表时,忽略文档频率严格低于给定阈值的术语.该值在文献中也称为截止值.如果是float,则参数表示文档的比例,整数绝对计数.如果词汇表不是None,则忽略此参数.

# remove words occuring less than 5 times
tfidf = TfidfVectorizer(min_df=5)
Run Code Online (Sandbox Code Playgroud)

你也可以删除常用词:

# remove words occuring in more than half the documents
tfidf = TfidfVectorizer(max_df=0.5)
Run Code Online (Sandbox Code Playgroud)

你也可以删除这样的停用词:

tfidf = TfidfVectorizer(stop_words='english')
Run Code Online (Sandbox Code Playgroud)