Python 如何在新文本上测试经过训练的NMF主题模型

Python 如何在新文本上测试经过训练的NMF主题模型,python,scikit-learn,nlp,topic-modeling,nmf,Python,Scikit Learn,Nlp,Topic Modeling,Nmf,我已经用python创建了一个NMF主题模型,其代码片段如下: def select_vectorizer(req_ngram_range=[1,2]): ngram_lengths = req_ngram_range vectorizer = TfidfVectorizer(analyzer='word', ngram_range=(ngram_lengths), stop_words='english', min_df=2) #print("User specifie

我已经用python创建了一个NMF主题模型,其代码片段如下:

def select_vectorizer(req_ngram_range=[1,2]):
    ngram_lengths = req_ngram_range
    vectorizer = TfidfVectorizer(analyzer='word', ngram_range=(ngram_lengths), stop_words='english', min_df=2)
    #print("User specified custom stopwords: {} ...".format(str(custom_stopwords)[1:-1]))
    return vectorizer

vectorizer = select_vectorizer([2,5])
X = vectorizer.fit_transform(new_review_list)


clf = decomposition.NMF(n_components=20, random_state=3, alpha = .1).fit(X)
vocab = vectorizer.get_feature_names()
print_top_words(clf, vocab, num_top_words)
创建了20个主题,如下所示:

Topic #0:
[u'blocks available', u'delivery blocks available', u'notifications blocks', u'notifications blocks available', u'new blocks', u'know blocks available', u'new blocks available', u'know blocks', u'open blocks available', u'available work', u'zero blocks', u'like blocks', u'notification blocks', u'day blocks', u'slow blocks', u'10 blocks', u'option set', u'logged 10', u'notification blocks available', u'day blocks available']
Topic #1:
[u'amazon flex', u'working amazon', u'amazon flex app', u'working amazon flex', u'hello amazon', u'hello amazon flex', u'flex delivery', u'amazon flex delivery', u'flex team', u'amazon flex team', u'work amazon', u'amazon flex support', u'flex support', u'work amazon flex', u'deliver amazon', u'hi amazon flex', u'hi amazon', u'deliver amazon flex', u'signed amazon', u'love amazon'] and so on..

现在我想在新的文本上测试一下,这样它就可以根据这些类别对这些文本进行分类。如何做到这一点?

我只是想澄清一下,这是关于scikit中的NMF的学习,对吗?如果是这样,请添加scikit学习标签,并可能取出tf IDF。有人能回答这个问题吗!!使用NMF类中的
transform
方法,在文档中…@ncfirth您能再解释一下吗?我想在新文本上运行合适的NMF模型,以便它告诉我新文本属于哪个主题(顶部主题)。