SajjadAyoubi/bert-base-fa-qa

SajjadAyoubi
Pregunta y respuesta

Un modelo de respuesta a preguntas basado en BERT específicamente para el idioma persa. Esta implementación admite tanto PyTorch como TensorFlow, y su objetivo es proporcionar respuestas precisas a preguntas dadas en el contexto de un texto proporcionado. Se puede utilizar tanto con pipelines de Transformers como con enfoques manuales para obtener un rendimiento óptimo.

Como usar

Requisitos

Los Transformers requieren transformers y sentencepiece, ambos se pueden instalar usando pip.

pip install transformers sentencepiece

Pipelines 🚀

En caso de no estar familiarizado con Transformers, puede usar pipelines en su lugar. Nota: los pipelines no pueden tener respuestas vacías para las preguntas.

from transformers import pipeline

model_name = "SajjadAyoubi/bert-base-fa-qa"
qa_pipeline = pipeline("question-answering", model=model_name, tokenizer=model_name)

text = "سلام من سجاد ایوبی هستم ۲۰ سالمه و به پردازش زبان طبیعی علاقه دارم"
questions = ["اسمم چیه؟", "چند سالمه؟", "به چی علاقه دارم؟"]

for question in questions:
    print(qa_pipeline({"context": text, "question": question}))

### Enfoque Manual 🔥

Usando el enfoque manual, es posible no tener respuesta con un rendimiento aún mejor.

#### PyTorch
```python
from transformers import AutoTokenizer, AutoModelForQuestionAnswering
from src.utils import AnswerPredictor

model_name = "SajjadAyoubi/bert-base-fa-qa"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForQuestionAnswering.from_pretrained(model_name)

text = "سلام من سجاد ایوبی هستم ۲۰ سالمه و به پردازش زبان طبیعی علاقه دارم"
questions = ["اسمم چیه؟", "چند سالمه؟", "به چی علاقه دارم؟"]

predictor = AnswerPredictor(model, tokenizer, device="cpu", n_best=10)
preds = predictor(questions, [text] * 3, batch_size=3)

for k, v in preds.items():
    print(v)

TensorFlow 2.X

from transformers import AutoTokenizer, TFAutoModelForQuestionAnswering
from src.utils import TFAnswerPredictor

model_name = "SajjadAyoubi/bert-base-fa-qa"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = TFAutoModelForQuestionAnswering.from_pretrained(model_name)

text = "سلام من سجاد ایوبی هستم ۲۰ سالمه و به پردازش زبان طبیعی علاقه دارم"
questions = ["اسمم چیه؟", "چند سالمه؟", "به چی علاقه دارم؟"]

predictor = TFAnswerPredictor(model, tokenizer, n_best=10)
preds = predictor(questions, [text] * 3, batch_size=3)

for k, v in preds.items():
    print(v)

Funcionalidades

Respuestas a preguntas
Compatibilidad con PyTorch
Compatibilidad con TensorFlow
Implementación con BERT
Capacidad de respuesta contextual

Casos de uso

Responder preguntas en persa basadas en contexto
Soporte para procesamiento de lenguaje natural
Integración en aplicaciones de chatbot
Implementación en sistemas de atención al cliente