CoolFace
Modelpublic

LocalDoc/language_detection

sourceHugging Facecc-by-nc-4.0updated 2y agoView on Hugging Face
4likes12downloads
Model Card

Multilingual Language Detection Model

Model Description

This repository contains a multilingual language detection model based on the XLM-RoBERTa base architecture. The model is capable of distinguishing between 21 different languages including Arabic, Azerbaijani, Bulgarian, German, Greek, English, Spanish, French, Hindi, Italian, Japanese, Dutch, Polish, Portuguese, Russian, Swahili, Thai, Turkish, Urdu, Vietnamese, and Chinese.

How to Use

You can use this model directly with a pipeline for text classification, or you can use it with the transformers library for more custom usage, as shown in the example below.

Quick Start

First, install the transformers library if you haven't already:

bash
pip install transformers
python
from transformers import AutoModelForSequenceClassification, XLMRobertaTokenizer
import torch

# Load tokenizer and model
tokenizer = XLMRobertaTokenizer.from_pretrained("LocalDoc/language_detection")
model = AutoModelForSequenceClassification.from_pretrained("LocalDoc/language_detection")

# Prepare text
text = "Əlqasım oğulları vorzakondu"
encoded_input = tokenizer(text, return_tensors='pt', truncation=True, max_length=512)

# Prediction
model.eval()
with torch.no_grad():
    outputs = model(**encoded_input)

# Process the outputs
logits = outputs.logits
probabilities = torch.nn.functional.softmax(logits, dim=-1)
predicted_class_index = probabilities.argmax().item()
labels = ["az", "ar", "bg", "de", "el", "en", "es", "fr", "hi", "it", "ja", "nl", "pl", "pt", "ru", "sw", "th", "tr", "ur", "vi", "zh"]
predicted_label = labels[predicted_class_index]
print(f"Predicted Language: {predicted_label}")

Language Label Information

The model outputs a label for each prediction, corresponding to one of the languages listed below. Each label is associated with a specific language code as detailed in the following table:

LabelLanguage CodeLanguage Name
LABEL_0azAzerbaijani
LABEL_1arArabic
LABEL_2bgBulgarian
LABEL_3deGerman
LABEL_4elGreek
LABEL_5enEnglish
LABEL_6esSpanish
LABEL_7frFrench
LABEL_8hiHindi
LABEL_9itItalian
LABEL_10jaJapanese
LABEL_11nlDutch
LABEL_12plPolish
LABEL_13ptPortuguese
LABEL_14ruRussian
LABEL_15swSwahili
LABEL_16thThai
LABEL_17trTurkish
LABEL_18urUrdu
LABEL_19viVietnamese
LABEL_20zhChinese

This mapping is utilized to decode the model's predictions into understandable language names, facilitating the interpretation of results for further processing or analysis.

Training Performance

The model was trained over three epochs, showing consistent improvement in accuracy and loss:

Epoch 1: Training Loss: 0.0127, Validation Loss: 0.0174, Accuracy: 0.9966, F1 Score: 0.9966 Epoch 2: Training Loss: 0.0149, Validation Loss: 0.0141, Accuracy: 0.9973, F1 Score: 0.9973 Epoch 3: Training Loss: 0.0001, Validation Loss: 0.0109, Accuracy: 0.9984, F1 Score: 0.9984

Test Results

The model achieved the following results on the test set:

Loss: 0.0133 Accuracy: 0.9975 F1 Score: 0.9975 Precision: 0.9975 Recall: 0.9975 Evaluation Time: 17.5 seconds Samples per Second: 599.685 Steps per Second: 9.424

License

The dataset is licensed under the Creative Commons Attribution-NonCommercial 4.0 International license. This license allows you to freely share and redistribute the dataset with attribution to the source but prohibits commercial use and the creation of derivative works.

Contact information

If you have any questions or suggestions, please contact us at [v.resad.89@gmail.com].