问题标签 [word-embedding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 通过寻找单词的线性代数结构来评估 Glove 模型
我已经在我的文本语料库上使用了这个实现https://github.com/stanfordnlp/GloVe/tree/master/src的 c 应用程序构建了 Glove 模型。我想以这样的方式找到词嵌入
如果 A 与 B 相关,C 与 D 相关,那么 A-C+B 应该等于 D。例如,“澳大利亚”-“堪培拉”+“印度”的嵌入向量算术应该等于“新德里”。
我想在 python 中评估这些嵌入。
nlp - FastText 精度和召回率的权衡
在 FastText 中,我想改变精确度和召回率之间的平衡。可以做到吗?
machine-learning - 词嵌入训练
我有一个用于词嵌入的语料库。使用这个语料库,我训练了我的词嵌入。然而,每当我训练我的词嵌入时,结果都大不相同(这个结果是基于 K-Nearest Neighbor(KNN))。例如,在第一次训练中,' computer '最近邻词是' laptops '、' computerized '、' hardware '。但是,在第二次训练中,这个 knn 词是 ' software ', ' machine ',...('laptops' 排名靠后!)——所有训练都独立进行了 20 个 epoch,并且超参数都相同。
我想训练我的词嵌入非常相似(例如,“笔记本电脑”排名很高)。我应该怎么做?我应该调整超参数(学习率、初始化等)吗?
python - 最大词汇量是否与 Glove 模型中的词向量维度有关
我已经按照此链接https://github.com/stanfordnlp/GloVe/tree/master/src的实施实施了 Glove 模型。我将最大词汇参数指定为 100000000,同时生成 vocab.txt 文件和单词向量维度为 100,同时训练模型并生成 100 维度的vectors.txt。当我尝试从上述链接中的 eval 文件夹评估 word_analogy.py 时,出现以下错误
我想知道在创建词汇文件时指定的参数是否对向量文件的尺寸有影响
python - 嵌入向量不会在 gensim 中收敛
我正在 800k 浏览器用户代理上使用 gensim 训练 word2vec 模型。我的字典大小在 300 到 1000 之间,具体取决于词频限制。我正在查看一些嵌入向量和相似性,以查看算法是否已收敛。这是我的代码:
不幸的是,即使在 1000 个 epoch 之后,嵌入向量也没有收敛的迹象。例如,我绘制了“(ipad”的嵌入向量的第一维的嵌入与下面的时期数:
我查看了许多博客和论文,似乎没有人将 word2vec 训练超过 100 个 epoch。我在这里缺少什么?
tensorflow - 使用已经学习的词嵌入从字符中学习词嵌入
我有一个文本语料库,我想找到从字符开始的单词的嵌入。所以我有一个字符序列作为输入,我想将它投影到一个多维空间中。
作为初始化,我想拟合已经学过的词嵌入(例如,谷歌的词嵌入)。
我有些疑惑:
- 我是否需要为输入序列中的每个输入字符使用字符嵌入向量?如果我只使用 ascii 或 utf-8 编码会不会有问题?
- 尽管输入向量定义是什么(嵌入 vec、ascii、..),但选择合适的模型确实令人困惑,但我不确定哪个是更好的选择:seq2seq、自动编码器、lstm、多回归器+lstm ?
- 你能给我 keras 或 tensorflow 的任何示例代码吗?
deep-learning - 在 keras 中创建不同的嵌入层
我最近阅读了这篇论文End-To-End Memory Networks,它使用三个不同的嵌入层进行句子嵌入。现在我正在尝试在 keras 中重现这种架构。
但我不确定如何创建三个不同的嵌入。这些是基于相同语料库的完全相同的维度,但嵌入应该具有不同的值。所以要实现这些层,我应该只使用嵌入层吗kernel_initializer =random_uniform
?
我知道像 Word2Vec 这样的预训练嵌入,但目前预训练模型并不重要,是吗?
python - 使用 LSTM 教程代码预测句子中的下一个单词?
我一直在尝试使用https://www.tensorflow.org/tutorials/recurrent来理解示例代码 ,您可以在https://github.com/tensorflow/models/blob/master/tutorials/rnn/ptb找到/ptb_word_lm.py
(使用张量流 1.3.0。)
对于我的问题,我总结了(我认为是)关键部分:
我最大的问题是如何使用生成的模型来实际生成下一个单词建议,给定一个句子的前几个单词?具体来说,我想象流程是这样的,但我无法理解注释行的代码是什么:
我的子问题是:
- 为什么要使用随机(未初始化、未经训练)的词嵌入?
- 为什么要使用softmax?
- 隐藏层是否必须匹配输入的维度(即 word2vec 嵌入的维度)
- 如何/我可以引入一个预训练的 word2vec 模型,而不是那个未初始化的模型?
(我把它们都当作一个问题来问,因为我怀疑它们都是相互关联的,并且与我的理解中的一些差距有关。)
我期望在这里看到的是加载一个现有的 word2vec 词嵌入集(例如使用 gensim's KeyedVectors.load_word2vec_format()
),在加载每个句子时将输入语料库中的每个词转换为该表示,然后 LSTM 会吐出一个向量相同的维度,我们会尝试找到最相似的词(例如使用 gensim's similar_by_vector(y, topn=1)
)。
使用 softmax 是否可以让我们免于相对较慢的similar_by_vector(y, topn=1)
调用?
顺便说一句,对于我的问题的 pre-existing word2vec 部分Using pre-trained word2vec with LSTM for word generation是相似的。然而,目前那里的答案并不是我想要的。我所希望的是一个简单的英语解释,它为我打开了灯,并填补了我理解中的任何空白。 在 lstm 语言模型中使用预训练的 word2vec?是另一个类似的问题。
更新: Predicting the next word using the language model tensorflow example和Predicting the next word using the LSTM ptb model tensorflow example是类似的问题。但是,两者都没有显示代码来实际获取句子的前几个单词,并打印出对下一个单词的预测。我尝试从第二个问题和https://stackoverflow.com/a/39282697/841830(带有 github 分支)粘贴代码,但无法正常运行。我认为它们可能适用于早期版本的 TensorFlow?
另一个更新:另一个问题基本相同:Predicting Next Word of LSTM Model from Tensorflow Example 它链接到 Predicting next word using the language model tensorflow example(同样,那里的答案不是我想要的) .
如果仍然不清楚,我正在尝试编写一个名为 的高级函数getNextWord(model, sentencePrefix)
,其中model
是我从磁盘加载的先前构建的 LSTM,sentencePrefix
是一个字符串,例如“打开可能会返回“pod”。然后我可能会用“Open the pod”来调用它,它会返回“bay”,依此类推。
一个示例(使用字符 RNN,并使用 mxnet)是显示在https://github.com/zackchase/mxnet-the-straight-dope/blob/master/chapter05_recurrent-neural-networks/simple-sample()
末尾附近的函数rnn.ipynb
你可以sample()
在训练时调用,也可以在训练后调用它,用任何你想要的语句。
python-2.7 - 为什么 Word2Vec 的 most_similar() 函数在训练中给出毫无意义的结果?
我在简历语料库(已删除停用词)上运行 gensim word2vec 代码,以从预定义的关键字列表中识别语料库中的相似上下文词。
尽管输入参数进行了多次迭代,停用词删除等类似的上下文词根本没有意义(就距离或上下文而言)例如。相关性和矩阵多次出现在同一个窗口中,但矩阵不属于相关性的最相似结果
以下是系统的详细信息和代码 gensim 2.3.0 ,在 Python 2.7 上运行 Anaconda 训练简历:55,418 句平均每句词:3-4 词(删除停用词后)代码:
我不知道为什么结果如此随机?无论如何要检查 word2vec 的准确性吗?
most_similar() 函数还有 word2vec 的替代品吗?我阅读了有关 gloVE 的信息,但无法安装该软件包。
这方面的任何信息都会有所帮助
nlp - Word Mover's Distance (WMD) 如何使用 word2vec 嵌入空间?
根据 WMD论文,它受到 word2vec 模型的启发,并使用 word2vec 向量空间将文档 1 移向文档 2(在 Earth Mover 距离度量的上下文中)。从论文中:
我从论文中理解了这个概念,但是,我无法理解 wmd 如何使用 Gensim 中的代码中的 word2vec 嵌入空间。
有人可以用简单的方式解释吗?它是否以不同的方式计算单词向量,因为我无法理解在此代码中使用 word2vec 嵌入矩阵的位置?