如何访问 FastText 分类器管道?

问题描述

众所周知,FacebookFastText一个很棒的开源、免费、轻量级的库,可用于文本分类。但这里的一个问题是管道似乎是端到端的黑盒。是的,我们可以从这些 options 更改超参数以设置训练配置。但是我无法找到一种方法来访问它在内部生成的向量嵌入。

实际上我想对向量嵌入进行一些操作 - 比如除了这些 tf-idf 表示之外引入 word2vec 权重,我想要的另一件事是使用 SMOTE 进行过采样,这需要数值表示。由于这些原因,我需要在整个管道之间引入我的自定义代码,这对我来说似乎无法访问。如何在此管道中引入自定义步骤?

解决方法

完整源代码可用:

https://github.com/facebookresearch/fastText

因此,您可以进行任何您可以想象的更改或扩展 - 如果您愿意阅读和修改其 C++ 源代码。没有什么是隐藏的或不可访问的。

请注意,FastText 及其 supervised 分类模式都是训练浅层神经网络的主要约定。将其视为其他分类器库架构中的“管道”可能没有帮助 - 因为没有一个内部接口使用那种语言或模块化布局。

具体来说,如果您了解 word2vec 训练的要点,FastText 分类器模式实际上只是将相邻(上下文窗口内)词汇的尝试预测替换为对已知标签的尝试预测。

为了理解 FastText 与其他技术的关系,以及进一步扩展的潜在方面,我认为还需要回顾一下: