自然语言处理工具包介绍

在当今的数据驱动世界中,自然语言处理(NLP)成为了一个不可或缺的领域。本文将探讨一个令人惊叹的工具包,它允许仅用几行代码就能执行所有的NLP操作。即使是初学者,也能轻松地执行各种NLP操作,并根据任务进行微调。

从头开始应用NLP操作

从头开始进行NLP操作的推理变得繁琐,因为它需要执行多个步骤。这些步骤包括使用分词器处理原始文本数据、将数据转换为模型的输入格式、使用预训练层或自定义层设计模型、训练和验证以及推理。而Transformers工具包基本上通过提供预训练模型和简单的实现方式,帮助实现NLP任务。

Transformers工具包

Transformers工具包由huggingface.io提供。它试图解决在NLP领域面临的各种挑战;它提供了预训练模型、分词器、配置、各种API、现成的管道等。Transformers工具包的优势在于,它允许使用预训练的语言模型以及它们的数据处理工具。大多数模型都是直接提供给,并在PyTorch和TensorFlow库中提供。

使用Pipeline开始

使用预训练模型进行给定NLP任务的预测的最简单方法是使用Transformers工具包中的pipeline()。管道是使用预训练模型进行推理的绝佳方式。这些管道抽象了大部分复杂的代码,用于数据处理和推理步骤。使用Transformers创建NLP任务的管道非常简单。

!pip install transformers from transformers import pipeline

在Transformers工具包中,pipeline是一个包装类,用于命名实体识别、掩码语言建模、情感分析、特征提取、问答等其他管道。

情感分析

这个管道可以根据情感对文本进行分类,包括正面和负面以及置信度。这个管道仅针对二元类别分类进行训练,因此它不适用于多类别分类。

pipe = pipeline("text-classification") pipe = pipeline("sentiment-analysis") pipe(["这家餐厅很棒", "这家餐厅很糟糕"])

文本摘要

通过创建新句子来摘要给定的文本。它使用基于深度学习的生成性文本摘要。目前,T5和BART仅支持文本摘要管道。

summarizer = pipeline(“summarization”, model=”t5-base”, tokenizer=”t5-base”, framework=”tf”) summary=summarizer(context, max_length=130, min_length=60) print(summary)

问答

nlp = pipeline(“question-answering”) result = nlp(question="火星任务何时发射?", context=context) print(result['answer'])

语言翻译

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, Pipeline tokenizer = AutoTokenizer.from_pretrained(“Helsinki-NLP/opus-mt-en-ru”) model = AutoModelForSeq2SeqLM.from_pretrained(“Helsinki-NLP/opus-mt-en-ru”) translator = pipeline('translation', model=model, tokenizer=tokenizer) translated = translator('这是,名字。非常了解。')[0].get('translation_text') print(translated) from transformers import AutoTokenizer, AutoModelForSeq2SeqLM tokenizer = AutoTokenizer.from_pretrained(“Helsinki-NLP/opus-mt-en-hi”) model = AutoModelForSeq2SeqLM.from_pretrained(“Helsinki-NLP/opus-mt-en-hi”) model.save_pretrained(‘文件路径’) model = AutoModelForSeq2SeqLM.from_pretrained(‘./model/clf’) tokenizer = AutoTokenizer.from_pretrained(“./model/clf”)
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485