And*_*rás 10 nlp theano word2vec deep-learning keras
我想在keras中实现word2vec算法,这可能吗?我该如何适应模型?我应该使用自定义丢失功能吗?
这可能吗?
您已经自己回答了:是的。除了word2veckeras使用的之外gensim,这是另一个没有额外依赖项的CBOW实现(以防万一,我不隶属于此仓库)。您可以使用它们作为示例。
我如何拟合模型?
由于训练数据是庞大的句子语料库,所以最方便的方法是model.fit_generator,它“使模型适合Python生成器逐批生成的数据”。生成器无限期地运行,生成(word, context, target)CBOW(或SG)元组,但是您可以手动指定sample_per_epoch并nb_epoch限制训练。这样,您就可以使句子分析(标记化,单词索引表,滑动窗口等)和实际的keras模型脱钩,同时节省大量资源。
我应该使用自定义损失功能吗?
CBOW最小化了中心词的预测分布与真实分布之间的距离,因此以最简单的形式即可categorical_crossentropy做到。如果您实施负采样(这比较复杂,但效率更高),则损失函数将变为binary_crossentropy。自定义丢失功能是不必要的。
对于任何对数学和概率模型的细节感兴趣的人,我强烈推荐斯坦福大学的CS224D类。这是有关word2vec,CBOW和Skip-Gram 的讲义。
另一个有用的参考:pure 和中的word2vec实现。numpyc
| 归档时间: |
|
| 查看次数: |
7979 次 |
| 最近记录: |