擅长:python、mysql、java
<p>你需要做一点歌舞来获得矩阵作为numpy数组,但这应该符合你的要求:</p>
<pre><code>feature_array = np.array(tfidf.get_feature_names())
tfidf_sorting = np.argsort(response.toarray()).flatten()[::-1]
n = 3
top_n = feature_array[tfidf_sorting][:n]
</code></pre>
<p>这给了我:</p>
<pre><code>array([u'fruit', u'travellers', u'jupiter'],
dtype='<U13')
</code></pre>
<p><code>argsort</code>调用是非常有用的,<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.argsort.html" rel="noreferrer">here are the docs for it</a>。我们必须做<code>[::-1]</code>,因为<code>argsort</code>只支持从小到大的排序。我们调用<code>flatten</code>来将维数减少到1d,这样排序后的索引就可以用于索引1d特征数组。请注意,包含对<code>flatten</code>的调用只有在一次测试一个文档时才起作用。</p>
<p>另外,在另一个问题上,你的意思是<code>tfs = tfidf.fit_transform(t.split("\n\n"))</code>?否则,多行字符串中的每个术语都将被视为“文档”。相反,使用<code>\n\n</code>意味着我们实际上在查看4个文档(每行一个文档),这在考虑tfidf时更有意义。</p>