Bei der Einführung von Methoden zum Lernen und Ableiten ohne Vorverarbeitung oder Wortvektorisierung ist die Genauigkeit oft nicht so hoch.
simpletransformer Es ist im Python-Paket implementiert, sodass Sie im natürlichen Sprachsystem problemlos verschiedene Aufgaben ausführen können.
Ich habe es unter der Annahme geschrieben, dass grundlegende Dinge wie Pandas enthalten sind und man sowohl mit Conda als auch mit Pip machen kann.
Wenn Pytorch bereits enthalten ist, überspringen Sie die folgenden Schritte. Für GPU
pip install pytorch>=1.6 cudatoolkit=10.2 -c pytorch
Nur CPU
pip install pytorch cpuonly -c pytorch
Ich denke nicht, dass einfache Transformatoren mit conda gemacht werden können.
pip install simpletransformers
Es ist eine Installation von wandb zur Visualisierung des Lernens im Web. Es funktioniert ohne es. Bitte überspringen Sie es, wenn Sie es nicht benötigen. Die Verwendung wird nicht beschrieben.
pip install wandb
Verwenden Sie es unter der Annahme, dass der Pandas-Datenrahmen den Text und die entsprechende Bezeichnung enthält.
Der Name der Spalte, in der der Text von Pandas geschrieben ist, wurde in "Text" und der Name der Spalte, in der das Etikett in "Etikett" geschrieben ist, geändert.
params = {
"output_dir": "out_models/bert_model/",
"max_seq_length": 256,
"train_batch_size": 128,
"eval_batch_size": 128,
"num_train_epochs": 10,
"learning_rate": 1e-4,
}
Geben Sie ein beliebiges Verzeichnis für output_dir an. Dies ist das Speicherzielverzeichnis des Modells, das beim Lernen erstellt wurde.
from simpletransformers.classification import ClassificationModel
model = ClassificationModel(“bert”, “bert-base-cased”,num_labels=10, args=params, use_cuda=True)
model.train_model(train_df)
Geben Sie den Namen jedes Modells ein, das Sie in "bert" verwenden möchten, und den Namen des vorab trainierten Modells, das Sie in "bert-base-cased" verwenden möchten. Siehe hier für trainierte Modelle und deren Namen. num_labels ist die Anzahl der Beschriftungen. Bitte formatieren Sie die Beschriftungen so, dass sie bei 0 beginnen. train_df ist ein Datenrahmen, der mit den Spalten "text" und "label" erstellt wurde.
Es wird davon ausgegangen, dass es einen Datenrahmen für den Test gibt, der das gleiche Format wie der Datenrahmen für das Training hat.
pred, _ = model.predict(test_df['text'])
Das vorhergesagte Label wird an pred ausgegeben.
Die Dokumentation für simpletransformers finden Sie hier (https://simpletransformers.ai/). Es scheint, dass es viele andere Funktionen gibt, also versuchen Sie es bitte. Denken Sie daran, dass Vorverarbeitung, Nachbearbeitung usw. wichtig sind. Wenn Sie sie diesmal ignorieren, können Sie nicht viel Genauigkeit erwarten.
Recommended Posts