我有关于 TfidfVectorizer
的一些问题。
我不清楚这些词是如何被选出来的。我们可以给定一个最小支持度,但之后,是什么决定了哪些特征会被选中(例如,更高的支持度有更大的机会)?如果我们说max_features = 10000
,我们总是得到相同的结果吗?如果我们说max_features = 12000
,我们会得到相同的10000
个特征,再加上额外的2000
个吗?
此外,是否有一种方法可以扩展这些特征,比如说max_features=20000
的特征?我将其用于一些文本,但我知道一些词语肯定应该包括在内,还有一些表情符号“:-)”等。如何将它们添加到TfidfVectorizer
对象中,以便能够使用该对象进行fit
和predict
操作?
to_include = [":-)", ":-P"]
method = TfidfVectorizer(max_features=20000, ngram_range=(1, 3),
# I know stopwords, but how about include words?
stop_words=test.stoplist[:100],
# include words ??
analyzer='word',
min_df=5)
method.fit(traindata)
所需结果:
X = method.transform(traindata)
X
<Nx20002 sparse matrix of type '<class 'numpy.int64'>'
with 1135520 stored elements in Compressed Sparse Row format>],
where N is sample size
“:-)”
不是一个单词的事实?就我所看到的,这些将被过滤掉(存储元素为0)。 - PascalVKootenanalyzer
需要一个不同的函数,而不是查看任何与“token(ize)”相关的内容。 - PascalVKooten