我正在嘗試在包含來自兩個說話者的句子的數據庫上使用 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
提交
取消