通过Tf-idf值清理句子,并在Python中只保留句子中的高Tf-idf分数单词



我有一个数据集,其形式是我有一句话,对于每一句话来说,我都有该句话中每个相关单词的tf idf值。

Sample dataset:
heel syrup word3 word4 word5
So what is a better exercise            0     0     0      0    0.34 
how many days hv to take syrup          0   0.95    0      0     0      
Can I take this solution ?              0   0   0   0      0.23     

这个数据集非常庞大,大约有10K行是句子,5K列是单词。从这里开始,我想创建一个新的列,并为每个句子保留tf idf值大于0.6的单词。实现的代码是:

dataset = pd.read_csv(r'Desktop/tfidf_val.csv')
dataset.apply(lambda x: x.index[x.astype(bool)].tolist(), 1)

但是我有一个内存错误。知道如何解决这个问题吗,或者代码是否有问题

我曾经遇到过这个问题,我的解决方案是替换:

df = pd.read_csv(r'filename.csv')

带有

df = pd.read_csv(r'filename.csv',sep=';',low_memory=False)

编辑:由于您的列包含逗号,并且文件以逗号分隔,因此您需要知道您有多少列。当你这样做的时候,如果是M,加上这个:

n = M
df = pd.read_csv(r'filename.csv', 
usecols=range(M),
lineterminator='n',       header=None,low_memory=False))

最新更新