Instructions to use savasy/bert-turkish-text-classification with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use savasy/bert-turkish-text-classification with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="savasy/bert-turkish-text-classification")# Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("savasy/bert-turkish-text-classification") model = AutoModelForSequenceClassification.from_pretrained("savasy/bert-turkish-text-classification", device_map="auto") - Notebooks
- Google Colab
- Kaggle
| language: tr | |
| # Turkish Text Classification | |
| This model is a fine-tune model of https://github.com/stefan-it/turkish-bert by using text classification data where there are 7 categories as follows | |
| ``` | |
| code_to_label={ | |
| 'LABEL_0': 'dunya ', | |
| 'LABEL_1': 'ekonomi ', | |
| 'LABEL_2': 'kultur ', | |
| 'LABEL_3': 'saglik ', | |
| 'LABEL_4': 'siyaset ', | |
| 'LABEL_5': 'spor ', | |
| 'LABEL_6': 'teknoloji '} | |
| ``` | |
| ## Citation | |
| Please cite the following papers if needed | |
| ``` | |
| @misc{yildirim2024finetuning, | |
| title={Fine-tuning Transformer-based Encoder for Turkish Language Understanding Tasks}, | |
| author={Savas Yildirim}, | |
| year={2024}, | |
| eprint={2401.17396}, | |
| archivePrefix={arXiv}, | |
| primaryClass={cs.CL} | |
| } | |
| @book{yildirim2021mastering, | |
| title={Mastering Transformers: Build state-of-the-art models from scratch with advanced natural language processing techniques}, | |
| author={Yildirim, Savas and Asgari-Chenaghlu, Meysam}, | |
| year={2021}, | |
| publisher={Packt Publishing Ltd} | |
| } | |
| ``` | |
| ## Data | |
| The following Turkish benchmark dataset is used for fine-tuning | |
| https://www.kaggle.com/savasy/ttc4900 | |
| ## Quick Start | |
| Bewgin with installing transformers as follows | |
| > pip install transformers | |
| ``` | |
| # Code: | |
| # import libraries | |
| from transformers import pipeline, AutoModelForTokenClassification, AutoTokenizer, AutoModelForSequenceClassification | |
| tokenizer= AutoTokenizer.from_pretrained("savasy/bert-turkish-text-classification") | |
| # build and load model, it take time depending on your internet connection | |
| model= AutoModelForSequenceClassification.from_pretrained("savasy/bert-turkish-text-classification") | |
| # make pipeline | |
| nlp=pipeline("sentiment-analysis", model=model, tokenizer=tokenizer) | |
| # apply model | |
| nlp("bla bla") | |
| # [{'label': 'LABEL_2', 'score': 0.4753005802631378}] | |
| code_to_label={ | |
| 'LABEL_0': 'dunya ', | |
| 'LABEL_1': 'ekonomi ', | |
| 'LABEL_2': 'kultur ', | |
| 'LABEL_3': 'saglik ', | |
| 'LABEL_4': 'siyaset ', | |
| 'LABEL_5': 'spor ', | |
| 'LABEL_6': 'teknoloji '} | |
| code_to_label[nlp("bla bla")[0]['label']] | |
| # > 'kultur ' | |
| ``` | |
| ## How the model was trained | |
| ``` | |
| ## loading data for Turkish text classification | |
| import pandas as pd | |
| # https://www.kaggle.com/savasy/ttc4900 | |
| df=pd.read_csv("7allV03.csv") | |
| df.columns=["labels","text"] | |
| df.labels=pd.Categorical(df.labels) | |
| traind_df=... | |
| eval_df=... | |
| # model | |
| from simpletransformers.classification import ClassificationModel | |
| import torch,sklearn | |
| model_args = { | |
| "use_early_stopping": True, | |
| "early_stopping_delta": 0.01, | |
| "early_stopping_metric": "mcc", | |
| "early_stopping_metric_minimize": False, | |
| "early_stopping_patience": 5, | |
| "evaluate_during_training_steps": 1000, | |
| "fp16": False, | |
| "num_train_epochs":3 | |
| } | |
| model = ClassificationModel( | |
| "bert", | |
| "dbmdz/bert-base-turkish-cased", | |
| use_cuda=cuda_available, | |
| args=model_args, | |
| num_labels=7 | |
| ) | |
| model.train_model(train_df, acc=sklearn.metrics.accuracy_score) | |
| ``` | |
| For other training models please check https://simpletransformers.ai/ | |
| For the detailed usage of Turkish Text Classification please check [python notebook](https://github.com/savasy/TurkishTextClassification/blob/master/Bert_base_Text_Classification_for_Turkish.ipynb) | |