关于Facebook开源fastText预训练向量是否包含子词向量的问询
FastText预训练向量的子词说明
Great question! Let me clarify this for you since it's a common point of confusion with FastText's pre-trained resources:
- .bin格式的预训练模型文件包含子词向量:这是FastText的核心特性——它的预训练.bin模型不仅存储了训练数据中出现过的完整词的向量,还内置了训练时学习到的所有n-gram子词的向量。当你加载这个模型后,就算输入一个不在预训练词表中的OOV(未登录词),模型会自动将其拆分为对应的子词,通过子词向量的组合来生成该词的向量。
- .txt格式的纯词向量文件仅包含完整词向量:如果你下载的是纯文本格式的词向量文件(只有词和对应的向量一行一行排列),那里面确实只有训练数据中出现过的完整词的向量,没有存储子词相关的信息,这类文件无法处理OOV词的子词生成。
如果你想验证子词的存在,可以用FastText的工具或API来查看:比如在Python中使用fasttext库加载.bin模型后,调用model.get_subwords("your_word")就能看到该词被拆分出的子词列表,以及每个子词对应的哈希值(对应模型中存储的子词向量)。
内容的提问来源于stack exchange,提问作者joluber
相关产品推荐
相关产品推荐

