[英]how to choose parameters in TfidfVectorizer in sklearn during unsupervised clustering
TfidfVectorizer提供了一种将文本编码和转换为向量的简便方法。
我的问题是如何为min_df,max_features,smooth_idf,sublinear_tf等参数选择合适的值?
更新:
也许我应该在这个问题上提供更多细节:
如果我要对大量文本进行无监督聚类怎么办。 而且我没有任何文本标签,也不知道可能有多少个集群(这实际上是我要弄清楚的)
例如,如果您在分类任务中使用这些向量,则可以更改这些参数(当然还有分类器的参数),并查看哪些值可为您提供最佳性能。
您可以使用GridSearchCV和Pipeline对象在sklearn中轻松完成此操作
pipeline = Pipeline([
('tfidf', TfidfVectorizer(stop_words=stop_words)),
('clf', OneVsRestClassifier(MultinomialNB(
fit_prior=True, class_prior=None))),
])
parameters = {
'tfidf__max_df': (0.25, 0.5, 0.75),
'tfidf__ngram_range': [(1, 1), (1, 2), (1, 3)],
'clf__estimator__alpha': (1e-2, 1e-3)
}
grid_search_tune = GridSearchCV(pipeline, parameters, cv=2, n_jobs=2, verbose=3)
grid_search_tune.fit(train_x, train_y)
print("Best parameters set:")
print grid_search_tune.best_estimator_.steps
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.