fastText,与 Word2vec 中预测周围词不同,该算法预测周围的 n 个字符。例如,“whisper”将生成以下两字符的 gram 和 3 字符的 gram:
wh, whi, hi, his, is, isp, sp, spe, pe, per, er
fastText 为每个 n 字符的 gram 训练一个向量表示,其中包括词、拼错的词、词片段,甚至单个字符。这种方法比原来的 Word2vec 能够更好地处理罕见词。
# # .bin文件
# from gensim.models.fasttext import FastText
#
# ft_model = FastText.load_fasttext_format(model_file=MODEL_PATH)
# print(ft_model.most_similar('soccer'))
# .vec文件
from gensim.models import KeyedVectors
FASTTEXTFILE = "xxx\\wiki-news-300d-1M.vec"
ft_model = KeyedVectors.load_word2vec_format(FASTTEXTFILE)
print(ft_model.most_similar('soccer'))
备注:gensim 提供的 fastText API 的功能与 Word2vec 基本一致。在前面的方法也适用于 fastText 模型。