擅长:python、mysql、java
<p>你的代码错了。您正在这样做:</p>
<pre><code>outcome = kbest.get_support()
for i in range(0,len(sentences)):
if outcome[i]:
print (sentences[i])
</code></pre>
<p><code>kbest.get_support()</code>将返回数据特征的布尔数组,而不是句子。但是你在句子数组中比较(迭代)它们,这没有任何意义。你知道吗</p>
<p><code>SelectKBest</code>将根据传递给它的实际特性来决定保留或不保留哪些特性。这些特征以单词(而不是句子)的形式从<code>TfidfVectorizer</code>传递给它。你知道吗</p>
<p>另外,<code>SelectKBest</code>和<code>chi2</code>只会过滤掉(删除)那些发现独立于类的特性。所以剩下的特性对类有一些影响。但要想知道这种影响是积极的还是消极的(找到30个最好的词来区分这两个说话者),这还不够。为此,您将需要有一个分类模型,可以分配权重,这些词(特征)对应的类。你知道吗</p>
<p>有关更多详细信息,请参见下面的示例:</p>
<ul>
<li><a href="https://eli5.readthedocs.io/en/latest/tutorials/sklearn-text.html#baseline-model" rel="nofollow noreferrer">https://eli5.readthedocs.io/en/latest/tutorials/sklearn-text.html#baseline-model</a></li>
</ul>