假设我有一些文本,我想将它们分为三组food, sports, science。如果我有一个句子I dont like to each mushrooms,我们可以使用单词嵌入(比如说100维)来为这个特定的句子创建一个6x100矩阵。 通常,在训练神经网络时,我们的数据是维数为n_obs x m_features的二维数组 如果我想训练一个词嵌入句子的神经网络(我使用的是Pytorch),那么我们的输入是3D n_obs x (m_sentences x k_words) e.g #Say word-embedding is 3-dimensions
I = [1,2,3]
dont =
我要从凯拉斯到PyTorch。I希望用GloVe向量创建一个PyTorch嵌入层(一个大小为V x D的矩阵,其中V超过词汇表,而D是嵌入向量维),但对所需的步骤感到困惑。
在Keras中,通过让嵌入层构造函数接受一个weights参数:
# Keras code.
embedding_layer = Embedding(..., weights=[embedding_matrix])
当查看PyTorch和TorchText库时,我发现嵌入应该加载两次,一次在Field中,然后再在Embedding层中加载。下面是我发现的:
# PyTorch code.
# Create a field
在我提出这个问题之前,让我先说明这个问题已经在许多文章中得到了回答,但我仍然很难理解word嵌入的基本格式。 让我们从“我喜欢狗”这句话开始。假设一个简单的散列方法,“我喜欢狗”可以用向量1,4,6表示,其中向量的元素对应于每个单词的散列(假设这些不是词汇表中的唯一单词)。据我所知,这个向量被馈送到一个嵌入层,该嵌入层在RNN的输入张量上添加了一个额外的嵌入维度(不必是普通的RNN)。 对于批中的单个条目,嵌入张量(假设嵌入维度为2)如下所示: [4.55,6.78,-> i 3.12,8.17,-> like 1.87,10.95] ->狗 这个张量的形状是(1,3,2)
我有以下问题:我创建了一个定制字典,用于在一些NLP任务中使用。我想通过查找与我字典中的短语相似的短语来加强我的字典。例如:
Lets say I have a phrase:
- take responsibility
then, I should be able to find phrases like:
- hold accountable for
-responsible for
我刚刚开始学习NLP,我在字典上尝试了Word2Vec模型,但是它只给出了字典中已经存在的类似单词。还有其他算法可以帮助我使用多个来源找到类似的短语吗?