如何使用sci-kit学习TfidfVectorizer忽略出现超过50%的单词?

时间:2018-09-17 12:21:31

标签: python scikit-learn

我正在尝试在数据框的某一列中使用词袋算法,该算法由6723行组成。但是,当我将tf-idf应用于该列时,返回的词汇太大,更精确的8357个单词。

# ...

statements = X_train[:, 0]

tf_idf = TfidfVectorizer()
tf_idf_vectorizer = tf_idf.fit_transform(statements).toarray()
vocabulary = tf_idf.vocabulary_

print(len(vocabulary)) # 8357
print(tf_idf.stop_words_) # set()
print(len(tf_idf.stop_words_)) # 0

阅读文档后,我发现我们可以添加max_df参数,该参数应该忽略频率高于给定阈值的单词,因此我这样做是为了忽略频率高于50%的单词:

#...

tf_idf = TfidfVectorizer(max_df=0.5)

print(len(vocabulary)) # 8356
print(tf_idf.stop_words_) # {'the'}
print(len(tf_idf.stop_words_)) # 1

因此,正如您所看到的那样,结果不是很好,我认为我做错了,因为还有其他一些高频词没有被删除,例如:to,in,of,等。我做错什么了吗?我该如何解决?

0 个答案:

没有答案