Source code for text_machina.src.exploration.mixcase

from typing import Any, Dict, List

from datasets import Dataset
from rich.markup import escape
from rich.panel import Panel

from .base import Explorer


[docs]class MixCaseExplorer(Explorer): """ Explorer for mixcase tasks. """ def __init__(self, dataset: Dataset) -> None: super().__init__(dataset)
[docs] def get_panels(self, example: Dict[str, Any]) -> List[Panel]: panels = [] # Prompt panels prompts = ( [example["prompt"]] if not isinstance(example["prompt"], list) else example["prompt"] ) for idx, prompt in enumerate(prompts): panels.append( Panel( escape(prompt), title=f"[red3]Prompt {idx}", border_style="turquoise2", style="white", ) ) # Text panel text = "" for label in example["label"]: start, end = label["start"], label["end"] color = "[red3]" if label["label"] == "human" else "[blue3]" text += color + escape(example["text"][start:end]) model = example["model"] title = ( "[red3]Human[/] text" if model == "human" else f"Mixcase text from [blue3]{model}[/] and [red3]human[/]" ) panels.append( Panel( text, title=title, border_style="turquoise2", style="white", ) ) return panels
[docs] def get_title(self, idx: int, example: Dict[str, Any]) -> str: example["model"] domain = example["domain"] extractor = example["extractor"] title = f"[tan]{idx}[/]: " title += f"Mixcase text in domain [sea_green3]{domain}[/]" title += f" using extractor [yellow]{extractor}" return title