我正在使用~90000令牌(不是很大)的数据集,并且在这个数据集中只有~600被标记为除了默认(不感兴趣)标签以外的东西(因此,在IOB格式中,超过89000个令牌被标记'O',其余部分标有五个不同的类别之一,我想学习。)
我正在使用一个bi-lstm网络,它可以很好地处理样本数据集,其中“有趣”类别相对更频繁(12000个令牌中有5000个是非'O')。
但是当我在我的数据上训练相同的网络时,结果是几乎没有预测非''O'代币 - 似乎罕见的非'''事件不足以让NN给它们机会。
在那种情况下,我正在考虑一种自定义丢失函数惩罚错过非'O'令牌而不是反之亦然(错误地预测'O'为非''')。
是否还有其他推荐的最佳做法? (90000中的600个似乎并不太罕见,但仍然,目前我没有得到任何非'''预测。)
我正在使用的模型是亚当·阿特金森(Adam Atkinson)对keras模型的很好的实现(https://github.com/aatkinson/deep-named-entity-recognition),正如我所说的那样,在具有较少稀有实体的可比数据集上很好地工作。