我有一个音频和文本文件数据集,我想使用不同的标准来平衡它来训练神经网络。文本和匹配的音频文件分组在一个 ID 下。
对于每个 ID,我都有一些单词和一些元数据。
假设我的数据有三个需要平衡的元数据/标准(嗯......有点,我希望能够为某些标准值选择百分比):
- 说话人的名字,每个说话人的字数应该差不多。
- 扬声器的状态(如果扬声器仍处于活动状态,则为active ;如果没有,则为非活动状态),我希望大约70% 的活动扬声器和30% 的非活动。
- 说话者的性别,我想要大约50% 男性和50% 女性。
示例:ID12345 有 10,000 个单词。元数据:John,男性,活跃
如果我平衡一个标准,然后另一个,我肯定会不平衡以前平衡的一个。此外,如果我一次只使用一个标准进行平衡,我可能会丢弃可能对平衡以下标准有用的数据,这意味着我最终会得到更少的数据,而我本来可以优化。
是否有一种算法可以使用所有标准与其百分比目标平衡数据,并最大化剩余的单词数?
我正在寻找具有可变数量标准的通用算法。
编辑:我使用 C++ 和 MongoDB(但如果它可以帮助我,我会接受其他语言/工具以及算法)。