我们正在尝试为下方给出的一组词汇实现一个词向量模型。
stemmed = ['data', 'appli', 'scientist', 'mgr', 'microsoft', 'hire', 'develop', 'mentor', 'team', 'data', 'scientist', 'defin', 'data', 'scienc', 'prioriti', 'deep', 'understand', 'busi', 'goal', 'collabor', 'across', 'multipl', 'group', 'set', 'team', 'shortterm', 'longterm', 'goal', 'act', 'strateg', 'advisor', 'leadership', 'influenc', 'futur', 'direct', 'strategi', 'defin', 'partnership', 'align', 'efficaci', 'broad', 'analyt', 'effort', 'analyticsdata', 'team', 'drive', 'particip', 'data', 'scienc', 'bi', 'commun', 'disciplin', 'microsoftprior', 'experi', 'hire', 'manag', 'run', 'team', 'data', 'scientist', 'busi', 'domain', 'experi', 'use', 'analyt', 'must', 'experi', 'across', 'sever', 'relev', 'busi', 'domain', 'util', 'critic', 'think', 'skill', 'conceptu', 'complex', 'busi', 'problem', 'solut', 'use', 'advanc', 'analyt', 'larg', 'scale', 'realworld', 'busi', 'data', 'set', 'candid', 'must', 'abl', 'independ', 'execut', 'analyt', 'project', 'help', 'intern', 'client', 'understand']
我们使用以下代码:
import gensimmodel = gensim.models.FastText(stemmed, size=100, window=5, min_count=1, workers=4, sg=1)model.wv.most_similar(positive=['data'])
然而,我们遇到了这个错误:
KeyError: 'all ngrams for word data absent from model'
回答:
你需要提供训练数据,不是以列表形式,而是以生成器形式。
尝试如下方法:
这将输出:
[(‘busi’, -0.043828580528497696)]
另见gensim文档中的这个笔记本。以及关于所有可迭代对象的这个优秀的gensim教程:
在gensim中,如何创建语料库由你决定。Gensim算法只关心你提供给它们的是稀疏向量的可迭代对象(对于某些算法来说,即使是生成器=对向量的单次遍历也足够了)。