machine-learning - 缩减文本文档采样

标签 machine-learning nlp text-mining downsampling

我有两个类,第一类有 1000 个文档,第二类有 40000 个文档。文件由文本组成。 我想在神经网络中使用这些文本。但当然存在数据集不平衡问题。每个分类器都会将所有文档分为第二类,并说“我的准确率高达 97.5%。

您是否知道是否有任何实现可以检查第二类中的文档相似性并对它们进行聚类,然后仅删除与其聚类大小成比例的每个聚类的文档?

或者您知 Prop 有相同目标的类似方法吗?

最佳答案

我从您的评论中了解到,您有 5 万份文档被标记为积极或消极的情绪。您希望通过对文档进行聚类并从每个聚类中选择一小部分文档,将较大的类从 40k 减少到 10k。

如果这是正确的,那么以下方法应该可以满足您的要求?

  • 为 40k 文档生成 TF-IDF 表示。 (您可以根据已识别的关键字集制作 TF-IDF 表示。)
  • 应用凝聚层次聚类技术,直到只剩下 10k 个分支。您可以使用 TF-IDF 向量之间的余弦相似度作为相似性度量,并使用质心作为文档组的 TF-IDF 向量。 (如果自己实现:请记住,您可以保留轮次之间几乎所有的成对相似度计算,否则您将进行大量不必要的重新计算!)
  • 从包含多个文档的每个簇中,选择一个要保留的文档。

也就是说,我同意 Gerowam 的观点,即随机下采样策略可能会更容易、更快,而且可能同样有效,但欢迎您尝试并报告。

关于machine-learning - 缩减文本文档采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41876985/

相关文章:

node.js - 使用 Node 从句子中提取重要单词

r - 使用R从复数转换为单数

r - tidytext、Quanteda 和 tm 返回不同的 tf-idf 分数

r - 使用 R 进行机器学习多标签文本分类

python - Keras 模型获得恒定的损失和准确性

validation - 当训练和验证损失与 epoch 1 不同时意味着什么?

nlp - nltk.word_tokenize 和 nltk.pos_tag 支持哪些语言

评估 elat 和 apriori 项集时删除具有空值的行

r - 为什么在 R 中加载模型需要花费这么多时间?

nlp - 如何对名称不同但语义基本相同的公司进行分组?