【问题标题】:how to create word vector如何创建词向量
【发布时间】:2015-02-18 03:34:20
【问题描述】:

如何创建词向量?我使用一个热键来创建词向量,但它非常庞大,对于语义相似的词没有泛化。所以我听说过使用神经网络来查找词相似度和词向量的词向量。所以我想知道如何生成这个向量(算法)或开始创建词向量的好材料?。

【问题讨论】:

  • 您可能希望从类型 x 文档矩阵、tf-idf 加权和余弦相似度开始。去谷歌上查询。你会很好地洞察问题。

标签: nlp neural-network word2vec


【解决方案1】:

词向量或所谓的分布式表示到现在已经有很长的历史了,也许从 S. Bengio 的工作开始(Bengio, Y., Ducharme, R., & Vincent, P. (2001)。一个神经概率语言模型。NIPS。),在那里他获得了词向量作为训练神经网络语言模型的副产品。

大量研究表明,这些向量确实捕获了单词之间的语义关系(参见例如http://research.microsoft.com/pubs/206777/338_Paper.pdf)。 Collobert 等人的这篇重要论文 (http://arxiv.org/abs/1103.0398) 也是理解词向量及其获取和使用方式的一个很好的起点。

除了 word2vec 之外,还有很多方法可以获取它们。示例包括 Collobert 等人 (http://ronan.collobert.com/senna/) 的 SENNA 嵌入,T. Mikolov 可以使用 RNNToolkit (http://www.fit.vutbr.cz/~imikolov/rnnlm/) 计算的 RNN 嵌入等等。对于英语,可以从这些网站下载现成的嵌入。 word2vec 真正使用的是 skip-gram 模型(不是神经网络模型)。另一个用于计算单词表示的快速代码是 GloVe (http://www-nlp.stanford.edu/projects/glove/)。无论深度神经网络是否对获得良好的嵌入至关重要,这是一个悬而未决的问题。

根据您的应用程序,您可能更喜欢使用不同类型的词向量,因此最好尝试几种流行的算法,看看哪种算法更适合您。

【讨论】:

    【解决方案2】:

    我认为你的意思是 Word2Vec (https://code.google.com/p/word2vec/)。它基于给定的语料库训练文档的 N 维词向量。因此,在我对 word2vec 的理解中,神经网络仅用于聚合文档向量的维度并捕获单词之间的某些关系。但需要说明的是,这并不是真正意义上的语义相关,它只是反映了你训练体中的结构关系。

    如果您想捕获语义相关性,请查看基于 WordNet 的措施,例如实现的是这些库:

    要开始使用 word2vec,您可以使用他们的预训练向量。您应该在https://code.google.com/p/word2vec/ 找到有关此的所有信息。

    当您寻求 java 实现时。这是一个很好的起点:http://deeplearning4j.org/word2vec.html

    希望对你有帮助

    最好的祝福

    【讨论】:

      猜你喜欢
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      • 2021-03-27
      • 2019-09-16
      • 2020-02-28
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多