scikit-learn TfidfVectorizer 忽略某些单词
scikit-learn TfidfVectorizer ignoring certain words
我正在尝试使用 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 吗?
输出是 giving two the,因为句子中有两个。整个句子都已编码,您将获得每个索引的值。其他两个词之所以没有出现,是因为它们是生僻词。您可以通过降低阈值来使它们出现。
参考min_df和max_features:
http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html
tfidf.indices
只是 TfidfVectorizer 中特征名称的索引。
通过这个索引从句子中获取单词是一个错误。
您应该将 df 的列名称设为 TfidfVec.get_feature_names()
我正在尝试使用 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 吗?
输出是 giving two the,因为句子中有两个。整个句子都已编码,您将获得每个索引的值。其他两个词之所以没有出现,是因为它们是生僻词。您可以通过降低阈值来使它们出现。
参考min_df和max_features:
http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html
tfidf.indices
只是 TfidfVectorizer 中特征名称的索引。
通过这个索引从句子中获取单词是一个错误。
您应该将 df 的列名称设为 TfidfVec.get_feature_names()