从数据集中删除最常用的单词

时间:2017-11-05 10:13:46

标签: python text scikit-learn nltk doc2vec

我试图处理文本,其中有很多重复。我之前在SKLearn中使用过tf-idf矢量化器,它有一个参数max_df=0.5。这意味着如果单词存在于输入的50%以上,则它不会使用它。我想知道Python中是否有类似的功能,或者Doc2Vec或NLTK:我想删除50%以上数据集中存在的单词,而不进行矢量化它们。

例如,我想通过以下数据框制作:

0 | This is new: A puppy ate cheese! See?
1 | This is new: A cat was found. See?
2 | This is new: Problems arise. See?

这样的输出:

0 | puppy ate cheese
1 | cat was found
2 | problems arise

我已经完成了去大写和删除词,现在我只想删除最常用的词。我也想存储这些信息,因为新的输入可能会出现,并且我想从我在原始语料库中发现的新输入中删除相同的常用词

1 个答案:

答案 0 :(得分:1)

你可以做到

import nltk 
allWords = nltk.tokenize.word_tokenize(text)
allWordDist = nltk.FreqDist(w.lower() for w in allWords) 

接着是

mostCommon= allWordDist.most_common(10).keys()

在预处理中?

如果您查看

allWordDist .items()

我想你会找到你需要的一切。