自然语言处理入门

NLP Introduction

用10行Python代码解决复杂的NLP任务

作者生成的图像

NLP(自然语言处理)通常被认为是计算机科学中的一个复杂领域。像SpaCy或NLTK这样的框架庞大且通常需要一些学习。但是借助开源的大型语言模型(LLM)和现代Python库,许多任务可以更轻松地解决。而且,甚至可以用仅有10行Python代码实现几年前仅在科技论文中提到的结果。

那么,不多说了,让我们开始吧。

1. 语言翻译

你是否曾经想过Google Translate是如何工作的?Google使用了一个在大量文本上训练的深度学习模型。现在,借助Transformers库,它不仅可以在Google实验室中完成,还可以在普通的个人电脑上完成。在这个例子中,我将使用一个预训练的T5-base(文本到文本转换变压器)模型。该模型首先在原始文本数据上进行训练,然后在源-目标配对上进行微调,例如(“将英语翻译为德语:这个房子很棒”,“Das Haus ist Wunderbar”)。这里,“将英语翻译为德语”是一个“告诉”模型要做什么的前缀,而短语则是模型应该学习的实际上下文。

重要警告。大型语言模型实际上相当大。在此示例中使用的T5ForConditionalGeneration类会自动下载“t5-base”模型,其大小约为900 MB。在运行代码之前,请确保有足够的磁盘空间,并且您的流量没有限制。

可以在Python中使用预训练的T5模型:

from transformers import T5Tokenizer, T5ForConditionalGeneration
preprocessed_text = "将英语翻译为德语:天气很好"
tokenizer = T5Tokenizer.from_pretrained('t5-base',
                                        max_length=64,
                                        model_max_length=512,
                                        legacy=False)
tokens = tokenizer.encode(preprocessed_text,
                          return_tensors="pt",
                          max_length=512,
                          truncation=True)
model =...