Skip to main content
 首页 » 编程设计

python之scikit-learn TfidfVectorizer 忽略某些单词

2025年05月04日16yxwkf

我正在尝试使用 TfidfVectorizer 处理从维基百科页面获取的关于葡萄牙历史的句子。但是我注意到 TfidfVec.fit_transform 方法忽略了某些单词。这是我试过的句子:

sentence = "The oldest human fossil is the skull discovered in the Cave of Aroeira in Almonda." 
 
TfidfVec = TfidfVectorizer() 
tfidf = TfidfVec.fit_transform([sentence]) 
 
cols = [words[idx] for idx in tfidf.indices] 
matrix = tfidf.todense() 
pd.DataFrame(matrix,columns = cols,index=["Tf-Idf"]) 

数据框的输出:

本质上,它忽略了“Aroeira”和“Almonda”这两个词。

但我不想让它忽略这些词,所以我该怎么办?我在文档中找不到他们谈论这个的任何地方。

另一个问题是为什么“the”这个词会重复出现?该算法应该只考虑一个“the”并计算它的 tf-idf 吗?

请您参考如下方法:

tfidf.indices 只是 TfidfVectorizer 中特征名称的索引。 通过这个索引从句子中获取单词是一个错误。

您应该将 df 的列名称作为 TfidfVec.get_feature_names()