transcript-analysis / measures /OnTaskAnalyser.py
ikarasz's picture
feature: on-off-tasks (#11)
0d766a4
Raw
History Blame Contribute Delete
1.01 kB
from transformers import pipeline
ON_TASK_MODEL = 'edsi-umd/on-task-bert'
ON_TASK_LABEL = 'on_task' # from the model's config.json id2label: {"0": "off_task", "1": "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] # {'label': ..., 'score': ...}
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 # model trained on student utterances only
if not utt.text or not utt.text.strip():
continue
utt.on_task = self.predict_one(utt.text)
return transcript