问题标签 [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 - 如何在 GoogleNews-vectors-negative300.bin 预训练模型中添加缺失词向量?
我在 python 中使用 gensim word2vec 库并使用预训练的 GoogleNews-vectors-negative300.bin 模型。但,
我的语料库中有词,但我没有词向量,因此我得到了 keyError 我该如何解决这个问题?
这是我到目前为止所尝试的,
1:加载GoogleNews-vectors-negative300.bin
每个训练的模型:
2:使用推文中所有词向量的平均值构建训练集的词向量,然后进行缩放
请告诉如何在预训练的 Word2vec 模型中添加新单词?
python - 确保 gensim 为相同数据上的不同运行生成相同的 Word2Vec 模型
在LDA 模型中,每次我在同一个语料库上训练时都会生成不同的主题,通过设置np.random.seed(0)
,LDA 模型将始终以完全相同的方式进行初始化和训练。
来自的 Word2Vec 模型是否相同gensim
?通过将随机种子设置为常数,同一数据集上的不同运行会产生相同的模型吗?
但奇怪的是,它已经在不同的情况下给了我相同的向量。
那么默认随机种子是固定的吗?如果是这样,默认的随机种子数是多少?还是因为我正在测试一个小数据集?
如果随机种子确实是固定的并且在相同数据上的不同运行返回相同的向量,那么将非常感谢指向规范代码或文档的链接。
python - tf.nn.embedding_lookup 函数有什么作用?
我无法理解此功能的职责。它像查找表吗?即返回每个id对应的参数(在ids中)?
例如,在skip-gram
模型中如果我们使用tf.nn.embedding_lookup(embeddings, train_inputs)
,那么对于每个train_input
它找到对应的嵌入?
python - TensorFlow embedding_lookup
tf.nn.embedding_lookup()
我正在尝试通过 TensorFlow函数“从头开始”学习 imdb 数据集的单词表示。如果我理解正确,我必须在另一个隐藏层之前设置一个嵌入层,然后当我执行梯度下降时,该层将“学习”该层权重中的单词表示。但是,当我尝试这样做时,我的嵌入层和网络的第一个全连接层之间出现了形状错误。
我得到的错误是:
gensim - 使用 Word 嵌入从大型语料库中查找概念
我正在尝试从 Konkani 语言的语料库中找出新概念。我已经在 1) 特定领域的语料库 2) 报纸语料库上训练了两个模型。
我已经使用 Gensim word2vec 来训练模型,但是我无法在向量空间中非常接近的情况下获得具有相似含义的术语。
结束词之间没有同义词的关系。它们的相似性就像一些随机单词一样好。
我究竟做错了什么?
nlp - Bigram 到向量
我想使用 word2vec 工具为文档构建词嵌入。我知道如何找到对应于单个单词(unigram)的向量嵌入。现在,我想找到一个二元组的向量。可以使用word2vec吗?如果是,如何?
machine-learning - 我是否正确使用了词嵌入?
核心问题:使用词嵌入表示文本的正确方法?
我正在为推文构建情感分类应用程序。将推文分类为 - 负面、中性和正面。我在 theano 之上使用 Keras 并使用词嵌入(谷歌的 word2vec 或 Stanfords GloVe)来执行此操作。
为了表示推文文本,我做了如下操作:
- 使用预训练模型(例如 word2vec-twitter 模型)[ M ] 将单词映射到它们的嵌入。
- 用文中的词查询M,得到对应的向量。因此,如果推文 ( T ) 是“Hello world”,并且M为“Hello”和“World”这两个词提供向量V1和V2。
- 然后推文T可以表示为 ( V ) V1 + V2(添加向量)或V1V2(连接向量)[这是 2 种不同的策略] [连接意味着并列,所以如果V1、V2是 d 维向量,在我的示例T是二维向量]
- 然后,推文T由向量V表示。
如果我遵循上述方法,那么我的数据集就是向量(取决于我使用的策略,它们是词向量的总和或串联)。我正在这个数据集上训练一个深度网络,比如 FFN、LSTM。但我的结果并不是很好。
这是使用词嵌入来表示文本的正确方法吗?还有什么更好的方法?
您的反馈/批评将大有帮助。
tensorflow - 仅更新 Tensorflow 中词嵌入矩阵的一部分
假设我想在训练期间更新一个预训练的词嵌入矩阵,有没有办法只更新词嵌入矩阵的一个子集?
我查看了 Tensorflow API 页面并发现了这一点:
但是,我如何将其应用于词嵌入矩阵。假设我这样做:
然后如何使用opt.apply_gradients
和tf.scatter_update
更新原始嵌入矩阵?compute_gradient
(此外,如果 的第二个参数不是 a ,则 tensorflow 会引发错误tf.Variable
)
python - 如何使用预训练的模型权重初始化新的 word2vec 模型?
我在 python 中使用 Gensim Library 来使用和训练 word2vector 模型。最近,我正在考虑使用一些预训练的 word2vec 模型(例如 GoogleNewDataset 预训练模型)来初始化我的模型权重。我已经为此苦苦挣扎了几个星期。现在,我刚刚发现在 gesim 中有一个函数可以帮助我用预训练的模型权重初始化模型的权重。这在下面提到:
我不知道这个函数能不能做同样的事情。请帮忙!!!
machine-learning - word2vec 对非人类单词的应用:允许提供我自己的上下文和距离的实现
我想使用word2vec将“单词”转换为数字向量,并可能对新单词进行预测。我尝试过手动从单词中提取特征并训练线性回归模型(使用随机梯度下降),但这仅在一定程度上有效。
我的输入数据是:
- 每个单词都与一个数值相关联。您可以将此值视为单词在 1D 空间中的坐标。
- 对于每个单词,我可以提供与任何其他单词的距离(因为我有单词的坐标)。
- 因此,我可以为每个单词提供上下文。如果给定一个距离,我可以提供与目标距离在此距离内的所有其他单词。
- 单词仅由拉丁字母组成(例如 AABCCCDE、BKEDRRS)。
- 单词几乎从不重复,但它们的结构元素在不同的单词中重复很多。
- 单词可以有不同的长度(比如最多 5-50 个字母)。
- 单词具有共同的特征,其中的一些子序列会在不同的单词中多次出现(例如,一些字母的二连音或三连音,它们在一个单词中的位置等)。
问题:
是否有word2vec的实现允许为每个单词提供您自己的距离和上下文?
如果经过训练的模型可以为您在训练后输入的任何单词吐出预测坐标,那将是一个很大的好处。
最好在 Java 中,Python 也可以,但总的来说任何事情都可以。
我也不局限于word2vec,它看起来很合适,但是我对机器学习和数据挖掘的了解非常有限,所以我可能会错过解决问题的更好方法。
PS:我知道deeplearning4j
,但我没有仔细查看代码,以确定我想要做的事情是否易于在其中实现。
数据示例:(典型输入包含数千到数万个单词)
ABCD 0.50
ABCDD 0.51
ABAB 0.30
BCDAB 0.60
DABBC 0.59
SPQTYRQ 0.80