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