【发布时间】:2019-11-04 07:02:32
【问题描述】:
假设我在pandas 中有一个包含两列的数据框,类似于以下内容:
text label
0 This restaurant was amazing Positive
1 The food was served cold Negative
2 The waiter was a bit rude Negative
3 I love the view from its balcony Positive
然后我在这个数据集上使用来自sklearn 的TfidfVectorizer。
就每个班级的 TF-IDF 分数词汇而言,找到前 n 名的最有效方法是什么?
显然,我的实际数据框包含的数据行比上面的 4 行多。
我的帖子的重点是找到适用于任何类似于上述数据帧的代码; 4 行数据帧或 1M 行数据帧。
我认为我的帖子与以下帖子有很大关系:
【问题讨论】:
-
除非您明确删除 hapaxes,否则根据 TFxIDF 定义,输入文档中的唯一词将获得最高分。如果你有超过几十个单词,“前 3 个”将毫无意义,因为所有前 n 个单词的最高分都相同,而且通常根本不是什么特别好的指标。
-
@tripleee,感谢您的评论。但是,我认为/认为数据框只是一个小样本数据框非常明显。我的实际数据框由大约 100k 的数据行数组成。我的帖子的重点是找到适用于任何此类数据框的代码; 4 行数据帧或 1M 行数据帧。这同样适用于它应该是前 3 名还是前 100 名或其他任何东西。因此,让我们把注意力集中在问题上,即只说明显的言论。
-
但是(确实,显而易见的)您的问题的答案是“仅在单个样本中出现的任何内容”。一个更有用的问题是例如“哪些令牌在一组中具有高 DF(即低 IDF},而在另一组中没有”但您不是在问这个问题,而且我们无法从您的帖子中猜测这是否真的是您真正想要的。
-
哈哈@tripleee 我的问题不是一般来说哪个是每节课的前 n 个(就 TF-IDF 分数而言)词汇,因为答案很明显,而且它就是你所说的。我的问题是使用什么代码来有效地找到
sklearn和TfidfVectorizer中每个班级的前 n 个(就 TF-IDF 而言)得分词汇。所以我需要代码而不是明显的文本答案。 -
如果我明白你想要什么,我可能会发布一个答案。这些是希望让您澄清您要完成的任务的 cmets。所以你真的不是在寻找前 3 个最两极分化的术语吗?
标签: python python-3.x scikit-learn tfidfvectorizer