gpt4 book ai didi

deep-learning - 使用 TorchText (PyTorch) 进行语言翻译

转载 作者:行者123 更新时间:2023-12-04 10:49:26 24 4
gpt4 key购买 nike

我最近开始使用 PyTorch 进行 ML/DL。以下 pytorch 示例说明了我们如何训练一个简单的模型来将德语翻译成英语。

https://pytorch.org/tutorials/beginner/torchtext_translation_tutorial.html

但是,我对如何使用模型对自定义输入运行推理感到困惑。从我目前的理解来看:

1) 我们需要为德语(输入)和英语(输出)[使用 torch.save()] 保存“词汇”,以便以后可以使用它们进行预测。

2) 在对德语段落进行推理时,我们首先需要使用德语 vocab 文件将德语文本转换为张量。

3)上面的张量会传递给模型的forward方法进行翻译

4)模型将再次返回目标语言的张量,即当前示例中的英语。

5) 我们将使用第一步保存的英文词汇将这个张量转换回英文文本。

问题:

1)如果上述理解是正确的,如果我们知道源语言和目标语言并且有相同的词汇文件,上述步骤是否可以被视为在任何语言翻译模型上运行推理的通用方法?或者我们可以使用spacy等第三方库提供的词汇吗?

2)我们如何将模型返回的输出张量转换回目标语言?我找不到任何关于如何做到这一点的例子。上面的博客解释了如何使用源语言词汇将输入文本转换为张量。

我可以很容易地找到图像/视觉模型的各种示例和详细解释,但对于文本则不多。

最佳答案

是的,全局范围内您所说的都是正确的,当然您可以使用任何词汇,例如由 spacy 提供。要将张量转换为自然文本,最常用的方法之一是保留将索引映射到单词的字典和将单词映射到索引的另一个字典,以下代码可以执行此操作:

tok2idx = defaultdict(lambda: 0)
idx2tok = {}

for seq in sequences:
for tok in seq:
if not tok in tok2idx:
tok2idx[tok] = index
idx2tok[index] = tok
index += 1
这里的序列是所有序列的列表(即数据集中的句子)。如果您只有一个单词或标记列表,则可以通过仅保留内部循环轻松更改模型。

关于deep-learning - 使用 TorchText (PyTorch) 进行语言翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59549980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com