我gensim使用model.save(model_name)两个不同语料库的命令构建了两个词嵌入(word2vec 模型)并将其保存为(word2vec1 和 word2vec2)(这两个语料库有些相似,相似意味着它们像一本书的第 1 部分和第 2 部分一样相关) . 假设,两个语料库的前几个词(就频率或出现次数而言)是同一个词(假设为a)。
cosine-similarity or similarity对于两个 word2vec 模型,如何计算提取的顶级词(例如“a”)的相似度 ( )?是否most_similar()会在这种情况下有效地工作?
我想知道同一个词 (a) 与两个不同的生成模型之间的相似度有多大?
任何想法都深表赞赏。
我在许多kaggle内核和教程中看到,平均词嵌入被认为是获得句子的嵌入。但是,我想知道这是否是正确的方法。因为它丢弃了句子中单词的位置信息。有没有更好的方法来结合嵌入?也许以特定的方式将它们分层组合?
作为练习,我只需要使用密集层来执行文本分类。我想利用词嵌入,问题是数据集是 3D 的(样本、句子的词、嵌入维度)。我可以将 3D 数据集输入密集层吗?
谢谢
text-classification keras word-embedding keras-layer natural-language-processing
是Google预训练的word2vec模型CBO或者skipgram。
我们通过以下方式加载预训练模型:
from gensim.models.keyedvectors as word2vec
model= word2vec.KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin.gz')
Run Code Online (Sandbox Code Playgroud)
我们如何专门加载预训练的 CBOW 或 Skipgram 模型?
我想加载一个预先训练的 Bert 模型并对其进行微调,特别是使用自定义数据集的模型的词嵌入。任务是使用所选单词的词嵌入进行进一步分析。值得一提的是,该数据集由推文组成,没有标签。因此,我使用了 BertForMaskedLM 模型。
此任务可以使用输入 ID(标记化推文)作为标签吗?我没有标签。只有按随机顺序排列的推文。
从这一点开始,我展示我编写的代码:
首先,我清除了数据集中的表情符号、非 ASCII 字符等,如以下链接(2.3 部分)所述: https ://www.kaggle.com/jaskaransingh/bert-fine-tuning-with-pytorch
二、微调过程的代码:
import torch
device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu')
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForMaskedLM.from_pretrained('bert-base-uncased')
model.to(device)
model.train()
lr = 1e-2
optimizer = AdamW(model.parameters(), lr=lr, correct_bias=False)
max_len = 82
chunk_size = 20
epochs = 20
for epoch in range(epochs):
epoch_losses = []
for j, batch in enumerate(pd.read_csv(path + file_name, chunksize=chunk_size)):
tweets = batch['content_cleaned'].tolist()
encoded_dict = tokenizer.batch_encode_plus(
tweets, # Sentence to encode.
add_special_tokens = True, # Add …Run Code Online (Sandbox Code Playgroud) python language-model word-embedding pytorch bert-language-model
我在 NLP 项目中使用 Torchtext。我的系统中有一个预训练的嵌入,我想使用它。因此,我试过:
my_field.vocab.load_vectors(my_path)
Run Code Online (Sandbox Code Playgroud)
但是,显然,出于某种原因,这仅接受预先接受的嵌入的简短列表的名称。特别是,我收到此错误:
Got string input vector "my_path", but allowed pretrained vectors are ['charngram.100d', 'fasttext.en.300d', ..., 'glove.6B.300d']
Run Code Online (Sandbox Code Playgroud)
我发现了一些有类似问题的人,但到目前为止我能找到的解决方案是“更改 Torchtext 源代码”,如果可能的话,我宁愿避免这种情况。
有没有其他方法可以使用我的预训练嵌入?允许使用另一个西班牙语预训练嵌入的解决方案是可以接受的。
有些人似乎认为不清楚我在说什么。所以,如果标题和最后一个问题还不够:“我需要帮助在 Torchtext 中使用预先训练的西班牙语单词嵌入”。
我正在尝试使用以下命令在 google colab 实例上安装 genism:
!pip install genism
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
找不到满足 genism 要求的版本(来自版本:)没有找到与 genism 匹配的分布
nlp ×2
python ×2
python-3.x ×2
pytorch ×2
word2vec ×2
gensim ×1
keras ×1
keras-layer ×1
natural-language-processing ×1
torchtext ×1