赞
踩
经常能看到一些读者在群里问:
总而言之,如果你对python、pytorch、机器学习、nlp技术(文本挖掘、文本分类、文本生成、文本搜索、问答机器人、搜索等)、计算机视觉、语音识别等领域感兴趣,或者想做一些类似的工具。
这里需要说明一下:
那么,接下来,我将分享一个在GitHub上拥有7.8万个star的明星python包————transformers
这个包将会打包你的所有困惑和焦虑,带你走上nlp不归路。
多说无益,直接秀肌肉
大部分人在nlp中遇到的第一个任务,就是文本分类。
下面是实用3行代码,就调用了一个开源模型,并且做到了情感分析(本质上就是文本分类,只不过是从情感维度,分析这句话是消极还是积极)
from transformers import pipeline
classifier = pipeline('sentiment-analysis')
classifier('We are very love chinese')
#>>> [{'label': 'POSITIVE', 'score': 0.9997429251670837}]
可以看出,就几行代码:
pipeline
设置为情感分析模式。classifier
,然后就输出结论了。给人的感觉就是即开即用,就是这么简单。
可是这个时候,就有人问了:
当然可以,而且也是比较简单的。鉴于篇幅问题,这里只是把大纲分享出来,并且附上简单的代码:
from datasets import load_dataset
imdb = load_dataset("imdb")
#load tokenizer
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased")
def preprocess_function(examples):
return tokenizer(examples["text"], truncation=True)
# process data
tokenized_imdb = imdb.map(preprocess_function, batched=True)
# padding
from transformers import DataCollatorWithPadding
data_collator = DataCollatorWithPadding(tokenizer=tokenizer)
import evaluate
accuracy = evaluate.load("accuracy")
import numpy as np
def compute_metrics(eval_pred):
predictions, labels = eval_pred
predictions = np.argmax(predictions, axis=1)
return accuracy.compute(predictions=predictions, references=labels)
from transformers import AutoModelForSequenceClassification, TrainingArguments, Trainer
model = AutoModelForSequenceClassification.from_pretrained(
"distilbert-base-uncased", num_labels=2, id2label=id2label, label2id=label2id
)
training_args = TrainingArguments(
output_dir="my_awesome_model",
learning_rate=2e-5,
per_device_train_batch_size=16,
per_device_eval_batch_size=16,
num_train_epochs=2,
weight_decay=0.01,
evaluation_strategy="epoch",
save_strategy="epoch",
load_best_model_at_end=True,
push_to_hub=True,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_imdb["train"],
eval_dataset=tokenized_imdb["test"],
tokenizer=tokenizer,
data_collator=data_collator,
compute_metrics=compute_metrics,
)
trainer.train()
给你看个文本
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。