我试图处理文本,其中有很多重复。我之前在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
我已经完成了去大写和删除词,现在我只想删除最常用的词。我也想存储这些信息,因为新的输入可能会出现,并且我想从我在原始语料库中发现的新输入中删除相同的常用词
答案 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()
我想你会找到你需要的一切。