Python scikit-learn 从说话者的句子中选择最佳单词

我正在尝试在包含来自两个说话者的句子的数据库上使用 scikit-learn 函数 SelectKBest。我的目标是找到 30 个最好的单词,这些单词可以作为分隔这两个扬声器的特征,我想将它们打印到屏幕上。


这些句子存储在一个列表中sentences[],我有关于每个句子谁是说话者的信息(存储在另一个列表中speakers[])


我还需要为这 K 个最佳特征创建向量,并能够对这些向量使用分类器。


当前代码:(句子包含每个说话者的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 个位置找到这个词,但我不知道该怎么做。


慕容708150
浏览 135回答 2
2回答

沧海一幻觉

你可以得到由给出的前 k 个词 SelectKBestprint([vectorizer.get_feature_names()[idx] for idx,flag in enumerate(outcome) if flag])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python