| from transformers import pipeline |
|
|
| ON_TASK_MODEL = 'edsi-umd/on-task-bert' |
| ON_TASK_LABEL = 'on_task' |
|
|
|
|
| class OnTaskAnalyser: |
| def __init__(self, model_path=ON_TASK_MODEL, max_length=256): |
| self.pipe = pipeline("text-classification", model=model_path, |
| truncation=True, max_length=max_length) |
|
|
| def predict_one(self, text: str): |
| return self.pipe(text)[0] |
|
|
| def run_analysis(self, transcript, uptake_speaker=None): |
| """Mutate transcript utterances by setting on_task for student utterances.""" |
| for utt in transcript.utterances: |
| if uptake_speaker is not None and utt.speaker == uptake_speaker: |
| continue |
| if not utt.text or not utt.text.strip(): |
| continue |
| utt.on_task = self.predict_one(utt.text) |
| return transcript |
|
|