我正在尝试在包含来自两个说话者的句子的数据库上使用 scikit-learn 函数 SelectKBest。我的目标是找到 30 个最好的单词,这些单词可以作为分隔这两个扬声器的特征,我想将它们打印到屏幕上。这些句子存储在一个列表中sentences[],我有关于每个句子谁是说话者的信息(存储在另一个列表中speakers[])我还需要为这 K 个最佳特征创建向量,并能够对这些向量使用分类器。当前代码:(句子包含每个说话者的10000个句子,已排序)speakers = [0] * 10000 + [1] * 10000vectorizer = TfidfVectorizer()vectors = vectorizer.fit_transform(sentences)kbest = SelectKBest(chi2, k=30).fit(vectors, speakers)outcome = kbest.get_support()for i in range(0,len(sentences)): if outcome[i]: print (sentences[i])我不确定它是否找到了正确的单词或选择了整个句子,如果找到了,我也不太确定如何打印它找到的单词。(目前,它显然会打印整个句子,因为我正在直接打印一个句子,该句子与 SelectKBest 找到的内容具有匹配的索引)。我可能需要在特征向量的第 i 个位置找到这个词,但我不知道该怎么做。
2 回答

沧海一幻觉
TA贡献1824条经验 获得超5个赞
你可以得到由给出的前 k 个词 SelectKBest
print([vectorizer.get_feature_names()[idx] for idx,flag in enumerate(outcome) if flag])
添加回答
举报
0/150
提交
取消