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