我有文章的数据集,以及这些文章中每个单词出现的数量: 如何计算TF-IDF?你知道吗
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns; sns.set()
from sklearn.cluster import KMeans
import pandas as pd
import sklearn as sk
import math
data = pd.read_csv('D:\\Datasets\\NIPS_1987-2015.csv', index_col ="word")
# retrieving row by loc method
first = data["1987_1"]
second = data["1987_2"]
print(first, "\n\n\n", second)
我得到这个DB:
word
abalone 0
abbeel 0
abbott 0
abbreviate 0
abbreviated 0
..
zoo 0
zoom 0
zou 0
zoubin 0
zurich 0
Name: 1987_1, Length: 11463, dtype: int64
word
abalone 0
abbeel 0
abbott 0
abbreviate 0
abbreviated 0
..
zoo 0
zoom 0
zou 0
zoubin 0
zurich 0
Name: 1987_2, Length: 11463, dtype: int64
那么从这里如何计算TF-IDF呢?有什么建议吗?我应该改成字典还是有别的可能?你知道吗
您可以执行以下操作。假设您得到了
docs
,它是pd.Series
对象的列表,每个对象表示单个文档的词频分布。你知道吗然后你可以重建一个语料库(单词的顺序并不重要,只是频率对TF-IDF很重要)。你知道吗
最后,使用
sklearn.feature_extraction.text.TfidfVectorizer
将语料库转换为TF-IDF值。你知道吗注意:这假设您的文本(一旦重建)可以放入内存中。大多数数据集都是。但是如果不是这样,如果您希望TF-IDF直接来自
docs
,那么您可能必须自己实现它。你知道吗产生了
相关问题 更多 >
编程相关推荐