首页 文章

word2vec猜词嵌入

提问于
浏览
0

word2vec可以用于猜测上下文的单词吗?用大数据集训练模型,例如Google新闻如何使用word2vec预测仅包含上下文的类似字词,例如“在国际象棋中占据超过15年的国际象棋”的投入将与密苏里州圣路易斯的九名顶级球员竞争 . 输出应该是卡斯帕罗夫或卡尔森 .

我只看到相似的apis,但我无法理解如何使用它们?这不是word2vec打算用的吗?

1 回答

  • 3

    它不是word2vec的预期用途 . word2vec算法在内部尝试使用周围的单词预测精确的单词,作为学习周围单词的有用向量的迂回方式 .

    但即便如此,它还没有在训练期间形成准确的预测 . 它只是查看一个简单的训练示例 - 上下文单词和目标单词 - 并执行一个非常简单的比较和内部微调,以使其与该示例的一致性略微更好 . 随着时间的推移,即使预测仍然具有极其不同的质量,它也会向有用的载体进行自我调整 .

    在给定上下文单词的情况下,大多数word2vec库不提供用于显示排名预测的直接界面 . 对于最后几个版本(截至2017年7月的当前版本2.2.0),Python gensim库提供了一种 predict_output_word() 方法,该方法大致显示了模型在给定上下文单词时预测的某些训练模式 . 看到:

    https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Word2Vec.predict_output_word

    但是,考虑到您的填空查询(在相关教育或机器学习环境中也称为“完形填空删除”):

    _____, who dominated chess for more than 15 years, will compete against nine top players in St Louis, Missouri
    

    一个vanilla word2vec模型不可能做到这一点 . 它对词语的相对重要性几乎没有意义(除非某些词语更加狭隘地预测其他词语) . 它没有语法/顺序感,或者没有连词短语的构成意义(比如'主导的国际象棋'而不是单独的单词'主导'和'国际象棋') . 即使描述相同类型的事物的词语通常彼此接近,但它不知道能够确定空白必须是“人物”和“象棋选手”的类别,以及word2vec don的模糊相似性不能保证每个单词都比其他单词更接近于其他单词 .

    有很多工作要训练单词/概念向量(也就是'dense embeddings'),以便更好地帮助解决这类问题 . 一个随机的例子可能是"Creating Causal Embeddings for Question Answering with Minimal Supervision",但像[word2vec问题回答]或[问题回答的嵌入]这样的查询会发现更多 . 不过,我不知道有没有简单的开箱即用的库,无论有没有word2vec核心 .

相关问题