【发布时间】:2021-11-28 01:02:33
【问题描述】:
我希望你们做得很好。
我正在使用 Facebook 的 FastText 训练分类器,以确定一段文本(推文)是否在谈论经济。 为了完成这项任务,我有大约 2200 条标记为“economy”或“not_economy”的推文,但我也有近 100 万条未标记的推文。
阅读 FastText 的文档我知道受监督的输入文件应该是每行一条推文的文档,前缀为 __label__economy 或 __label__not_economy。
文档没有谈到将无标签文档添加到无监督输入文件中,但由于它是一个词嵌入模型,它应该从词的文本分布中获取上下文信息,所以我认为给模型提供所有这些额外信息应该帮助更好地嵌入我的词汇表。出于这个原因,我正在训练模型(使用fasttext supervised -input tweets_input -output tweets_model),但我还在最后添加了未标记的文档。问题是所有这些近 100 万条推文似乎根本没有增强模型。
我知道我可以利用这些数据的另一种方法是训练无监督模型并开始使用句子嵌入来训练分类器。
问题是标题中的问题:
没有标签的文档是否会向 Facebook 的 FastText 监督分类器添加信息?获取文档嵌入并使用其他库训练我自己的分类器会更好吗?
感谢您提供任何有助于我更好理解的信息。
【问题讨论】:
-
不希望在每个文本行的开头声明一个标签吗?您如何将这些未标记的文档提供给算法? (您确定它们没有被视为带有一些默认/插件/空字符串标签的文本吗?)
-
是的,他们希望在开头有一个
__label__,但我只是没有在其中添加任何标签。然后我尝试使用model.labels打印所有标签,但我只得到两个:economy和not_economy -
我怀疑代码完全忽略了这些行。
--supervised模式仅用word->label替换了训练中使用的通常的word->word预测神经网络。没有标签,每个文本都只是一个训练空操作。