Первичная версия: стилометрия реплик, LSA и протокол экспериментов

This commit is contained in:
2026-10-24 01:17:36 +03:00
commit c390224500
52 changed files with 10099 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
"""Тесты анализа по метаданным персонажей."""
from __future__ import annotations
import pandas as pd
from stylometry.metadata import (
group_confusions,
load_character_metadata,
subgroup_report,
)
def test_metadata_table() -> None:
metadata = load_character_metadata()
assert len(metadata) == 34
assert {"character", "gender", "age_group", "species", "role"} <= set(metadata.columns)
def test_subgroup_report() -> None:
metadata = load_character_metadata()
y_true = ["Abigail", "Abigail", "Alex", "Alex"]
y_pred = ["Abigail", "Alex", "Alex", "Alex"]
labels = ["Abigail", "Alex"]
report = subgroup_report(y_true, y_pred, labels, metadata, "gender")
assert {"group", "weighted_f1", "n_samples"} <= set(report.columns)
assert report["n_samples"].sum() == 4
def test_group_confusions() -> None:
metadata = load_character_metadata()
y_true = ["Abigail", "Abigail", "Alex", "Alex"]
y_pred = ["Abigail", "Alex", "Alex", "Abigail"]
table = group_confusions(y_true, y_pred, metadata, "gender")
assert not table.empty
assert {"true_group", "pred_group", "count"} <= set(table.columns)