【发布时间】:2019-05-10 18:49:41
【问题描述】:
我正在尝试在包含来自两个说话者的句子的数据库上使用 scikit-learn 函数 SelectKBest。 我的目标是找到 30 个可以作为区分这两个扬声器的特征的最佳单词,我想将它们打印到屏幕上。
句子存储在列表sentences[] 中,我知道每个句子的说话者是谁(存储在另一个列表speakers[] 中)
我还需要为这 K 个最佳特征创建向量,并能够在这些向量上使用分类器。
当前代码:(sentences 包含每个说话者 10000 个句子,已排序)
speakers = [0] * 10000 + [1] * 10000
vectorizer = 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 个位置找到单词,但我不知道该怎么做。
【问题讨论】:
-
如果您的问题包含一个最小、完整和可验证的示例会更好stackoverflow.com/help/mcve
-
谢谢@HenriqueAndrade,我已经添加了我当前代码的示例。
标签: python scikit-learn